diff --git a/.changeset/smooth-balloons-stare.md b/.changeset/smooth-balloons-stare.md deleted file mode 100644 index 66a578e07..000000000 --- a/.changeset/smooth-balloons-stare.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@graphprotocol/contracts": patch ---- - -make sdk and console table printer a dev dep diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 310c412bd..95858b5f2 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -6,14 +6,17 @@ runs: steps: - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - - name: Enable corepack for modern yarn + - name: Enable Corepack shell: bash run: corepack enable - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 18 - cache: 'yarn' + cache: 'pnpm' + - name: Set up pnpm via Corepack + shell: bash + run: corepack prepare pnpm@9.0.6 --activate - name: Install dependencies shell: bash - run: yarn --immutable + run: pnpm install --frozen-lockfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a7a8b2ff..203a65d80 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,4 +22,4 @@ jobs: - name: Set up environment uses: ./.github/actions/setup - name: Build - run: yarn build || yarn build \ No newline at end of file + run: pnpm build || pnpm build \ No newline at end of file diff --git a/.github/workflows/ci-contracts.yml b/.github/workflows/ci-contracts.yml index d60ab0d9b..8d4bcbb42 100644 --- a/.github/workflows/ci-contracts.yml +++ b/.github/workflows/ci-contracts.yml @@ -27,11 +27,11 @@ jobs: - name: Build run: | pushd packages/contracts - yarn build || yarn build + pnpm build || pnpm build - name: Run tests run: | pushd packages/contracts - yarn test:coverage + pnpm test:coverage - name: Upload coverage report uses: codecov/codecov-action@v3 with: diff --git a/.github/workflows/ci-data-edge.yml b/.github/workflows/ci-data-edge.yml index a8046aa7e..6e313eaf1 100644 --- a/.github/workflows/ci-data-edge.yml +++ b/.github/workflows/ci-data-edge.yml @@ -25,6 +25,6 @@ jobs: - name: Build run: | pushd packages/data-edge - yarn build + pnpm build - name: Run tests - run: yarn test \ No newline at end of file + run: pnpm test \ No newline at end of file diff --git a/.github/workflows/ci-hardhat-graph-protocol.yml b/.github/workflows/ci-hardhat-graph-protocol.yml new file mode 100644 index 000000000..f63c8b974 --- /dev/null +++ b/.github/workflows/ci-hardhat-graph-protocol.yml @@ -0,0 +1,51 @@ +name: CI - packages/toolshed + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/toolshed/** + pull_request: + branches: "*" + paths: + - packages/toolshed/** + workflow_dispatch: + +jobs: + test-ci: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Set up environment + uses: ./.github/actions/setup + - name: Build contracts + run: | + pushd packages/contracts + pnpm build + popd + - name: Build horizon + run: | + pushd packages/horizon + pnpm build + popd + - name: Build subgraph service + run: | + pushd packages/subgraph-service + pnpm build + popd + - name: Build toolshed + run: | + pushd packages/toolshed + pnpm build + popd + - name: Build hardhat-graph-protocol + run: | + pushd packages/hardhat-graph-protocol + pnpm build + popd \ No newline at end of file diff --git a/.github/workflows/ci-horizon.yml b/.github/workflows/ci-horizon.yml index 056e692bb..7352dedb2 100644 --- a/.github/workflows/ci-horizon.yml +++ b/.github/workflows/ci-horizon.yml @@ -27,24 +27,29 @@ jobs: - name: Build contracts run: | pushd packages/contracts - yarn build + pnpm build popd - name: Build horizon run: | pushd packages/horizon - yarn build + pnpm build popd - name: Build subgraph service run: | pushd packages/subgraph-service - yarn build + pnpm build + popd + - name: Build toolshed + run: | + pushd packages/toolshed + pnpm build popd - name: Build hardhat-graph-protocol run: | pushd packages/hardhat-graph-protocol - yarn build + pnpm build popd - name: Run tests run: | pushd packages/horizon - yarn test \ No newline at end of file + pnpm test \ No newline at end of file diff --git a/.github/workflows/ci-subgraph-service.yml b/.github/workflows/ci-subgraph-service.yml index 0f9e6cff7..b9bb6d3d6 100644 --- a/.github/workflows/ci-subgraph-service.yml +++ b/.github/workflows/ci-subgraph-service.yml @@ -27,24 +27,29 @@ jobs: - name: Build contracts run: | pushd packages/contracts - yarn build + pnpm build popd - name: Build horizon run: | pushd packages/horizon - yarn build + pnpm build popd - name: Build subgraph service run: | pushd packages/subgraph-service - yarn build + pnpm build + popd + - name: Build toolshed + run: | + pushd packages/toolshed + pnpm build popd - name: Build hardhat-graph-protocol run: | pushd packages/hardhat-graph-protocol - yarn build + pnpm build popd - name: Run tests run: | pushd packages/subgraph-service - yarn test \ No newline at end of file + pnpm test \ No newline at end of file diff --git a/.github/workflows/ci-token-dist.yml b/.github/workflows/ci-token-dist.yml index b991c1608..1931b45a1 100644 --- a/.github/workflows/ci-token-dist.yml +++ b/.github/workflows/ci-token-dist.yml @@ -28,8 +28,8 @@ jobs: - name: Build run: | pushd packages/token-distribution - yarn build + pnpm build - name: Run tests run: | pushd packages/token-distribution - yarn test \ No newline at end of file + pnpm test \ No newline at end of file diff --git a/.github/workflows/ci-toolshed.yml b/.github/workflows/ci-toolshed.yml new file mode 100644 index 000000000..85df34016 --- /dev/null +++ b/.github/workflows/ci-toolshed.yml @@ -0,0 +1,46 @@ +name: CI - packages/toolshed + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/toolshed/** + pull_request: + branches: "*" + paths: + - packages/toolshed/** + workflow_dispatch: + +jobs: + test-ci: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Set up environment + uses: ./.github/actions/setup + - name: Build contracts + run: | + pushd packages/contracts + pnpm build + popd + - name: Build horizon + run: | + pushd packages/horizon + pnpm build + popd + - name: Build subgraph service + run: | + pushd packages/subgraph-service + pnpm build + popd + - name: Build toolshed + run: | + pushd packages/toolshed + pnpm build + popd \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f942b6579..40981fd3f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,8 +8,8 @@ on: required: true type: choice options: - - contracts - - sdk + - contracts + - sdk tag: description: 'Tag to publish' required: true @@ -27,10 +27,10 @@ jobs: submodules: recursive - name: Set up environment uses: ./.github/actions/setup + - name: Set npm token for publishing + run: pnpm config set //registry.npmjs.org/:_authToken ${{ secrets.GRAPHPROTOCOL_NPM_TOKEN }} - name: Publish 🚀 shell: bash run: | pushd packages/${{ inputs.package }} - yarn npm publish --tag ${{ inputs.tag }} --access public - env: - YARN_NPM_AUTH_TOKEN: ${{ secrets.GRAPHPROTOCOL_NPM_TOKEN }} \ No newline at end of file + pnpm publish --tag ${{ inputs.tag }} --access public --no-git-checks \ No newline at end of file diff --git a/.github/workflows/verifydeployed.yml b/.github/workflows/verifydeployed.yml index db5b90133..b726814cb 100644 --- a/.github/workflows/verifydeployed.yml +++ b/.github/workflows/verifydeployed.yml @@ -33,7 +33,7 @@ jobs: - name: Build run: | pushd packages/contracts - yarn build || yarn build + pnpm build || pnpm build - name: Save build artifacts uses: actions/upload-artifact@v3 @@ -55,14 +55,14 @@ jobs: - name: Build run: | pushd packages/contracts - yarn build || yarn build + pnpm build || pnpm build - name: Get build artifacts uses: actions/download-artifact@v3 with: name: contract-artifacts - name: Verify contracts on Defender - run: cd packages/contracts && yarn hardhat --network ${{ inputs.network }} verify-defender ${{ inputs.contracts }} + run: cd packages/contracts && pnpm hardhat --network ${{ inputs.network }} verify-defender ${{ inputs.contracts }} env: DEFENDER_API_KEY: "${{ secrets.DEFENDER_API_KEY }}" DEFENDER_API_SECRET: "${{ secrets.DEFENDER_API_SECRET }}" diff --git a/.gitignore b/.gitignore index de3ae9b9d..56d195aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Logs yarn-debug.log* yarn-error.log* +node.log # Dependency directories node_modules/ @@ -45,7 +46,9 @@ localNetwork.json arbitrum-addresses-local.json tx-*.log addresses-fork.json - +addresses-hardhat.json +addresses-localhost.json +addresses-local-network.json # Keys .keystore diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 11969f789..000000000 --- a/.yarnrc.yml +++ /dev/null @@ -1,2 +0,0 @@ -nodeLinker: node-modules -nmHoistingLimits: workspaces \ No newline at end of file diff --git a/README.md b/README.md index 85de38b1e..50f334c45 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ ## Packages -This repository is a Yarn workspaces monorepo containing the following packages: +This repository is a pnpm workspaces monorepo containing the following packages: | Package | Latest version | Description | | --- | --- | --- | @@ -46,15 +46,11 @@ This repository is a Yarn workspaces monorepo containing the following packages: ## Development ### Setup -To set up this project you'll need [git](https://git-scm.com) and [yarn](https://yarnpkg.com/) installed. Note that Yarn v4 is required to install the dependencies and build the project. +To set up this project you'll need [git](https://git-scm.com) and [pnpm](https://pnpm.io/) installed. From your command line: ```bash -# Enable Yarn v4 -corepack enable -yarn set version stable - # Clone this repository $ git clone https://github.com/graphprotocol/contracts @@ -62,10 +58,10 @@ $ git clone https://github.com/graphprotocol/contracts $ cd contracts # Install dependencies -$ yarn +$ pnpm install # Build projects -$ yarn build +$ pnpm build ``` ### Versioning and publishing packages @@ -77,7 +73,7 @@ We use [changesets](https://github.com/changesets/changesets) to manage package A changeset is a file that describes the changes that have been made to the packages in the repository. To create a changeset, run the following command from the root of the repository: ```bash -$ yarn changeset +$ pnpm changeset ``` Changeset files are stored in the `.changeset` directory until they are packaged into a release. You can commit these files and even merge them into your main branch without publishing a release. @@ -87,7 +83,7 @@ Changeset files are stored in the `.changeset` directory until they are packaged When you are ready to create a new package release, run the following command to package all changesets, this will also bump package versions and dependencies: ```bash -$ yarn changeset version +$ pnpm changeset version ``` ### Step 3: Tagging the release @@ -97,7 +93,7 @@ __Note__: this step is meant to be run on the main branch. After creating a package release, you will need to tag the release commit with the version number. To do this, run the following command from the root of the repository: ```bash -$ yarn changeset tag +$ pnpm changeset tag $ git push --follow-tags ``` @@ -108,8 +104,11 @@ __Note__: this step is meant to be run on the main branch. Packages are published and distributed via NPM. To publish a package, run the following command from the root of the repository: ```bash -# Publish the package -$ yarn npm publish --access public --tag +# Publish the packages +$ pnpm changeset publish + +# Alternatively use +$ pnpm publish --recursive ``` Alternatively, there is a GitHub action that can be manually triggered to publish a package. diff --git a/package.json b/package.json index d1e0f60d8..7fd279609 100644 --- a/package.json +++ b/package.json @@ -5,26 +5,12 @@ "license": "GPL-2.0-or-later", "repository": "git@github.com:graphprotocol/contracts.git", "author": "The Graph team", - "packageManager": "yarn@4.0.2", - "workspaces": [ - "packages/contracts", - "packages/data-edge", - "packages/eslint-graph-config", - "packages/hardhat-graph-protocol", - "packages/horizon", - "packages/sdk", - "packages/solhint-graph-config", - "packages/solhint-plugin-graph", - "packages/subgraph-service", - "packages/token-distribution" - ], + "packageManager": "pnpm@9.0.6+sha1.648f6014eb363abb36618f2ba59282a9eeb3e879", "scripts": { "postinstall": "husky install", - "clean": "yarn workspaces foreach --all --parallel --verbose run clean", - "clean:all": "yarn clean && rm -rf node_modules packages/*/node_modules", - "build": "chmod +x ./scripts/build && ./scripts/build", - "lint": "yarn workspaces foreach --all --parallel --verbose run lint", - "test": "yarn workspaces foreach --all --parallel --verbose --interlaced run test" + "clean": "pnpm -r --parallel --reporter=append-only run clean", + "clean:all": "pnpm clean && rm -rf node_modules packages/*/node_modules", + "build": "chmod +x ./scripts/build && ./scripts/build" }, "devDependencies": { "@changesets/cli": "^2.27.1", diff --git a/packages/contracts/CHANGELOG.md b/packages/contracts/CHANGELOG.md index 388f30b1f..2e99896ed 100644 --- a/packages/contracts/CHANGELOG.md +++ b/packages/contracts/CHANGELOG.md @@ -1,5 +1,23 @@ # @graphprotocol/contracts +## 7.1.2 + +### Patch Changes + +- chore: fix package visibility + +## 7.1.1 + +### Patch Changes + +- Fix IServiceRegistry import in subgraph service toolshed deployment + +## 7.1.0 + +### Minor Changes + +- Publish entire build folder for contracts package + ## 6.3.0 ### Minor Changes diff --git a/packages/contracts/DEPLOYMENT.md b/packages/contracts/DEPLOYMENT.md index 50c8fee59..941162d84 100644 --- a/packages/contracts/DEPLOYMENT.md +++ b/packages/contracts/DEPLOYMENT.md @@ -11,7 +11,7 @@ cli/cli.ts --help For convenience, the script can also be used as a hardhat command with `hardhat migrate` and it can be also run with: ``` -yarn deploy +pnpm deploy ``` The **migrate** command will: @@ -25,22 +25,22 @@ The **migrate** command will: The script accepts multiple parameters that allow to override default values, print the available options with: ``` -yarn deploy -- --help +pnpm deploy -- --help ``` -NOTE: Please run `yarn build` at least once before running migrate as this command relies on artifacts produced in the compilation process. +NOTE: Please run `pnpm build` at least once before running migrate as this command relies on artifacts produced in the compilation process. ### Networks -By default, `yarn deploy` will deploy the contracts to a localhost instance of a development network. +By default, `pnpm deploy` will deploy the contracts to a localhost instance of a development network. To deploy to a different network execute: ``` -yarn deploy -- --network {networkName} +pnpm deploy -- --network {networkName} # Example -yarn deploy -- --network goerli +pnpm deploy -- --network goerli ``` The network must be configured in the `hardhat.config.ts` as explained in https://hardhat.org/config. @@ -54,7 +54,7 @@ A configuration file called `graph..yml` located in the `config` fo You can use a different set of configuration options by specifying the file location in the command line: ``` -yarn deploy -- --graph-config another-graph.mainnet.yml +pnpm deploy -- --graph-config another-graph.mainnet.yml ``` Rules: @@ -100,7 +100,7 @@ Some contracts require the address from previously deployed contracts. For that ### Deploying a new testnet 1. Make sure contracts are up to date as you please. -2. `yarn deploy-goerli` to deploy to Goerli. This will create new contracts with new addresses in `addresses.json`. +2. `pnpm deploy-goerli` to deploy to Goerli. This will create new contracts with new addresses in `addresses.json`. 3. Update the `package.json` and `package-lock.json` files with the new package version and publish a new npm package with `npm publish`. You can dry-run the files to be uploaded by running `npm publish --dry-run`. 4. Merge this update into master, branch off and save for whatever version of the testnet is going on, and then tag this on the github repo, pointing to your branch (ex. at `testnet-phase-1` branch). This way we can always get the contract code for testnet, while continuing to do work on mainnet. 5. Pull the updated package into the subgraph, and other apps that depend on the package.json. diff --git a/packages/contracts/README.md b/packages/contracts/README.md index fc4cf4c9e..847edc359 100644 --- a/packages/contracts/README.md +++ b/packages/contracts/README.md @@ -56,7 +56,7 @@ The contracts are upgradable, following the [Open Zeppelin Proxy Upgrade Pattern The [NPM package](https://www.npmjs.com/package/@graphprotocol/contracts) contains contract interfaces and addresses for the testnet and mainnet. It also contains [typechain](https://github.com/ethereum-ts/TypeChain) generated objects to easily interact with the contracts. This allows for anyone to install the package in their repository and interact with the protocol. It is updated and released whenever a change to the contracts occurs. ``` -yarn add @graphprotocol/contracts +pnpm add @graphprotocol/contracts ``` # Contract Addresses @@ -68,8 +68,8 @@ The testnet runs on Goerli, while mainnet is on Ethereum Mainnet. The addresses To setup the contracts locally, checkout the `dev` branch, then run: ```bash -yarn -yarn build +pnpm +pnpm build ``` # Testing diff --git a/packages/contracts/TESTING.md b/packages/contracts/TESTING.md index 75e9db77c..ab13287bc 100644 --- a/packages/contracts/TESTING.md +++ b/packages/contracts/TESTING.md @@ -8,7 +8,7 @@ Testing is done with the following stack: ## Unit testing -To test all the smart contracts, use `yarn test`. +To test all the smart contracts, use `pnpm test`. To test a single file run: `npx hardhat test test/.ts` ## E2E Testing @@ -37,7 +37,7 @@ There are several types of e2e tests which can be run separately: It can be useful to run E2E tests against a fresh protocol deployment on L1, this can be done with the following: ```bash -L1_NETWORK=localhost yarn test:e2e +L1_NETWORK=localhost pnpm test:e2e ``` The command will: @@ -51,7 +51,7 @@ The command will: If you want to test the protocol on an L1/L2 setup, you can run: ```bash -L1_NETWORK=localnitrol1 L2_NETWORK=localnitrol2 yarn test:e2e +L1_NETWORK=localnitrol1 L2_NETWORK=localnitrol2 pnpm test:e2e ``` In this case the command will: diff --git a/packages/contracts/contracts/base/IMulticall.sol b/packages/contracts/contracts/base/IMulticall.sol index 3269f694b..10f7fa469 100644 --- a/packages/contracts/contracts/base/IMulticall.sol +++ b/packages/contracts/contracts/base/IMulticall.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6; +pragma solidity ^0.7.6 || 0.8.27; pragma abicoder v2; /** diff --git a/packages/contracts/contracts/discovery/IServiceRegistry.sol b/packages/contracts/contracts/discovery/IServiceRegistry.sol index da284a409..724f7bebe 100644 --- a/packages/contracts/contracts/discovery/IServiceRegistry.sol +++ b/packages/contracts/contracts/discovery/IServiceRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6; +pragma solidity ^0.7.6 || 0.8.27; interface IServiceRegistry { struct IndexerService { diff --git a/packages/contracts/contracts/disputes/IDisputeManager.sol b/packages/contracts/contracts/disputes/IDisputeManager.sol index 8c6668371..e42386941 100644 --- a/packages/contracts/contracts/disputes/IDisputeManager.sol +++ b/packages/contracts/contracts/disputes/IDisputeManager.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6; +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; pragma abicoder v2; interface IDisputeManager { diff --git a/packages/contracts/contracts/l2/curation/IL2Curation.sol b/packages/contracts/contracts/l2/curation/IL2Curation.sol index b59960792..7f93f9603 100644 --- a/packages/contracts/contracts/l2/curation/IL2Curation.sol +++ b/packages/contracts/contracts/l2/curation/IL2Curation.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6; +pragma solidity ^0.7.6 || 0.8.27; /** * @title Interface of the L2 Curation contract. diff --git a/packages/contracts/contracts/l2/discovery/IL2GNS.sol b/packages/contracts/contracts/l2/discovery/IL2GNS.sol index 4864e9bc1..a24216fbb 100644 --- a/packages/contracts/contracts/l2/discovery/IL2GNS.sol +++ b/packages/contracts/contracts/l2/discovery/IL2GNS.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6; +pragma solidity ^0.7.6 || 0.8.27; import { ICallhookReceiver } from "../../gateway/ICallhookReceiver.sol"; diff --git a/packages/contracts/contracts/l2/staking/L2Staking.sol b/packages/contracts/contracts/l2/staking/L2Staking.sol index 4bde512ec..f1fcdeb70 100644 --- a/packages/contracts/contracts/l2/staking/L2Staking.sol +++ b/packages/contracts/contracts/l2/staking/L2Staking.sol @@ -8,6 +8,7 @@ import { Staking } from "../../staking/Staking.sol"; import { IL2StakingBase } from "./IL2StakingBase.sol"; import { IL2Staking } from "./IL2Staking.sol"; import { Stakes } from "../../staking/libs/Stakes.sol"; +import { IStakes } from "../../staking/libs/IStakes.sol"; import { IL2StakingTypes } from "./IL2StakingTypes.sol"; /** @@ -18,7 +19,7 @@ import { IL2StakingTypes } from "./IL2StakingTypes.sol"; */ contract L2Staking is Staking, IL2StakingBase { using SafeMath for uint256; - using Stakes for Stakes.Indexer; + using Stakes for IStakes.Indexer; /// @dev Minimum amount of tokens that can be delegated uint256 private constant MINIMUM_DELEGATION = 1e18; diff --git a/packages/contracts/contracts/staking/IStaking.sol b/packages/contracts/contracts/staking/IStaking.sol index d730ef806..3673c480b 100644 --- a/packages/contracts/contracts/staking/IStaking.sol +++ b/packages/contracts/contracts/staking/IStaking.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity >=0.6.12 <0.8.0; +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; pragma abicoder v2; import { IStakingBase } from "./IStakingBase.sol"; diff --git a/packages/contracts/contracts/staking/IStakingBase.sol b/packages/contracts/contracts/staking/IStakingBase.sol index 18c421ef1..588144b2a 100644 --- a/packages/contracts/contracts/staking/IStakingBase.sol +++ b/packages/contracts/contracts/staking/IStakingBase.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity >=0.6.12 <0.8.0; +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; pragma abicoder v2; import { IStakingData } from "./IStakingData.sol"; diff --git a/packages/contracts/contracts/staking/IStakingData.sol b/packages/contracts/contracts/staking/IStakingData.sol index 5420c66e5..149e3b8a6 100644 --- a/packages/contracts/contracts/staking/IStakingData.sol +++ b/packages/contracts/contracts/staking/IStakingData.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity >=0.6.12 <0.8.0; +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; /** * @title Staking Data interface diff --git a/packages/contracts/contracts/staking/IStakingExtension.sol b/packages/contracts/contracts/staking/IStakingExtension.sol index 6a60dc9eb..9a998aac5 100644 --- a/packages/contracts/contracts/staking/IStakingExtension.sol +++ b/packages/contracts/contracts/staking/IStakingExtension.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity >=0.6.12 <0.8.0; +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; pragma abicoder v2; import { IStakingData } from "./IStakingData.sol"; -import { Stakes } from "./libs/Stakes.sol"; +import { IStakes } from "./libs/IStakes.sol"; /** * @title Interface for the StakingExtension contract @@ -276,11 +276,11 @@ interface IStakingExtension is IStakingData { /** * @notice Getter for stakes[_indexer]: - * gets the stake information for an indexer as a Stakes.Indexer struct. + * gets the stake information for an indexer as a IStakes.Indexer struct. * @param _indexer Indexer address for which to query the stake information - * @return Stake information for the specified indexer, as a Stakes.Indexer struct + * @return Stake information for the specified indexer, as a IStakes.Indexer struct */ - function stakes(address _indexer) external view returns (Stakes.Indexer memory); + function stakes(address _indexer) external view returns (IStakes.Indexer memory); /** * @notice Getter for allocations[_allocationID]: diff --git a/packages/contracts/contracts/staking/L1Staking.sol b/packages/contracts/contracts/staking/L1Staking.sol index 5f25cb229..78ce8bc63 100644 --- a/packages/contracts/contracts/staking/L1Staking.sol +++ b/packages/contracts/contracts/staking/L1Staking.sol @@ -8,6 +8,7 @@ import { SafeMath } from "@openzeppelin/contracts/math/SafeMath.sol"; import { ITokenGateway } from "../arbitrum/ITokenGateway.sol"; import { Staking } from "./Staking.sol"; import { Stakes } from "./libs/Stakes.sol"; +import { IStakes } from "./libs/IStakes.sol"; import { IStakingData } from "./IStakingData.sol"; import { L1StakingV1Storage } from "./L1StakingStorage.sol"; import { IGraphToken } from "../token/IGraphToken.sol"; @@ -22,7 +23,7 @@ import { IL2StakingTypes } from "../l2/staking/IL2StakingTypes.sol"; * to send an indexer's stake to L2, and to send delegation to L2 as well. */ contract L1Staking is Staking, L1StakingV1Storage, IL1StakingBase { - using Stakes for Stakes.Indexer; + using Stakes for IStakes.Indexer; using SafeMath for uint256; /** @@ -231,7 +232,7 @@ contract L1Staking is Staking, L1StakingV1Storage, IL1StakingBase { uint256 _maxSubmissionCost, uint256 _ethAmount ) internal { - Stakes.Indexer storage indexerStake = __stakes[_indexer]; + IStakes.Indexer storage indexerStake = __stakes[_indexer]; require(indexerStake.tokensStaked != 0, "tokensStaked == 0"); // Indexers shouldn't be trying to withdraw tokens before transferring to L2. // Allowing this would complicate our accounting so we require that they have no diff --git a/packages/contracts/contracts/staking/Staking.sol b/packages/contracts/contracts/staking/Staking.sol index f4c09d79f..c61fe0ded 100644 --- a/packages/contracts/contracts/staking/Staking.sol +++ b/packages/contracts/contracts/staking/Staking.sol @@ -14,6 +14,7 @@ import { IStakingBase } from "./IStakingBase.sol"; import { StakingV4Storage } from "./StakingStorage.sol"; import { MathUtils } from "./libs/MathUtils.sol"; import { Stakes } from "./libs/Stakes.sol"; +import { IStakes } from "./libs/IStakes.sol"; import { Managed } from "../governance/Managed.sol"; import { ICuration } from "../curation/ICuration.sol"; import { IRewardsManager } from "../rewards/IRewardsManager.sol"; @@ -32,7 +33,7 @@ import { LibExponential } from "./libs/Exponential.sol"; */ abstract contract Staking is StakingV4Storage, GraphUpgradeable, IStakingBase, Multicall { using SafeMath for uint256; - using Stakes for Stakes.Indexer; + using Stakes for IStakes.Indexer; /// @dev 100% in parts per million uint32 internal constant MAX_PPM = 1000000; @@ -245,7 +246,7 @@ abstract contract Staking is StakingV4Storage, GraphUpgradeable, IStakingBase, M */ function unstake(uint256 _tokens) external override notPartialPaused { address indexer = msg.sender; - Stakes.Indexer storage indexerStake = __stakes[indexer]; + IStakes.Indexer storage indexerStake = __stakes[indexer]; require(indexerStake.tokensStaked > 0, "!stake"); @@ -565,7 +566,7 @@ abstract contract Staking is StakingV4Storage, GraphUpgradeable, IStakingBase, M * @return Amount of tokens available to allocate including delegation */ function getIndexerCapacity(address _indexer) public view override returns (uint256) { - Stakes.Indexer memory indexerStake = __stakes[_indexer]; + IStakes.Indexer memory indexerStake = __stakes[_indexer]; uint256 tokensDelegated = __delegationPools[_indexer].tokens; uint256 tokensDelegatedCap = indexerStake.tokensSecureStake().mul(uint256(__delegationRatio)); diff --git a/packages/contracts/contracts/staking/StakingExtension.sol b/packages/contracts/contracts/staking/StakingExtension.sol index ee38364b5..b06fbe894 100644 --- a/packages/contracts/contracts/staking/StakingExtension.sol +++ b/packages/contracts/contracts/staking/StakingExtension.sol @@ -9,6 +9,7 @@ import { IStakingExtension } from "./IStakingExtension.sol"; import { TokenUtils } from "../utils/TokenUtils.sol"; import { IGraphToken } from "../token/IGraphToken.sol"; import { GraphUpgradeable } from "../upgrades/GraphUpgradeable.sol"; +import { IStakes } from "./libs/IStakes.sol"; import { Stakes } from "./libs/Stakes.sol"; import { IStakingData } from "./IStakingData.sol"; import { MathUtils } from "./libs/MathUtils.sol"; @@ -22,7 +23,7 @@ import { MathUtils } from "./libs/MathUtils.sol"; */ contract StakingExtension is StakingV4Storage, GraphUpgradeable, IStakingExtension { using SafeMath for uint256; - using Stakes for Stakes.Indexer; + using Stakes for IStakes.Indexer; /// @dev 100% in parts per million uint32 private constant MAX_PPM = 1000000; @@ -147,7 +148,7 @@ contract StakingExtension is StakingV4Storage, GraphUpgradeable, IStakingExtensi uint256 _reward, address _beneficiary ) external override onlySlasher notPartialPaused { - Stakes.Indexer storage indexerStake = __stakes[_indexer]; + IStakes.Indexer storage indexerStake = __stakes[_indexer]; // Only able to slash a non-zero number of tokens require(_tokens > 0, "!tokens"); @@ -365,11 +366,11 @@ contract StakingExtension is StakingV4Storage, GraphUpgradeable, IStakingExtensi /** * @notice Getter for stakes[_indexer]: - * gets the stake information for an indexer as a Stakes.Indexer struct. + * gets the stake information for an indexer as an IStakes.Indexer struct. * @param _indexer Indexer address for which to query the stake information - * @return Stake information for the specified indexer, as a Stakes.Indexer struct + * @return Stake information for the specified indexer, as an IStakes.Indexer struct */ - function stakes(address _indexer) external view override returns (Stakes.Indexer memory) { + function stakes(address _indexer) external view override returns (IStakes.Indexer memory) { return __stakes[_indexer]; } diff --git a/packages/contracts/contracts/staking/StakingStorage.sol b/packages/contracts/contracts/staking/StakingStorage.sol index e01777de9..949a63614 100644 --- a/packages/contracts/contracts/staking/StakingStorage.sol +++ b/packages/contracts/contracts/staking/StakingStorage.sol @@ -5,7 +5,7 @@ pragma solidity ^0.7.6; import { Managed } from "../governance/Managed.sol"; import { IStakingData } from "./IStakingData.sol"; -import { Stakes } from "./libs/Stakes.sol"; +import { IStakes } from "./libs/IStakes.sol"; /** * @title StakingV1Storage @@ -46,7 +46,7 @@ contract StakingV1Storage is Managed { uint32 internal __alphaDenominator; /// @dev Indexer stakes : indexer => Stake - mapping(address => Stakes.Indexer) internal __stakes; + mapping(address => IStakes.Indexer) internal __stakes; /// @dev Allocations : allocationID => Allocation mapping(address => IStakingData.Allocation) internal __allocations; diff --git a/packages/contracts/contracts/staking/libs/IStakes.sol b/packages/contracts/contracts/staking/libs/IStakes.sol new file mode 100644 index 000000000..701336409 --- /dev/null +++ b/packages/contracts/contracts/staking/libs/IStakes.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +interface IStakes { + struct Indexer { + uint256 tokensStaked; // Tokens on the indexer stake (staked by the indexer) + uint256 tokensAllocated; // Tokens used in allocations + uint256 tokensLocked; // Tokens locked for withdrawal subject to thawing period + uint256 tokensLockedUntil; // Block when locked tokens can be withdrawn + } +} diff --git a/packages/contracts/contracts/staking/libs/Stakes.sol b/packages/contracts/contracts/staking/libs/Stakes.sol index e856cdec1..b09101032 100644 --- a/packages/contracts/contracts/staking/libs/Stakes.sol +++ b/packages/contracts/contracts/staking/libs/Stakes.sol @@ -6,6 +6,7 @@ pragma abicoder v2; import "@openzeppelin/contracts/math/SafeMath.sol"; import "./MathUtils.sol"; +import "./IStakes.sol"; /** * @title A collection of data structures and functions to manage the Indexer Stake state. @@ -14,21 +15,14 @@ import "./MathUtils.sol"; */ library Stakes { using SafeMath for uint256; - using Stakes for Stakes.Indexer; - - struct Indexer { - uint256 tokensStaked; // Tokens on the indexer stake (staked by the indexer) - uint256 tokensAllocated; // Tokens used in allocations - uint256 tokensLocked; // Tokens locked for withdrawal subject to thawing period - uint256 tokensLockedUntil; // Block when locked tokens can be withdrawn - } + using Stakes for IStakes.Indexer; /** * @dev Deposit tokens to the indexer stake. * @param stake Stake data * @param _tokens Amount of tokens to deposit */ - function deposit(Stakes.Indexer storage stake, uint256 _tokens) internal { + function deposit(IStakes.Indexer storage stake, uint256 _tokens) internal { stake.tokensStaked = stake.tokensStaked.add(_tokens); } @@ -37,7 +31,7 @@ library Stakes { * @param stake Stake data * @param _tokens Amount of tokens to release */ - function release(Stakes.Indexer storage stake, uint256 _tokens) internal { + function release(IStakes.Indexer storage stake, uint256 _tokens) internal { stake.tokensStaked = stake.tokensStaked.sub(_tokens); } @@ -46,7 +40,7 @@ library Stakes { * @param stake Stake data * @param _tokens Amount of tokens to allocate */ - function allocate(Stakes.Indexer storage stake, uint256 _tokens) internal { + function allocate(IStakes.Indexer storage stake, uint256 _tokens) internal { stake.tokensAllocated = stake.tokensAllocated.add(_tokens); } @@ -55,7 +49,7 @@ library Stakes { * @param stake Stake data * @param _tokens Amount of tokens to unallocate */ - function unallocate(Stakes.Indexer storage stake, uint256 _tokens) internal { + function unallocate(IStakes.Indexer storage stake, uint256 _tokens) internal { stake.tokensAllocated = stake.tokensAllocated.sub(_tokens); } @@ -65,7 +59,7 @@ library Stakes { * @param _tokens Amount of tokens to unstake * @param _period Period in blocks that need to pass before withdrawal */ - function lockTokens(Stakes.Indexer storage stake, uint256 _tokens, uint256 _period) internal { + function lockTokens(IStakes.Indexer storage stake, uint256 _tokens, uint256 _period) internal { // Take into account period averaging for multiple unstake requests uint256 lockingPeriod = _period; if (stake.tokensLocked > 0) { @@ -87,7 +81,7 @@ library Stakes { * @param stake Stake data * @param _tokens Amount of tokens to unlock */ - function unlockTokens(Stakes.Indexer storage stake, uint256 _tokens) internal { + function unlockTokens(IStakes.Indexer storage stake, uint256 _tokens) internal { stake.tokensLocked = stake.tokensLocked.sub(_tokens); if (stake.tokensLocked == 0) { stake.tokensLockedUntil = 0; @@ -99,7 +93,7 @@ library Stakes { * @param stake Stake data * @return Amount of tokens being withdrawn */ - function withdrawTokens(Stakes.Indexer storage stake) internal returns (uint256) { + function withdrawTokens(IStakes.Indexer storage stake) internal returns (uint256) { // Calculate tokens that can be released uint256 tokensToWithdraw = stake.tokensWithdrawable(); @@ -119,7 +113,7 @@ library Stakes { * @param stake Stake data * @return Token amount */ - function tokensUsed(Stakes.Indexer memory stake) internal pure returns (uint256) { + function tokensUsed(IStakes.Indexer memory stake) internal pure returns (uint256) { return stake.tokensAllocated.add(stake.tokensLocked); } @@ -130,7 +124,7 @@ library Stakes { * @param stake Stake data * @return Token amount */ - function tokensSecureStake(Stakes.Indexer memory stake) internal pure returns (uint256) { + function tokensSecureStake(IStakes.Indexer memory stake) internal pure returns (uint256) { return stake.tokensStaked.sub(stake.tokensLocked); } @@ -142,7 +136,7 @@ library Stakes { * @param stake Stake data * @return Token amount */ - function tokensAvailable(Stakes.Indexer memory stake) internal pure returns (uint256) { + function tokensAvailable(IStakes.Indexer memory stake) internal pure returns (uint256) { return stake.tokensAvailableWithDelegation(0); } @@ -155,7 +149,7 @@ library Stakes { * @return Token amount */ function tokensAvailableWithDelegation( - Stakes.Indexer memory stake, + IStakes.Indexer memory stake, uint256 _delegatedCapacity ) internal pure returns (uint256) { uint256 tokensCapacity = stake.tokensStaked.add(_delegatedCapacity); @@ -181,7 +175,7 @@ library Stakes { * @param stake Stake data * @return Token amount */ - function tokensWithdrawable(Stakes.Indexer memory stake) internal view returns (uint256) { + function tokensWithdrawable(IStakes.Indexer memory stake) internal view returns (uint256) { // No tokens to withdraw before locking period if (stake.tokensLockedUntil == 0 || block.number < stake.tokensLockedUntil) { return 0; diff --git a/packages/contracts/hardhat.config.ts b/packages/contracts/hardhat.config.ts index b90eb1290..cdc054482 100644 --- a/packages/contracts/hardhat.config.ts +++ b/packages/contracts/hardhat.config.ts @@ -41,7 +41,7 @@ function loadTasks() { if (fs.existsSync(path.join(__dirname, 'build', 'types'))) { loadTasks() } else if (!SKIP_LOAD) { - execSync('yarn build', { stdio: 'inherit' }) + execSync('pnpm build', { stdio: 'inherit' }) loadTasks() } diff --git a/packages/contracts/package.json b/packages/contracts/package.json index cde47f6eb..b18665f61 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,6 +1,9 @@ { "name": "@graphprotocol/contracts", - "version": "7.0.0", + "version": "7.1.2", + "publishConfig": { + "access": "public" + }, "description": "Contracts for the Graph Protocol", "directories": { "test": "test" @@ -9,16 +12,21 @@ "types": "build/types/index.d.ts", "files": [ "dist/**/*", - "build/contracts/**/*", + "build/**/*", "README.md", "addresses.json" ], "devDependencies": { "@arbitrum/sdk": "~3.1.13", "@defi-wonderland/smock": "~2.3.0", + "@ethersproject/abi": "^5.8.0", + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", "@ethersproject/experimental": "^5.6.0", + "@ethersproject/providers": "^5.8.0", "@graphprotocol/common-ts": "^1.8.3", - "@graphprotocol/sdk": "workspace:^0.5.0", + "@graphprotocol/sdk": "0.5.4", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomiclabs/hardhat-ethers": "^2.2.3", "@nomiclabs/hardhat-etherscan": "^3.1.7", "@nomiclabs/hardhat-waffle": "2.0.3", @@ -30,8 +38,8 @@ "@typechain/ethers-v5": "^7.0.0", "@typechain/hardhat": "^2.0.0", "@types/bs58": "^4.0.1", + "@types/chai": "4.3.4", "@types/chai-as-promised": "^7.1.5", - "@types/dotenv": "^8.2.0", "@types/glob": "^7.2.0", "@types/inquirer": "^7.3.1", "@types/minimist": "^1.2.1", @@ -42,8 +50,9 @@ "@types/yargs": "^16.0.0", "@urql/core": "^2.1.3", "arbos-precompiles": "^1.0.2", - "bignumber.js": "^9.0.0", - "chai": "^4.3.4", + "axios": "^1.8.4", + "bignumber.js": "9.1.2", + "chai": "4.3.4", "chai-as-promised": "^7.1.1", "cli-table": "^0.3.6", "console-table-printer": "^2.11.1", @@ -85,15 +94,15 @@ "build": "SKIP_LOAD=true scripts/build", "clean": "rm -rf build/ cache/ dist/", "compile": "hardhat compile", - "deploy": "yarn predeploy && yarn build && hardhat migrate", - "deploy-localhost": "yarn build && hardhat migrate --force --skip-confirmation --disable-secure-accounts --network localhost --graph-config config/graph.localhost.yml --address-book addresses-local.json", + "deploy": "pnpm predeploy && pnpm build && hardhat migrate", + "deploy-localhost": "pnpm build && hardhat migrate --force --skip-confirmation --disable-secure-accounts --network localhost --graph-config config/graph.localhost.yml --address-book addresses-local.json", "predeploy": "scripts/predeploy", "test": "scripts/test", "test:e2e": "scripts/e2e", "test:gas": "RUN_EVM=true REPORT_GAS=true scripts/test", "test:coverage": "scripts/coverage", "test:upgrade": "scripts/upgrade", - "lint": "yarn lint:ts && yarn lint:sol", + "lint": "pnpm lint:ts && pnpm lint:sol", "lint:ts": "eslint '**/*.{js,ts}' --fix", "lint:sol": "prettier --write 'contracts/**/*.sol' && solhint --fix --noPrompt contracts/**/*.sol --config solhint.config.js", "analyze": "scripts/analyze", @@ -105,16 +114,16 @@ }, "lint-staged": { "contracts/**/*.sol": [ - "yarn lint:sol" + "pnpm lint:sol" ], "**/*.ts": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.js": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.json": [ - "yarn lint:ts" + "pnpm lint:ts" ] }, "repository": { @@ -127,4 +136,4 @@ "url": "https://github.com/graphprotocol/contracts/issues" }, "homepage": "https://github.com/graphprotocol/contracts#readme" -} +} \ No newline at end of file diff --git a/packages/contracts/scripts/analyze b/packages/contracts/scripts/analyze index 20b49d76e..5592f92aa 100755 --- a/packages/contracts/scripts/analyze +++ b/packages/contracts/scripts/analyze @@ -11,7 +11,7 @@ mkdir -p reports pip3 install --user slither-analyzer && \ -yarn build && \ +pnpm build && \ echo "Analyzing contracts..." slither . \ diff --git a/packages/contracts/scripts/build b/packages/contracts/scripts/build index b034b0892..ee830bddf 100755 --- a/packages/contracts/scripts/build +++ b/packages/contracts/scripts/build @@ -5,13 +5,13 @@ TYPECHAIN_DIR=dist/types set -eo pipefail # Build contracts -yarn clean -yarn compile +pnpm clean +pnpm compile tsc # Copy types and abis to distribution folder -cp -R build/types/* dist/contracts/build/types -cp -R build/abis/ dist/contracts/build/abis +cp -R build/types/* dist/build/types +cp -R build/abis/ dist/build/abis # Move compiled types ts -mv dist/contracts/build/types dist/types \ No newline at end of file +mv dist/build/types dist/types \ No newline at end of file diff --git a/packages/contracts/scripts/coverage b/packages/contracts/scripts/coverage index afe6390dd..767ff0cd7 100755 --- a/packages/contracts/scripts/coverage +++ b/packages/contracts/scripts/coverage @@ -2,7 +2,7 @@ set -eo pipefail -yarn build +pnpm build echo {} > addresses-local.json diff --git a/packages/contracts/scripts/e2e b/packages/contracts/scripts/e2e index 5622101bd..98978ccc3 100755 --- a/packages/contracts/scripts/e2e +++ b/packages/contracts/scripts/e2e @@ -126,7 +126,7 @@ function test_e2e_scenarios_bridge () { ### > SCRIPT START < ### ## SETUP # Compile contracts -yarn build +pnpm build # Start evm if [[ "$L1_NETWORK" == "localhost" || "$L2_NETWORK" == "localhost" ]]; then diff --git a/packages/contracts/scripts/myth b/packages/contracts/scripts/myth index 60de5c94f..5c4907e60 100755 --- a/packages/contracts/scripts/myth +++ b/packages/contracts/scripts/myth @@ -9,7 +9,7 @@ # - https://github.com/ConsenSys/mythril#usage pip3 install --user mythril && \ -yarn build && \ +pnpm build && \ mkdir -p reports/myth echo "Myth Analysis..." diff --git a/packages/contracts/scripts/test b/packages/contracts/scripts/test index 4156166ae..c5f76b708 100755 --- a/packages/contracts/scripts/test +++ b/packages/contracts/scripts/test @@ -6,7 +6,7 @@ source $(pwd)/scripts/evm ### Setup EVM # Ensure we compiled sources -yarn build +pnpm build ### Cleanup function cleanup() { diff --git a/packages/contracts/scripts/upgrade b/packages/contracts/scripts/upgrade index 086f2d9b0..c5b62d29f 100755 --- a/packages/contracts/scripts/upgrade +++ b/packages/contracts/scripts/upgrade @@ -55,7 +55,7 @@ echo "- Upgrade name: $UPGRADE_NAME" ## SETUP # Compile contracts print_separator "Building contracts" -yarn build +pnpm build # Build fork address book with actual contract addresses from the forked chain jq "{\"$CHAIN_ID\"} + {"\"1337\"": .\"$CHAIN_ID\"} | del(.\"$CHAIN_ID\")" $ADDRESS_BOOK > addresses-fork.json diff --git a/packages/contracts/test/e2e/deployment/config/allocationExchange.test.ts b/packages/contracts/test/e2e/deployment/config/allocationExchange.test.ts deleted file mode 100644 index 28950c16f..000000000 --- a/packages/contracts/test/e2e/deployment/config/allocationExchange.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { NamedAccounts } from '@graphprotocol/sdk/gre' - -describe('AllocationExchange configuration', () => { - const { - contracts: { AllocationExchange }, - getNamedAccounts, - } = hre.graph() - - let namedAccounts: NamedAccounts - - before(async () => { - namedAccounts = await getNamedAccounts() - }) - - it('should be owned by allocationExchangeOwner', async function () { - const owner = await AllocationExchange.governor() - expect(owner).eq(namedAccounts.allocationExchangeOwner.address) - }) - - it('should accept vouchers from authority', async function () { - const allowed = await AllocationExchange.authority(namedAccounts.authority.address) - expect(allowed).eq(true) - }) - - // graphToken and staking are private variables so we can't verify - it.skip('graphToken should match the GraphToken deployment address') - it.skip('staking should match the Staking deployment address') -}) diff --git a/packages/contracts/test/e2e/deployment/config/controller.test.ts b/packages/contracts/test/e2e/deployment/config/controller.test.ts deleted file mode 100644 index fea7eadc2..000000000 --- a/packages/contracts/test/e2e/deployment/config/controller.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { expect } from 'chai' -import hre, { ethers } from 'hardhat' -import { NamedAccounts } from '@graphprotocol/sdk/gre' -import { isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('Controller configuration', () => { - const graph = hre.graph() - const { Controller } = graph.contracts - - const l1ProxyContracts = [ - 'Curation', - 'GNS', - 'DisputeManager', - 'EpochManager', - 'RewardsManager', - 'L1Staking', - 'GraphToken', - 'L1GraphTokenGateway', - ] - - const l2ProxyContracts = [ - 'Curation', - 'GNS', - 'DisputeManager', - 'EpochManager', - 'RewardsManager', - 'L2Staking', - 'L2GraphToken', - 'L2GraphTokenGateway', - ] - - let namedAccounts: NamedAccounts - - before(async () => { - namedAccounts = await graph.getNamedAccounts() - }) - - const proxyShouldMatchDeployed = async (contractName: string) => { - // remove L1/L2 prefix, contracts are not registered as L1/L2 on controller - const name = contractName.replace(/(^L1|L2)/gi, '') - - const address = await Controller.getContractProxy( - ethers.utils.solidityKeccak256(['string'], [name]), - ) - expect(address).eq(graph.contracts[contractName].address) - } - - it('protocol should be unpaused', async function () { - const paused = await Controller.paused() - expect(paused).eq(false) - }) - - it('should be owned by governor', async function () { - const owner = await Controller.governor() - expect(owner).eq(namedAccounts.governor.address) - }) - - it('pause guardian should be able to pause protocol', async function () { - const pauseGuardian = await Controller.pauseGuardian() - expect(pauseGuardian).eq(namedAccounts.pauseGuardian.address) - }) - - describe('proxy contract', function () { - const proxyContracts = isGraphL1ChainId(graph.chainId) ? l1ProxyContracts : l2ProxyContracts - for (const contract of proxyContracts) { - it(`${contract} should match deployed`, async function () { - await proxyShouldMatchDeployed(contract) - }) - } - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/disputeManager.test.ts b/packages/contracts/test/e2e/deployment/config/disputeManager.test.ts deleted file mode 100644 index 831fdd186..000000000 --- a/packages/contracts/test/e2e/deployment/config/disputeManager.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { getItemValue } from '@graphprotocol/sdk' -import { expect } from 'chai' -import hre from 'hardhat' - -describe('DisputeManager configuration', () => { - const { - graphConfig, - contracts: { Controller, DisputeManager }, - } = hre.graph() - - it('should be controlled by Controller', async function () { - const controller = await DisputeManager.controller() - expect(controller).eq(Controller.address) - }) - - it('arbitrator should be able to resolve disputes', async function () { - const arbitratorAddress = getItemValue(graphConfig, 'general/arbitrator') - const arbitrator = await DisputeManager.arbitrator() - expect(arbitrator).eq(arbitratorAddress) - }) - - it('minimumDeposit should match "minimumDeposit" in the config file', async function () { - const value = await DisputeManager.minimumDeposit() - const expected = getItemValue(graphConfig, 'contracts/DisputeManager/init/minimumDeposit') - expect(value).eq(expected) - }) - - it('fishermanRewardPercentage should match "fishermanRewardPercentage" in the config file', async function () { - const value = await DisputeManager.fishermanRewardPercentage() - const expected = getItemValue( - graphConfig, - 'contracts/DisputeManager/init/fishermanRewardPercentage', - ) - expect(value).eq(expected) - }) - - it('idxSlashingPercentage should match "idxSlashingPercentage" in the config file', async function () { - const value = await DisputeManager.idxSlashingPercentage() - const expected = getItemValue( - graphConfig, - 'contracts/DisputeManager/init/idxSlashingPercentage', - ) - expect(value).eq(expected) - }) - - it('qrySlashingPercentage should match "qrySlashingPercentage" in the config file', async function () { - const value = await DisputeManager.qrySlashingPercentage() - const expected = getItemValue( - graphConfig, - 'contracts/DisputeManager/init/qrySlashingPercentage', - ) - expect(value).eq(expected) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/epochManager.test.ts b/packages/contracts/test/e2e/deployment/config/epochManager.test.ts deleted file mode 100644 index d3900b480..000000000 --- a/packages/contracts/test/e2e/deployment/config/epochManager.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { getItemValue } from '@graphprotocol/sdk' -import { expect } from 'chai' -import hre from 'hardhat' - -describe('EpochManager configuration', () => { - const { - graphConfig, - contracts: { EpochManager, Controller }, - } = hre.graph() - - it('should be controlled by Controller', async function () { - const controller = await EpochManager.controller() - expect(controller).eq(Controller.address) - }) - - it('epochLength should match "lengthInBlocks" in the config file', async function () { - const value = await EpochManager.epochLength() - const expected = getItemValue(graphConfig, 'contracts/EpochManager/init/lengthInBlocks') - expect(value).eq(expected) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/gns.test.ts b/packages/contracts/test/e2e/deployment/config/gns.test.ts deleted file mode 100644 index 08408bcdd..000000000 --- a/packages/contracts/test/e2e/deployment/config/gns.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' - -describe('GNS configuration', () => { - const { - contracts: { Controller, GNS, SubgraphNFT }, - } = hre.graph() - - it('should be controlled by Controller', async function () { - const controller = await GNS.controller() - expect(controller).eq(Controller.address) - }) - - it('subgraphNFT should match the SubgraphNFT deployment address', async function () { - const subgraphNFT = await GNS.subgraphNFT() - expect(subgraphNFT).eq(SubgraphNFT.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/graphProxyAdmin.test.ts b/packages/contracts/test/e2e/deployment/config/graphProxyAdmin.test.ts deleted file mode 100644 index 01b026436..000000000 --- a/packages/contracts/test/e2e/deployment/config/graphProxyAdmin.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { NamedAccounts } from '@graphprotocol/sdk/gre' - -describe('GraphProxyAdmin configuration', () => { - const { - contracts: { GraphProxyAdmin }, - getNamedAccounts, - } = hre.graph() - - let namedAccounts: NamedAccounts - - before(async () => { - namedAccounts = await getNamedAccounts() - }) - - it('should be owned by governor', async function () { - const owner = await GraphProxyAdmin.governor() - expect(owner).eq(namedAccounts.governor.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/graphToken.test.ts b/packages/contracts/test/e2e/deployment/config/graphToken.test.ts deleted file mode 100644 index 4c7cf0d45..000000000 --- a/packages/contracts/test/e2e/deployment/config/graphToken.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { NamedAccounts } from '@graphprotocol/sdk/gre' - -describe('GraphToken configuration', () => { - const { - getNamedAccounts, - contracts: { GraphToken }, - getDeployer, - } = hre.graph() - - let namedAccounts: NamedAccounts - - before(async () => { - namedAccounts = await getNamedAccounts() - }) - - it('should be owned by governor', async function () { - const owner = await GraphToken.governor() - expect(owner).eq(namedAccounts.governor.address) - }) - - it('deployer should not be minter', async function () { - const deployer = await getDeployer() - const deployerIsMinter = await GraphToken.isMinter(deployer.address) - expect(deployerIsMinter).eq(false) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/bridgeEscrow.test.ts b/packages/contracts/test/e2e/deployment/config/l1/bridgeEscrow.test.ts deleted file mode 100644 index bea48aea6..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/bridgeEscrow.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] BridgeEscrow configuration', function () { - const graph = hre.graph() - const { Controller, BridgeEscrow } = graph.contracts - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - it('should be controlled by Controller', async function () { - const controller = await BridgeEscrow.controller() - expect(controller).eq(Controller.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/curation.test.ts b/packages/contracts/test/e2e/deployment/config/l1/curation.test.ts deleted file mode 100644 index f0fa363c5..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/curation.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { getItemValue, isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] Curation configuration', () => { - const graph = hre.graph() - const { - graphConfig, - contracts: { Controller, Curation, BancorFormula, GraphCurationToken }, - } = graph - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - it('should be controlled by Controller', async function () { - const controller = await Curation.controller() - expect(controller).eq(Controller.address) - }) - - it('bondingCurve should match the BancorFormula deployment address', async function () { - const bondingCurve = await Curation.bondingCurve() - expect(bondingCurve).eq(BancorFormula.address) - }) - - it('curationTokenMaster should match the GraphCurationToken deployment address', async function () { - const bondingCurve = await Curation.curationTokenMaster() - expect(bondingCurve).eq(GraphCurationToken.address) - }) - - it('defaultReserveRatio should match "reserveRatio" in the config file', async function () { - const value = await Curation.defaultReserveRatio() - const expected = getItemValue(graphConfig, 'contracts/Curation/init/reserveRatio') - expect(value).eq(expected) - }) - - it('curationTaxPercentage should match "curationTaxPercentage" in the config file', async function () { - const value = await Curation.curationTaxPercentage() - const expected = getItemValue(graphConfig, 'contracts/Curation/init/curationTaxPercentage') - expect(value).eq(expected) - }) - - it('minimumCurationDeposit should match "minimumCurationDeposit" in the config file', async function () { - const value = await Curation.minimumCurationDeposit() - const expected = getItemValue(graphConfig, 'contracts/Curation/init/minimumCurationDeposit') - expect(value).eq(expected) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/graphToken.test.ts b/packages/contracts/test/e2e/deployment/config/l1/graphToken.test.ts deleted file mode 100644 index 90c60ba51..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/graphToken.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { isGraphL2ChainId } from '@graphprotocol/sdk' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { expect } from 'chai' -import hre from 'hardhat' - -describe('[L1] GraphToken', () => { - const graph = hre.graph() - const { GraphToken, RewardsManager } = graph.contracts - - let unauthorized: SignerWithAddress - - before(async function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - unauthorized = (await graph.getTestAccounts())[0] - }) - - describe('calls with unauthorized user', () => { - it('mint should revert', async function () { - const tx = GraphToken.connect(unauthorized).mint( - unauthorized.address, - '1000000000000000000000', - ) - await expect(tx).revertedWith('Only minter can call') - }) - - it('RewardsManager should be minter', async function () { - const rewardsMgrIsMinter = await GraphToken.isMinter(RewardsManager.address) - expect(rewardsMgrIsMinter).eq(true) - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/l1GNS.test.ts b/packages/contracts/test/e2e/deployment/config/l1/l1GNS.test.ts deleted file mode 100644 index e33934d5e..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/l1GNS.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] GNS', () => { - const graph = hre.graph() - const { L1GNS, L1GraphTokenGateway } = graph.contracts - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - describe('L1GNS', () => { - it('counterpartGNSAddress should match the L2GNS address', async () => { - const l2GNS = await L1GNS.counterpartGNSAddress() - expect(l2GNS).eq(graph.l2.contracts.L2GNS.address) - }) - - it('should be added to callhookAllowlist', async () => { - const isAllowed = await L1GraphTokenGateway.callhookAllowlist(L1GNS.address) - expect(isAllowed).true - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/l1GraphTokenGateway.test.ts b/packages/contracts/test/e2e/deployment/config/l1/l1GraphTokenGateway.test.ts deleted file mode 100644 index e188fc89e..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/l1GraphTokenGateway.test.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { isGraphL2ChainId, SimpleAddressBook } from '@graphprotocol/sdk' - -describe('[L1] L1GraphTokenGateway configuration', function () { - const graph = hre.graph() - const { Controller, L1GraphTokenGateway } = graph.contracts - - let unauthorized: SignerWithAddress - before(async function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - unauthorized = (await graph.getTestAccounts())[0] - }) - - it('bridge should not be paused', async function () { - const paused = await L1GraphTokenGateway.paused() - expect(paused).eq(false) - }) - - it('should be controlled by Controller', async function () { - const controller = await L1GraphTokenGateway.controller() - expect(controller).eq(Controller.address) - }) - - it('l2GRT should match the L2 GraphToken deployed address', async function () { - const l2GRT = await L1GraphTokenGateway.l2GRT() - expect(l2GRT).eq(graph.l2.contracts.GraphToken.address) - }) - - it('l2Counterpart should match the deployed L2 GraphTokenGateway address', async function () { - const l2Counterpart = await L1GraphTokenGateway.l2Counterpart() - expect(l2Counterpart).eq(graph.l2.contracts.L2GraphTokenGateway.address) - }) - - it('escrow should match the deployed L1 BridgeEscrow address', async function () { - const escrow = await L1GraphTokenGateway.escrow() - expect(escrow).eq(graph.l1.contracts.BridgeEscrow.address) - }) - - it('inbox should match Arbitrum\'s Inbox address', async function () { - const inbox = await L1GraphTokenGateway.inbox() - const arbitrumAddressBook = process.env.ARBITRUM_ADDRESS_BOOK ?? 'arbitrum-addresses-local.json' - const arbAddressBook = new SimpleAddressBook(arbitrumAddressBook, graph.l1.chainId) - const arbIInbox = arbAddressBook.getEntry('IInbox') - - expect(inbox.toLowerCase()).eq(arbIInbox.address.toLowerCase()) - }) - - it('l1Router should match Arbitrum\'s router address', async function () { - const l1Router = await L1GraphTokenGateway.l1Router() - const arbitrumAddressBook = process.env.ARBITRUM_ADDRESS_BOOK ?? 'arbitrum-addresses-local.json' - const arbAddressBook = new SimpleAddressBook(arbitrumAddressBook, graph.l1.chainId) - const arbL2Router = arbAddressBook.getEntry('L1GatewayRouter') - - expect(l1Router).eq(arbL2Router.address) - }) - - describe('calls with unauthorized user', () => { - it('initialize should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).initialize(unauthorized.address) - await expect(tx).revertedWith('Only implementation') - }) - - it('setArbitrumAddresses should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).setArbitrumAddresses( - unauthorized.address, - unauthorized.address, - ) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('setL2TokenAddress should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).setL2TokenAddress(unauthorized.address) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('setL2CounterpartAddress should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).setL2CounterpartAddress( - unauthorized.address, - ) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('setEscrowAddress should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).setEscrowAddress(unauthorized.address) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('addToCallhookAllowlist should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).addToCallhookAllowlist( - unauthorized.address, - ) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('removeFromCallhookAllowlist should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).removeFromCallhookAllowlist( - unauthorized.address, - ) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('finalizeInboundTransfer should revert', async function () { - const tx = L1GraphTokenGateway.connect(unauthorized).finalizeInboundTransfer( - unauthorized.address, - unauthorized.address, - unauthorized.address, - '100', - '0x00', - ) - - await expect(tx).revertedWith('NOT_FROM_BRIDGE') - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/l1Staking.test.ts b/packages/contracts/test/e2e/deployment/config/l1/l1Staking.test.ts deleted file mode 100644 index 185f2a2fe..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/l1Staking.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] Staking', () => { - const graph = hre.graph() - const { L1Staking, L1GraphTokenGateway } = graph.contracts - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - describe('L1Staking', () => { - it('counterpartStakingAddress should match the L2Staking address', async () => { - // counterpartStakingAddress is internal so we access the storage directly - const l2StakingData = await hre.ethers.provider.getStorageAt(L1Staking.address, 24) - const l2Staking = hre.ethers.utils.defaultAbiCoder.decode(['address'], l2StakingData)[0] - expect(l2Staking).eq(graph.l2.contracts.L2Staking.address) - }) - - it('should be added to callhookAllowlist', async () => { - const isAllowed = await L1GraphTokenGateway.callhookAllowlist(L1Staking.address) - expect(isAllowed).true - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l1/rewardsManager.test.ts b/packages/contracts/test/e2e/deployment/config/l1/rewardsManager.test.ts deleted file mode 100644 index b7781fd96..000000000 --- a/packages/contracts/test/e2e/deployment/config/l1/rewardsManager.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL2ChainId } from '@graphprotocol/sdk' -import { NamedAccounts } from '@graphprotocol/sdk/gre' - -describe('[L1] RewardsManager configuration', () => { - const graph = hre.graph() - const { RewardsManager } = graph.contracts - - let namedAccounts: NamedAccounts - - before(async function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - namedAccounts = await graph.getNamedAccounts() - }) - - it('issuancePerBlock should match "issuancePerBlock" in the config file', async function () { - const value = await RewardsManager.issuancePerBlock() - expect(value).eq('114693500000000000000') // hardcoded as it's set with a function call rather than init parameter - }) - - it('should allow subgraph availability oracle to deny rewards', async function () { - const availabilityOracle = await RewardsManager.subgraphAvailabilityOracle() - expect(availabilityOracle).eq(namedAccounts.availabilityOracle.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/l2Curation.test.ts b/packages/contracts/test/e2e/deployment/config/l2/l2Curation.test.ts deleted file mode 100644 index b38f679a6..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/l2Curation.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { getItemValue, isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('[L2] L2Curation configuration', () => { - const graph = hre.graph() - const { - graphConfig, - contracts: { Controller, L2Curation, GraphCurationToken }, - } = graph - - before(function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - }) - - it('should be controlled by Controller', async function () { - const controller = await L2Curation.controller() - expect(controller).eq(Controller.address) - }) - - it('curationTokenMaster should match the GraphCurationToken deployment address', async function () { - const gct = await L2Curation.curationTokenMaster() - expect(gct).eq(GraphCurationToken.address) - }) - - it('defaultReserveRatio should be a constant 1000000', async function () { - const value = await L2Curation.defaultReserveRatio() - const expected = 1000000 - expect(value).eq(expected) - }) - - it('curationTaxPercentage should match "curationTaxPercentage" in the config file', async function () { - const value = await L2Curation.curationTaxPercentage() - const expected = getItemValue(graphConfig, 'contracts/L2Curation/init/curationTaxPercentage') - expect(value).eq(expected) - }) - - it('minimumCurationDeposit should match "minimumCurationDeposit" in the config file', async function () { - const value = await L2Curation.minimumCurationDeposit() - const expected = getItemValue(graphConfig, 'contracts/L2Curation/init/minimumCurationDeposit') - expect(value).eq(expected) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/l2GNS.test.ts b/packages/contracts/test/e2e/deployment/config/l2/l2GNS.test.ts deleted file mode 100644 index 2ebd7cf5e..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/l2GNS.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('[L2] GNS', () => { - const graph = hre.graph() - const { L2GNS } = graph.l2.contracts - - before(function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - }) - - describe('L2GNS', () => { - it('counterpartGNSAddress should match the L1GNS address', async () => { - const l1GNS = await L2GNS.counterpartGNSAddress() - expect(l1GNS).eq(graph.l1.contracts.L1GNS.address) - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/l2GraphToken.test.ts b/packages/contracts/test/e2e/deployment/config/l2/l2GraphToken.test.ts deleted file mode 100644 index 50831f6e7..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/l2GraphToken.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('[L2] L2GraphToken', () => { - const graph = hre.graph() - const { L2GraphToken, RewardsManager } = graph.contracts - - let unauthorized: SignerWithAddress - - before(async function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - unauthorized = (await graph.getTestAccounts())[0] - }) - - it('l1Address should match the L1 GraphToken deployed address', async function () { - const l1Address = await L2GraphToken.l1Address() - expect(l1Address).eq(graph.l1.contracts.GraphToken.address) - }) - - it('gateway should match the L2 GraphTokenGateway deployed address', async function () { - const gateway = await L2GraphToken.gateway() - expect(gateway).eq(graph.l2.contracts.L2GraphTokenGateway.address) - }) - - describe('calls with unauthorized user', () => { - it('mint should revert', async function () { - const tx = L2GraphToken.connect(unauthorized).mint( - unauthorized.address, - '1000000000000000000000', - ) - await expect(tx).revertedWith('Only minter can call') - }) - - it('bridgeMint should revert', async function () { - const tx = L2GraphToken.connect(unauthorized).bridgeMint( - unauthorized.address, - '1000000000000000000000', - ) - await expect(tx).revertedWith('NOT_GATEWAY') - }) - - it('setGateway should revert', async function () { - const tx = L2GraphToken.connect(unauthorized).setGateway(unauthorized.address) - await expect(tx).revertedWith('Only Governor can call') - }) - - it('RewardsManager should be minter', async function () { - const rewardsMgrIsMinter = await L2GraphToken.isMinter(RewardsManager.address) - expect(rewardsMgrIsMinter).eq(true) - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/l2GraphTokenGateway.test.ts b/packages/contracts/test/e2e/deployment/config/l2/l2GraphTokenGateway.test.ts deleted file mode 100644 index cae73cbd9..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/l2GraphTokenGateway.test.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL1ChainId, SimpleAddressBook } from '@graphprotocol/sdk' - -describe('[L2] L2GraphTokenGateway configuration', function () { - const graph = hre.graph() - const { Controller, L2GraphTokenGateway } = graph.contracts - - let unauthorized: SignerWithAddress - before(async function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - unauthorized = (await graph.getTestAccounts())[0] - }) - - it('bridge should not be paused', async function () { - const paused = await L2GraphTokenGateway.paused() - expect(paused).eq(false) - }) - - it('should be controlled by Controller', async function () { - const controller = await L2GraphTokenGateway.controller() - expect(controller).eq(Controller.address) - }) - - it('l1GRT should match the L1 GraphToken deployed address', async function () { - const l1GRT = await L2GraphTokenGateway.l1GRT() - expect(l1GRT).eq(graph.l1.contracts.GraphToken.address) - }) - - it('l1Counterpart should match the deployed L1 GraphTokenGateway address', async function () { - const l1Counterpart = await L2GraphTokenGateway.l1Counterpart() - expect(l1Counterpart).eq(graph.l1.contracts.L1GraphTokenGateway.address) - }) - - it('l2Router should match Arbitrum\'s router address', async function () { - const l2Router = await L2GraphTokenGateway.l2Router() - - // TODO: is there a cleaner way to get the router address? - const arbitrumAddressBook = process.env.ARBITRUM_ADDRESS_BOOK ?? 'arbitrum-addresses-local.json' - const arbAddressBook = new SimpleAddressBook(arbitrumAddressBook, graph.l2.chainId) - const arbL2Router = arbAddressBook.getEntry('L2GatewayRouter') - - expect(l2Router).eq(arbL2Router.address) - }) - - describe('calls with unauthorized user', () => { - it('initialize should revert', async function () { - const tx = L2GraphTokenGateway.connect(unauthorized).initialize(unauthorized.address) - await expect(tx).revertedWith('Only implementation') - }) - - it('setL2Router should revert', async function () { - const tx = L2GraphTokenGateway.connect(unauthorized).setL2Router(unauthorized.address) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('setL1TokenAddress should revert', async function () { - const tx = L2GraphTokenGateway.connect(unauthorized).setL1TokenAddress(unauthorized.address) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('setL1CounterpartAddress should revert', async function () { - const tx = L2GraphTokenGateway.connect(unauthorized).setL1CounterpartAddress( - unauthorized.address, - ) - await expect(tx).revertedWith('Only Controller governor') - }) - - it('finalizeInboundTransfer should revert', async function () { - const tx = L2GraphTokenGateway.connect(unauthorized).finalizeInboundTransfer( - unauthorized.address, - unauthorized.address, - unauthorized.address, - '1000000000000', - '0x00', - ) - - await expect(tx).revertedWith('ONLY_COUNTERPART_GATEWAY') - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/l2Staking.test.ts b/packages/contracts/test/e2e/deployment/config/l2/l2Staking.test.ts deleted file mode 100644 index dda82fd85..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/l2Staking.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('[L2] Staking', () => { - const graph = hre.graph() - const { L2Staking } = graph.l2.contracts - - before(function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - }) - - describe('L2Staking', () => { - it('counterpartStakingAddress should match the L1Staking address', async () => { - // counterpartStakingAddress is internal so we access the storage directly - const l1StakingData = await hre.ethers.provider.getStorageAt(L2Staking.address, 24) - const l1Staking = hre.ethers.utils.defaultAbiCoder.decode(['address'], l1StakingData)[0] - expect(l1Staking).eq(graph.l1.contracts.L1Staking.address) - }) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/l2/rewardsManager.test.ts b/packages/contracts/test/e2e/deployment/config/l2/rewardsManager.test.ts deleted file mode 100644 index c324dc6bf..000000000 --- a/packages/contracts/test/e2e/deployment/config/l2/rewardsManager.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { isGraphL1ChainId } from '@graphprotocol/sdk' -import { expect } from 'chai' -import hre from 'hardhat' - -describe('[L2] RewardsManager configuration', () => { - const graph = hre.graph() - const { RewardsManager, SubgraphAvailabilityManager } = graph.contracts - - before(function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - }) - - it('issuancePerBlock should be zero', async function () { - const value = await RewardsManager.issuancePerBlock() - expect(value).eq('6036500000000000000') // hardcoded as it's set with a function call rather than init parameter - }) - - it('should allow subgraph availability manager to deny rewards', async function () { - const availabilityOracle = await RewardsManager.subgraphAvailabilityOracle() - expect(availabilityOracle).eq(SubgraphAvailabilityManager.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/rewardsManager.test.ts b/packages/contracts/test/e2e/deployment/config/rewardsManager.test.ts deleted file mode 100644 index e120392b6..000000000 --- a/packages/contracts/test/e2e/deployment/config/rewardsManager.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' - -describe('RewardsManager configuration', () => { - const { - contracts: { RewardsManager, Controller }, - } = hre.graph() - - it('should be controlled by Controller', async function () { - const controller = await RewardsManager.controller() - expect(controller).eq(Controller.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/serviceRegistry.test..ts b/packages/contracts/test/e2e/deployment/config/serviceRegistry.test..ts deleted file mode 100644 index c7e953ce9..000000000 --- a/packages/contracts/test/e2e/deployment/config/serviceRegistry.test..ts +++ /dev/null @@ -1,13 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' - -describe('ServiceRegistry configuration', () => { - const { - contracts: { ServiceRegistry, Controller }, - } = hre.graph() - - it('should be controlled by Controller', async function () { - const controller = await ServiceRegistry.controller() - expect(controller).eq(Controller.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/staking.test.ts b/packages/contracts/test/e2e/deployment/config/staking.test.ts deleted file mode 100644 index cfd4110b4..000000000 --- a/packages/contracts/test/e2e/deployment/config/staking.test.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { getItemValue, isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('Staking configuration', () => { - const { - graphConfig, - contracts: { Staking, Controller, DisputeManager }, - chainId, - } = hre.graph() - let contractName: string - if (isGraphL2ChainId(chainId)) { - contractName = 'L2Staking' - } else { - contractName = 'L1Staking' - } - - it('should be controlled by Controller', async function () { - const controller = await Staking.controller() - expect(controller).eq(Controller.address) - }) - - it('should allow DisputeManager to slash indexers', async function () { - const isSlasher = await Staking.slashers(DisputeManager.address) - expect(isSlasher).eq(true) - }) - - it('minimumIndexerStake should match "minimumIndexerStake" in the config file', async function () { - const value = await Staking.minimumIndexerStake() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/minimumIndexerStake`) - expect(value).eq(expected) - }) - - it('thawingPeriod should match "thawingPeriod" in the config file', async function () { - const value = await Staking.thawingPeriod() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/thawingPeriod`) - expect(value).eq(expected) - }) - - it('protocolPercentage should match "protocolPercentage" in the config file', async function () { - const value = await Staking.protocolPercentage() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/protocolPercentage`) - expect(value).eq(expected) - }) - - it('curationPercentage should match "curationPercentage" in the config file', async function () { - const value = await Staking.curationPercentage() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/curationPercentage`) - expect(value).eq(expected) - }) - - it('maxAllocationEpochs should match "maxAllocationEpochs" in the config file', async function () { - const value = await Staking.maxAllocationEpochs() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/maxAllocationEpochs`) - expect(value).eq(expected) - }) - - it('delegationUnbondingPeriod should match "delegationUnbondingPeriod" in the config file', async function () { - const value = await Staking.delegationUnbondingPeriod() - const expected = getItemValue( - graphConfig, - `contracts/${contractName}/init/delegationUnbondingPeriod`, - ) - expect(value).eq(expected) - }) - - it('delegationRatio should match "delegationRatio" in the config file', async function () { - const value = await Staking.delegationRatio() - const expected = getItemValue(graphConfig, `contracts/${contractName}/init/delegationRatio`) - expect(value).eq(expected) - }) - - it('alphaNumerator should match "alphaNumerator" in the config file', async function () { - const value = await Staking.alphaNumerator() - const expected = getItemValue( - graphConfig, - `contracts/${contractName}/init/rebateParameters/alphaNumerator`, - ) - expect(value).eq(expected) - }) - - it('alphaDenominator should match "alphaDenominator" in the config file', async function () { - const value = await Staking.alphaDenominator() - const expected = getItemValue( - graphConfig, - `contracts/${contractName}/init/rebateParameters/alphaDenominator`, - ) - expect(value).eq(expected) - }) - - it('lambdaNumerator should match "lambdaNumerator" in the config file', async function () { - const value = await Staking.lambdaNumerator() - const expected = getItemValue( - graphConfig, - `contracts/${contractName}/init/rebateParameters/lambdaNumerator`, - ) - expect(value).eq(expected) - }) - - it('lambdaDenominator should match "lambdaDenominator" in the config file', async function () { - const value = await Staking.lambdaDenominator() - const expected = getItemValue( - graphConfig, - `contracts/${contractName}/init/rebateParameters/lambdaDenominator`, - ) - expect(value).eq(expected) - }) - - it('delegationTaxPercentage should match the configured value in config file', async function () { - const value = await Staking.delegationTaxPercentage() - expect(value).eq(5000) // hardcoded as it's set with a function call rather than init parameter - }) -}) diff --git a/packages/contracts/test/e2e/deployment/config/subgraphNFT.test.ts b/packages/contracts/test/e2e/deployment/config/subgraphNFT.test.ts deleted file mode 100644 index e394aef43..000000000 --- a/packages/contracts/test/e2e/deployment/config/subgraphNFT.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { NamedAccounts } from '@graphprotocol/sdk/gre' - -describe('SubgraphNFT configuration', () => { - const { - getNamedAccounts, - contracts: { SubgraphNFT, GNS, SubgraphNFTDescriptor }, - } = hre.graph() - - let namedAccounts: NamedAccounts - - before(async () => { - namedAccounts = await getNamedAccounts() - }) - - it('should be owned by governor', async function () { - const owner = await SubgraphNFT.governor() - expect(owner).eq(namedAccounts.governor.address) - }) - - it('should allow GNS to mint NFTs', async function () { - const minter = await SubgraphNFT.minter() - expect(minter).eq(GNS.address) - }) - - it('tokenDescriptor should match the SubgraphNFTDescriptor deployment address', async function () { - const tokenDescriptor = await SubgraphNFT.tokenDescriptor() - expect(tokenDescriptor).eq(SubgraphNFTDescriptor.address) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/init/allocationExchange.test.ts b/packages/contracts/test/e2e/deployment/init/allocationExchange.test.ts deleted file mode 100644 index 5a759ae56..000000000 --- a/packages/contracts/test/e2e/deployment/init/allocationExchange.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' - -describe('AllocationExchange initialization', () => { - const { - contracts: { AllocationExchange, GraphToken, Staking }, - } = hre.graph() - - it('should allow Staking contract to spend MAX_UINT256 tokens on AllocationExchange behalf', async function () { - const allowance = await GraphToken.allowance(AllocationExchange.address, Staking.address) - expect(allowance).eq(hre.ethers.constants.MaxUint256) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/init/gns.test.ts b/packages/contracts/test/e2e/deployment/init/gns.test.ts deleted file mode 100644 index ccf5451d9..000000000 --- a/packages/contracts/test/e2e/deployment/init/gns.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' - -describe('GNS initialization', () => { - const { - contracts: { GNS, GraphToken, Curation }, - } = hre.graph() - - it('should allow Curation contract to spend MAX_UINT256 tokens on GNS behalf', async function () { - const allowance = await GraphToken.allowance(GNS.address, Curation.address) - expect(allowance).eq(hre.ethers.constants.MaxUint256) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/init/l1/bridgeEscrow.test.ts b/packages/contracts/test/e2e/deployment/init/l1/bridgeEscrow.test.ts deleted file mode 100644 index 0abb37278..000000000 --- a/packages/contracts/test/e2e/deployment/init/l1/bridgeEscrow.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] BridgeEscrow initialization', () => { - const graph = hre.graph() - const { BridgeEscrow, GraphToken, L1GraphTokenGateway } = graph.contracts - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - it('should allow L1GraphTokenGateway contract to spend MAX_UINT256 tokens on BridgeEscrow\'s behalf', async function () { - const allowance = await GraphToken.allowance(BridgeEscrow.address, L1GraphTokenGateway.address) - expect(allowance).eq(hre.ethers.constants.MaxUint256) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/init/l1/graphToken.test.ts b/packages/contracts/test/e2e/deployment/init/l1/graphToken.test.ts deleted file mode 100644 index 87ad5769a..000000000 --- a/packages/contracts/test/e2e/deployment/init/l1/graphToken.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { getItemValue, isGraphL2ChainId } from '@graphprotocol/sdk' - -describe('[L1] GraphToken initialization', () => { - const graph = hre.graph() - const { GraphToken } = graph.contracts - - before(function () { - if (isGraphL2ChainId(graph.chainId)) this.skip() - }) - - it('total supply should match "initialSupply" on the config file', async function () { - const value = await GraphToken.totalSupply() - const expected = getItemValue(graph.graphConfig, 'contracts/GraphToken/init/initialSupply') - expect(value).eq(expected) - }) -}) diff --git a/packages/contracts/test/e2e/deployment/init/l2/graphToken.test.ts b/packages/contracts/test/e2e/deployment/init/l2/graphToken.test.ts deleted file mode 100644 index c7978ac81..000000000 --- a/packages/contracts/test/e2e/deployment/init/l2/graphToken.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from 'chai' -import hre from 'hardhat' -import { isGraphL1ChainId } from '@graphprotocol/sdk' - -describe('[L2] GraphToken initialization', () => { - const graph = hre.graph() - const { GraphToken } = graph.contracts - - before(function () { - if (isGraphL1ChainId(graph.chainId)) this.skip() - }) - - it('total supply should be zero', async function () { - const value = await GraphToken.totalSupply() - expect(value).eq(0) - }) -}) diff --git a/packages/contracts/test/e2e/upgrades/example/Instructions.md b/packages/contracts/test/e2e/upgrades/example/Instructions.md deleted file mode 100644 index f7a5d6123..000000000 --- a/packages/contracts/test/e2e/upgrades/example/Instructions.md +++ /dev/null @@ -1,7 +0,0 @@ -# Usage - -1) Upgrade the GNS contract, add a `uint256 public test;` storage variable -2) Run the upgrade script: - ``` - CHAIN_ID=1 FORK_URL= CONTRACT_NAME=GNS UPGRADE_NAME=example yarn test:upgrade - ``` \ No newline at end of file diff --git a/packages/contracts/test/e2e/upgrades/example/post-upgrade.test.ts b/packages/contracts/test/e2e/upgrades/example/post-upgrade.test.ts deleted file mode 100644 index 0284c5c60..000000000 --- a/packages/contracts/test/e2e/upgrades/example/post-upgrade.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import hre from 'hardhat' - -chai.use(chaiAsPromised) - -describe('GNS contract', () => { - it(`'test' storage variable should exist`, async function () { - const graph = hre.graph() - const { GNS } = graph.contracts - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore (we know this property doesn't exist) - await expect(GNS.test()).to.eventually.be.fulfilled - }) -}) diff --git a/packages/contracts/test/e2e/upgrades/example/post-upgrade.ts b/packages/contracts/test/e2e/upgrades/example/post-upgrade.ts deleted file mode 100644 index ecd2ca395..000000000 --- a/packages/contracts/test/e2e/upgrades/example/post-upgrade.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -/* eslint-disable @typescript-eslint/require-await */ -// REMOVE the above lines - -import hre from 'hardhat' -import { getGREOptsFromArgv } from '@graphprotocol/sdk/gre' - -async function main() { - const graphOpts = getGREOptsFromArgv() - const graph = hre.graph(graphOpts) - console.log('Hello from the post-upgrade script!') -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exitCode = 1 - }) diff --git a/packages/contracts/test/e2e/upgrades/example/pre-upgrade.test.ts b/packages/contracts/test/e2e/upgrades/example/pre-upgrade.test.ts deleted file mode 100644 index 31e0799ae..000000000 --- a/packages/contracts/test/e2e/upgrades/example/pre-upgrade.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import hre from 'hardhat' - -chai.use(chaiAsPromised) - -describe('GNS contract', () => { - it(`'test' storage variable should not exist`, async function () { - const graph = hre.graph() - const { GNS } = graph.contracts - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore (we know this property doesn't exist) - await expect(GNS.test()).to.eventually.be.rejected - }) -}) diff --git a/packages/contracts/test/e2e/upgrades/example/pre-upgrade.ts b/packages/contracts/test/e2e/upgrades/example/pre-upgrade.ts deleted file mode 100644 index affbfc34d..000000000 --- a/packages/contracts/test/e2e/upgrades/example/pre-upgrade.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -/* eslint-disable @typescript-eslint/require-await */ -// REMOVE the above lines - -import hre from 'hardhat' -import { getGREOptsFromArgv } from '@graphprotocol/sdk/gre' - -async function main() { - const graphOpts = getGREOptsFromArgv() - const graph = hre.graph(graphOpts) - console.log('Hello from the pre-upgrade script!') -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exitCode = 1 - }) diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/Instructions.md b/packages/contracts/test/e2e/upgrades/exponential-rebates/Instructions.md deleted file mode 100644 index e3a8323f8..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/Instructions.md +++ /dev/null @@ -1,12 +0,0 @@ -# Usage - -Run with: - -``` -CHAIN_ID=1 \ -FORK_URL=https://mainnet.infura.io/v3/ \ -FORK_BLOCK_NUMBER=17324022 \ -CONTRACT_NAME=L1Staking \ -UPGRADE_NAME=exponential-rebates \ -yarn test:upgrade -``` diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/abis/staking.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/abis/staking.ts deleted file mode 100644 index 2d3adeadb..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/abis/staking.ts +++ /dev/null @@ -1,63 +0,0 @@ -export default [ - { - inputs: [], - name: 'channelDisputeEpochs', - outputs: [{ internalType: 'uint32', name: '', type: 'uint32' }], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }], - name: 'rebates', - outputs: [ - { internalType: 'uint256', name: 'fees', type: 'uint256' }, - { internalType: 'uint256', name: 'effectiveAllocatedStake', type: 'uint256' }, - { internalType: 'uint256', name: 'claimedRewards', type: 'uint256' }, - { internalType: 'uint32', name: 'unclaimedAllocationsCount', type: 'uint32' }, - { internalType: 'uint32', name: 'alphaNumerator', type: 'uint32' }, - { internalType: 'uint32', name: 'alphaDenominator', type: 'uint32' }, - ], - stateMutability: 'view', - type: 'function', - }, - { - inputs: [ - { internalType: 'address', name: '_allocationID', type: 'address' }, - { internalType: 'bool', name: '_restake', type: 'bool' }, - ], - name: 'claim', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - inputs: [ - { internalType: 'address', name: '_allocationID', type: 'address' }, - { internalType: 'bool', name: '_restake', type: 'bool' }, - ], - name: 'claimo', - outputs: [], - stateMutability: 'nonpayable', - type: 'function', - }, - { - anonymous: false, - inputs: [ - { 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: 'forEpoch', type: 'uint256' }, - { indexed: false, internalType: 'uint256', name: 'tokens', type: 'uint256' }, - { - indexed: false, - internalType: 'uint256', - name: 'unclaimedAllocationsCount', - type: 'uint256', - }, - { indexed: false, internalType: 'uint256', name: 'delegationFees', type: 'uint256' }, - ], - name: 'RebateClaimed', - type: 'event', - }, -] diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/allocations.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/allocations.ts deleted file mode 100644 index aa20767d6..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/allocations.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Valid allocation states for -// - chain: Ethereum Mainnet -// - block number: 17324022 -// Allocation ids obtained from network subgraph - -import { AllocationState } from '@graphprotocol/sdk' - -export default [ - { id: '0x00b7a526e1e42ba1f14e69f487aad31350164a9e', state: AllocationState.Null }, - { id: '0x00b7a526e1e42ba1f14e69f487aad31350164a9f', state: AllocationState.Null }, - { id: '0x00b7a526e1e42ba1f14e69f487aad31350164a90', state: AllocationState.Null }, - { id: '0x00b7a526e1e42ba1f14e69f487aad31350164a9d', state: AllocationState.Active }, - { id: '0x02a5e2312af00aa85a24cf4c43a8c0a6fd9a6c2d', state: AllocationState.Active }, - { id: '0x0a272f72c14a226525fb4e2114f8a0052dc7dd38', state: AllocationState.Active }, - { id: '0x016ad691b2572ed3192e366584d12e94699e12b2', state: AllocationState.Closed }, - { id: '0x060df24858f3aa6d445645b73d0d2eeb117ae8a3', state: AllocationState.Closed }, - { id: '0x08ee64a4505e9cd77f0cae15c56e795dca7384e3', state: AllocationState.Closed }, - { id: '0x03f9e610fea2f8eab7321038997a50fe4ecc6aa5', state: AllocationState.Finalized }, - { id: '0x0989e792c6ca9eb0a0f2f63d92e407cdc1e64c29', state: AllocationState.Finalized }, - { id: '0x0d62657d6b75f462b28c000f6f6e41d56cc60069', state: AllocationState.Finalized }, - { id: '0x0da397c2887632e7250a5f1a8a7ed56e437780f5', state: AllocationState.Claimed }, - { id: '0x0d819c0e05782f41a4ab22fe9b5d439235093706', state: AllocationState.Claimed }, - { id: '0x0afef3ebeb9f85ce60c89ecaa7d98e41335ce5a4', state: AllocationState.Claimed }, -] diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/indexers.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/indexers.ts deleted file mode 100644 index 848b54628..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/fixtures/indexers.ts +++ /dev/null @@ -1,66 +0,0 @@ -// Valid for -// - chain: Ethereum Mainnet -// - block number: 17324022 -// Query to obtain data: -// allocations ( -// block: { number: 17324022 }, -// where: { -// indexer_: { id: "0x87eba079059b75504c734820d6cf828476754b83" }, -// status: Active -// }, -// first:10 -// ){ -// id -// status -// } - -export default [ - { - signer: null, - address: '0x87Eba079059B75504c734820d6cf828476754B83', - allocationsBatch1: [ - { - id: '0x0074115940dee3ecb0c1d524c94b169cc5ea28ac', - status: 'Active', - }, - { - id: '0x0419959df8ecfaeb98f273ad7e037bea2dac58b8', - status: 'Active', - }, - { - id: '0x04d40e25064297f1548ffbca867edbc26f4e85bb', - status: 'Active', - }, - { - id: '0x0607ae1824a834c44004eeee58f5513911fedc18', - status: 'Active', - }, - { - id: '0x08abad5b5fbc5436e043d680b6721fda5c3ea370', - status: 'Active', - }, - ], - allocationsBatch2: [ - { - id: '0x10ffbcdf3f294c029621b85dca22651f819530e2', - status: 'Active', - }, - { - id: '0x160c431e8c94e06164f44ed9deaeb3ff9972d4ec', - status: 'Active', - }, - { - id: '0x23df5d592c149eb62c7f4caa22642d3e353009a3', - status: 'Active', - }, - { - id: '0x2ddef43b8328a9e6e5c6e8ec4cea01d6aca514ec', - status: 'Active', - }, - { - id: '0x30310400346f6384040afdc8d57a78b67907efb6', - status: 'Active', - }, - ], - }, -] diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.test.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.test.ts deleted file mode 100644 index f212343df..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import hre from 'hardhat' -import { Contract, ethers } from 'ethers' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { AllocationState, helpers, randomHexBytes } from '@graphprotocol/sdk' - -import removedABI from './abis/staking' -import allocations from './fixtures/allocations' -import indexers from './fixtures/indexers' - -chai.use(chaiAsPromised) - -describe('[AFTER UPGRADE] Exponential rebates upgrade', () => { - const graph = hre.graph() - const { Staking, EpochManager } = graph.contracts - - const deployedStaking = new Contract( - Staking.address, - new ethers.utils.Interface([...Staking.interface.format(), ...removedABI]), - graph.provider, - ) - - describe('> Storage variables', () => { - it(`channelDisputeEpochs should not exist`, async function () { - await expect(deployedStaking.channelDisputeEpochs()).to.eventually.be.rejected - }) - it(`rebates should not exist`, async function () { - await expect(deployedStaking.rebates(123)).to.eventually.be.rejected - }) - }) - - describe('> Allocation state transitions', () => { - it('Null allocations should remain Null', async function () { - for (const allocation of allocations.filter(a => a.state === AllocationState.Null)) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - AllocationState.Null, - ) - } - }) - - it('Active allocations should remain Active', async function () { - for (const allocation of allocations.filter(a => a.state === AllocationState.Active)) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - AllocationState.Active, - ) - } - }) - - it('Closed allocations should remain Closed', async function () { - for (const allocation of allocations.filter(a => a.state === AllocationState.Closed)) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - AllocationState.Closed, - ) - } - }) - - it('Finalized allocations should transition to Closed', async function () { - for (const allocation of allocations.filter(a => a.state === AllocationState.Finalized)) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - AllocationState.Closed, - ) - } - }) - - it('Claimed allocations should transition to Closed', async function () { - for (const allocation of allocations.filter(a => a.state === AllocationState.Claimed)) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - AllocationState.Closed, - ) - } - }) - }) - - describe('> Indexer actions', () => { - before(async function () { - // Impersonate indexers - for (const indexer of indexers) { - await helpers.impersonateAccount(indexer.address) - await helpers.setBalance(indexer.address, 100) - indexer.signer = await SignerWithAddress.create(graph.provider.getSigner(indexer.address)) - } - }) - - it('should be able to collect but not claim rebates', async function () { - for (const indexer of indexers) { - for (const allocation of indexer.allocationsBatch2) { - // Close allocation first - await helpers.mineEpoch(EpochManager) - await Staking.connect(indexer.signer).closeAllocation(allocation.id, randomHexBytes()) - - // Collect query fees - const assetHolder = await graph.getDeployer() - await expect( - Staking.connect(assetHolder).collect(ethers.utils.parseEther('1000'), allocation.id), - ).to.eventually.be.fulfilled - - // Claim rebate - await helpers.mineEpoch(EpochManager, 7) - const tx = deployedStaking.connect(indexer.signer).claim(allocation.id, false) - await expect(tx).to.eventually.be.rejected - } - } - }) - }) -}) diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.ts deleted file mode 100644 index f69850670..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/post-upgrade.ts +++ /dev/null @@ -1,26 +0,0 @@ -import hre from 'hardhat' -import { getGREOptsFromArgv } from '@graphprotocol/sdk/gre' - -async function main() { - const graphOpts = getGREOptsFromArgv() - const graph = hre.graph(graphOpts) - console.log('Hello from the post-upgrade script!') - - // TODO: remove this hack - // mainnet does not have staking extension as of now - // We set it to a random contract, otherwise it uses 0x00 - // which does not revert when called with calldata - const { governor } = await graph.getNamedAccounts() - await graph.contracts.Staking.connect(governor).setExtensionImpl( - '0xc944E90C64B2c07662A292be6244BDf05Cda44a7', - ) -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exitCode = 1 - }) diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.test.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.test.ts deleted file mode 100644 index 1b79b1781..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import { Contract, ethers } from 'ethers' -import hre from 'hardhat' - -import removedABI from './abis/staking' -import allocations from './fixtures/allocations' -import indexers from './fixtures/indexers' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { helpers, randomHexBytes } from '@graphprotocol/sdk' - -chai.use(chaiAsPromised) - -describe('[BEFORE UPGRADE] Exponential rebates upgrade', () => { - const graph = hre.graph() - const { Staking, EpochManager } = graph.contracts - - const deployedStaking = new Contract( - Staking.address, - new ethers.utils.Interface([...Staking.interface.format(), ...removedABI]), - graph.provider, - ) - - describe('> Storage variables', () => { - it(`channelDisputeEpochs should exist`, async function () { - await expect(deployedStaking.channelDisputeEpochs()).to.eventually.be.fulfilled - }) - it(`rebates should exist`, async function () { - await expect(deployedStaking.rebates(123)).to.eventually.be.fulfilled - }) - }) - - describe('> Allocation state transitions', () => { - it('should validate fixture data on forked chain', async function () { - for (const allocation of allocations) { - await expect(Staking.getAllocationState(allocation.id)).to.eventually.equal( - allocation.state, - ) - } - }) - }) - - describe('> Indexer actions', () => { - before(async function () { - // Impersonate indexers - for (const indexer of indexers) { - await helpers.impersonateAccount(indexer.address) - await helpers.setBalance(indexer.address, 100) - indexer.signer = await SignerWithAddress.create(graph.provider.getSigner(indexer.address)) - } - }) - - it('should be able to collect and claim rebates', async function () { - for (const indexer of indexers) { - for (const allocation of indexer.allocationsBatch1) { - // Close allocation first - await helpers.mineEpoch(EpochManager) - await Staking.connect(indexer.signer).closeAllocation(allocation.id, randomHexBytes()) - - // Collect query fees - const assetHolder = await graph.getDeployer() - await expect( - Staking.connect(assetHolder).collect(ethers.utils.parseEther('1000'), allocation.id), - ).to.eventually.be.fulfilled - - // Claim rebate - await helpers.mineEpoch(EpochManager, 7) - const tx = deployedStaking.connect(indexer.signer).claim(allocation.id, false) - await expect(tx).to.eventually.be.fulfilled - await expect(tx).to.emit(deployedStaking, 'RebateClaimed') - } - } - }) - }) -}) diff --git a/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.ts b/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.ts deleted file mode 100644 index e4bed87b1..000000000 --- a/packages/contracts/test/e2e/upgrades/exponential-rebates/pre-upgrade.ts +++ /dev/null @@ -1,32 +0,0 @@ -import hre, { ethers } from 'hardhat' -import { getGREOptsFromArgv } from '@graphprotocol/sdk/gre' - -async function main() { - const graphOpts = getGREOptsFromArgv() - const graph = hre.graph(graphOpts) - const { GraphToken, Staking } = graph.contracts - - console.log('Hello from the pre-upgrade script!') - - // Make the deployer an asset holder - const deployer = await graph.getDeployer() - const { governor } = await graph.getNamedAccounts() - // @ts-expect-error asset holder existed back then - await Staking.connect(governor).setAssetHolder(deployer.address, true) - - // Get some funds on the deployer - await GraphToken.connect(governor).transfer(deployer.address, ethers.utils.parseEther('100000')) - await graph.provider.send('hardhat_setBalance', [deployer.address, '0x56BC75E2D63100000']) // 100 Eth - - // Approve Staking contract to pull GRT from new asset holder - await GraphToken.connect(deployer).approve(Staking.address, ethers.utils.parseEther('100000')) -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exitCode = 1 - }) diff --git a/packages/contracts/test/unit/disputes/configuration.test.ts b/packages/contracts/test/unit/disputes/configuration.test.ts index baf426815..eeebb0731 100644 --- a/packages/contracts/test/unit/disputes/configuration.test.ts +++ b/packages/contracts/test/unit/disputes/configuration.test.ts @@ -30,7 +30,7 @@ describe('DisputeManager:Config', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - disputeManager = contracts.DisputeManager + disputeManager = contracts.DisputeManager as DisputeManager }) beforeEach(async function () { diff --git a/packages/contracts/test/unit/disputes/poi.test.ts b/packages/contracts/test/unit/disputes/poi.test.ts index ea644c522..aa5c888c1 100644 --- a/packages/contracts/test/unit/disputes/poi.test.ts +++ b/packages/contracts/test/unit/disputes/poi.test.ts @@ -99,8 +99,8 @@ describe('DisputeManager:POI', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - disputeManager = contracts.DisputeManager - epochManager = contracts.EpochManager + disputeManager = contracts.DisputeManager as DisputeManager + epochManager = contracts.EpochManager as EpochManager grt = contracts.GraphToken as GraphToken staking = contracts.Staking as IStaking diff --git a/packages/contracts/test/unit/disputes/query.test.ts b/packages/contracts/test/unit/disputes/query.test.ts index 38b8c04a2..6bf9fe0b8 100644 --- a/packages/contracts/test/unit/disputes/query.test.ts +++ b/packages/contracts/test/unit/disputes/query.test.ts @@ -134,8 +134,8 @@ describe('DisputeManager:Query', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - disputeManager = contracts.DisputeManager - epochManager = contracts.EpochManager + disputeManager = contracts.DisputeManager as DisputeManager + epochManager = contracts.EpochManager as EpochManager grt = contracts.GraphToken as GraphToken staking = contracts.Staking as IStaking diff --git a/packages/contracts/test/unit/gateway/bridgeEscrow.test.ts b/packages/contracts/test/unit/gateway/bridgeEscrow.test.ts index 34fa860fd..5e8954659 100644 --- a/packages/contracts/test/unit/gateway/bridgeEscrow.test.ts +++ b/packages/contracts/test/unit/gateway/bridgeEscrow.test.ts @@ -31,7 +31,7 @@ describe('BridgeEscrow', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) grt = contracts.GraphToken as GraphToken - bridgeEscrow = contracts.BridgeEscrow + bridgeEscrow = contracts.BridgeEscrow as BridgeEscrow // Give some funds to the Escrow await grt.connect(governor).mint(bridgeEscrow.address, nTokens) diff --git a/packages/contracts/test/unit/gateway/l1GraphTokenGateway.test.ts b/packages/contracts/test/unit/gateway/l1GraphTokenGateway.test.ts index 872ff77fe..a811c2966 100644 --- a/packages/contracts/test/unit/gateway/l1GraphTokenGateway.test.ts +++ b/packages/contracts/test/unit/gateway/l1GraphTokenGateway.test.ts @@ -68,18 +68,19 @@ describe('L1GraphTokenGateway', () => { // Deploy L1 fixtureContracts = await fixture.load(governor) grt = fixtureContracts.GraphToken as GraphToken - l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway - bridgeEscrow = fixtureContracts.BridgeEscrow + l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway as L1GraphTokenGateway + bridgeEscrow = fixtureContracts.BridgeEscrow as BridgeEscrow // Deploy L1 arbitrum bridge + // @ts-expect-error sdk deprecation ;({ bridgeMock, inboxMock, outboxMock, routerMock } = await fixture.loadL1ArbitrumBridge( governor, )) // Deploy L2 mock l2MockContracts = await fixture.loadMock(true) - l2GRTMock = l2MockContracts.L2GraphToken - l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway + l2GRTMock = l2MockContracts.L2GraphToken as L2GraphToken + l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway as L2GraphTokenGateway // Give some funds to the token sender/router mock await grt.connect(governor).mint(tokenSender.address, senderTokens) diff --git a/packages/contracts/test/unit/gns.test.ts b/packages/contracts/test/unit/gns.test.ts index 028d6b729..3a8e9dbca 100644 --- a/packages/contracts/test/unit/gns.test.ts +++ b/packages/contracts/test/unit/gns.test.ts @@ -230,17 +230,17 @@ describe('L1GNS', () => { grt = fixtureContracts.GraphToken as GraphToken curation = fixtureContracts.Curation as Curation gns = fixtureContracts.GNS as L1GNS - controller = fixtureContracts.Controller - l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway - subgraphNFT = fixtureContracts.SubgraphNFT + controller = fixtureContracts.Controller as Controller + l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway as L1GraphTokenGateway + subgraphNFT = fixtureContracts.SubgraphNFT as SubgraphNFT // Deploy L1 arbitrum bridge await fixture.loadL1ArbitrumBridge(governor) // Deploy L2 mock l2MockContracts = await fixture.loadMock(true) - l2GNSMock = l2MockContracts.L2GNS - l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway + l2GNSMock = l2MockContracts.L2GNS as L2GNS + l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway as L2GraphTokenGateway // Configure graph bridge await fixture.configureL1Bridge(governor, fixtureContracts, l2MockContracts) diff --git a/packages/contracts/test/unit/governance/controller.test.ts b/packages/contracts/test/unit/governance/controller.test.ts index 5b3074865..692b1013b 100644 --- a/packages/contracts/test/unit/governance/controller.test.ts +++ b/packages/contracts/test/unit/governance/controller.test.ts @@ -31,8 +31,8 @@ describe('Managed', () => { // is cleaner and easier for us to test fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - epochManager = contracts.EpochManager - controller = contracts.Controller + epochManager = contracts.EpochManager as EpochManager + controller = contracts.Controller as Controller }) beforeEach(async function () { diff --git a/packages/contracts/test/unit/governance/pausing.test.ts b/packages/contracts/test/unit/governance/pausing.test.ts index fbb9b3abc..a604f899b 100644 --- a/packages/contracts/test/unit/governance/pausing.test.ts +++ b/packages/contracts/test/unit/governance/pausing.test.ts @@ -36,7 +36,7 @@ describe('Pausing', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) staking = contracts.Staking as IStaking - controller = contracts.Controller + controller = contracts.Controller as Controller }) beforeEach(async function () { diff --git a/packages/contracts/test/unit/l2/l2Curation.test.ts b/packages/contracts/test/unit/l2/l2Curation.test.ts index 29ac28319..1e056f6a1 100644 --- a/packages/contracts/test/unit/l2/l2Curation.test.ts +++ b/packages/contracts/test/unit/l2/l2Curation.test.ts @@ -60,7 +60,7 @@ describe('L2Curation:Config', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor, true) - curation = contracts.L2Curation + curation = contracts.L2Curation as L2Curation }) beforeEach(async function () { @@ -364,7 +364,7 @@ describe('L2Curation', () => { contracts = await fixture.load(governor, true) curation = contracts.Curation as L2Curation grt = contracts.GraphToken as GraphToken - controller = contracts.Controller + controller = contracts.Controller as Controller gns = contracts.GNS as GNS gnsImpersonator = await helpers.impersonateAccount(gns.address) diff --git a/packages/contracts/test/unit/l2/l2GNS.test.ts b/packages/contracts/test/unit/l2/l2GNS.test.ts index 496a4fe76..317b50598 100644 --- a/packages/contracts/test/unit/l2/l2GNS.test.ts +++ b/packages/contracts/test/unit/l2/l2GNS.test.ts @@ -126,17 +126,17 @@ describe('L2GNS', () => { // Deploy L2 fixtureContracts = await fixture.load(governor, true) - l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway - gns = fixtureContracts.L2GNS + l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway as L2GraphTokenGateway + gns = fixtureContracts.L2GNS as L2GNS staking = fixtureContracts.L2Staking as unknown as IL2Staking - curation = fixtureContracts.L2Curation + curation = fixtureContracts.L2Curation as L2Curation grt = fixtureContracts.GraphToken as GraphToken // Deploy L1 mock l1MockContracts = await fixture.loadMock(false) l1GRTMock = l1MockContracts.GraphToken as GraphToken - l1GNSMock = l1MockContracts.L1GNS - l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway + l1GNSMock = l1MockContracts.L1GNS as L1GNS + l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway as L1GraphTokenGateway // Deploy L2 arbitrum bridge await fixture.loadL2ArbitrumBridge(governor) diff --git a/packages/contracts/test/unit/l2/l2GraphToken.test.ts b/packages/contracts/test/unit/l2/l2GraphToken.test.ts index 3b2fe2021..5ae4ef4d8 100644 --- a/packages/contracts/test/unit/l2/l2GraphToken.test.ts +++ b/packages/contracts/test/unit/l2/l2GraphToken.test.ts @@ -28,7 +28,7 @@ describe('L2GraphToken', () => { ;({ governor } = await graph.getNamedAccounts()) fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor, true) - grt = contracts.L2GraphToken + grt = contracts.L2GraphToken as L2GraphToken }) beforeEach(async function () { diff --git a/packages/contracts/test/unit/l2/l2GraphTokenGateway.test.ts b/packages/contracts/test/unit/l2/l2GraphTokenGateway.test.ts index 5718cf571..a80c5da26 100644 --- a/packages/contracts/test/unit/l2/l2GraphTokenGateway.test.ts +++ b/packages/contracts/test/unit/l2/l2GraphTokenGateway.test.ts @@ -57,8 +57,8 @@ describe('L2GraphTokenGateway', () => { // Deploy L2 fixtureContracts = await fixture.load(governor, true) grt = fixtureContracts.GraphToken as L2GraphToken - l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway - rewardsManager = fixtureContracts.RewardsManager + l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway as L2GraphTokenGateway + rewardsManager = fixtureContracts.RewardsManager as RewardsManager // Deploy L2 arbitrum bridge ;({ routerMock } = await fixture.loadL2ArbitrumBridge(governor)) @@ -66,7 +66,7 @@ describe('L2GraphTokenGateway', () => { // Deploy L1 mock l1MockContracts = await fixture.loadMock(false) l1GRTMock = l1MockContracts.GraphToken as GraphToken - l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway + l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway as L1GraphTokenGateway callhookReceiverMock = ( await deploy(DeployType.Deploy, governor, { diff --git a/packages/contracts/test/unit/l2/l2Staking.test.ts b/packages/contracts/test/unit/l2/l2Staking.test.ts index 9394a6116..7728c2f94 100644 --- a/packages/contracts/test/unit/l2/l2Staking.test.ts +++ b/packages/contracts/test/unit/l2/l2Staking.test.ts @@ -17,7 +17,7 @@ import { toGRT, } from '@graphprotocol/sdk' import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { L1GNS, L1GraphTokenGateway, L1Staking } from '../../../build/types' +import { EpochManager, L1GNS, L1GraphTokenGateway, L1Staking } from '../../../build/types' const { AddressZero } = ethers.constants @@ -88,14 +88,14 @@ describe('L2Staking', () => { fixtureContracts = await fixture.load(governor, true) grt = fixtureContracts.GraphToken as GraphToken staking = fixtureContracts.Staking as IL2Staking - l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway + l2GraphTokenGateway = fixtureContracts.L2GraphTokenGateway as L2GraphTokenGateway // Deploy L1 mock l1MockContracts = await fixture.loadMock(false) l1GRTMock = l1MockContracts.GraphToken as GraphToken - l1StakingMock = l1MockContracts.L1Staking - l1GNSMock = l1MockContracts.L1GNS - l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway + l1StakingMock = l1MockContracts.L1Staking as L1Staking + l1GNSMock = l1MockContracts.L1GNS as L1GNS + l1GRTGatewayMock = l1MockContracts.L1GraphTokenGateway as L1GraphTokenGateway // Deploy L2 arbitrum bridge await fixture.loadL2ArbitrumBridge(governor) @@ -297,8 +297,8 @@ describe('L2Staking', () => { await fixtureContracts.Curation.connect(me).mint(subgraphDeploymentID, tokens10k, 0) await allocate(tokens100k) - await helpers.mineEpoch(fixtureContracts.EpochManager) - await helpers.mineEpoch(fixtureContracts.EpochManager) + await helpers.mineEpoch(fixtureContracts.EpochManager as EpochManager) + await helpers.mineEpoch(fixtureContracts.EpochManager as EpochManager) await staking.connect(me).closeAllocation(allocationID, randomHexBytes(32)) // Now there are some rewards sent to delegation pool, so 1 weiGRT is less than 1 share @@ -341,7 +341,7 @@ describe('L2Staking', () => { await fixtureContracts.Curation.connect(me).mint(subgraphDeploymentID, tokens10k, 0) await allocate(tokens100k) - await helpers.mineEpoch(fixtureContracts.EpochManager, 2) + await helpers.mineEpoch(fixtureContracts.EpochManager as EpochManager, 2) await staking.connect(me).closeAllocation(allocationID, randomHexBytes(32)) // Now there are some rewards sent to delegation pool, so 1 weiGRT is less than 1 share diff --git a/packages/contracts/test/unit/payments/allocationExchange.test.ts b/packages/contracts/test/unit/payments/allocationExchange.test.ts index d5b0c69e7..500cb8c0a 100644 --- a/packages/contracts/test/unit/payments/allocationExchange.test.ts +++ b/packages/contracts/test/unit/payments/allocationExchange.test.ts @@ -66,10 +66,10 @@ describe('AllocationExchange', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - allocationExchange = contracts.AllocationExchange + allocationExchange = contracts.AllocationExchange as AllocationExchange grt = contracts.GraphToken as GraphToken staking = contracts.Staking as IStaking - epochManager = contracts.EpochManager + epochManager = contracts.EpochManager as EpochManager // Give some funds to the indexer and approve staking contract to use funds on indexer behalf const indexerTokens = toGRT('100000') diff --git a/packages/contracts/test/unit/rewards/rewards.test.ts b/packages/contracts/test/unit/rewards/rewards.test.ts index 50d598e6e..57458f2b1 100644 --- a/packages/contracts/test/unit/rewards/rewards.test.ts +++ b/packages/contracts/test/unit/rewards/rewards.test.ts @@ -10,6 +10,7 @@ import { EpochManager } from '../../../build/types/EpochManager' import { GraphToken } from '../../../build/types/GraphToken' import { RewardsManager } from '../../../build/types/RewardsManager' import { IStaking } from '../../../build/types/IStaking' +import { impersonateAccount, setBalance } from '@nomicfoundation/hardhat-network-helpers' import { deriveChannelKey, @@ -21,7 +22,6 @@ import { toGRT, } from '@graphprotocol/sdk' import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { impersonateAccount, setBalance } from '../../../../sdk/src/helpers' const MAX_PPM = 1000000 @@ -142,9 +142,9 @@ describe('Rewards', () => { contracts = await fixture.load(governor) grt = contracts.GraphToken as GraphToken curation = contracts.Curation as Curation - epochManager = contracts.EpochManager + epochManager = contracts.EpochManager as EpochManager staking = contracts.Staking as IStaking - rewardsManager = contracts.RewardsManager + rewardsManager = contracts.RewardsManager as RewardsManager // 200 GRT per block await rewardsManager.connect(governor).setIssuancePerBlock(ISSUANCE_PER_BLOCK) @@ -852,7 +852,8 @@ describe('Rewards', () => { await helpers.mineEpoch(epochManager, 10) // Impersonate staking contract - const impersonatedStaking = await impersonateAccount(staking.address) + await impersonateAccount(staking.address) + const impersonatedStaking = await hre.ethers.getSigner(staking.address) await setBalance(staking.address, toGRT('1000000')) // Distribute rewards diff --git a/packages/contracts/test/unit/serviceRegisty.test.ts b/packages/contracts/test/unit/serviceRegisty.test.ts index d84b4aa88..e268a369a 100644 --- a/packages/contracts/test/unit/serviceRegisty.test.ts +++ b/packages/contracts/test/unit/serviceRegisty.test.ts @@ -38,7 +38,7 @@ describe('ServiceRegistry', () => { ;({ governor } = await graph.getNamedAccounts()) fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - serviceRegistry = contracts.ServiceRegistry + serviceRegistry = contracts.ServiceRegistry as ServiceRegistry staking = contracts.Staking as IStaking }) diff --git a/packages/contracts/test/unit/staking/allocation.test.ts b/packages/contracts/test/unit/staking/allocation.test.ts index 10bdd22be..baed926c1 100644 --- a/packages/contracts/test/unit/staking/allocation.test.ts +++ b/packages/contracts/test/unit/staking/allocation.test.ts @@ -374,7 +374,7 @@ describe('Staking:Allocation', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) curation = contracts.Curation as Curation - epochManager = contracts.EpochManager + epochManager = contracts.EpochManager as EpochManager grt = contracts.GraphToken as GraphToken staking = contracts.Staking as IStaking rewardsManager = contracts.RewardsManager as IRewardsManager diff --git a/packages/contracts/test/unit/staking/configuration.test.ts b/packages/contracts/test/unit/staking/configuration.test.ts index 44f9d5bd0..9257ef4a7 100644 --- a/packages/contracts/test/unit/staking/configuration.test.ts +++ b/packages/contracts/test/unit/staking/configuration.test.ts @@ -34,7 +34,7 @@ describe('Staking:Config', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) staking = contracts.Staking as IStaking - proxyAdmin = contracts.GraphProxyAdmin + proxyAdmin = contracts.GraphProxyAdmin as GraphProxyAdmin }) beforeEach(async function () { diff --git a/packages/contracts/test/unit/staking/delegation.test.ts b/packages/contracts/test/unit/staking/delegation.test.ts index f866be9c6..15b174976 100644 --- a/packages/contracts/test/unit/staking/delegation.test.ts +++ b/packages/contracts/test/unit/staking/delegation.test.ts @@ -189,7 +189,7 @@ describe('Staking::Delegation', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) - epochManager = contracts.EpochManager + epochManager = contracts.EpochManager as EpochManager grt = contracts.GraphToken as GraphToken staking = contracts.Staking as IStaking diff --git a/packages/contracts/test/unit/staking/l2Transfer.test.ts b/packages/contracts/test/unit/staking/l2Transfer.test.ts index 31be6c044..271161226 100644 --- a/packages/contracts/test/unit/staking/l2Transfer.test.ts +++ b/packages/contracts/test/unit/staking/l2Transfer.test.ts @@ -88,7 +88,7 @@ describe('L1Staking:L2Transfer', () => { fixtureContracts = await fixture.load(governor) grt = fixtureContracts.GraphToken as GraphToken staking = fixtureContracts.L1Staking as unknown as IL1Staking - l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway + l1GraphTokenGateway = fixtureContracts.L1GraphTokenGateway as L1GraphTokenGateway controller = fixtureContracts.Controller as IController // Deploy L1 arbitrum bridge @@ -96,8 +96,8 @@ describe('L1Staking:L2Transfer', () => { // Deploy L2 mock l2MockContracts = await fixture.loadMock(true) - l2StakingMock = l2MockContracts.L2Staking - l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway + l2StakingMock = l2MockContracts.L2Staking as L2Staking + l2GRTGatewayMock = l2MockContracts.L2GraphTokenGateway as L2GraphTokenGateway // Configure graph bridge await fixture.configureL1Bridge(governor, fixtureContracts, l2MockContracts) diff --git a/packages/contracts/test/unit/upgrade/admin.test.ts b/packages/contracts/test/unit/upgrade/admin.test.ts index f18cfa0fa..1cd9720ba 100644 --- a/packages/contracts/test/unit/upgrade/admin.test.ts +++ b/packages/contracts/test/unit/upgrade/admin.test.ts @@ -34,7 +34,7 @@ describe('Upgrades', () => { fixture = new NetworkFixture(graph.provider) contracts = await fixture.load(governor) staking = contracts.Staking as IStaking - proxyAdmin = contracts.GraphProxyAdmin + proxyAdmin = contracts.GraphProxyAdmin as GraphProxyAdmin curation = contracts.Curation as Curation stakingProxy = loadContractAt('GraphProxy', staking.address, undefined, governor) as GraphProxy diff --git a/packages/data-edge/README.md b/packages/data-edge/README.md index 766a639c1..3f344dba3 100644 --- a/packages/data-edge/README.md +++ b/packages/data-edge/README.md @@ -11,7 +11,7 @@ The DataEdge accepts any function call by using a fallback function that will no # Deploying Setup a `.env` file with the keys you want to use for deployments. You can use `.env.sample` as a guide. -Deploy a `DataEdge` contract by running `yarn deploy -- --network ` +Deploy a `DataEdge` contract by running `pnpm deploy -- --network ` # Copyright diff --git a/packages/data-edge/hardhat.config.ts b/packages/data-edge/hardhat.config.ts index 179b7b09d..8cd85bf0e 100644 --- a/packages/data-edge/hardhat.config.ts +++ b/packages/data-edge/hardhat.config.ts @@ -15,8 +15,8 @@ import 'hardhat-contract-sizer' import '@openzeppelin/hardhat-upgrades' import '@typechain/hardhat' -import * as tdly from "@tenderly/hardhat-tenderly"; -tdly.setup(); +import "@tenderly/hardhat-tenderly"; + // Tasks diff --git a/packages/data-edge/package.json b/packages/data-edge/package.json index 6c31c8107..03095477b 100644 --- a/packages/data-edge/package.json +++ b/packages/data-edge/package.json @@ -1,5 +1,6 @@ { "name": "@graphprotocol/data-edge", + "private": true, "version": "0.2.0", "description": "The Graph Data Edge", "main": "index.js", @@ -12,10 +13,10 @@ "test": "scripts/test", "test:gas": "RUN_EVM=true REPORT_GAS=true scripts/test", "test:coverage": "scripts/coverage", - "lint": "yarn lint:ts && yarn lint:sol", + "lint": "pnpm lint:ts && pnpm lint:sol", "lint:ts": "eslint '**/*.{js,ts}' --fix", "lint:sol": "prettier --write 'contracts/**/*.sol' && solhint --fix --noPrompt contracts/**/*.sol --config node_modules/solhint-graph-config/index.js", - "prettier": "yarn prettier:ts && yarn prettier:sol", + "prettier": "pnpm prettier:ts && pnpm prettier:sol", "prettier:ts": "prettier --write 'test/**/*.ts'", "prettier:sol": "prettier --write 'contracts/**/*.sol'", "security": "scripts/security", @@ -48,6 +49,7 @@ "@nomiclabs/hardhat-waffle": "^2.0.1", "@openzeppelin/contracts": "^4.5.0", "@openzeppelin/hardhat-upgrades": "^1.8.2", + "@tenderly/api-client": "^1.0.13", "@tenderly/hardhat-tenderly": "^1.0.13", "@typechain/ethers-v5": "^9.0.0", "@typechain/hardhat": "^4.0.0", diff --git a/packages/data-edge/scripts/build b/packages/data-edge/scripts/build index f4f1caf12..0cbb3b5a0 100755 --- a/packages/data-edge/scripts/build +++ b/packages/data-edge/scripts/build @@ -3,4 +3,4 @@ set -eo pipefail # Build -yarn compile \ No newline at end of file +pnpm compile \ No newline at end of file diff --git a/packages/data-edge/scripts/coverage b/packages/data-edge/scripts/coverage index d7e863f6d..d067ae3a4 100755 --- a/packages/data-edge/scripts/coverage +++ b/packages/data-edge/scripts/coverage @@ -2,5 +2,5 @@ set -eo pipefail -yarn compile +pnpm compile npx hardhat coverage $@ \ No newline at end of file diff --git a/packages/data-edge/scripts/prepublish b/packages/data-edge/scripts/prepublish index 1d7d68cb6..f82a85729 100755 --- a/packages/data-edge/scripts/prepublish +++ b/packages/data-edge/scripts/prepublish @@ -5,12 +5,12 @@ TYPECHAIN_DIR=dist/types set -eo pipefail # Build contracts -yarn clean -yarn build +pnpm clean +pnpm build # Refresh distribution folder rm -rf dist && mkdir -p dist/types/_src -cp -R build/abis/ dist/abis +cp -R build/contracts/contracts/ dist/abis cp -R build/types/ dist/types/_src ### Build Typechain bindings diff --git a/packages/data-edge/scripts/security b/packages/data-edge/scripts/security index 1388c4adc..b647eca1e 100755 --- a/packages/data-edge/scripts/security +++ b/packages/data-edge/scripts/security @@ -9,7 +9,7 @@ mkdir -p reports pip3 install --user slither-analyzer && \ -yarn build && \ +pnpm build && \ echo "Analyzing contracts..." slither . &> reports/analyzer-report.log && \ diff --git a/packages/data-edge/scripts/test b/packages/data-edge/scripts/test index 782449c99..45ccd4b41 100755 --- a/packages/data-edge/scripts/test +++ b/packages/data-edge/scripts/test @@ -27,7 +27,7 @@ evm_kill() { # Ensure we compiled sources -yarn build +pnpm build # Gas reporter needs to run in its own evm instance if [ "$RUN_EVM" = true ]; then diff --git a/packages/eslint-graph-config/README.md b/packages/eslint-graph-config/README.md index 794ad677d..61b3f2b73 100644 --- a/packages/eslint-graph-config/README.md +++ b/packages/eslint-graph-config/README.md @@ -5,13 +5,13 @@ This repository contains shared linting and formatting rules for TypeScript proj ## Installation ```bash -yarn add --dev eslint@^8.56.0 eslint-graph-config +pnpm add --dev eslint@^8.56.0 eslint-graph-config ``` For projects on this monorepo, you can use the following command to install the package: ```bash -yarn add --dev eslint@^8.56.0 eslint-graph-config@workspace:^x.y.z +pnpm add --dev eslint@^8.56.0 eslint-graph-config@workspace:^x.y.z ``` To enable the rules, you need to create an `eslint.config.js` file in the root of your project with the following content: diff --git a/packages/eslint-graph-config/index.ts b/packages/eslint-graph-config/index.ts index f0b045b12..9c814527b 100644 --- a/packages/eslint-graph-config/index.ts +++ b/packages/eslint-graph-config/index.ts @@ -33,6 +33,7 @@ export default [ }, rules: { 'prefer-const': 'warn', + '@typescript-eslint/no-redundant-type-constituents': 'warn', '@typescript-eslint/no-inferrable-types': 'warn', '@typescript-eslint/no-empty-function': 'warn', 'no-only-tests/no-only-tests': 'error', diff --git a/packages/eslint-graph-config/package.json b/packages/eslint-graph-config/package.json index 4ee7f5392..0cf1cd2f9 100644 --- a/packages/eslint-graph-config/package.json +++ b/packages/eslint-graph-config/package.json @@ -8,7 +8,7 @@ "scripts": { "clean": "rm -rf index.js", "lint": "eslint '**/*.{js,ts}' --ignore-pattern index.js --fix", - "build": "yarn clean && tsc" + "build": "pnpm clean && tsc" }, "dependencies": { "@stylistic/eslint-plugin": "^1.6.2", @@ -20,6 +20,7 @@ "devDependencies": { "@types/eslint__js": "^8.42.3", "@types/node": "^20.11.19", + "globals": "^16.0.0", "typescript": "^5.3.3" }, "peerDependencies": { diff --git a/packages/hardhat-graph-protocol/CHANGELOG.md b/packages/hardhat-graph-protocol/CHANGELOG.md new file mode 100644 index 000000000..a601cc9af --- /dev/null +++ b/packages/hardhat-graph-protocol/CHANGELOG.md @@ -0,0 +1,96 @@ +# hardhat-graph-protocol + +## 0.1.12 + +### Patch Changes + +- Fix package exports +- Updated dependencies + - @graphprotocol/toolshed@0.3.2 + +## 0.1.11 + +### Patch Changes + +- chore: fix package visibility +- Updated dependencies + - @graphprotocol/toolshed@0.3.1 + +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.3.0 + +## 0.1.9 + +### Patch Changes + +- @graphprotocol/toolshed@0.2.6 + +## 0.1.8 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.2.5 + +## 0.1.7 + +### Patch Changes + +- @graphprotocol/toolshed@0.2.4 + +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.2.3 + +## 0.1.5 + +### Patch Changes + +- @graphprotocol/toolshed@0.2.2 + +## 0.1.4 + +### Patch Changes + +- Pin ethers version +- Updated dependencies + - @graphprotocol/toolshed@0.2.1 + +## 0.1.3 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.2.0 + +## 0.1.2 + +### Patch Changes + +- Updated dependencies [585cf27] + - @graphprotocol/toolshed@0.1.2 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.1.1 + +## 0.1.0 + +### Minor Changes + +- Publish initial dev versions + +### Patch Changes + +- Updated dependencies + - @graphprotocol/toolshed@0.1.0 diff --git a/packages/hardhat-graph-protocol/README.md b/packages/hardhat-graph-protocol/README.md index 9f9d6eb71..591b6d8dc 100644 --- a/packages/hardhat-graph-protocol/README.md +++ b/packages/hardhat-graph-protocol/README.md @@ -1,32 +1,229 @@ # hardhat-graph-protocol +A Hardhat plugin for integrating with The Graph Protocol, providing easy access to deployment addresses and configuration for Graph Protocol contracts. -## Usage +### Features + +- **Protocol deployments** - Provides a simple interface to interact with protocol contracts without having to configure contract addresses or ABIs. +- **Transaction logging** - Transactions made via the plugin are automatically awaited and logged. +- **Accounts** - Provides account management methods for convenience, following protocol conventions for account derivation +- **Secure accounts** - Integrates seamlessly with [hardhat-secure-accounts](https://www.npmjs.com/package/hardhat-secure-accounts) -Install with yarn +## Installation ```bash -yarn add --dev hardhat-graph-protocol +# Install as a dev dependency +pnpm add --dev hardhat-graph-protocol +``` + +## Configuration + +Add the plugin to your `hardhat.config.ts`: -# From the monorepo -yarn add --dev hardhat-graph-protocol@workspace:^x.y.z +```ts +import "hardhat-graph-protocol"; ``` -And add it to your `hardhat.config.ts`: +### Using @graphprotocol/toolshed +To use the plugin you'll need to configure the target networks. We recommend using our base hardhat configuration which can be imported from `@graphprotocol/toolshed`: ```ts +import { hardhatBaseConfig, networksUserConfig } from '@graphprotocol/toolshed/hardhat' import "hardhat-graph-protocol"; -export default { +const config: HardhatUserConfig = { + ...networksUserConfig, + // rest of config +} + +export default config // or just "export default hardhatBaseConfig" +``` + +### Manual configuration +To manually configure target networks: + +**Hardhat: Network config** +```ts + networks: { + arbitrumOne: { + chainId: 42161, + url: `https://arbitrum-one.infura.io/v3/123456` + deployments: { + horizon: '/path/to/horizon/addresses.json, + subgraphService: 'path/to/subgraph-service/addresses.json' + } + }, + } +``` +**Hardhat: Graph config** + +Additionally, the plugin adds a new config field to hardhat's config file: `graph`. This can be used used to define defaults for all networks: + +```ts ... + networks: { + ... + }, graph: { deployments: { - horizon: require.resolve('@graphprotocol/horizon/addresses.json'), - subgraphService: require.resolve('@graphprotocol/subgraph-service/addresses.json'), - } + horizon: '/path/to/horizon/addresses.json, + subgraphService: 'path/to/subgraph-service/addresses.json' + }, + }, + ... +``` + +## Usage + +This plugin exposes functionality via a simple API: + +```ts +const graph = hre.graph() +``` + +The interface for the graph object can be found [here](src/types.ts), it's expanded version lookg like this: + +```ts +export type GraphRuntimeEnvironment = { + [deploymentName]: { + contracts: DeploymentContractsType, + addressBook: DeploymentAddressBookType, + actions: DeplyomentActionsType + }, + provider: HardhatEthersProvider + chainId: number + accounts: { + getAccounts: () => Promise + getDeployer: (accountIndex?: number) => Promise + getGovernor: (accountIndex?: number) => Promise + getArbitrator: (accountIndex?: number) => Promise + getPauseGuardian: (accountIndex?: number) => Promise + getSubgraphAvailabilityOracle: (accountIndex?: number) => Promise + getGateway: (accountIndex?: number) => Promise + getTestAccounts: () => Promise + } +} +``` + +### Deployments + +The plugin provides one object for each configured deployment, this object allows easily interacting with the associated deployment with a few additional features. The current deployments that are supported: `horizon` and `subgraphService`. + +Each deployment will be of the form: +```ts + [deploymentName]: { + contracts: DeploymentContractsType, + addressBook: DeploymentAddressBookType, + actions: DeplyomentActionsType }, +``` +Where: +- `contracts`: an object with all the contracts available in the deployment, already instanced, fully typed and ready to go. +- `addressBook`: an object allowing read and write access to the deployment's address book. +- `actions`: (optional) an object with helper functions to perform common actions in the associated deployment. + +**Transaction logging** + +Any transactions made using the `contracts` object will be automatically logged both to the console and to a file: +- `file`, in the project's root directory: `tx-YYYY-MM-DD.log` +- `console`, not shown by default. Run with `DEBUG=toolshed:tx` to enable them. + +Note that this does not apply to getter functions (`view` or `pure`) as those are not state modifying calls. +An example log output: +``` +[2025-04-10T20:32:37.182Z] > Sending transaction: HorizonStaking.addToProvision +[2025-04-10T20:32:37.182Z] = Sender: 0xACa94ef8bD5ffEE41947b4585a84BdA5a3d3DA6E +[2025-04-10T20:32:37.182Z] = Contract: 0x865365C425f3A593Ffe698D9c4E6707D14d51e08 +[2025-04-10T20:32:37.182Z] = Params: [ 0xACa94ef8bD5ffEE41947b4585a84BdA5a3d3DA6E, 0x1afb3ce06A1b3Cfb065DA4821c6Fa33b8CfC3485, 100000000000000000000 ] +[2025-04-10T20:32:37.182Z] = TxHash: 0x0e76c384a80f9f0402eb74de40c0456ef808d7afb4de68d451f5ed95b4be5c8a +[2025-04-10T20:32:37.183Z] ✔ Transaction succeeded! +[2025-04-10T20:32:40.936Z] > Sending transaction: HorizonStaking.thaw +[2025-04-10T20:32:40.936Z] = Sender: 0xACa94ef8bD5ffEE41947b4585a84BdA5a3d3DA6E +[2025-04-10T20:32:40.936Z] = Contract: 0x865365C425f3A593Ffe698D9c4E6707D14d51e08 +[2025-04-10T20:32:40.936Z] = Params: [ 0xACa94ef8bD5ffEE41947b4585a84BdA5a3d3DA6E, 0x1afb3ce06A1b3Cfb065DA4821c6Fa33b8CfC3485, 100000000000000000000 ] +[2025-04-10T20:32:40.936Z] = TxHash: 0x5422a1e975688952e13a455498c4f652a090d619bec414662775fc9d8cbd0af6 +[2025-04-10T20:32:40.946Z] ✔ Transaction succeeded! +``` + +**Transaction auto-awaiting** + +Any transactions made using the `contracts` object will be automatically awaited: + +```ts +const graph = hre.graph() + +// The transaction is automatically awaited, no need to await tx.wait() it +const tx = await graph.horizon.contracts.GraphToken.approve('0xDEADBEEF', 100) + +// But you can still do it if you need more confirmations for example +await tx.wait(10) +``` + +**Examples** +```js +const graph = hre.graph() +const { GraphPayments, HorizonStaking, GraphToken } = graph.horizon.contracts +const { provision } = graph.horizon.actions + +// Print GraphPayment's protocol cut +await GraphPayments.PROTOCOL_PAYMENT_CUT() +10000n + +// Provision some GRT to a data service +await GraphToken.connect(signer).approve(HorizonStaking.target, 100_000_000) +await HorizonStaking.connect(signer).stake(100_000_000) +await HorizonStaking.connect(signer).provision(signer.address, dataService.address, 100_000_000, 10_000, 42_690) + +// Do the same but using actions - in this case the `provision` helper also approves and stakes +await provision(signer, [signer.address, dataService.address, 100_000_000, 10_000, 42_690]) + +// Read the address book +const entry = graph.horizon.addressBook.getEntry('HorizonStaking') +console.log(entry.address) // HorizonStaking proxy address +console.log(entry.implementation) // HorizonStaking implementation address +``` + +### Accounts + +The plugin provides helper functions to derive signers from the configured accounts in hardhat config: +```ts + hardhat: { + chainId: 31337, + accounts: { + mnemonic: 'myth like bonus scare over problem client lizard pioneer submit female collect', + }, ... -}; + }, ``` -_Note_: When using the plugin from within this monorepo TypeScript fails to properly apply the type extension typings. This is a known issue and can be worked around by adding a `types/hardhat-graph-protocol.d.ts` file with the same content as the `type-extensions.ts` file in this repository. \ No newline at end of file +| Function | Description | Default account derivation index | +|----------|-------------|-------------| +| `getAccounts()` | Returns all the accounts listed below | - | +| `getDeployer()` | Returns the deployer signer | 0 | +| `getGovernor()` | Returns the governor signer | 1 | +| `getArbitrator()` | Returns the arbitrator signer | 2 | +| `getPauseGuardian()` | Returns the pause guardian signer | 3 | +| `getSubgraphAvailabilityOracle()` | Returns a service provider signer | 4 | +| `getGateway()` | Returns the gateway signer | 5 | +| `getTestAccounts()` | Returns the test signers | 6-20 | + +Note that these are just helper functions to enforce a convention on which index to use for each account. These might not match what is configured in the target protocol deployment. + +For any of the accounts listed above these are equivalents: + +```ts +const graph = hre.graph() + +// These two should match +const governor = await graph.accounts.getGovernor() // By default governor uses derivation index 1 +const governorFromEthers = (await hre.ethers.getSigners())[1] +``` + +## Development: TypeScript support + +When using the plugin from within this monorepo, TypeScript may fail to properly apply the type extension typings. To work around this issue: + +1. Create a file at `types/hardhat-graph-protocol.d.ts` +2. Copy the contents from the `type-extensions.ts` file in this repository into the new file + +This will ensure proper TypeScript type support for the plugin. diff --git a/packages/hardhat-graph-protocol/package.json b/packages/hardhat-graph-protocol/package.json index 7140122db..39c1317a9 100644 --- a/packages/hardhat-graph-protocol/package.json +++ b/packages/hardhat-graph-protocol/package.json @@ -1,6 +1,9 @@ { "name": "hardhat-graph-protocol", - "version": "0.0.1", + "version": "0.1.12", + "publishConfig": { + "access": "public" + }, "description": "A hardhat plugin that extends the runtime environment to inject additional functionality related to the usage of the Graph Protocol.", "keywords": [ "ethereum", @@ -14,17 +17,13 @@ "author": "Tomás Migone ", "license": "MIT", "main": "./dist/src/index.js", + "types": "./dist/src/index.d.ts", "exports": { ".": { "types": "./src/types.ts", - "default": "./src/index.ts" - }, - "./sdk": { - "types": "./src/sdk/index.ts", - "default": "./src/sdk/index.ts" + "default": "./dist/src/index.js" } }, - "types": "./dist/src/index.d.ts", "scripts": { "build": "tsc", "clean": "rm -rf dist", @@ -39,10 +38,8 @@ "README.md" ], "dependencies": { - "@graphprotocol/contracts": "workspace:^7.0.0", - "@graphprotocol/horizon": "workspace:^0.0.1", - "@graphprotocol/subgraph-service": "workspace:^0.0.1", - "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@graphprotocol/toolshed": "workspace:^", + "@nomicfoundation/hardhat-ethers": "3.0.8", "debug": "^4.3.7", "json5": "^2.2.3" }, @@ -54,7 +51,7 @@ "chai": "^4.0.0", "eslint": "^8.56.0", "eslint-graph-config": "workspace:^0.0.1", - "ethers": "^6.13.4", + "ethers": "6.13.7", "hardhat": "^2.22.16", "hardhat-secure-accounts": "^1.0.4", "mocha": "^10.8.2", @@ -62,7 +59,7 @@ "typescript": "^5.6.3" }, "peerDependencies": { - "ethers": "^6.13.4", + "ethers": "6.13.7", "hardhat": "^2.22.16" } -} +} \ No newline at end of file diff --git a/packages/hardhat-graph-protocol/src/config.ts b/packages/hardhat-graph-protocol/src/config.ts index 9f2e2af82..ad736d1e1 100644 --- a/packages/hardhat-graph-protocol/src/config.ts +++ b/packages/hardhat-graph-protocol/src/config.ts @@ -1,17 +1,18 @@ import fs from 'fs' +import path from 'path' -import { GraphPluginError } from './sdk/utils/error' -import { logDebug } from './logger' -import { normalizePath } from './sdk/utils/path' +import { GraphPluginError } from './error' +import { logDebug, logError } from './logger' -import type { GraphDeployment, GraphRuntimeEnvironmentOptions } from './types' +import type { GraphDeploymentName } from '@graphprotocol/toolshed/deployments' +import type { GraphRuntimeEnvironmentOptions } from './types' import type { HardhatRuntimeEnvironment } from 'hardhat/types' export function getAddressBookPath( - deployment: GraphDeployment, + deployment: GraphDeploymentName, hre: HardhatRuntimeEnvironment, opts: GraphRuntimeEnvironmentOptions, -): string { +): string | undefined { const optsPath = getPath(opts.deployments?.[deployment]) const networkPath = getPath(hre.network.config.deployments?.[deployment]) const globalPath = getPath(hre.config.graph?.deployments?.[deployment]) @@ -29,9 +30,22 @@ export function getAddressBookPath( const normalizedAddressBookPath = normalizePath(addressBookPath, hre.config.paths.graph) logDebug(`Address book path: ${normalizedAddressBookPath}`) + + if (!fs.existsSync(normalizedAddressBookPath)) { + logError(`Address book path does not exist: ${normalizedAddressBookPath}`) + return undefined + } + return normalizedAddressBookPath } +function normalizePath(_path: string, graphPath?: string): string { + if (!path.isAbsolute(_path) && graphPath !== undefined) { + _path = path.join(graphPath, _path) + } + return _path +} + function getPath(value: string | { addressBook: string } | undefined): string | undefined { diff --git a/packages/hardhat-graph-protocol/src/deployment-list.ts b/packages/hardhat-graph-protocol/src/deployment-list.ts deleted file mode 100644 index fb3e46fab..000000000 --- a/packages/hardhat-graph-protocol/src/deployment-list.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { GraphHorizonAddressBook, GraphHorizonContracts } from './sdk/deployments/horizon' -import type { SubgraphServiceAddressBook, SubgraphServiceContracts } from './sdk/deployments/subgraph-service' - -// List of supported Graph deployments -export const GraphDeploymentsList = [ - 'horizon', - 'subgraphService', -] as const - -export type GraphDeploymentRuntimeEnvironmentMap = { - horizon: { - contracts: GraphHorizonContracts - addressBook: GraphHorizonAddressBook - } - subgraphService: { - contracts: SubgraphServiceContracts - addressBook: SubgraphServiceAddressBook - } -} diff --git a/packages/hardhat-graph-protocol/src/sdk/utils/error.ts b/packages/hardhat-graph-protocol/src/error.ts similarity index 84% rename from packages/hardhat-graph-protocol/src/sdk/utils/error.ts rename to packages/hardhat-graph-protocol/src/error.ts index 09df0ac3d..1979c0ab2 100644 --- a/packages/hardhat-graph-protocol/src/sdk/utils/error.ts +++ b/packages/hardhat-graph-protocol/src/error.ts @@ -1,5 +1,5 @@ import { HardhatPluginError } from 'hardhat/plugins' -import { logError } from '../../logger' +import { logError } from './logger' export class GraphPluginError extends HardhatPluginError { constructor(message: string) { diff --git a/packages/hardhat-graph-protocol/src/gre.ts b/packages/hardhat-graph-protocol/src/gre.ts index 7f6e0566a..8e4c31283 100644 --- a/packages/hardhat-graph-protocol/src/gre.ts +++ b/packages/hardhat-graph-protocol/src/gre.ts @@ -1,15 +1,27 @@ +/* eslint-disable no-case-declarations */ import path from 'path' +import { + getAccounts, + getArbitrator, + getDeployer, + getGateway, + getGovernor, + getPauseGuardian, + getSubgraphAvailabilityOracle, + getTestAccounts, +} from '@graphprotocol/toolshed' +import { loadGraphHorizon, loadSubgraphService } from '@graphprotocol/toolshed/deployments' +import { logDebug, logError } from './logger' import { getAddressBookPath } from './config' +import { GraphPluginError } from './error' import { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' +import { isGraphDeployment } from './types' import { lazyFunction } from 'hardhat/plugins' -import { logDebug } from './logger' -import { GraphHorizonAddressBook } from './sdk/deployments/horizon' -import { SubgraphServiceAddressBook } from './sdk/deployments/subgraph-service' - -import { assertGraphRuntimeEnvironment, type GraphRuntimeEnvironmentOptions, isGraphDeployment } from './types' import type { HardhatConfig, HardhatRuntimeEnvironment, HardhatUserConfig } from 'hardhat/types' +import type { GraphDeployments } from '@graphprotocol/toolshed/deployments' +import type { GraphRuntimeEnvironmentOptions } from './types' export const greExtendConfig = (config: HardhatConfig, userConfig: Readonly) => { const userPath = userConfig.paths?.graph @@ -34,52 +46,69 @@ export const greExtendEnvironment = (hre: HardhatRuntimeEnvironment) => { logDebug(`Main network: ${hre.network.name}`) const chainId = hre.network.config.chainId if (chainId === undefined) { - throw new Error('Please define chainId in your Hardhat network configuration') + throw new GraphPluginError('Please define chainId in your Hardhat network configuration') } logDebug(`Chain Id: ${chainId}`) - const deployments = [ + const deployments = [...new Set([ ...Object.keys(opts.deployments ?? {}), ...Object.keys(hre.network.config.deployments ?? {}), ...Object.keys(hre.config.graph?.deployments ?? {}), - ].filter(v => isGraphDeployment(v)) + ].filter(v => isGraphDeployment(v)))] logDebug(`Detected deployments: ${deployments.join(', ')}`) // Build the Graph Runtime Environment (GRE) for each deployment const provider = new HardhatEthersProvider(hre.network.provider, hre.network.name) - const greDeployments: Record = {} + const greDeployments: GraphDeployments = {} as GraphDeployments + for (const deployment of deployments) { logDebug(`== Initializing deployment: ${deployment} ==`) + const addressBookPath = getAddressBookPath(deployment, hre, opts) - let addressBook + if (addressBookPath === undefined) { + logError(`Skipping deployment ${deployment} - Reason: address book path does not exist`) + continue + } - switch (deployment) { - case 'horizon': - addressBook = new GraphHorizonAddressBook(addressBookPath, chainId) - greDeployments.horizon = { - addressBook: addressBook, - contracts: addressBook.loadContracts(provider), - } - break - case 'subgraphService': - addressBook = new SubgraphServiceAddressBook(addressBookPath, chainId) - greDeployments.subgraphService = { - addressBook: addressBook, - contracts: addressBook.loadContracts(provider), - } - break - default: - break + try { + switch (deployment) { + case 'horizon': + greDeployments.horizon = loadGraphHorizon(addressBookPath, chainId, provider) + break + case 'subgraphService': + greDeployments.subgraphService = loadSubgraphService(addressBookPath, chainId, provider) + break + default: + logError(`Skipping deployment ${deployment} - Reason: unknown deployment`) + break + } + } catch (error) { + logError(`Skipping deployment ${deployment} - Reason: runtime error`) + logError(error) + continue } } - const gre = { + // Accounts + const grtTokenAddress = greDeployments?.horizon?.contracts?.GraphToken?.target + const accounts = { + getAccounts: async () => getAccounts(provider, grtTokenAddress), + getDeployer: async (accountIndex?: number) => getDeployer(provider, accountIndex, grtTokenAddress), + getGovernor: async (accountIndex?: number) => getGovernor(provider, accountIndex, grtTokenAddress), + getArbitrator: async (accountIndex?: number) => getArbitrator(provider, accountIndex, grtTokenAddress), + getPauseGuardian: async (accountIndex?: number) => getPauseGuardian(provider, accountIndex, grtTokenAddress), + getSubgraphAvailabilityOracle: async (accountIndex?: number) => getSubgraphAvailabilityOracle(provider, accountIndex, grtTokenAddress), + getGateway: async (accountIndex?: number) => getGateway(provider, accountIndex, grtTokenAddress), + getTestAccounts: async () => getTestAccounts(provider, grtTokenAddress), + } + + logDebug('GRE initialized successfully!') + + return { ...greDeployments, provider, chainId, + accounts: accounts, } - assertGraphRuntimeEnvironment(gre) - logDebug('GRE initialized successfully!') - return gre }) } diff --git a/packages/hardhat-graph-protocol/src/sdk/deployments/horizon/index.ts b/packages/hardhat-graph-protocol/src/sdk/deployments/horizon/index.ts deleted file mode 100644 index 1a451a161..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/deployments/horizon/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { GraphHorizonAddressBook } from './address-book' - -import type { GraphHorizonContractName, GraphHorizonContracts } from './contracts' - -export { GraphHorizonAddressBook } -export type { GraphHorizonContractName, GraphHorizonContracts } diff --git a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/address-book.ts b/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/address-book.ts deleted file mode 100644 index 3fca297a0..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/address-book.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { logDebug, logError } from '../../../logger' -import { Provider, Signer } from 'ethers' -import { SubgraphServiceArtifactsMap, SubgraphServiceContractNameList } from './contracts' -import { AddressBook } from '../../address-book' -import { assertObject } from '../../utils/assertion' - -import type { SubgraphServiceContractName, SubgraphServiceContracts } from './contracts' - -export class SubgraphServiceAddressBook extends AddressBook { - isContractName(name: unknown): name is SubgraphServiceContractName { - return ( - typeof name === 'string' - && SubgraphServiceContractNameList.includes(name as SubgraphServiceContractName) - ) - } - - loadContracts( - signerOrProvider?: Signer | Provider, - ): SubgraphServiceContracts { - logDebug('Loading Subgraph Service contracts...') - - const contracts = this._loadContracts( - SubgraphServiceArtifactsMap, - signerOrProvider, - ) - this._assertSubgraphServiceContracts(contracts) - - // Aliases - contracts.Curation = contracts.L2Curation - contracts.GNS = contracts.L2GNS - - return contracts - } - - _assertSubgraphServiceContracts( - contracts: unknown, - ): asserts contracts is SubgraphServiceContracts { - assertObject(contracts) - - // Assert that all SubgraphServiceContracts were loaded - for (const contractName of SubgraphServiceContractNameList) { - if (!contracts[contractName]) { - const errMessage = `Missing SubgraphService contract: ${contractName}` - logError(errMessage) - } - } - } -} diff --git a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/index.ts b/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/index.ts deleted file mode 100644 index 8f9d7bfa6..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { SubgraphServiceAddressBook } from './address-book' - -import type { SubgraphServiceContractName, SubgraphServiceContracts } from './contracts' - -export { SubgraphServiceAddressBook } -export type { SubgraphServiceContractName, SubgraphServiceContracts } diff --git a/packages/hardhat-graph-protocol/src/sdk/index.ts b/packages/hardhat-graph-protocol/src/sdk/index.ts deleted file mode 100644 index 4bdc82681..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { loadConfig, patchConfig, saveToAddressBook } from './ignition/ignition' -import { hardhatBaseConfig } from './hardhat.base.config' - -const IgnitionHelper = { saveToAddressBook, loadConfig, patchConfig } -export { hardhatBaseConfig, IgnitionHelper } diff --git a/packages/hardhat-graph-protocol/src/sdk/utils/abi.ts b/packages/hardhat-graph-protocol/src/sdk/utils/abi.ts deleted file mode 100644 index 97b28973c..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/utils/abi.ts +++ /dev/null @@ -1,8 +0,0 @@ -export function mergeABIs(abi1: any[], abi2: any[]) { - for (const item of abi2) { - if (abi1.find((v) => v.name === item.name) === undefined) { - abi1.push(item) - } - } - return abi1 -} \ No newline at end of file diff --git a/packages/hardhat-graph-protocol/src/sdk/utils/path.ts b/packages/hardhat-graph-protocol/src/sdk/utils/path.ts deleted file mode 100644 index 3fcf810d7..000000000 --- a/packages/hardhat-graph-protocol/src/sdk/utils/path.ts +++ /dev/null @@ -1,8 +0,0 @@ -import path from 'path' - -export function normalizePath(_path: string, graphPath?: string): string { - if (!path.isAbsolute(_path) && graphPath !== undefined) { - _path = path.join(graphPath, _path) - } - return _path -} diff --git a/packages/hardhat-graph-protocol/src/type-extensions.ts b/packages/hardhat-graph-protocol/src/type-extensions.ts index f42df8eaa..ef11ad994 100644 --- a/packages/hardhat-graph-protocol/src/type-extensions.ts +++ b/packages/hardhat-graph-protocol/src/type-extensions.ts @@ -1,7 +1,8 @@ // To extend one of Hardhat's types, you need to import the module where it has been defined, and redeclare it. import 'hardhat/types/config' import 'hardhat/types/runtime' -import type { GraphDeployments, GraphRuntimeEnvironment, GraphRuntimeEnvironmentOptions } from './types' + +import type { GraphDeploymentOptions, GraphRuntimeEnvironment, GraphRuntimeEnvironmentOptions } from './types' declare module 'hardhat/types/runtime' { interface HardhatRuntimeEnvironment { @@ -19,19 +20,19 @@ declare module 'hardhat/types/config' { } interface HardhatNetworkConfig { - deployments?: GraphDeployments + deployments?: GraphDeploymentOptions } interface HardhatNetworkUserConfig { - deployments?: GraphDeployments + deployments?: GraphDeploymentOptions } interface HttpNetworkConfig { - deployments?: GraphDeployments + deployments?: GraphDeploymentOptions } interface HttpNetworkUserConfig { - deployments?: GraphDeployments + deployments?: GraphDeploymentOptions } interface ProjectPathsConfig { diff --git a/packages/hardhat-graph-protocol/src/types.ts b/packages/hardhat-graph-protocol/src/types.ts index b15045849..d37e4f465 100644 --- a/packages/hardhat-graph-protocol/src/types.ts +++ b/packages/hardhat-graph-protocol/src/types.ts @@ -1,57 +1,32 @@ -import { type GraphDeploymentRuntimeEnvironmentMap, GraphDeploymentsList } from './deployment-list' -import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' - -export type GraphDeployment = (typeof GraphDeploymentsList)[number] +import { GraphDeploymentsList } from '@graphprotocol/toolshed/deployments' -export type GraphDeployments = { - [deployment in GraphDeployment]?: string | { - addressBook: string - } +import type { GraphDeploymentName, GraphDeployments } from '@graphprotocol/toolshed/deployments' +import type { GraphAccounts } from '@graphprotocol/toolshed' +import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +export type GraphDeploymentOptions = { + [deployment in GraphDeploymentName]?: string } export type GraphRuntimeEnvironmentOptions = { - deployments?: { - [deployment in GraphDeployment]?: string | { - addressBook: string - } - } + deployments?: GraphDeploymentOptions } -export type GraphRuntimeEnvironment = { - [deployment in keyof GraphDeploymentRuntimeEnvironmentMap]?: GraphDeploymentRuntimeEnvironmentMap[deployment] -} & { +export type GraphRuntimeEnvironment = GraphDeployments & { provider: HardhatEthersProvider chainId: number -} - -export function isGraphDeployment(deployment: unknown): deployment is GraphDeployment { - return ( - typeof deployment === 'string' - && GraphDeploymentsList.includes(deployment as GraphDeployment) - ) -} - -export function assertGraphRuntimeEnvironment( - obj: unknown, -): obj is GraphRuntimeEnvironment { - if (typeof obj !== 'object' || obj === null) return false - - const deployments = obj as Partial - - for (const deployment in deployments) { - const environment = deployments[deployment as keyof GraphDeploymentRuntimeEnvironmentMap] - if (!environment || typeof environment !== 'object') { - return false - } - } - - if (typeof (obj as GraphRuntimeEnvironment).provider !== 'object') { - return false - } - - if (typeof (obj as GraphRuntimeEnvironment).chainId !== 'function') { - return false + accounts: { + getAccounts: () => Promise + getDeployer: (accountIndex?: number) => Promise + getGovernor: (accountIndex?: number) => Promise + getArbitrator: (accountIndex?: number) => Promise + getPauseGuardian: (accountIndex?: number) => Promise + getSubgraphAvailabilityOracle: (accountIndex?: number) => Promise + getGateway: (accountIndex?: number) => Promise + getTestAccounts: () => Promise } +} - return true +export function isGraphDeployment(deployment: unknown): deployment is GraphDeploymentName { + return typeof deployment === 'string' && GraphDeploymentsList.includes(deployment as GraphDeploymentName) } diff --git a/packages/hardhat-graph-protocol/test/config.test.ts b/packages/hardhat-graph-protocol/test/config.test.ts index 3cd005c31..55121be14 100644 --- a/packages/hardhat-graph-protocol/test/config.test.ts +++ b/packages/hardhat-graph-protocol/test/config.test.ts @@ -22,12 +22,10 @@ describe('GRE init functions', function () { this.hre = loadHardhatContext('network-address-book', 'mainnet') const addressBook = getAddressBookPath('horizon', this.hre, { deployments: { - horizon: { - addressBook: 'addresses-opt.json', - }, + horizon: 'addresses-opt.json', }, }) - expect(path.basename(addressBook)).to.equal('addresses-opt.json') + expect(path.basename(addressBook!)).to.equal('addresses-opt.json') }) it('should use opts parameter if available - shortcut syntax', function () { @@ -37,14 +35,14 @@ describe('GRE init functions', function () { horizon: 'addresses-opt.json', }, }) - expect(path.basename(addressBook)).to.equal('addresses-opt.json') + expect(path.basename(addressBook!)).to.equal('addresses-opt.json') }) // Address book via network config should be used it('should use HH network config', function () { this.hre = loadHardhatContext('network-address-book', 'mainnet') const addressBook = getAddressBookPath('horizon', this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-network.json') + expect(path.basename(addressBook!)).to.equal('addresses-network.json') }) it('should use HH network config - shortcut syntax', function () { @@ -53,14 +51,14 @@ describe('GRE init functions', function () { this.hre.network.config.deployments.horizon = 'addresses-network-short.json' } const addressBook = getAddressBookPath('horizon', this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-network-short.json') + expect(path.basename(addressBook!)).to.equal('addresses-network-short.json') }) // Address book via global config should be used it('should use HH global config', function () { this.hre = loadHardhatContext('global-address-book', 'mainnet') const addressBook = getAddressBookPath('horizon', this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-global.json') + expect(path.basename(addressBook!)).to.equal('addresses-global.json') }) it('should use HH global config - shortcut syntax', function () { @@ -69,7 +67,7 @@ describe('GRE init functions', function () { this.hre.config.graph.deployments.horizon = 'addresses-global-short.json' } const addressBook = getAddressBookPath('horizon', this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-global-short.json') + expect(path.basename(addressBook!)).to.equal('addresses-global-short.json') }) }) }) diff --git a/packages/hardhat-graph-protocol/test/fixtures/global-address-book/hardhat.config.ts b/packages/hardhat-graph-protocol/test/fixtures/global-address-book/hardhat.config.ts index 1f7718d54..7008f9b7e 100644 --- a/packages/hardhat-graph-protocol/test/fixtures/global-address-book/hardhat.config.ts +++ b/packages/hardhat-graph-protocol/test/fixtures/global-address-book/hardhat.config.ts @@ -42,9 +42,7 @@ const config: HardhatUserConfig = { }, graph: { deployments: { - horizon: { - addressBook: 'addresses-global.json', - }, + horizon: 'addresses-global.json', }, }, } diff --git a/packages/hardhat-graph-protocol/test/fixtures/invalid-address-book/hardhat.config.ts b/packages/hardhat-graph-protocol/test/fixtures/invalid-address-book/hardhat.config.ts index e4569c04a..684594076 100644 --- a/packages/hardhat-graph-protocol/test/fixtures/invalid-address-book/hardhat.config.ts +++ b/packages/hardhat-graph-protocol/test/fixtures/invalid-address-book/hardhat.config.ts @@ -42,9 +42,7 @@ const config: HardhatUserConfig = { }, graph: { deployments: { - horizon: { - addressBook: 'addresses-invalid.json', - }, + horizon: 'addresses-invalid.json', }, }, } diff --git a/packages/hardhat-graph-protocol/test/fixtures/network-address-book/hardhat.config.ts b/packages/hardhat-graph-protocol/test/fixtures/network-address-book/hardhat.config.ts index c75c71e4e..b85036e2b 100644 --- a/packages/hardhat-graph-protocol/test/fixtures/network-address-book/hardhat.config.ts +++ b/packages/hardhat-graph-protocol/test/fixtures/network-address-book/hardhat.config.ts @@ -19,9 +19,7 @@ const config: HardhatUserConfig = { chainId: 1, url: `https://mainnet.infura.io/v3/123456`, deployments: { - horizon: { - addressBook: 'addresses-network.json', - }, + horizon: 'addresses-network.json', }, }, 'arbitrum-one': { @@ -47,9 +45,7 @@ const config: HardhatUserConfig = { }, graph: { deployments: { - horizon: { - addressBook: 'addresses-global.json', - }, + horizon: 'addresses-global.json', }, }, } diff --git a/packages/hardhat-graph-protocol/test/fixtures/no-path-config/hardhat.config.ts b/packages/hardhat-graph-protocol/test/fixtures/no-path-config/hardhat.config.ts index c9199325a..00595ec1b 100644 --- a/packages/hardhat-graph-protocol/test/fixtures/no-path-config/hardhat.config.ts +++ b/packages/hardhat-graph-protocol/test/fixtures/no-path-config/hardhat.config.ts @@ -39,9 +39,7 @@ const config: HardhatUserConfig = { }, graph: { deployments: { - horizon: { - addressBook: 'addresses-hre.json', - }, + horizon: 'addresses-hre.json', }, }, } diff --git a/packages/hardhat-graph-protocol/test/fixtures/path-config/hardhat.config.ts b/packages/hardhat-graph-protocol/test/fixtures/path-config/hardhat.config.ts index 0d689a80e..d7b36bb2f 100644 --- a/packages/hardhat-graph-protocol/test/fixtures/path-config/hardhat.config.ts +++ b/packages/hardhat-graph-protocol/test/fixtures/path-config/hardhat.config.ts @@ -49,9 +49,7 @@ const config: HardhatUserConfig = { }, graph: { deployments: { - horizon: { - addressBook: 'addresses-hre.json', - }, + horizon: 'addresses-hre.json', }, }, } diff --git a/packages/hardhat-graph-protocol/test/gre.test.ts b/packages/hardhat-graph-protocol/test/gre.test.ts index d1fbbd6cd..d70868ae7 100644 --- a/packages/hardhat-graph-protocol/test/gre.test.ts +++ b/packages/hardhat-graph-protocol/test/gre.test.ts @@ -2,7 +2,7 @@ import path from 'path' import { assert, expect } from 'chai' import { loadHardhatContext, useHardhatProject } from './helpers' -import { GraphHorizonAddressBook } from '../src/sdk/deployments/horizon' +import { GraphHorizonAddressBook } from '@graphprotocol/toolshed/deployments' describe('GRE usage', function () { describe('Project not using GRE', function () { diff --git a/packages/hardhat-graph-protocol/tsconfig.json b/packages/hardhat-graph-protocol/tsconfig.json index 41ba7e8bc..e5a013f47 100644 --- a/packages/hardhat-graph-protocol/tsconfig.json +++ b/packages/hardhat-graph-protocol/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "es2020", - "module": "commonjs", + "module": "node16", "declaration": true, "declarationMap": true, "sourceMap": true, diff --git a/packages/horizon/CHANGELOG.md b/packages/horizon/CHANGELOG.md new file mode 100644 index 000000000..642e982ac --- /dev/null +++ b/packages/horizon/CHANGELOG.md @@ -0,0 +1,43 @@ +# @graphprotocol/horizon + +## 0.3.2 + +### Patch Changes + +- chore: fix package visibility + +## 0.3.1 + +### Patch Changes + +- Use proper types for Curation contract, add epochLength to EpochManager import in Horizon. + +## 0.3.0 + +### Minor Changes + +- Publish types for contracts packages + +## 0.2.1 + +### Patch Changes + +- Pin ethers version + +## 0.2.0 + +### Minor Changes + +- Publish scratch testnet 2 address book + +## 0.1.1 + +### Patch Changes + +- Publish fork 1 deployment + +## 0.1.0 + +### Minor Changes + +- Publish initial dev versions diff --git a/packages/horizon/README.md b/packages/horizon/README.md index 0adc20818..7ec0a8536 100644 --- a/packages/horizon/README.md +++ b/packages/horizon/README.md @@ -12,8 +12,6 @@ The following environment variables might be required: | `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | | `ARBITRUM_SEPOLIA_RPC` | Arbitrum Sepolia RPC URL - defaults to `https://sepolia-rollup.arbitrum.io/rpc` | | `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | -| `LOCALHOST_CHAIN_ID` | Localhost chain ID - defaults to `31337` | -| `LOCALHOST_ACCOUNTS_MNEMONIC` | Localhost accounts mnemonic - no default value. Note that setting this will override any secure accounts configuration. | You can set them using Hardhat: @@ -24,8 +22,8 @@ npx hardhat vars set ## Build ```bash -yarn install -yarn build +pnpm install +pnpm build ``` ## Deployment @@ -49,4 +47,24 @@ npx hardhat deploy:migrate --network hardhat --step 3 # Optionally add --patch-c npx hardhat deploy:migrate --network hardhat --step 4 # Run with governor. Optionally add --patch-config ``` -Steps 2, 3 and 4 require patching the configuration file with addresses from previous steps. The files are located in the `ignition/configs` directory and need to be manually edited. You can also pass `--patch-config` flag to the deploy command to automatically patch the configuration reading values from the address book. Note that this will NOT update the configuration file. \ No newline at end of file +Steps 2, 3 and 4 require patching the configuration file with addresses from previous steps. The files are located in the `ignition/configs` directory and need to be manually edited. You can also pass `--patch-config` flag to the deploy command to automatically patch the configuration reading values from the address book. Note that this will NOT update the configuration file. + +## Testing +- **unit**: Unit tests can be run with `pnpm test` +- **integration**: Integration tests can be run with `pnpm test:integration` + - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed + - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` +- **deployment**: Deployment tests can be run with `pnpm test:deployment --network `, the following environment variables allow customizing the test suite for different scenarios: + - `TEST_DEPLOYMENT_STEP` (default: 1) - Specify the latest deployment step that has been executed. Tests for later steps will be skipped. + - `TEST_DEPLOYMENT_TYPE` (default: migrate) - The deployment type `protocol/migrate` that is being tested. Test suite has been developed for `migrate` use case but can be run against a `protocol` deployment, likely with some failed tests. + - `TEST_DEPLOYMENT_CONFIG` (default: `hre.network.name`) - The Ignition config file name to use for the test suite. + +## Verification + +To verify contracts on a network, run the following commands: + +```bash +./scripts/pre-verify +npx hardhat ignition verify --network --include-unrelated-contracts +./scripts/post-verify +``` \ No newline at end of file diff --git a/packages/horizon/addresses-integration-tests.json b/packages/horizon/addresses-integration-tests.json new file mode 100644 index 000000000..b8229613d --- /dev/null +++ b/packages/horizon/addresses-integration-tests.json @@ -0,0 +1,40 @@ +{ + "421614": { + "Controller": { + "address": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695" + }, + "EpochManager": { + "address": "0x88b3C7f37253bAA1A9b95feAd69bD5320585826D", + "proxy": "graph", + "implementation": "0x646627fa39ec6f6E757Cb4189bC54c92FFBb71da" + }, + "L2Curation": { + "address": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + "proxy": "graph", + "implementation": "0xdf27da4db64bf29a8f2a710a0b448474151ff925" + }, + "RewardsManager": { + "address": "0x1F49caE7669086c8ba53CC35d1E9f80176d67E79", + "proxy": "graph", + "implementation": "0x714B54e5249C90414fecA240e2F5B618C243F0aE" + }, + "L2GraphTokenGateway": { + "address": "0xB24Ce0f8c18c4DdDa584A7EeC132F49C966813bb", + "proxy": "graph", + "implementation": "0x3C2eB5E561f70c0573E5f6c92358e988E32cb5eC" + }, + "L2GraphToken": { + "address": "0xf8c05dCF59E8B28BFD5eed176C562bEbcfc7Ac04", + "proxy": "graph", + "implementation": "0x4cf968bA38b43dd10be114daa7959C1b369479e5" + }, + "GraphProxyAdmin": { + "address": "0x7474a6cc5fAeDEc620Db0fa8E4da6eD58477042C" + }, + "HorizonStaking": { + "address": "0x865365C425f3A593Ffe698D9c4E6707D14d51e08", + "proxy": "graph", + "implementation": "0x64Ed77b164d3B22339DA4DB6d56a1C1d8A051c0A" + } + } +} \ No newline at end of file diff --git a/packages/horizon/addresses.json b/packages/horizon/addresses.json index 9e26dfeeb..48d1cbd29 100644 --- a/packages/horizon/addresses.json +++ b/packages/horizon/addresses.json @@ -1 +1,55 @@ -{} \ No newline at end of file +{ + "421614": { + "Controller": { + "address": "0x0750EdA3185C758247E97819074bCD217a815FaE" + }, + "EpochManager": { + "address": "0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2", + "proxy": "graph", + "implementation": "0x450906A976dc21450A7CcD1989D26E137E605B91" + }, + "L2Curation": { + "address": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "proxy": "graph", + "implementation": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210" + }, + "RewardsManager": { + "address": "0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f", + "proxy": "graph", + "implementation": "0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3" + }, + "L2GraphTokenGateway": { + "address": "0x7284213d1cDa80C892a4388f38dA431F06343144", + "proxy": "graph", + "implementation": "0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4" + }, + "L2GraphToken": { + "address": "0xBBcb9a575176039C06F94d4d8337818318A26828", + "proxy": "graph", + "implementation": "0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726" + }, + "GraphProxyAdmin": { + "address": "0x1CEBe1C314Cc454baf4bd553409d957C833623c0" + }, + "HorizonStaking": { + "address": "0xF5D432192dAF7e8B045349693577ccF0B5165A12", + "proxy": "graph", + "implementation": "0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244" + }, + "GraphPayments": { + "proxy": "transparent", + "proxyAdmin": "0xAcA3dd622e863E425Cdb15E8734a5CB318448db7", + "address": "0xAFd60629034fBdC3ef58518B817bBDB4EC861c93", + "implementation": "0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866" + }, + "PaymentsEscrow": { + "proxy": "transparent", + "proxyAdmin": "0xbB643167f03EfF532c537e3d72E56b9992CaD985", + "address": "0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85", + "implementation": "0xeED33B904efF05BbdcC9008F5174088DF77dD183" + }, + "GraphTallyCollector": { + "address": "0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE" + } + } +} \ No newline at end of file diff --git a/packages/horizon/contracts/mocks/imports.sol b/packages/horizon/contracts/mocks/imports.sol index 115dc91a2..91a8cf98f 100644 --- a/packages/horizon/contracts/mocks/imports.sol +++ b/packages/horizon/contracts/mocks/imports.sol @@ -1,7 +1,30 @@ // SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; // We import these here to force Hardhat to compile them. // This ensures that their artifacts are available for Hardhat Ignition to use. -pragma solidity 0.8.27; - import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; + +// These are needed to get artifacts for toolshed +import "@graphprotocol/contracts/contracts/governance/Controller.sol"; +import "@graphprotocol/contracts/contracts/upgrades/GraphProxyAdmin.sol"; +import "@graphprotocol/contracts/contracts/staking/IStaking.sol"; + +// Also for toolshed, solidity version in @graphprotocol/contracts does not support overriding public getters +// in interface file, so we need to amend them here. +import { IRewardsManager } from "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol"; +import { IL2Curation } from "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol"; +import { IEpochManager } from "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol"; + +interface IRewardsManagerToolshed is IRewardsManager { + function subgraphService() external view returns (address); +} + +interface IL2CurationToolshed is IL2Curation { + function subgraphService() external view returns (address); +} + +interface IEpochManagerToolshed is IEpochManager { + function epochLength() external view returns (uint256); +} \ No newline at end of file diff --git a/packages/horizon/hardhat.config.ts b/packages/horizon/hardhat.config.ts index 494de23d5..6032c48c4 100644 --- a/packages/horizon/hardhat.config.ts +++ b/packages/horizon/hardhat.config.ts @@ -1,18 +1,17 @@ -import { hardhatBaseConfig } from 'hardhat-graph-protocol/sdk' +import { hardhatBaseConfig, isProjectBuilt, loadTasks } from '@graphprotocol/toolshed/hardhat' +import type { HardhatUserConfig } from 'hardhat/types' // Hardhat plugins import '@nomicfoundation/hardhat-foundry' import '@nomicfoundation/hardhat-toolbox' import '@nomicfoundation/hardhat-ignition-ethers' -import 'hardhat-storage-layout' import 'hardhat-contract-sizer' import 'hardhat-secure-accounts' -import { HardhatUserConfig } from 'hardhat/types' // Skip importing hardhat-graph-protocol when building the project, it has circular dependency -if (process.env.BUILD_RUN !== 'true') { +if (isProjectBuilt(__dirname)) { require('hardhat-graph-protocol') - require('./tasks/deploy') + loadTasks(__dirname) } const config: HardhatUserConfig = { @@ -26,6 +25,19 @@ const config: HardhatUserConfig = { }, }, }, + etherscan: { + ...hardhatBaseConfig.etherscan, + customChains: [ + { + network: 'arbitrumSepolia', + chainId: 421614, + urls: { + apiURL: 'https://api-sepolia.arbiscan.io/api', + browserURL: 'https://sepolia.arbiscan.io/', + }, + }, + ], + }, } export default config diff --git a/packages/horizon/ignition/configs/migrate.default.json5 b/packages/horizon/ignition/configs/migrate.default.json5 index 6061e1216..63bb95502 100644 --- a/packages/horizon/ignition/configs/migrate.default.json5 +++ b/packages/horizon/ignition/configs/migrate.default.json5 @@ -1,9 +1,9 @@ { "$global": { - // Accounts + // Accounts already configured in the original Graph Protocol - Arbitrum Sepolia values "governor": "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3", - // Addresses for contracts deployed in the original Graph Protocol + // Addresses for contracts deployed in the original Graph Protocol - Arbitrum Sepolia values "graphProxyAdminAddress": "0x7474a6cc5fAeDEc620Db0fa8E4da6eD58477042C", "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", "horizonStakingAddress": "0x865365C425f3A593Ffe698D9c4E6707D14d51e08", @@ -13,10 +13,19 @@ "rewardsManagerAddress": "0x1F49caE7669086c8ba53CC35d1E9f80176d67E79", "curationAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + // Must be set for step 2 of the migration + "graphPaymentsAddress": "", + "paymentsEscrowAddress": "", + // Must be set for step 3 and 4 of the migration "subgraphServiceAddress": "", - // Parameters + // Must be set for step 4 of the migration + "horizonStakingImplementationAddress": "", + "curationImplementationAddress": "", + "rewardsManagerImplementationAddress": "", + + // Global parameters "maxThawingPeriod": 2419200 }, "GraphPayments": { @@ -29,22 +38,5 @@ "eip712Name": "GraphTallyCollector", "eip712Version": "1", "revokeSignerThawingPeriod": 10000 - }, - "HorizonProxiesGovernor": { - // Must be set for step 2 of the migration - "graphPaymentsAddress": "", - "paymentsEscrowAddress": "" - }, - "HorizonStakingGovernor": { - // Must be set for step 4 of the migration - "horizonStakingImplementationAddress": "" - }, - "L2CurationGovernor": { - // Must be set for step 4 of the migration - "curationImplementationAddress": "" - }, - "RewardsManagerGovernor": { - // Must be set for step 4 of the migration - "rewardsManagerImplementationAddress": "" } } diff --git a/packages/horizon/ignition/configs/migrate.fork1.json5 b/packages/horizon/ignition/configs/migrate.fork1.json5 new file mode 100644 index 000000000..1b1c6bb6f --- /dev/null +++ b/packages/horizon/ignition/configs/migrate.fork1.json5 @@ -0,0 +1,42 @@ +{ + "$global": { + // Accounts already configured in the original Graph Protocol - Arbitrum Sepolia values + "governor": "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3", + + // Addresses for contracts deployed in the original Graph Protocol - Arbitrum Sepolia values + "graphProxyAdminAddress": "0x7474a6cc5fAeDEc620Db0fa8E4da6eD58477042C", + "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", + "horizonStakingAddress": "0x865365C425f3A593Ffe698D9c4E6707D14d51e08", + "epochManagerAddress": "0x88b3C7f37253bAA1A9b95feAd69bD5320585826D", + "graphTokenAddress": "0xf8c05dCF59E8B28BFD5eed176C562bEbcfc7Ac04", + "graphTokenGatewayAddress": "0xB24Ce0f8c18c4DdDa584A7EeC132F49C966813bb", + "rewardsManagerAddress": "0x1F49caE7669086c8ba53CC35d1E9f80176d67E79", + "curationAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + + // Must be set for step 2 of the migration + "graphPaymentsAddress": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "paymentsEscrowAddress": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + + // Must be set for step 3 and 4 of the migration + "subgraphServiceAddress": "0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d", + + // Must be set for step 4 of the migration + "horizonStakingImplementationAddress": "0xf1b9D089f5f6dEd46EC88830051db0e68c58e032", + "curationImplementationAddress": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210", + "rewardsManagerImplementationAddress": "0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4", + + // Global parameters + "maxThawingPeriod": 2419200 + }, + "GraphPayments": { + "protocolPaymentCut": 10000 + }, + "PaymentsEscrow": { + "withdrawEscrowThawingPeriod": 10000 + }, + "GraphTallyCollector": { + "eip712Name": "GraphTallyCollector", + "eip712Version": "1", + "revokeSignerThawingPeriod": 10000 + } +} diff --git a/packages/horizon/ignition/configs/migrate.integration.json5 b/packages/horizon/ignition/configs/migrate.integration.json5 new file mode 100644 index 000000000..d80340c85 --- /dev/null +++ b/packages/horizon/ignition/configs/migrate.integration.json5 @@ -0,0 +1,42 @@ +{ + "$global": { + // Accounts + "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", + + // Addresses for contracts deployed in the original Graph Protocol + "graphProxyAdminAddress": "0x7474a6cc5fAeDEc620Db0fa8E4da6eD58477042C", + "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", + "horizonStakingAddress": "0x865365C425f3A593Ffe698D9c4E6707D14d51e08", + "epochManagerAddress": "0x88b3C7f37253bAA1A9b95feAd69bD5320585826D", + "graphTokenAddress": "0xf8c05dCF59E8B28BFD5eed176C562bEbcfc7Ac04", + "graphTokenGatewayAddress": "0xB24Ce0f8c18c4DdDa584A7EeC132F49C966813bb", + "rewardsManagerAddress": "0x1F49caE7669086c8ba53CC35d1E9f80176d67E79", + "curationAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + + // Must be set for step 2 of the migration + "graphPaymentsAddress": "", + "paymentsEscrowAddress": "", + + // Must be set for step 3 and 4 of the migration + "subgraphServiceAddress": "", + + // Must be set for step 4 of the migration + "horizonStakingImplementationAddress": "", + "curationImplementationAddress": "", + "rewardsManagerImplementationAddress": "", + + // Global parameters + "maxThawingPeriod": 2419200 + }, + "GraphPayments": { + "protocolPaymentCut": 10000 + }, + "PaymentsEscrow": { + "withdrawEscrowThawingPeriod": 10000 + }, + "GraphTallyCollector": { + "eip712Name": "GraphTallyCollector", + "eip712Version": "1", + "revokeSignerThawingPeriod": 10000 + } +} diff --git a/packages/horizon/ignition/configs/protocol.default.json5 b/packages/horizon/ignition/configs/protocol.default.json5 index 3849fb93a..538561aa1 100644 --- a/packages/horizon/ignition/configs/protocol.default.json5 +++ b/packages/horizon/ignition/configs/protocol.default.json5 @@ -1,12 +1,27 @@ { "$global": { - "pauseGuardian": "0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC", + // Accounts for new deployment - derived from hardhat default mnemonic + "pauseGuardian": "0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d", // index 3 + "subgraphAvailabilityOracle": "0xd03ea8624C8C5987235048901fB614fDcA89b117", // index 4 // Placeholder address for a standalone Horizon deployment, see README.md for more details - "subgraphServiceAddress": "0x0000000000000000000000000000000000000000" + "subgraphServiceAddress": "0x0000000000000000000000000000000000000000", + + // Global parameters + "maxThawingPeriod": 2419200 + }, + "GraphPayments": { + "protocolPaymentCut": 10000 + }, + "PaymentsEscrow": { + "withdrawEscrowThawingPeriod": 10000 + }, + "GraphTallyCollector": { + "eip712Name": "GraphTallyCollector", + "eip712Version": "1", + "revokeSignerThawingPeriod": 10000 }, "RewardsManager": { - "subgraphAvailabilityOracle": "0xd03ea8624C8C5987235048901fB614fDcA89b117", "issuancePerBlock": "114155251141552511415n" }, "EpochManager": { @@ -19,18 +34,6 @@ "L2GraphToken": { "initialSupply": "10000000000000000000000000000n" }, - "HorizonStaking": { - "maxThawingPeriod": 2419200 - }, - "GraphPayments": { - "protocolPaymentCut": 10000 - }, - "PaymentsEscrow": { - "withdrawEscrowThawingPeriod": 10000 - }, - "GraphTallyCollector": { - "eip712Name": "GraphTallyCollector", - "eip712Version": "1", - "revokeSignerThawingPeriod": 10000 - } + + } diff --git a/packages/horizon/ignition/modules/core/core.ts b/packages/horizon/ignition/modules/core/core.ts index f719e6605..9d10c8619 100644 --- a/packages/horizon/ignition/modules/core/core.ts +++ b/packages/horizon/ignition/modules/core/core.ts @@ -7,15 +7,17 @@ import PaymentsEscrowModule, { MigratePaymentsEscrowModule } from './PaymentsEsc export default buildModule('GraphHorizon_Core', (m) => { const { HorizonStaking, HorizonStakingImplementation } = m.useModule(HorizonStakingModule) - const { GraphPayments, GraphPaymentsImplementation } = m.useModule(GraphPaymentsModule) - const { PaymentsEscrow, PaymentsEscrowImplementation } = m.useModule(PaymentsEscrowModule) + const { GraphPaymentsProxyAdmin, GraphPayments, GraphPaymentsImplementation } = m.useModule(GraphPaymentsModule) + const { PaymentsEscrowProxyAdmin, PaymentsEscrow, PaymentsEscrowImplementation } = m.useModule(PaymentsEscrowModule) const { GraphTallyCollector } = m.useModule(GraphTallyCollectorModule) return { HorizonStaking, HorizonStakingImplementation, + GraphPaymentsProxyAdmin, GraphPayments, GraphPaymentsImplementation, + PaymentsEscrowProxyAdmin, PaymentsEscrow, PaymentsEscrowImplementation, GraphTallyCollector, diff --git a/packages/horizon/ignition/modules/deploy.ts b/packages/horizon/ignition/modules/deploy.ts index aed98f69f..19870be2a 100644 --- a/packages/horizon/ignition/modules/deploy.ts +++ b/packages/horizon/ignition/modules/deploy.ts @@ -21,8 +21,10 @@ export default buildModule('GraphHorizon_Deploy', (m) => { const { HorizonStaking, HorizonStakingImplementation, + GraphPaymentsProxyAdmin, GraphPayments, GraphPaymentsImplementation, + PaymentsEscrowProxyAdmin, PaymentsEscrow, PaymentsEscrowImplementation, GraphTallyCollector, @@ -53,8 +55,10 @@ export default buildModule('GraphHorizon_Deploy', (m) => { GraphProxyAdmin, Graph_Proxy_HorizonStaking: HorizonStaking, Implementation_HorizonStaking: HorizonStakingImplementation, + Transparent_ProxyAdmin_GraphPayments: GraphPaymentsProxyAdmin, Transparent_Proxy_GraphPayments: GraphPayments, Implementation_GraphPayments: GraphPaymentsImplementation, + Transparent_ProxyAdmin_PaymentsEscrow: PaymentsEscrowProxyAdmin, Transparent_Proxy_PaymentsEscrow: PaymentsEscrow, Implementation_PaymentsEscrow: PaymentsEscrowImplementation, GraphTallyCollector, diff --git a/packages/horizon/package.json b/packages/horizon/package.json index 1cd779abe..005f033d5 100644 --- a/packages/horizon/package.json +++ b/packages/horizon/package.json @@ -1,31 +1,38 @@ { "name": "@graphprotocol/horizon", - "version": "0.0.1", + "version": "0.3.2", + "publishConfig": { + "access": "public" + }, "description": "", "author": "The Graph core devs", "license": "GPL-2.0-or-later", "types": "typechain-types/index.ts", "files": [ "build/contracts/**/*", + "typechain-types/**/*", "README.md", "addresses.json" ], "scripts": { - "lint": "yarn lint:ts && yarn lint:sol", - "lint:ts": "eslint '**/*.{js,ts}' --fix", - "lint:sol": "yarn lint:sol:prettier && yarn lint:sol:solhint", + "lint": "pnpm lint:ts && pnpm lint:sol", + "lint:ts": "eslint '**/*.{js,ts}' --fix --no-warn-ignored", + "lint:sol": "pnpm lint:sol:prettier && pnpm lint:sol:solhint", "lint:sol:prettier": "prettier --write contracts/**/*.sol test/**/*.sol", "lint:sol:solhint": "solhint --noPrompt --fix contracts/**/*.sol --config node_modules/solhint-graph-config/index.js", "lint:sol:natspec": "natspec-smells --config natspec-smells.config.js", "clean": "rm -rf build dist cache cache_forge typechain-types", - "build": "BUILD_RUN=true hardhat compile", - "test": "forge test && hardhat test" + "build": "hardhat compile", + "test": "forge test", + "test:deployment": "SECURE_ACCOUNTS_DISABLE_PROVIDER=true hardhat test test/deployment/*.ts", + "test:integration": "./scripts/integration" }, "devDependencies": { "@defi-wonderland/natspec-smells": "^1.1.6", - "@graphprotocol/contracts": "workspace:^7.0.0", + "@graphprotocol/contracts": "workspace:^7.1.2", + "@graphprotocol/toolshed": "workspace:^", "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ethers": "3.0.8", "@nomicfoundation/hardhat-foundry": "^1.1.1", "@nomicfoundation/hardhat-ignition": "^0.15.9", "@nomicfoundation/hardhat-ignition-ethers": "^0.15.9", @@ -43,13 +50,13 @@ "chai": "^4.2.0", "eslint": "^8.56.0", "eslint-graph-config": "workspace:^0.0.1", - "ethers": "^6.13.4", + "ethers": "6.13.7", + "glob": "^11.0.1", "hardhat": "^2.22.18", "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", - "hardhat-graph-protocol": "workspace:^0.0.1", + "hardhat-graph-protocol": "workspace:^0.1.12", "hardhat-secure-accounts": "^1.0.5", - "hardhat-storage-layout": "^0.1.7", "lint-staged": "^15.2.2", "prettier": "^3.2.5", "prettier-plugin-solidity": "^1.3.1", @@ -63,16 +70,16 @@ }, "lint-staged": { "contracts/**/*.sol": [ - "yarn lint:sol" + "pnpm lint:sol" ], "**/*.ts": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.js": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.json": [ - "yarn lint:ts" + "pnpm lint:ts" ] } } diff --git a/packages/horizon/scripts/integration b/packages/horizon/scripts/integration new file mode 100755 index 000000000..baf48cf5e --- /dev/null +++ b/packages/horizon/scripts/integration @@ -0,0 +1,120 @@ +#!/bin/bash + +set -eo pipefail + +NON_INTERACTIVE=${NON_INTERACTIVE:-false} + +# Set environment variables for this script +export SECURE_ACCOUNTS_DISABLE_PROVIDER=true +export FORK_FROM_CHAIN_ID=${FORK_FROM_CHAIN_ID:-421614} + +# Function to cleanup resources +cleanup() { + # Kill hardhat node only if we started it + if [ ! -z "$NODE_PID" ] && [ "$STARTED_NODE" = true ]; then + echo "Cleaning up Hardhat node (PID: $NODE_PID)..." + kill -TERM -- -$NODE_PID 2>/dev/null || true + fi +} + +# Set trap to call cleanup function on script exit (normal or error) +trap cleanup EXIT + +# Check if ignition deployment folder exists and prompt before proceeding +if [ -d "ignition/deployments/horizon-localhost" ]; then + if [ "$NON_INTERACTIVE" = true ]; then + confirm=y + else + read -p "Ignition deployment files already exist. These must be removed for the tests to work properly. Remove them? (y/n) [y]: " confirm + confirm=${confirm:-y} + fi + if [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]]; then + echo "Removing existing ignition deployment files..." + rm -rf ignition/deployments/horizon-localhost + else + echo "Operation cancelled. Exiting..." + exit 1 + fi +fi + +if [ -f "addresses-localhost.json" ]; then + if [ "$NON_INTERACTIVE" = true ]; then + confirm=y + else + read -p "Address book for horizon will be deleted. Continue? (y/n) [y]: " confirm + confirm=${confirm:-y} + fi + if [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]]; then + echo "Deleting addresses-localhost.json..." + rm -f addresses-localhost.json + else + echo "Operation cancelled. Exiting..." + exit 1 + fi +fi + +# Check required env variables +BLOCKCHAIN_RPC=${BLOCKCHAIN_RPC:-$(npx hardhat vars get ARBITRUM_SEPOLIA_RPC)} +if [ -z "$BLOCKCHAIN_RPC" ]; then + echo "BLOCKCHAIN_RPC environment variable is required" + exit 1 +fi + +echo "Starting integration tests..." + +# Check if hardhat node is already running on port 8545 +STARTED_NODE=false +if lsof -i:8545 > /dev/null 2>&1; then + echo "Hardhat node already running on port 8545, using existing node" + # Get the PID of the process using port 8545 + NODE_PID=$(lsof -t -i:8545) +else + # Start local hardhat node forked from Arbitrum Sepolia + echo "Starting local hardhat node..." + npx hardhat node --fork $BLOCKCHAIN_RPC > node.log 2>&1 & + NODE_PID=$! + STARTED_NODE=true + + # Wait for node to start + sleep 10 +fi + +# Setup horizon address book +jq '{"31337": ."'"$FORK_FROM_CHAIN_ID"'"}' addresses-integration-tests.json > addresses-localhost.json + +# Setup pre horizon migration state needed for the integration tests +npx hardhat test:seed --network localhost + +# Transfer ownership of protocol to hardhat signer 1 +npx hardhat test:transfer-ownership --network localhost + +# Step 1 - Deployer +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 1 + +# Step 2 - Governor +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 2 --patch-config --account-index 1 --hide-banner --standalone + +# Step 3 - Deployer +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 3 --patch-config --hide-banner --standalone + +# Step 4 - Governor +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 4 --patch-config --account-index 1 --hide-banner --standalone + +# Run integration tests - During transition period +npx hardhat test:integration --phase during-transition-period --network localhost + +# Clear thawing period +npx hardhat transition:clear-thawing --network localhost + +# Run integration tests - After transition period +npx hardhat test:integration --phase after-transition-period --network localhost + +# Enable delegation slashing +npx hardhat transition:enable-delegation-slashing --network localhost + +# Run integration tests - After delegation slashing enabled +npx hardhat test:integration --phase after-delegation-slashing-enabled --network localhost + +echo "" +echo "🎉 ✨ 🚀 ✅ Integration tests completed successfully! 🎉 ✨ 🚀 ✅" +echo "" \ No newline at end of file diff --git a/packages/horizon/scripts/post-verify b/packages/horizon/scripts/post-verify new file mode 100644 index 000000000..dfcae3bcc --- /dev/null +++ b/packages/horizon/scripts/post-verify @@ -0,0 +1,3 @@ +#!/bin/bash + +git ls-files --others --exclude-standard ignition/deployments | xargs rm -f \ No newline at end of file diff --git a/packages/horizon/scripts/pre-verify b/packages/horizon/scripts/pre-verify index ec9884e63..2f35b70ea 100755 --- a/packages/horizon/scripts/pre-verify +++ b/packages/horizon/scripts/pre-verify @@ -54,4 +54,6 @@ cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/BridgeEscrow#Gr cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/EpochManager#GraphProxy.dbg.json" cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxiesDeployer#TransparentUpgradeableProxy_GraphPayments.dbg.json" -cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxiesDeployer#TransparentUpgradeableProxy_PaymentsEscrow.dbg.json" \ No newline at end of file +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.dbg.json" +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxiesDeployer#TransparentUpgradeableProxy_PaymentsEscrow.dbg.json" +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.dbg.json" diff --git a/packages/horizon/tasks/deploy.ts b/packages/horizon/tasks/deploy.ts index 9e19beb58..16264464d 100644 --- a/packages/horizon/tasks/deploy.ts +++ b/packages/horizon/tasks/deploy.ts @@ -1,26 +1,28 @@ /* eslint-disable no-case-declarations */ +import { loadConfig, patchConfig, saveToAddressBook } from '@graphprotocol/toolshed/hardhat' import { task, types } from 'hardhat/config' -import { IgnitionHelper } from 'hardhat-graph-protocol/sdk' +import { ZERO_ADDRESS } from '@graphprotocol/toolshed' -import type { AddressBook } from '../../hardhat-graph-protocol/src/sdk/address-book' +import type { AddressBook } from '@graphprotocol/toolshed/deployments' import type { HardhatRuntimeEnvironment } from 'hardhat/types' import DeployModule from '../ignition/modules/deploy' +import { printHorizonBanner } from '@graphprotocol/toolshed/utils' task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon contracts - no data services deployed') .addOptionalParam('horizonConfig', 'Name of the Horizon configuration file to use. Format is "protocol..json5", file must be in the "ignition/configs/" directory. Defaults to network name.', undefined, types.string) + .addOptionalParam('accountIndex', 'Derivation path index for the account to use', 0, types.int) .setAction(async (args, hre: HardhatRuntimeEnvironment) => { const graph = hre.graph() // Load configuration for the deployment console.log('\n========== ⚙️ Deployment configuration ==========') - const { config: HorizonConfig, file } = IgnitionHelper.loadConfig('./ignition/configs/', 'protocol', args.horizonConfig ?? hre.network.name) + const { config: HorizonConfig, file } = loadConfig('./ignition/configs/', 'protocol', args.horizonConfig ?? hre.network.name) console.log(`Loaded migration configuration from ${file}`) // Display the deployer -- this also triggers the secure accounts prompt if being used console.log('\n========== 🔑 Deployer account ==========') - const signers = await hre.ethers.getSigners() - const deployer = signers[0] + const deployer = await graph.accounts.getDeployer(args.accountIndex) console.log('Using deployer account:', deployer.address) const balance = await hre.ethers.provider.getBalance(deployer.address) console.log('Deployer balance:', hre.ethers.formatEther(balance), 'ETH') @@ -34,12 +36,13 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont const deployment = await hre.ignition.deploy(DeployModule, { displayUi: true, parameters: HorizonConfig, + defaultSender: deployer.address, }) // Save the addresses to the address book console.log('\n========== 📖 Updating address book ==========') - IgnitionHelper.saveToAddressBook(deployment, hre.network.config.chainId, graph.horizon!.addressBook) - console.log(`Address book at ${graph.horizon!.addressBook.file} updated!`) + saveToAddressBook(deployment, graph.horizon.addressBook) + console.log(`Address book at ${graph.horizon.addressBook.file} updated!`) console.log('\n\n🎉 ✨ 🚀 ✅ Deployment complete! 🎉 ✨ 🚀 ✅') }) @@ -47,14 +50,19 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont task('deploy:migrate', 'Upgrade an existing version of the Graph Protocol v1 to Horizon - no data services deployed') .addOptionalParam('horizonConfig', 'Name of the Horizon configuration file to use. Format is "migrate..json5", file must be in the "ignition/configs/" directory. Defaults to network name.', undefined, types.string) .addOptionalParam('step', 'Migration step to run (1, 2, 3 or 4)', undefined, types.int) + .addOptionalParam('accountIndex', 'Derivation path index for the account to use', 0, types.int) .addFlag('patchConfig', 'Patch configuration file using address book values - does not save changes') + .addFlag('standalone', 'Deploy horizon contracts in standalone mode - subgraph service hardcoded as zero address') + .addFlag('hideBanner', 'Hide the banner display') .setAction(async (args, hre: HardhatRuntimeEnvironment) => { // Task parameters const step: number = args.step ?? 0 const patchConfig: boolean = args.patchConfig ?? false const graph = hre.graph() - console.log(getHorizonBanner()) + if (!args.hideBanner) { + printHorizonBanner() + } // Migration step to run console.log('\n========== 🏗️ Migration steps ==========') @@ -68,13 +76,12 @@ task('deploy:migrate', 'Upgrade an existing version of the Graph Protocol v1 to // Load configuration for the migration console.log('\n========== ⚙️ Deployment configuration ==========') - const { config: HorizonMigrateConfig, file } = IgnitionHelper.loadConfig('./ignition/configs/', 'migrate', args.horizonConfig ?? hre.network.name) + const { config: HorizonMigrateConfig, file } = loadConfig('./ignition/configs/', 'migrate', args.horizonConfig ?? hre.network.name) console.log(`Loaded migration configuration from ${file}`) // Display the deployer -- this also triggers the secure accounts prompt if being used console.log('\n========== 🔑 Deployer account ==========') - const signers = await hre.ethers.getSigners() - const deployer = signers[0] + const deployer = await graph.accounts.getDeployer(args.accountIndex) console.log('Using deployer account:', deployer.address) const balance = await hre.ethers.provider.getBalance(deployer.address) console.log('Deployer balance:', hre.ethers.formatEther(balance), 'ETH') @@ -90,16 +97,26 @@ task('deploy:migrate', 'Upgrade an existing version of the Graph Protocol v1 to MigrationModule, { displayUi: true, - parameters: patchConfig ? _patchStepConfig(step, HorizonMigrateConfig, graph.horizon!.addressBook, graph.subgraphService!.addressBook) : HorizonMigrateConfig, + parameters: patchConfig + ? _patchStepConfig( + step, + HorizonMigrateConfig, + graph.horizon.addressBook, + graph.subgraphService?.addressBook, + args.standalone, + ) + : HorizonMigrateConfig, deploymentId: `horizon-${hre.network.name}`, - }) + defaultSender: deployer.address, + }, + ) // Update address book console.log('\n========== 📖 Updating address book ==========') - IgnitionHelper.saveToAddressBook(deployment, hre.network.config.chainId, graph.horizon!.addressBook) - console.log(`Address book at ${graph.horizon!.addressBook.file} updated!`) + saveToAddressBook(deployment, graph.horizon.addressBook) + console.log(`Address book at ${graph.horizon.addressBook.file} updated!`) - console.log('\n\n🎉 ✨ 🚀 ✅ Migration complete! 🎉 ✨ 🚀 ✅') + console.log(`\n\n🎉 ✨ 🚀 ✅ Migration step ${step} complete! 🎉 ✨ 🚀 ✅\n`) }) // This function patches the Ignition configuration object using an address book to fill in the gaps @@ -110,27 +127,41 @@ function _patchStepConfig, - subgraphServiceAddressBook: AddressBook, + subgraphServiceAddressBook: AddressBook | undefined, + standalone: boolean, // eslint-disable-next-line @typescript-eslint/no-explicit-any ): any { let patchedConfig = config + // Get the subgraph service address + // Subgraph service address book might exist if we are running horizon + subgraph service + // or it might not exist if we are running horizon standalone + function getSubgraphServiceAddress() { + if ( + subgraphServiceAddressBook === undefined + || !subgraphServiceAddressBook.entryExists('SubgraphService') + || standalone + ) { + return ZERO_ADDRESS + } + return subgraphServiceAddressBook.getEntry('SubgraphService').address + } + switch (step) { case 2: const GraphPayments = horizonAddressBook.getEntry('GraphPayments') const PaymentsEscrow = horizonAddressBook.getEntry('PaymentsEscrow') - patchedConfig = IgnitionHelper.patchConfig(config, { - HorizonProxiesGovernor: { + patchedConfig = patchConfig(config, { + $global: { graphPaymentsAddress: GraphPayments.address, paymentsEscrowAddress: PaymentsEscrow.address, }, }) break case 3: - const SubgraphService3 = subgraphServiceAddressBook.getEntry('SubgraphService') - patchedConfig = IgnitionHelper.patchConfig(patchedConfig, { + patchedConfig = patchConfig(patchedConfig, { $global: { - subgraphServiceAddress: SubgraphService3.address, + subgraphServiceAddress: getSubgraphServiceAddress(), }, }) break @@ -138,19 +169,12 @@ function _patchStepConfig { + // Get test files for each phase + const duringTransitionPeriodFiles = await glob('test/integration/during-transition-period/**/*.{js,ts}') + const afterTransitionPeriodFiles = await glob('test/integration/after-transition-period/**/*.{js,ts}') + const afterDelegationSlashingEnabledFiles = await glob('test/integration/after-delegation-slashing-enabled/**/*.{js,ts}') + + // Display banner for the current test phase + printBanner(taskArgs.phase, 'INTEGRATION TESTS: ') + + switch (taskArgs.phase) { + case 'during-transition-period': + await hre.run(TASK_TEST, { testFiles: duringTransitionPeriodFiles }) + break + case 'after-transition-period': + await hre.run(TASK_TEST, { testFiles: afterTransitionPeriodFiles }) + break + case 'after-delegation-slashing-enabled': + await hre.run(TASK_TEST, { testFiles: afterDelegationSlashingEnabledFiles }) + break + default: + throw new Error( + 'Invalid phase. Must be "during-transition-period", "after-transition-period", "after-delegation-slashing-enabled", or "all"', + ) + } + }) diff --git a/packages/horizon/tasks/test/ownership.ts b/packages/horizon/tasks/test/ownership.ts new file mode 100644 index 000000000..af0d29b57 --- /dev/null +++ b/packages/horizon/tasks/test/ownership.ts @@ -0,0 +1,78 @@ +import { task, types } from 'hardhat/config' +import { printBanner } from '@graphprotocol/toolshed/utils' +import { requireLocalNetwork } from '@graphprotocol/toolshed/hardhat' + +// This is required because we cannot impersonate Ignition accounts +// so we impersonate current governor and transfer ownership to accounts that Ignition can control +task('test:transfer-ownership', 'Transfer ownership of protocol contracts to a new governor') + .addOptionalParam('governorIndex', 'Derivation path index for the new governor account', 1, types.int) + .addOptionalParam('slasherIndex', 'Derivation path index for the new slasher account', 2, types.int) + .addOptionalParam('pauseGuardianIndex', 'Derivation path index for the new pause guardian account', 3, types.int) + .setAction(async (taskArgs, hre) => { + printBanner('TRANSFER OWNERSHIP') + + const graph = hre.graph() + + // this task uses impersonation so we NEED a local network + requireLocalNetwork(hre) + + console.log('\n--- STEP 0: Setup ---') + + // Get signers + const newGovernor = await graph.accounts.getGovernor(taskArgs.governorIndex) + const newSlasher = await graph.accounts.getArbitrator(taskArgs.slasherIndex) + const newPauseGuardian = await graph.accounts.getPauseGuardian(taskArgs.pauseGuardianIndex) + console.log(`New governor will be: ${newGovernor.address}`) + + // Get contracts + const staking = graph.horizon.contracts.LegacyStaking + const controller = graph.horizon.contracts.Controller + const graphProxyAdmin = graph.horizon.contracts.GraphProxyAdmin + + // Get current owners + const controllerGovernor = await controller.governor() + const proxyAdminGovernor = await graphProxyAdmin.governor() + + console.log(`Current Controller governor: ${controllerGovernor}`) + console.log(`Current GraphProxyAdmin governor: ${proxyAdminGovernor}`) + + // Get impersonated signers + const controllerSigner = await hre.ethers.getImpersonatedSigner(controllerGovernor) + const proxyAdminSigner = await hre.ethers.getImpersonatedSigner(proxyAdminGovernor) + + console.log('\n--- STEP 1: Transfer ownership of Controller ---') + + // Transfer Controller ownership + console.log('Transferring Controller ownership...') + await controller.connect(controllerSigner).transferOwnership(newGovernor.address) + console.log('Accepting Controller ownership...') + + // Accept ownership of Controller + await controller.connect(newGovernor).acceptOwnership() + console.log(`New Controller governor: ${await controller.governor()}`) + + console.log('\n--- STEP 2: Transfer ownership of GraphProxyAdmin ---') + + // Transfer GraphProxyAdmin ownership + console.log('Transferring GraphProxyAdmin ownership...') + await graphProxyAdmin.connect(proxyAdminSigner).transferOwnership(newGovernor.address) + console.log('Accepting GraphProxyAdmin ownership...') + + // Accept ownership of GraphProxyAdmin + await graphProxyAdmin.connect(newGovernor).acceptOwnership() + console.log(`New GraphProxyAdmin governor: ${await graphProxyAdmin.governor()}`) + + console.log('\n--- STEP 3: Assign new slasher ---') + + // Assign new slasher + console.log('Assigning new slasher...') + await staking.connect(newGovernor).setSlasher(newSlasher.address, true) + console.log(`New slasher: ${newSlasher.address}, allowed: ${await staking.slashers(newSlasher.address)}`) + + // Assign new pause guardian + console.log('Assigning new pause guardian...') + await controller.connect(newGovernor).setPauseGuardian(newPauseGuardian.address) + console.log(`New pause guardian: ${newPauseGuardian.address}`) + + console.log('\n\n🎉 ✨ 🚀 ✅ Transfer ownership complete! 🎉 ✨ 🚀 ✅\n') + }) diff --git a/packages/horizon/tasks/test/seed.ts b/packages/horizon/tasks/test/seed.ts new file mode 100644 index 000000000..c172c0d6e --- /dev/null +++ b/packages/horizon/tasks/test/seed.ts @@ -0,0 +1,118 @@ +import { generateLegacyAllocationProof, randomAllocationMetadata } from '@graphprotocol/toolshed' +import { requireLocalNetwork, setGRTBalance } from '@graphprotocol/toolshed/hardhat' +import { delegators } from './fixtures/delegators' +import { indexers } from './fixtures/indexers' +import { printBanner } from '@graphprotocol/toolshed/utils' +import { task } from 'hardhat/config' + +task('test:seed', 'Sets up some protocol state for testing') + .setAction(async (_, hre) => { + printBanner('PROTOCOL STATE SETUP') + + console.log('\n--- STEP 0: Setup ---') + + // this task uses impersonation so we NEED a local network + requireLocalNetwork(hre) + + // Get contracts + const graph = hre.graph() + const GraphToken = graph.horizon.contracts.L2GraphToken + const Staking = graph.horizon.contracts.LegacyStaking + + // STEP 1: stake for indexers + console.log('\n--- STEP 1: Indexers Setup ---') + for (const indexer of indexers) { + await setGRTBalance(graph.provider, GraphToken.target, indexer.address, indexer.stake) + + // Impersonate the indexer + const indexerSigner = await hre.ethers.getImpersonatedSigner(indexer.address) + + // Approve and stake + console.log(`Staking ${indexer.stake} tokens for indexer ${indexer.address}...`) + await GraphToken.connect(indexerSigner).approve(Staking.target, indexer.stake) + await Staking.connect(indexerSigner).stake(indexer.stake) + + // Set delegation parameters + console.log(`Setting delegation parameters for indexer ${indexer.address}...`) + await Staking.connect(indexerSigner).setDelegationParameters(indexer.indexingRewardCut, indexer.queryFeeCut, 0) + + // Set rewards destination if it exists + if (indexer.rewardsDestination) { + console.log(`Setting rewards destination for indexer ${indexer.address} to ${indexer.rewardsDestination}...`) + await Staking.connect(indexerSigner).setRewardsDestination(indexer.rewardsDestination) + } + } + + // STEP 2: Fund and delegate for delegators + console.log('\n--- STEP 2: Delegators Delegating ---') + for (const delegator of delegators) { + await setGRTBalance(graph.provider, GraphToken.target, delegator.address, delegator.delegations.reduce((acc, d) => acc + d.tokens, BigInt(0))) + + // Impersonate the delegator + const delegatorSigner = await hre.ethers.getImpersonatedSigner(delegator.address) + + // Delegate to each indexer + for (const delegation of delegator.delegations) { + console.log(`Delegating ${delegation.tokens} tokens from ${delegator.address} to indexer ${delegation.indexerAddress}...`) + await GraphToken.connect(delegatorSigner).approve(Staking.target, delegation.tokens) + await Staking.connect(delegatorSigner).delegate(delegation.indexerAddress, delegation.tokens) + } + } + + // STEP 3: Create allocations + console.log('\n--- STEP 3: Creating Allocations ---') + for (const indexer of indexers) { + // Impersonate the indexer + const indexerSigner = await hre.ethers.getImpersonatedSigner(indexer.address) + + for (const allocation of indexer.allocations) { + console.log(`Creating allocation of ${allocation.tokens} tokens from indexer ${indexer.address} on subgraph ${allocation.subgraphDeploymentID}...`) + + await Staking.connect(indexerSigner).allocate( + allocation.subgraphDeploymentID, + allocation.tokens, + allocation.allocationID, + randomAllocationMetadata(), + await generateLegacyAllocationProof(indexer.address, allocation.allocationPrivateKey), + ) + } + } + + // STEP 4: Indexer unstakes + console.log('\n--- STEP 4: Indexer unstakes ---') + for (const indexer of indexers) { + if (indexer.tokensToUnstake) { + console.log(`Indexer ${indexer.address} is unstaking...`) + + // Impersonate the indexer + const indexerSigner = await hre.ethers.getImpersonatedSigner(indexer.address) + + // Unstake + await Staking.connect(indexerSigner).unstake(indexer.tokensToUnstake) + } + } + + // STEP 5: Undelegate + console.log('\n--- STEP 5: Undelegating ---') + for (const delegator of delegators) { + if (delegator.undelegate) { + console.log(`Delegator ${delegator.address} is undelegating...`) + + // Impersonate the delegator + const delegatorSigner = await hre.ethers.getImpersonatedSigner(delegator.address) + + for (const delegation of delegator.delegations) { + // Get the delegation information + const delegationInfo = await Staking.getDelegation(delegation.indexerAddress, delegator.address) + const shares = BigInt(delegationInfo.shares.toString()) + + console.log(`Undelegating ${shares} shares from indexer ${delegation.indexerAddress}...`) + + // Undelegate the shares + await Staking.connect(delegatorSigner).undelegate(delegation.indexerAddress, shares) + } + } + } + + console.log('\n\n🎉 ✨ 🚀 ✅ Pre-upgrade state setup complete! 🎉 ✨ 🚀 ✅\n') + }) diff --git a/packages/horizon/tasks/transitions/delegation-slashing.ts b/packages/horizon/tasks/transitions/delegation-slashing.ts new file mode 100644 index 000000000..a983686ce --- /dev/null +++ b/packages/horizon/tasks/transitions/delegation-slashing.ts @@ -0,0 +1,25 @@ +import { task, types } from 'hardhat/config' +import { printBanner } from '@graphprotocol/toolshed/utils' +import { requireLocalNetwork } from '@graphprotocol/toolshed/hardhat' + +task('transition:enable-delegation-slashing', 'Enables delegation slashing in HorizonStaking') + .addOptionalParam('governorIndex', 'Derivation path index for the governor account', 1, types.int) + .addFlag('skipNetworkCheck', 'Skip the network check (use with caution)') + .setAction(async (taskArgs, hre) => { + printBanner('ENABLING DELEGATION SLASHING') + + if (!taskArgs.skipNetworkCheck) { + requireLocalNetwork(hre) + } + + const graph = hre.graph() + const governor = await graph.accounts.getGovernor(taskArgs.governorIndex) + const horizonStaking = graph.horizon.contracts.HorizonStaking + + console.log('Enabling delegation slashing...') + await horizonStaking.connect(governor).setDelegationSlashingEnabled() + + // Log if the delegation slashing is enabled + const delegationSlashingEnabled = await horizonStaking.isDelegationSlashingEnabled() + console.log('Delegation slashing enabled:', delegationSlashingEnabled) + }) diff --git a/packages/horizon/tasks/transitions/thawing-period.ts b/packages/horizon/tasks/transitions/thawing-period.ts new file mode 100644 index 000000000..f0957184c --- /dev/null +++ b/packages/horizon/tasks/transitions/thawing-period.ts @@ -0,0 +1,22 @@ +import { task, types } from 'hardhat/config' +import { printBanner } from '@graphprotocol/toolshed/utils' +import { requireLocalNetwork } from '@graphprotocol/toolshed/hardhat' + +task('transition:clear-thawing', 'Clears the thawing period in HorizonStaking') + .addOptionalParam('governorIndex', 'Derivation path index for the governor account', 1, types.int) + .addFlag('skipNetworkCheck', 'Skip the network check (use with caution)') + .setAction(async (taskArgs, hre) => { + printBanner('CLEARING THAWING PERIOD') + + if (!taskArgs.skipNetworkCheck) { + requireLocalNetwork(hre) + } + + const graph = hre.graph() + const governor = await graph.accounts.getGovernor(taskArgs.governorIndex) + const horizonStaking = graph.horizon.contracts.HorizonStaking + + console.log('Clearing thawing period...') + await horizonStaking.connect(governor).clearThawingPeriod() + console.log('Thawing period cleared') + }) diff --git a/packages/horizon/test/data-service/DataService.tree b/packages/horizon/test/data-service/DataService.tree deleted file mode 100644 index cd016608e..000000000 --- a/packages/horizon/test/data-service/DataService.tree +++ /dev/null @@ -1,71 +0,0 @@ -DataServiceTest::constructor_ -└── when the contract is deployed with a valid controller - └── it should set all it's ranges to max - -DataServiceTest::delegationRatio_ -├── when setting the delegation ratio -│ ├── it should emit an event -│ └── it should set the range -└── when getting the delegation ratio - └── it should return the correct value - -DataServiceTest::provisionTokens_ -├── when setting a valid range -│ ├── it should emit an event -│ └── it should set the range -├── when setting an invalid range -│ └── it should revert -├── when getting the range -│ └── it should return the correct value -├── when getting the range with an overriden getter -│ └── it should return the correct value -├── when checking a valid provision -│ └── it should not revert -├── when checking with an overriden checker -│ └── it should not revert -└── when checking an invalid provision - └── it should revert - -DataServiceTest::verifierCut_ -├── when setting a valid range -│ ├── it should emit an event -│ └── it should set the range -├── when setting an invalid range -│ └── it should revert -├── when getting the range -│ └── it should return the correct value -├── when getting the range with an overriden getter -│ └── it should return the correct value -├── when checking a valid provision -│ └── it should not revert -├── when checking with an overriden checker -│ └── it should not revert -└── when checking an invalid provision - └── it should revert - -DataServiceTest::thawingPeriod_ -├── when setting a valid range -│ ├── it should emit an event -│ └── it should set the range -├── when setting an invalid range -│ └── it should revert -├── when getting the range -│ └── it should return the correct value -├── when getting the range with an overriden getter -│ └── it should return the correct value -├── when checking a valid provision -│ └── it should not revert -├── when checking with an overriden checker -│ └── it should not revert -└── when checking an invalid provision - └── it should revert - -DataServiceTest::provisionParameters_ -└── given provision parameters changed - ├── when the new parameters are valid - │ ├── it should emit an event - │ └── it should set the new parameters - ├── when the new thawing period is invalid - │ └── it should revert - └── when the new verifier cut is invalid - └── it should revert \ No newline at end of file diff --git a/packages/horizon/test/data-service/extensions/DataServiceFees.tree b/packages/horizon/test/data-service/extensions/DataServiceFees.tree deleted file mode 100644 index 331627179..000000000 --- a/packages/horizon/test/data-service/extensions/DataServiceFees.tree +++ /dev/null @@ -1,21 +0,0 @@ -DataServiceFeesTest::lock_ -├── when zero tokens are locked -│ └── it should revert -├── when the provision has enough tokens -│ ├── it should lock the tokens -│ ├── it should create a stake claim -│ ├── it should update the claims list -│ └── it should emit a an event -├── when the provision has just enough tokens -│ ├── it should lock the tokens -│ ├── it should create a stake claim -│ ├── it should update the claims list -│ └── it should emit a an event -└──when the provision has not enough tokens - └── it should revert - -DataServiceFeesTest::release_ -├── when n is valid -│ └── it should release all expired claims -└── when n is not valid - └── it should release at most n expired claims \ No newline at end of file diff --git a/packages/horizon/test/data-service/extensions/DataServicePausable.tree b/packages/horizon/test/data-service/extensions/DataServicePausable.tree deleted file mode 100644 index 1c162c55d..000000000 --- a/packages/horizon/test/data-service/extensions/DataServicePausable.tree +++ /dev/null @@ -1,35 +0,0 @@ -DataServicePausableTest::pause_ -├── when the caller is a pause guardian -│ ├── when the protocol is not paused -│ │ └── it should pause the contract -│ └── when the protocol is paused -│ └── it should revert -└── when the caller is not a pause guardian - └── it should revert - -DataServicePausableTest::unpause_ -├── when the caller is a pause guardian -│ ├── when the protocol is paused -│ │ └── it should unpause the contract -│ └── when the protocol is not paused -│ └── it should revert -└── when the caller is not a pause guardian - └── it should revert - -DataServicePausableTest::setPauseGuardian_ -├── when setting a pause guardian -│ └── it should emit an event -└── when removing a pause guardian - └── it should emit an event - -DataServicePausableTest::pausedProtectedFn_ -├── when the protocol is paused -│ └── it should revert -└── when the protocol is not paused - └── it should emit an event - -DataServicePausableTest::unpausedProtectedFn_ -├── when the protocol is paused -│ └── it should emit an event -└── when the protocol is not paused - └── it should revert diff --git a/packages/horizon/test/data-service/libraries/ProvisionTracker.tree b/packages/horizon/test/data-service/libraries/ProvisionTracker.tree deleted file mode 100644 index 34955ed76..000000000 --- a/packages/horizon/test/data-service/libraries/ProvisionTracker.tree +++ /dev/null @@ -1,11 +0,0 @@ -ProvisionTrackerTest::lock_ -├── given the provision has sufficient available tokens -│ └── it should lock the tokens -└── given the provision has insufficient available tokens - └── it should revert - -ProvisionTrackerTest::release_ -├── given the provision has sufficient locked tokens -│ └── it should release the tokens -└── given the provision has insufficient locked tokens - └── it should revert \ No newline at end of file diff --git a/packages/horizon/test/deployment/Controller.test.ts b/packages/horizon/test/deployment/Controller.test.ts new file mode 100644 index 000000000..4a9bde3ee --- /dev/null +++ b/packages/horizon/test/deployment/Controller.test.ts @@ -0,0 +1,56 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { toUtf8Bytes } from 'ethers' +import { testIf } from './lib/testIf' + +const graph = hre.graph() +const addressBook = graph.horizon.addressBook +const Controller = graph.horizon.contracts.Controller + +describe('Controller', function () { + it('should have GraphToken registered', async function () { + const graphToken = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('GraphToken'))) + expect(graphToken).to.equal(addressBook.getEntry('L2GraphToken').address) + }) + + it('should have HorizonStaking registered', async function () { + const horizonStaking = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('Staking'))) + expect(horizonStaking).to.equal(addressBook.getEntry('HorizonStaking').address) + }) + + testIf(2)('should have GraphPayments registered', async function () { + const graphPayments = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('GraphPayments'))) + expect(graphPayments).to.equal(addressBook.getEntry('GraphPayments').address) + }) + + testIf(2)('should have PaymentsEscrow registered', async function () { + const paymentsEscrow = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('PaymentsEscrow'))) + expect(paymentsEscrow).to.equal(addressBook.getEntry('PaymentsEscrow').address) + }) + + it('should have EpochManager registered', async function () { + const epochManager = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('EpochManager'))) + expect(epochManager).to.equal(addressBook.getEntry('EpochManager').address) + }) + + it('should have RewardsManager registered', async function () { + const rewardsManager = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('RewardsManager'))) + expect(rewardsManager).to.equal(addressBook.getEntry('RewardsManager').address) + }) + + it('should have GraphTokenGateway registered', async function () { + const graphTokenGateway = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('GraphTokenGateway'))) + expect(graphTokenGateway).to.equal(addressBook.getEntry('L2GraphTokenGateway').address) + }) + + testIf(2)('should have GraphProxyAdmin registered', async function () { + const graphProxyAdmin = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('GraphProxyAdmin'))) + expect(graphProxyAdmin).to.equal(addressBook.getEntry('GraphProxyAdmin').address) + }) + + it('should have Curation registered', async function () { + const curation = await Controller.getContractProxy(hre.ethers.keccak256(toUtf8Bytes('Curation'))) + expect(curation).to.equal(addressBook.getEntry('L2Curation').address) + }) +}) diff --git a/packages/horizon/test/deployment/Curation.test.ts b/packages/horizon/test/deployment/Curation.test.ts new file mode 100644 index 000000000..c7dbc2b5b --- /dev/null +++ b/packages/horizon/test/deployment/Curation.test.ts @@ -0,0 +1,26 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { graphProxyTests } from './lib/GraphProxy.test' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const graphProxyAdminAddressBookEntry = graph.horizon.addressBook.getEntry('GraphProxyAdmin') +const curationAddressBookEntry = graph.horizon.addressBook.getEntry('L2Curation') +const Curation = graph.horizon.contracts.L2Curation + +describe('Curation', function () { + testIf(4)('should set the right subgraph service', async function () { + const subgraphService = await Curation.subgraphService() + expect(subgraphService).to.equal(config.$global.subgraphServiceAddress) + }) +}) + +graphProxyTests('Curation', curationAddressBookEntry, graphProxyAdminAddressBookEntry.address) diff --git a/packages/horizon/test/deployment/GraphPayments.test.ts b/packages/horizon/test/deployment/GraphPayments.test.ts new file mode 100644 index 000000000..7014ce09f --- /dev/null +++ b/packages/horizon/test/deployment/GraphPayments.test.ts @@ -0,0 +1,30 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' +import { transparentUpgradeableProxyTests } from './lib/TransparentUpgradeableProxy.tests' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const addressBookEntry = graph.horizon.addressBook.getEntry('GraphPayments') +const GraphPayments = graph.horizon.contracts.GraphPayments + +describe('GraphPayments', function () { + testIf(3)('should set the right protocolPaymentCut', async function () { + const protocolPaymentCut = await GraphPayments.PROTOCOL_PAYMENT_CUT() + expect(protocolPaymentCut).to.equal(config.GraphPayments.protocolPaymentCut) + }) +}) + +transparentUpgradeableProxyTests( + 'GraphPayments', + addressBookEntry, + config.$global.governor as string, + Number(process.env.TEST_DEPLOYMENT_STEP ?? 1) >= 3, +) diff --git a/packages/horizon/test/deployment/GraphTallyCollector.test.ts b/packages/horizon/test/deployment/GraphTallyCollector.test.ts new file mode 100644 index 000000000..289f052c0 --- /dev/null +++ b/packages/horizon/test/deployment/GraphTallyCollector.test.ts @@ -0,0 +1,21 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const GraphTallyCollector = graph.horizon.contracts.GraphTallyCollector + +describe('GraphTallyCollector', function () { + testIf(3)('should set the right revokeSignerThawingPeriod', async function () { + const revokeSignerThawingPeriod = await GraphTallyCollector.REVOKE_AUTHORIZATION_THAWING_PERIOD() + expect(revokeSignerThawingPeriod).to.equal(config.GraphTallyCollector.revokeSignerThawingPeriod) + }) +}) diff --git a/packages/horizon/test/deployment/HorizonStaking.test.ts b/packages/horizon/test/deployment/HorizonStaking.test.ts new file mode 100644 index 000000000..4d80ec057 --- /dev/null +++ b/packages/horizon/test/deployment/HorizonStaking.test.ts @@ -0,0 +1,48 @@ +import hre from 'hardhat' + +import { assert, expect } from 'chai' +import { graphProxyTests } from './lib/GraphProxy.test' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const horizonStakingAddressBookEntry = graph.horizon.addressBook.getEntry('HorizonStaking') +const HorizonStaking = graph.horizon.contracts.HorizonStaking +const graphProxyAdminAddressBookEntry = graph.horizon.addressBook.getEntry('GraphProxyAdmin') + +describe('HorizonStaking', function () { + testIf(4)('should set the right maxThawingPeriod', async function () { + const maxThawingPeriod = await HorizonStaking.getMaxThawingPeriod() + expect(maxThawingPeriod).to.equal(config.$global.maxThawingPeriod) + }) + + testIf(4)('should set delegationSlashingEnabled to false', async function () { + const delegationSlashingEnabled = await HorizonStaking.isDelegationSlashingEnabled() + expect(delegationSlashingEnabled).to.equal(false) + }) + + testIf(4)('should set a non zero thawing period', async function () { + if (process.env.IGNITION_DEPLOYMENT_TYPE === 'protocol') { + assert.fail('Deployment type "protocol": no historical state available') + } + const thawingPeriod = await HorizonStaking.__DEPRECATED_getThawingPeriod() + expect(thawingPeriod).to.not.equal(0) + }) + + it.skip('should set the right staking extension address') + + testIf(4)('should set the right subgraph data service address', async function () { + const subgraphDataServiceAddress = await HorizonStaking.getSubgraphService() + expect(subgraphDataServiceAddress).to.equal(config.$global.subgraphServiceAddress) + }) + + it.skip('should set the right allowed lock verifiers') +}) + +graphProxyTests('HorizonStaking', horizonStakingAddressBookEntry, graphProxyAdminAddressBookEntry.address) diff --git a/packages/horizon/test/deployment/PaymentsEscrow.test.ts b/packages/horizon/test/deployment/PaymentsEscrow.test.ts new file mode 100644 index 000000000..b930f4dc5 --- /dev/null +++ b/packages/horizon/test/deployment/PaymentsEscrow.test.ts @@ -0,0 +1,30 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' +import { transparentUpgradeableProxyTests } from './lib/TransparentUpgradeableProxy.tests' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const addressBookEntry = graph.horizon.addressBook.getEntry('PaymentsEscrow') +const PaymentsEscrow = graph.horizon.contracts.PaymentsEscrow + +describe('PaymentsEscrow', function () { + testIf(3)('should set the right withdrawEscrowThawingPeriod', async function () { + const withdrawEscrowThawingPeriod = await PaymentsEscrow.WITHDRAW_ESCROW_THAWING_PERIOD() + expect(withdrawEscrowThawingPeriod).to.equal(config.PaymentsEscrow.withdrawEscrowThawingPeriod) + }) +}) + +transparentUpgradeableProxyTests( + 'PaymentsEscrow', + addressBookEntry, + config.$global.governor as string, + Number(process.env.TEST_DEPLOYMENT_STEP ?? 1) >= 3, +) diff --git a/packages/horizon/test/deployment/RewardsManager.test.ts b/packages/horizon/test/deployment/RewardsManager.test.ts new file mode 100644 index 000000000..72b202be6 --- /dev/null +++ b/packages/horizon/test/deployment/RewardsManager.test.ts @@ -0,0 +1,25 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { graphProxyTests } from './lib/GraphProxy.test' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from './lib/testIf' +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const graphProxyAdminAddressBookEntry = graph.horizon.addressBook.getEntry('GraphProxyAdmin') +const rewardsManagerAddressBookEntry = graph.horizon.addressBook.getEntry('RewardsManager') +const RewardsManager = graph.horizon.contracts.RewardsManager + +describe('RewardsManager', function () { + testIf(4)('should set the right subgraph service', async function () { + const subgraphService = await RewardsManager.subgraphService() + expect(subgraphService).to.equal(config.$global.subgraphServiceAddress) + }) +}) + +graphProxyTests('RewardsManager', rewardsManagerAddressBookEntry, graphProxyAdminAddressBookEntry.address) diff --git a/packages/horizon/test/deployment/lib/GraphProxy.test.ts b/packages/horizon/test/deployment/lib/GraphProxy.test.ts new file mode 100644 index 000000000..ad158a811 --- /dev/null +++ b/packages/horizon/test/deployment/lib/GraphProxy.test.ts @@ -0,0 +1,24 @@ +import hre from 'hardhat' + +import { assert, expect } from 'chai' +import { AddressBookEntry } from '@graphprotocol/toolshed/deployments' +import { zeroPadValue } from 'ethers' + +export function graphProxyTests(contractName: string, addressBookEntry: AddressBookEntry, proxyAdmin: string, upgraded: boolean = false): void { + const testIf = () => (upgraded ? it : it.skip) + + describe(`${contractName}: GraphProxy`, function () { + testIf()('should target the correct implementation', async function () { + const implementation = await hre.ethers.provider.getStorage(addressBookEntry.address, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + if (!addressBookEntry.implementation) { + assert.fail('Implementation address is not set') + } + expect(implementation).to.equal(zeroPadValue(addressBookEntry.implementation, 32)) + }) + + it('should be owned by the proxy admin', async function () { + const admin = await hre.ethers.provider.getStorage(addressBookEntry.address, '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103') + expect(admin).to.equal(zeroPadValue(proxyAdmin, 32)) + }) + }) +} diff --git a/packages/horizon/test/deployment/lib/TransparentUpgradeableProxy.tests.ts b/packages/horizon/test/deployment/lib/TransparentUpgradeableProxy.tests.ts new file mode 100644 index 000000000..49bd6b1e0 --- /dev/null +++ b/packages/horizon/test/deployment/lib/TransparentUpgradeableProxy.tests.ts @@ -0,0 +1,58 @@ +import hre from 'hardhat' + +import { assert, expect } from 'chai' +import { AddressBookEntry } from '@graphprotocol/toolshed/deployments' +import { zeroPadValue } from 'ethers' + +export function transparentUpgradeableProxyTests(contractName: string, addressBookEntry: AddressBookEntry, owner: string, upgraded: boolean): void { + const testIf = () => (upgraded ? it : it.skip) + + describe(`${contractName}: implementation`, function () { + testIf()('should be locked for initialization', async function () { + if (!addressBookEntry.implementation) { + assert.fail('Implementation address is not set') + } + const initialized = await hre.ethers.provider.getStorage(addressBookEntry.implementation, '0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00') + expect(initialized).to.equal(zeroPadValue('0xffffffffffffffff', 32)) + }) + }) + + describe(`${contractName}: TransparentUpgradeableProxy`, function () { + testIf()('should be initialized', async function () { + // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/utils/Initializable.sol#L77 + const initialized = await hre.ethers.provider.getStorage(addressBookEntry.address, '0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00') + expect(initialized).to.equal(zeroPadValue('0x01', 32)) + }) + + testIf()('should target the correct implementation', async function () { + // https:// github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L37C53-L37C119 + const implementation = await hre.ethers.provider.getStorage(addressBookEntry.address, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + if (!addressBookEntry.implementation) { + assert.fail('Implementation address is not set') + } + expect(implementation).to.equal(zeroPadValue(addressBookEntry.implementation, 32)) + }) + + it('should be owned by the proxy admin', async function () { + // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L99 + const admin = await hre.ethers.provider.getStorage(addressBookEntry.address, '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103') + if (!addressBookEntry.proxyAdmin) { + assert.fail('Proxy admin address is not set') + } + expect(admin).to.equal(zeroPadValue(addressBookEntry.proxyAdmin, 32)) + }) + }) + + describe(`${contractName}: ProxyAdmin`, function () { + testIf()('should be owned by the governor', async function () { + if (process.env.IGNITION_DEPLOYMENT_TYPE === 'protocol') { + assert.fail('Deployment type "protocol": unknown governor address') + } + if (!addressBookEntry.proxyAdmin) { + assert.fail('Proxy admin address is not set') + } + const ownerStorage = await hre.ethers.provider.getStorage(addressBookEntry.proxyAdmin, 0) + expect(ownerStorage).to.equal(zeroPadValue(owner, 32)) + }) + }) +} diff --git a/packages/horizon/test/deployment/lib/testIf.ts b/packages/horizon/test/deployment/lib/testIf.ts new file mode 100644 index 000000000..a3863326c --- /dev/null +++ b/packages/horizon/test/deployment/lib/testIf.ts @@ -0,0 +1,4 @@ +const currentStep = Number(process.env.TEST_DEPLOYMENT_STEP ?? 1) +const testIf = (stepRequired: number) => (stepRequired <= currentStep ? it : it.skip) + +export { testIf } diff --git a/packages/horizon/test/integration/after-delegation-slashing-enabled/add-to-delegation-pool.test.ts b/packages/horizon/test/integration/after-delegation-slashing-enabled/add-to-delegation-pool.test.ts new file mode 100644 index 000000000..4a1ee683a --- /dev/null +++ b/packages/horizon/test/integration/after-delegation-slashing-enabled/add-to-delegation-pool.test.ts @@ -0,0 +1,97 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Add to delegation pool', () => { + let serviceProvider: HardhatEthersSigner + let delegator: HardhatEthersSigner + let signer: HardhatEthersSigner + let verifier: HardhatEthersSigner + let newVerifier: HardhatEthersSigner + let snapshotId: string + + const maxVerifierCut = 1000000n + const thawingPeriod = 2419200n // 28 days + const tokens = ethers.parseEther('100000') + const delegationTokens = ethers.parseEther('1000') + + const graph = hre.graph() + const { stake, delegate, addToDelegationPool } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + [serviceProvider, delegator, verifier, newVerifier, signer] = await graph.accounts.getTestAccounts() + + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, delegator.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, signer.address, ONE_MILLION) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Service provider stake + await stake(serviceProvider, [tokens]) + + // Create provision + const provisionTokens = ethers.parseEther('1000') + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, verifier.address, provisionTokens, maxVerifierCut, thawingPeriod) + + // Initialize delegation pool + await delegate(delegator, [serviceProvider.address, verifier.address, delegationTokens, 0n]) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('should recover delegation pool from invalid state by adding tokens', async () => { + // Send eth to new verifier to cover gas fees + await serviceProvider.sendTransaction({ + to: newVerifier.address, + value: ethers.parseEther('0.1'), + }) + + // Create a provision for the new verifier + const newVerifierProvisionTokens = ethers.parseEther('1000') + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, newVerifier.address, newVerifierProvisionTokens, maxVerifierCut, thawingPeriod) + + // Initialize delegation pool + const initialDelegation = ethers.parseEther('1000') + await delegate(delegator, [serviceProvider.address, newVerifier.address, initialDelegation, 0n]) + + const poolBefore = await horizonStaking.getDelegationPool(serviceProvider.address, newVerifier.address) + + // Slash entire provision (service provider tokens + delegation pool tokens) + const slashTokens = newVerifierProvisionTokens + initialDelegation + const tokensVerifier = newVerifierProvisionTokens / 2n + await horizonStaking.connect(newVerifier).slash(serviceProvider.address, slashTokens, tokensVerifier, newVerifier.address) + + // Delegating should revert since pool.tokens == 0 and pool.shares != 0 + const delegateTokens = ethers.parseEther('500') + await graphToken.connect(delegator).approve(horizonStaking.target, delegateTokens) + await expect( + horizonStaking.connect(delegator)['delegate(address,address,uint256,uint256)'](serviceProvider.address, newVerifier.address, delegateTokens, 0n), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidDelegationPoolState') + + // Add tokens to the delegation pool to recover the pool + const recoverPoolTokens = ethers.parseEther('500') + await addToDelegationPool(signer, [serviceProvider.address, newVerifier.address, recoverPoolTokens]) + + // Verify delegation pool is recovered + const poolAfter = await horizonStaking.getDelegationPool(serviceProvider.address, newVerifier.address) + expect(poolAfter.tokens).to.equal(recoverPoolTokens, 'Pool tokens should be recovered') + expect(poolAfter.shares).to.equal(poolBefore.shares, 'Pool shares should remain the same') + + // Delegation should now succeed + await delegate(delegator, [serviceProvider.address, newVerifier.address, delegateTokens, 0n]) + }) +}) diff --git a/packages/horizon/test/integration/after-delegation-slashing-enabled/slasher.test.ts b/packages/horizon/test/integration/after-delegation-slashing-enabled/slasher.test.ts new file mode 100644 index 000000000..34bece2dd --- /dev/null +++ b/packages/horizon/test/integration/after-delegation-slashing-enabled/slasher.test.ts @@ -0,0 +1,108 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Slasher', () => { + let snapshotId: string + let serviceProvider: HardhatEthersSigner + let delegator: HardhatEthersSigner + let verifier: HardhatEthersSigner + let verifierDestination: string + + const maxVerifierCut = 1000000n // 100% + const thawingPeriod = 2419200n // 28 days + const provisionTokens = ethers.parseEther('10000') + const delegationTokens = ethers.parseEther('1000') + + const graph = hre.graph() + const { provision, delegate } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + [serviceProvider, delegator, verifier] = await graph.accounts.getTestAccounts() + verifierDestination = ethers.Wallet.createRandom().address + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, delegator.address, ONE_MILLION) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + // Check that delegation slashing is enabled + const delegationSlashingEnabled = await horizonStaking.isDelegationSlashingEnabled() + expect(delegationSlashingEnabled).to.be.equal(true, 'Delegation slashing should be enabled') + + // Send funds to delegator + await graphToken.connect(serviceProvider).transfer(delegator.address, delegationTokens * 3n) + // Create provision + await provision(serviceProvider, [serviceProvider.address, verifier.address, provisionTokens, maxVerifierCut, thawingPeriod]) + + // Initialize delegation pool if it does not exist + await delegate(delegator, [serviceProvider.address, verifier.address, delegationTokens, 0n]) + + // Send eth to verifier to cover gas fees + await serviceProvider.sendTransaction({ + to: verifier.address, + value: ethers.parseEther('0.1'), + }) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('should slash service provider and delegation pool tokens', async () => { + const provisionBefore = await horizonStaking.getProvision(serviceProvider.address, verifier.address) + const poolBefore = await horizonStaking.getDelegationPool(serviceProvider.address, verifier.address) + const slashTokens = provisionBefore.tokens + poolBefore.tokens / 2n + const tokensVerifier = slashTokens / 2n + + // Slash the provision for all service provider and half of the delegation pool tokens + await horizonStaking.connect(verifier).slash(serviceProvider.address, slashTokens, tokensVerifier, verifierDestination) + + // Verify provision tokens should be slashed completely + const provisionAfter = await horizonStaking.getProvision(serviceProvider.address, verifier.address) + expect(provisionAfter.tokens).to.be.equal(0, 'Provision tokens should be slashed completely') + + // Verify the remaining half of the delegation pool tokens are not slashed + const poolAfter = await horizonStaking.getDelegationPool(serviceProvider.address, verifier.address) + expect(poolAfter.tokens).to.be.equal(poolBefore.tokens / 2n, 'Delegation pool tokens should be slashed') + expect(poolAfter.shares).to.equal(poolBefore.shares, 'Delegation pool shares should remain the same') + }) + + it('should handle delegation operations after complete provision is completely slashed', async () => { + const provisionBefore = await horizonStaking.getProvision(serviceProvider.address, verifier.address) + const poolBefore = await horizonStaking.getDelegationPool(serviceProvider.address, verifier.address) + const slashTokens = provisionBefore.tokens + poolBefore.tokens + const tokensVerifier = slashTokens / 2n + + // Slash the provision for all service provider and delegation pool tokens + await horizonStaking.connect(verifier).slash(serviceProvider.address, slashTokens, tokensVerifier, verifierDestination) + + const delegateAmount = ethers.parseEther('100') + const undelegateShares = ethers.parseEther('50') + + // Try to delegate to slashed pool + await graphToken.connect(delegator).approve(horizonStaking.target, delegateAmount) + await expect( + horizonStaking.connect(delegator)['delegate(address,address,uint256,uint256)'](serviceProvider.address, verifier.address, delegateAmount, 0n), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidDelegationPoolState') + + // Try to undelegate from slashed pool + await expect( + horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier.address, undelegateShares), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidDelegationPoolState') + + // Try to withdraw from slashed pool + await expect( + horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](serviceProvider.address, verifier.address, 1n), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidDelegationPoolState') + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/add-to-delegation-pool.test.ts b/packages/horizon/test/integration/after-transition-period/add-to-delegation-pool.test.ts new file mode 100644 index 000000000..a56cb2cc8 --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/add-to-delegation-pool.test.ts @@ -0,0 +1,82 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Add to delegation pool', () => { + let serviceProvider: HardhatEthersSigner + let delegator: HardhatEthersSigner + let signer: HardhatEthersSigner + let verifier: string + + const maxVerifierCut = 1000000n + const thawingPeriod = 2419200n // 28 days + const tokens = ethers.parseEther('100000') + const delegationTokens = ethers.parseEther('1000') + + const graph = hre.graph() + const { stake, delegate, addToDelegationPool, provision } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + [serviceProvider, delegator, signer] = await graph.accounts.getTestAccounts() + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, delegator.address, ONE_MILLION) + verifier = ethers.Wallet.createRandom().address + + // Service provider stake + await stake(serviceProvider, [tokens]) + + // Create provision + const provisionTokens = ethers.parseEther('1000') + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, verifier, provisionTokens, maxVerifierCut, thawingPeriod) + + // Send funds to delegator and signer + await graphToken.connect(serviceProvider).transfer(delegator.address, tokens) + await graphToken.connect(serviceProvider).transfer(signer.address, tokens) + + // Initialize delegation pool + await delegate(delegator, [serviceProvider.address, verifier, delegationTokens, 0n]) + }) + + it('should add tokens to an existing delegation pool', async () => { + const poolBefore = await horizonStaking.getDelegationPool(serviceProvider.address, verifier) + const addTokens = ethers.parseEther('500') + + // Add tokens to the delegation pool + await addToDelegationPool(signer, [serviceProvider.address, verifier, addTokens]) + + // Verify tokens were added to the pool + const poolAfter = await horizonStaking.getDelegationPool(serviceProvider.address, verifier) + expect(poolAfter.tokens).to.equal(poolBefore.tokens + addTokens, 'Pool tokens should increase') + expect(poolAfter.shares).to.equal(poolBefore.shares, 'Pool shares should remain the same') + }) + + it('should revert when adding tokens to a non-existent provision', async () => { + const invalidVerifier = await ethers.Wallet.createRandom().getAddress() + const addTokens = ethers.parseEther('500') + + // Attempt to add tokens to a non-existent provision + await expect( + horizonStaking.connect(signer).addToDelegationPool(serviceProvider.address, invalidVerifier, addTokens), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidProvision') + }) + + it('should revert when adding tokens to a provision with zero shares in delegation pool', async () => { + // Create new provision without any delegations + const newVerifier = await ethers.Wallet.createRandom().getAddress() + const newVerifierProvisionTokens = ethers.parseEther('1000') + await provision(serviceProvider, [serviceProvider.address, newVerifier, newVerifierProvisionTokens, maxVerifierCut, thawingPeriod]) + + // Attempt to add tokens to the new provision + const addTokens = ethers.parseEther('500') + await expect( + horizonStaking.connect(signer).addToDelegationPool(serviceProvider.address, newVerifier, addTokens), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidDelegationPool') + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/delegator.test.ts b/packages/horizon/test/integration/after-transition-period/delegator.test.ts new file mode 100644 index 000000000..3e2ca3ccb --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/delegator.test.ts @@ -0,0 +1,363 @@ +import hre from 'hardhat' + +import { ONE_MILLION, ZERO_ADDRESS } from '@graphprotocol/toolshed' +import { delegators } from '../../../tasks/test/fixtures/delegators' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Delegator', () => { + let delegator: HardhatEthersSigner + let serviceProvider: HardhatEthersSigner + let newServiceProvider: HardhatEthersSigner + let verifier: string + let newVerifier: string + let snapshotId: string + const maxVerifierCut = 1000000n + const thawingPeriod = 2419200n // 28 days + const tokens = ethers.parseEther('100000') + + // Subgraph service address is not set for integration tests + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + const graph = hre.graph() + const { provision, delegate } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + [serviceProvider, delegator, newServiceProvider] = await graph.accounts.getTestAccounts() + verifier = ethers.Wallet.createRandom().address + newVerifier = ethers.Wallet.createRandom().address + await setGRTBalance(graph.provider, graphToken.target, delegator.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, newServiceProvider.address, ONE_MILLION) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Create provision + await provision(serviceProvider, [serviceProvider.address, verifier, tokens, maxVerifierCut, thawingPeriod]) + + // Send GRT to delegator and new service provider to use for delegation and staking + await graphToken.connect(serviceProvider).transfer(delegator.address, tokens) + await graphToken.connect(serviceProvider).transfer(newServiceProvider.address, tokens) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('New Protocol Users', () => { + it('should allow delegator to delegate to a service provider and verifier, undelegate and withdraw tokens', async () => { + const delegatorBalanceBefore = await graphToken.balanceOf(delegator.address) + const delegationTokens = ethers.parseEther('1000') + + // Delegate tokens to the service provider and verifier + await delegate(delegator, [serviceProvider.address, verifier, delegationTokens, 0n]) + + // Verify delegation tokens were added to the delegation pool + const delegationPool = await horizonStaking.getDelegationPool( + serviceProvider.address, + verifier, + ) + expect(delegationPool.tokens).to.equal(delegationTokens, 'Delegation tokens were not added to the delegation pool') + + // Verify delegation shares were minted, since it's the first delegation + // shares should be equal to tokens + const delegation = await horizonStaking.getDelegation( + serviceProvider.address, + verifier, + delegator.address, + ) + expect(delegation.shares).to.equal(delegationTokens, 'Delegation shares were not minted correctly') + + // Undelegate tokens + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier, delegationTokens) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Withdraw tokens + await horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](serviceProvider.address, verifier, 1n) + + // Delegator should have received their tokens back + expect(await graphToken.balanceOf(delegator.address)).to.equal(delegatorBalanceBefore, 'Delegator balance should be the same as before delegation') + }) + + it('should revert when delegating to an invalid provision', async () => { + const delegateTokens = ethers.parseEther('1000') + const invalidVerifier = await ethers.Wallet.createRandom().getAddress() + + await graphToken.connect(delegator).approve(horizonStaking.target, delegateTokens) + await expect( + horizonStaking.connect(delegator)['delegate(address,address,uint256,uint256)'](serviceProvider.address, invalidVerifier, delegateTokens, 0n), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidProvision') + }) + + it('should revert when delegating less than minimum delegation', async () => { + const minDelegation = ethers.parseEther('1') + + await graphToken.connect(delegator).approve(horizonStaking.target, minDelegation - 1n) + await expect( + horizonStaking.connect(delegator)['delegate(address,address,uint256,uint256)'](serviceProvider.address, verifier, minDelegation - 1n, 0n), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInsufficientDelegationTokens') + }) + + describe('Delegation pool already exists', () => { + const newProvisionTokens = ethers.parseEther('10000') + const delegationPoolTokens = ethers.parseEther('1000') + + beforeEach(async () => { + // Delegate tokens to initialize the delegation pool + await delegate(delegator, [serviceProvider.address, verifier, delegationPoolTokens, 0n]) + + // Create new provision for a new service provider and verifier combo + await provision(newServiceProvider, [newServiceProvider.address, newVerifier, newProvisionTokens, maxVerifierCut, thawingPeriod]) + }) + + it('should allow delegator to undelegate and redelegate to new provider and verifier', async () => { + // Undelegate 20% of delegator's shares + const delegation = await horizonStaking.getDelegation( + serviceProvider.address, + verifier, + delegator.address, + ) + const undelegateShares = delegation.shares / 5n + + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier, undelegateShares) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + await delegate(delegator, [newServiceProvider.address, newVerifier, undelegateShares, 0n]) + + // Verify delegation shares were transferred to the new service provider + const delegationPool = await horizonStaking.getDelegationPool( + newServiceProvider.address, + newVerifier, + ) + expect(delegationPool.tokens).to.equal(undelegateShares, 'Delegation tokens were not transferred to the new service provider') + + const newDelegation = await horizonStaking.getDelegation( + newServiceProvider.address, + newVerifier, + delegator.address, + ) + expect(newDelegation.shares).to.equal(undelegateShares, 'Delegation shares were not transferred to the new service provider') + }) + + it('should handle multiple undelegations with nThawRequests = 0', async () => { + const delegatorBalanceBefore = await graphToken.balanceOf(delegator.address) + const delegationPool = await horizonStaking.getDelegationPool( + serviceProvider.address, + verifier, + ) + + const delegation = await horizonStaking.getDelegation( + serviceProvider.address, + verifier, + delegator.address, + ) + const undelegateShares = delegation.shares / 10n + + let totalExpectedTokens = 0n + let remainingShares = delegation.shares + let remainingPoolTokens = delegationPool.tokens + + // Undelegate shares in 3 different transactions + for (let i = 0; i < 3; i++) { + const tokensOut = (undelegateShares * remainingPoolTokens) / remainingShares + totalExpectedTokens += tokensOut + + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier, undelegateShares) + + remainingShares -= undelegateShares + remainingPoolTokens -= tokensOut + } + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Withdraw all thaw requests + await horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](serviceProvider.address, verifier, 0n) + + // Verify tokens were transferred to delegator + expect(await graphToken.balanceOf(delegator.address)) + .to.equal(delegatorBalanceBefore + totalExpectedTokens, 'Delegator balance should be the same as before delegation') + }) + + it('should handle multiple undelegations with nThawRequests = 1', async () => { + const delegatorBalanceBefore = await graphToken.balanceOf(delegator.address) + const delegationPool = await horizonStaking.getDelegationPool( + serviceProvider.address, + verifier, + ) + + const delegation = await horizonStaking.getDelegation( + serviceProvider.address, + verifier, + delegator.address, + ) + const undelegateShares = delegation.shares / 10n + + let totalExpectedTokens = 0n + let remainingShares = delegation.shares + let remainingPoolTokens = delegationPool.tokens + + // Undelegate shares in 3 different transactions + for (let i = 0; i < 3; i++) { + const tokensOut = (undelegateShares * remainingPoolTokens) / remainingShares + totalExpectedTokens += tokensOut + + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier, undelegateShares) + + remainingShares -= undelegateShares + remainingPoolTokens -= tokensOut + } + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Withdraw each thaw request individually + for (let i = 0; i < 3; i++) { + await horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](serviceProvider.address, verifier, 1n) + } + + // Verify tokens were transferred to delegator + expect(await graphToken.balanceOf(delegator.address)) + .to.equal(delegatorBalanceBefore + totalExpectedTokens, 'Delegator balance should be the same as before delegation') + }) + + it('should not revert when withdrawing before thawing period', async () => { + const delegatorBalanceBefore = await graphToken.balanceOf(delegator.address) + const delegation = await horizonStaking.getDelegation( + serviceProvider.address, + verifier, + delegator.address, + ) + const undelegateShares = delegation.shares / 10n + + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](serviceProvider.address, verifier, undelegateShares) + + await expect( + horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](serviceProvider.address, verifier, 1n), + ).to.not.be.reverted + + // Verify tokens were not transferred to delegator + expect(await graphToken.balanceOf(delegator.address)) + .to.equal(delegatorBalanceBefore, 'Delegator balance should be the same as before delegation') + }) + }) + }) + + describe('Existing Protocol Users', () => { + let indexer: HardhatEthersSigner + let existingDelegator: HardhatEthersSigner + let delegatedTokens: bigint + + let snapshotId: string + + before(async () => { + // Get indexer + indexer = await ethers.getSigner(delegators[0].delegations[0].indexerAddress) + + // Get delegator + existingDelegator = await ethers.getSigner(delegators[0].address) + + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, existingDelegator.address, ONE_MILLION) + + // Get delegated tokens + delegatedTokens = delegators[0].delegations[0].tokens + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('should be able to undelegate and withdraw tokens after the transition period', async () => { + // Get delegator's delegation + const delegation = await horizonStaking.getDelegation( + indexer.address, + subgraphServiceAddress, + existingDelegator.address, + ) + + // Undelegate tokens + await horizonStaking.connect(existingDelegator)['undelegate(address,address,uint256)'](indexer.address, subgraphServiceAddress, delegation.shares) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod) + 1]) + await ethers.provider.send('evm_mine', []) + + // Get delegator balance before withdrawing + const balanceBefore = await graphToken.balanceOf(existingDelegator.address) + + // Withdraw tokens + await horizonStaking.connect(existingDelegator)['withdrawDelegated(address,address,uint256)'](indexer.address, subgraphServiceAddress, 1n) + + // Get delegator balance after withdrawing + const balanceAfter = await graphToken.balanceOf(existingDelegator.address) + + // Expected balance after is the balance before plus the tokens minus the 0.5% delegation tax + // because the delegation was before the horizon upgrade, after the upgrade there is no tax + const expectedBalanceAfter = balanceBefore + delegatedTokens - (delegatedTokens * 5000n / 1000000n) + + // Verify tokens were transferred to delegator + expect(balanceAfter).to.equal(expectedBalanceAfter, 'Tokens were not transferred to delegator') + }) + + describe('Undelegated before horizon upgrade', () => { + before(async () => { + const delegatorFixture = delegators[2] + const delegationFixture = delegatorFixture.delegations[0] + + // Get signers + indexer = await ethers.getSigner(delegationFixture.indexerAddress) + existingDelegator = await ethers.getSigner(delegatorFixture.address) + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ONE_MILLION) + + // Verify delegator is undelegated + expect(delegatorFixture.undelegate).to.be.true + }) + + it('should allow delegator to withdraw tokens undelegated before horizon upgrade', async () => { + // Mine remaining blocks to complete thawing period + const oldThawingPeriod = 6646 + for (let i = 0; i < oldThawingPeriod + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get delegator balance before withdrawing + const balanceBefore = await graphToken.balanceOf(existingDelegator.address) + + // Withdraw tokens + await horizonStaking.connect(existingDelegator)['withdrawDelegated(address,address)'](indexer.address, ZERO_ADDRESS) + + // Get delegator balance after withdrawing + const balanceAfter = await graphToken.balanceOf(existingDelegator.address) + + // Expected balance after is the balance before plus the tokens minus the 0.5% delegation tax + // because the delegation was before the horizon upgrade, after the upgrade there is no tax + const expectedBalanceAfter = balanceBefore + tokens - (tokens * 5000n / 1000000n) + + // Verify tokens were transferred to delegator + expect(balanceAfter).to.equal(expectedBalanceAfter, 'Tokens were not transferred to delegator') + }) + }) + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/multicall.test.ts b/packages/horizon/test/integration/after-transition-period/multicall.test.ts new file mode 100644 index 000000000..93b561285 --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/multicall.test.ts @@ -0,0 +1,103 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Service Provider', () => { + let snapshotId: string + + const maxVerifierCut = 50_000n + const thawingPeriod = 2419200n + + const graph = hre.graph() + const { provision } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe(('New Protocol Users'), () => { + let serviceProvider: HardhatEthersSigner + + before(async () => { + [,,serviceProvider] = await graph.accounts.getTestAccounts() + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + }) + + it('should allow multicalling stake+provision calls', async () => { + const tokensToStake = ethers.parseEther('1000') + const tokensToProvision = ethers.parseEther('100') + + // check state before + const beforeProvision = await horizonStaking.getProvision(serviceProvider.address, subgraphServiceAddress) + expect(beforeProvision.tokens).to.equal(0) + expect(beforeProvision.maxVerifierCut).to.equal(0) + expect(beforeProvision.thawingPeriod).to.equal(0) + expect(beforeProvision.createdAt).to.equal(0) + + // multicall + await graphToken.connect(serviceProvider).approve(horizonStaking.target, tokensToStake) + const stakeCalldata = horizonStaking.interface.encodeFunctionData('stake', [tokensToStake]) + const provisionCalldata = horizonStaking.interface.encodeFunctionData('provision', [ + serviceProvider.address, + subgraphServiceAddress, + tokensToProvision, + maxVerifierCut, + thawingPeriod, + ]) + await horizonStaking.connect(serviceProvider).multicall([stakeCalldata, provisionCalldata]) + + // check state after + const block = await graph.provider.getBlock('latest') + const afterProvision = await horizonStaking.getProvision(serviceProvider.address, subgraphServiceAddress) + expect(afterProvision.tokens).to.equal(tokensToProvision) + expect(afterProvision.maxVerifierCut).to.equal(maxVerifierCut) + expect(afterProvision.thawingPeriod).to.equal(thawingPeriod) + expect(afterProvision.createdAt).to.equal(block?.timestamp) + }) + + it('should allow multicalling deprovision+unstake calls', async () => { + const tokens = ethers.parseEther('100') + + // setup state + await provision(serviceProvider, [serviceProvider.address, subgraphServiceAddress, tokens, maxVerifierCut, thawingPeriod]) + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, subgraphServiceAddress, tokens) + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // check state before + const beforeServiceProviderBalance = await graphToken.balanceOf(serviceProvider.address) + + // multicall + const deprovisionCalldata = horizonStaking.interface.encodeFunctionData('deprovision', [ + serviceProvider.address, + subgraphServiceAddress, + 0n, + ]) + const unstakeCalldata = horizonStaking.interface.encodeFunctionData('unstake', [tokens]) + await horizonStaking.connect(serviceProvider).multicall([deprovisionCalldata, unstakeCalldata]) + + // check state after + const afterProvision = await horizonStaking.getProvision(serviceProvider.address, subgraphServiceAddress) + const afterServiceProviderBalance = await graphToken.balanceOf(serviceProvider.address) + + expect(afterProvision.tokens).to.equal(0) + expect(afterProvision.maxVerifierCut).to.equal(maxVerifierCut) + expect(afterProvision.thawingPeriod).to.equal(thawingPeriod) + expect(afterServiceProviderBalance).to.equal(beforeServiceProviderBalance + tokens) + }) + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/operator.test.ts b/packages/horizon/test/integration/after-transition-period/operator.test.ts new file mode 100644 index 000000000..ed801362f --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/operator.test.ts @@ -0,0 +1,155 @@ +import hre from 'hardhat' + +import { ONE_MILLION, PaymentTypes } from '@graphprotocol/toolshed' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Operator', () => { + let serviceProvider: HardhatEthersSigner + let verifier: string + let operator: HardhatEthersSigner + + const tokens = ethers.parseEther('100000') + const maxVerifierCut = 1000000n // 100% + const thawingPeriod = 2419200n + + const graph = hre.graph() + const { stakeTo } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + // Get signers + [serviceProvider, operator] = await graph.accounts.getTestAccounts() + verifier = await ethers.Wallet.createRandom().getAddress() + await setGRTBalance(graph.provider, graphToken.target, operator.address, ONE_MILLION) + + // Authorize operator for verifier + await horizonStaking.connect(serviceProvider).setOperator(verifier, operator.address, true) + + // Fund operator with tokens + await graphToken.connect(serviceProvider).transfer(operator.address, tokens) + }) + + it('operator stakes using stakeTo and service provider unstakes', async () => { + const stakeTokens = ethers.parseEther('100') + const operatorBalanceBefore = await graphToken.balanceOf(operator.address) + const serviceProviderBalanceBefore = await graphToken.balanceOf(serviceProvider.address) + + // Operator stakes on behalf of service provider + await stakeTo(operator, [serviceProvider.address, stakeTokens]) + + // Service provider unstakes + await horizonStaking.connect(serviceProvider).unstake(stakeTokens) + + // Verify tokens were removed from operator's address + const operatorBalanceAfter = await graphToken.balanceOf(operator.address) + expect(operatorBalanceAfter).to.be.equal(operatorBalanceBefore - stakeTokens) + + // Verify tokens were added to service provider's address + const serviceProviderBalanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(serviceProviderBalanceAfter).to.be.equal(serviceProviderBalanceBefore + stakeTokens) + }) + + it('operator sets delegation fee cut', async () => { + const feeCut = 100000 // 10% + const paymentType = PaymentTypes.QueryFee + + // Operator sets delegation fee cut + await horizonStaking.connect(operator).setDelegationFeeCut( + serviceProvider.address, + verifier, + paymentType, + feeCut, + ) + + // Verify fee cut + const delegationFeeCut = await horizonStaking.getDelegationFeeCut( + serviceProvider.address, + verifier, + paymentType, + ) + expect(delegationFeeCut).to.equal(feeCut) + }) + + describe('Provision', () => { + before(async () => { + const provisionTokens = ethers.parseEther('10000') + // Operator stakes tokens to service provider + await stakeTo(operator, [serviceProvider.address, provisionTokens]) + + // Operator creates provision + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, verifier, provisionTokens, maxVerifierCut, thawingPeriod) + + // Verify provision + const provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.tokens).to.equal(provisionTokens) + }) + + it('operator thaws and deprovisions', async () => { + const thawTokens = ethers.parseEther('100') + const idleStakeBefore = await horizonStaking.getIdleStake(serviceProvider.address) + const provisionTokensBefore = (await horizonStaking.getProvision(serviceProvider.address, verifier)).tokens + + // Operator thaws tokens + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, thawTokens) + + // Increase time + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Operator deprovisions + await horizonStaking.connect(serviceProvider).deprovision(serviceProvider.address, verifier, 1n) + + // Verify idle stake increased by thawed tokens + const idleStakeAfter = await horizonStaking.getIdleStake(serviceProvider.address) + expect(idleStakeAfter).to.equal(idleStakeBefore + thawTokens) + + // Verify provision tokens decreased by thawed tokens + const provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.tokens).to.equal(provisionTokensBefore - thawTokens) + }) + + it('operator thaws and reprovisions', async () => { + const thawTokens = ethers.parseEther('100') + + // Operator thaws tokens + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, thawTokens) + + // Increase time + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Create new verifier and authorize operator + const newVerifier = await ethers.Wallet.createRandom().getAddress() + await horizonStaking.connect(serviceProvider).setOperator(newVerifier, operator.address, true) + + // Operator creates a provision for the new verifier + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, newVerifier, thawTokens, maxVerifierCut, thawingPeriod) + + // Operator reprovisions + await horizonStaking.connect(serviceProvider).reprovision(serviceProvider.address, verifier, newVerifier, 1n) + }) + + it('operator sets provision parameters', async () => { + const newMaxVerifierCut = 500000 // 50% + const newThawingPeriod = 7200 // 2 hours + + // Operator sets new parameters + await horizonStaking.connect(operator).setProvisionParameters( + serviceProvider.address, + verifier, + newMaxVerifierCut, + newThawingPeriod, + ) + + // Verify new parameters + const provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.maxVerifierCutPending).to.equal(newMaxVerifierCut) + expect(provision.thawingPeriodPending).to.equal(newThawingPeriod) + }) + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/pause.test.ts b/packages/horizon/test/integration/after-transition-period/pause.test.ts new file mode 100644 index 000000000..1857be606 --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/pause.test.ts @@ -0,0 +1,44 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Pausing', () => { + let snapshotId: string + + // Test addresses + let pauseGuardian: HardhatEthersSigner + let governor: HardhatEthersSigner + + const graph = hre.graph() + const controller = graph.horizon.contracts.Controller + + before(async () => { + pauseGuardian = await graph.accounts.getPauseGuardian() + governor = await graph.accounts.getGovernor() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('HorizonStaking', () => { + it('should be pauseable by pause guardian', async () => { + await controller.connect(pauseGuardian).setPaused(true) + expect(await controller.paused()).to.equal(true) + }) + + it('should be pauseable by governor', async () => { + await controller.connect(governor).setPaused(true) + expect(await controller.paused()).to.equal(true) + }) + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/service-provider.test.ts b/packages/horizon/test/integration/after-transition-period/service-provider.test.ts new file mode 100644 index 000000000..2a4de7261 --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/service-provider.test.ts @@ -0,0 +1,325 @@ +import hre from 'hardhat' + +import { ONE_MILLION, PaymentTypes } from '@graphprotocol/toolshed' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { indexers } from '../../../tasks/test/fixtures/indexers' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Service provider', () => { + let verifier: string + const thawingPeriod = 2419200n + + const graph = hre.graph() + const { stake, stakeToProvision, addToProvision } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + verifier = await ethers.Wallet.createRandom().getAddress() + }) + + describe('New Protocol Users', () => { + let serviceProvider: HardhatEthersSigner + const stakeAmount = ethers.parseEther('1000') + + before(async () => { + [serviceProvider] = await graph.accounts.getTestAccounts() + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + }) + + it('should allow staking tokens and unstake right after', async () => { + const serviceProviderBalanceBefore = await graphToken.balanceOf(serviceProvider.address) + await stake(serviceProvider, [stakeAmount]) + await horizonStaking.connect(serviceProvider).unstake(stakeAmount) + const serviceProviderBalanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(serviceProviderBalanceAfter).to.equal(serviceProviderBalanceBefore, 'Service provider balance should not change') + }) + + it('should revert if unstaking more than the idle stake', async () => { + const idleStake = await horizonStaking.getIdleStake(serviceProvider.address) + await expect(horizonStaking.connect(serviceProvider).unstake(idleStake + 1n)) + .to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInsufficientIdleStake') + .withArgs(idleStake + 1n, idleStake) + }) + + it('should be able to set delegation fee cut for payment type', async () => { + const delegationFeeCut = 10_000 // 10% + const paymentType = PaymentTypes.QueryFee + + await horizonStaking.connect(serviceProvider).setDelegationFeeCut( + serviceProvider.address, + verifier, + paymentType, + delegationFeeCut, + ) + + // Verify delegation fee cut was set + const delegationFeeCutAfterSet = await horizonStaking.getDelegationFeeCut( + serviceProvider.address, + verifier, + paymentType, + ) + expect(delegationFeeCutAfterSet).to.equal(delegationFeeCut, 'Delegation fee cut was not set') + }) + + it('should be able to set an operator for a verifier', async () => { + const operator = await ethers.Wallet.createRandom().getAddress() + await horizonStaking.connect(serviceProvider).setOperator( + verifier, + operator, + true, + ) + + // Verify operator was set + const isAuthorized = await horizonStaking.isAuthorized( + serviceProvider.address, + verifier, + operator, + ) + expect(isAuthorized).to.be.true + }) + + describe('Provision', () => { + let maxVerifierCut: bigint + + before(async () => { + const tokensToStake = ethers.parseEther('100000') + maxVerifierCut = 50_000n // 50% + const createProvisionTokens = ethers.parseEther('10000') + + // Add idle stake + await stake(serviceProvider, [tokensToStake]) + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, verifier, createProvisionTokens, maxVerifierCut, thawingPeriod) + }) + + it('should be able to stake to provision directly', async () => { + let provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + const provisionTokensBefore = provision.tokens + + // Add stake and provision on the same transaction + const stakeToProvisionTokens = ethers.parseEther('100') + await stakeToProvision(serviceProvider, [serviceProvider.address, verifier, stakeToProvisionTokens]) + + // Verify provision tokens were updated + provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.tokens).to.equal(provisionTokensBefore + stakeToProvisionTokens, 'Provision tokens were not updated') + }) + + it('should be able to add idle stake to provision', async () => { + let provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + const provisionTokensBefore = provision.tokens + + // Add to provision using idle stake + const addToProvisionTokens = ethers.parseEther('100') + await addToProvision(serviceProvider, [serviceProvider.address, verifier, addToProvisionTokens]) + + // Verify provision tokens were updated + provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.tokens).to.equal(provisionTokensBefore + addToProvisionTokens, 'Provision tokens were not updated') + }) + + it('should revert if creating a provision with tokens greater than the idle stake', async () => { + const newVerifier = await ethers.Wallet.createRandom().getAddress() + const idleStake = await horizonStaking.getIdleStake(serviceProvider.address) + await expect(horizonStaking.connect(serviceProvider).provision( + serviceProvider.address, newVerifier, idleStake + 1n, maxVerifierCut, thawingPeriod)) + .to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInsufficientIdleStake') + .withArgs(idleStake + 1n, idleStake) + }) + + it('should revert if adding to provision with tokens greater than the idle stake', async () => { + const idleStake = await horizonStaking.getIdleStake(serviceProvider.address) + await expect(horizonStaking.connect(serviceProvider).addToProvision( + serviceProvider.address, verifier, idleStake + 1n)) + .to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInsufficientIdleStake') + .withArgs(idleStake + 1n, idleStake) + }) + + describe('Thawing', () => { + describe('Deprovisioning', () => { + it('should be able to thaw tokens, wait for thawing period, deprovision and unstake', async () => { + const serviceProviderBalanceBefore = await graphToken.balanceOf(serviceProvider.address) + const tokensToThaw = ethers.parseEther('100') + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, tokensToThaw) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Deprovision the single thaw request + await horizonStaking.connect(serviceProvider).deprovision(serviceProvider.address, verifier, 1n) + + // Unstake + await horizonStaking.connect(serviceProvider).unstake(tokensToThaw) + + // Verify service provider balance increased by the unstake tokens + const serviceProviderBalanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(serviceProviderBalanceAfter).to.equal(serviceProviderBalanceBefore + tokensToThaw, 'Service provider balance should increase by the thawed tokens') + }) + + it('should be able to create multiple thaw requests and deprovision all at once', async () => { + const serviceProviderIdleStakeBefore = await horizonStaking.getIdleStake(serviceProvider.address) + const tokensToThaw = ethers.parseEther('100') + // Create 10 thaw requests for 100 GRT each + for (let i = 0; i < 10; i++) { + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, tokensToThaw) + } + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Deprovision all thaw requests + await horizonStaking.connect(serviceProvider).deprovision(serviceProvider.address, verifier, 10n) + + // Verify service provider idle stake increased by the deprovisioned tokens + const serviceProviderIdleStakeAfter = await horizonStaking.getIdleStake(serviceProvider.address) + expect(serviceProviderIdleStakeAfter).to.equal(serviceProviderIdleStakeBefore + tokensToThaw * 10n, 'Service provider idle stake should increase by the deprovisioned tokens') + }) + + it('should be able to create multiple thaw requests and deprovision one by one', async () => { + const serviceProviderIdleStakeBefore = await horizonStaking.getIdleStake(serviceProvider.address) + const tokensToThaw = ethers.parseEther('100') + // Create 3 thaw requests for 100 GRT each + for (let i = 0; i < 3; i++) { + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, tokensToThaw) + } + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Deprovision one by one + for (let i = 0; i < 3; i++) { + await horizonStaking.connect(serviceProvider).deprovision(serviceProvider.address, verifier, 1n) + } + + // Verify service provider idle stake increased by the deprovisioned tokens + const serviceProviderIdleStakeAfter = await horizonStaking.getIdleStake(serviceProvider.address) + expect(serviceProviderIdleStakeAfter).to.equal(serviceProviderIdleStakeBefore + tokensToThaw * 3n, 'Service provider idle stake should increase by the deprovisioned tokens') + }) + }) + + describe('Reprovisioning', () => { + let newVerifier: string + + before(async () => { + newVerifier = await ethers.Wallet.createRandom().getAddress() + await horizonStaking.connect(serviceProvider).provision(serviceProvider.address, newVerifier, ethers.parseEther('100'), maxVerifierCut, thawingPeriod) + }) + + it('should be able to thaw tokens, wait for thawing period and reprovision', async () => { + const serviceProviderNewProvisionSizeBefore = (await horizonStaking.getProvision(serviceProvider.address, newVerifier)).tokens + const serviceProviderOldProvisionSizeBefore = (await horizonStaking.getProvision(serviceProvider.address, verifier)).tokens + const tokensToThaw = ethers.parseEther('100') + + // Thaw tokens + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, tokensToThaw) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod)]) + await ethers.provider.send('evm_mine', []) + + // Reprovision + await horizonStaking.connect(serviceProvider).reprovision(serviceProvider.address, verifier, newVerifier, 1n) + + // Verify new provision size increased by the reprovisioned tokens + const serviceProviderNewProvisionSizeAfter = (await horizonStaking.getProvision(serviceProvider.address, newVerifier)).tokens + expect(serviceProviderNewProvisionSizeAfter).to.equal(serviceProviderNewProvisionSizeBefore + tokensToThaw, 'New provision size should increase by the reprovisioned tokens') + + // Verify old provision size decreased by the reprovisioned tokens + const serviceProviderOldProvisionSizeAfter = (await horizonStaking.getProvision(serviceProvider.address, verifier)).tokens + expect(serviceProviderOldProvisionSizeAfter).to.equal(serviceProviderOldProvisionSizeBefore - tokensToThaw, 'Old provision size should decrease by the reprovisioned tokens') + }) + + it('should revert if thawing period is not over', async () => { + const tokensToThaw = ethers.parseEther('100') + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier, tokensToThaw) + + await expect(horizonStaking.connect(serviceProvider).reprovision(serviceProvider.address, verifier, newVerifier, 1n)) + .to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingInvalidZeroTokens') + }) + }) + }) + + describe('Set parameters', () => { + it('should be able to set provision parameters', async () => { + const newMaxVerifierCut = 20_000 // 20% + const newThawingPeriod = 1000 + + // Set parameters + await horizonStaking.connect(serviceProvider).setProvisionParameters( + serviceProvider.address, + verifier, + newMaxVerifierCut, + newThawingPeriod, + ) + + // Verify parameters were set as pending + const provision = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provision.maxVerifierCutPending).to.equal(newMaxVerifierCut, 'Max verifier cut should be set') + expect(provision.thawingPeriodPending).to.equal(newThawingPeriod, 'Thawing period should be set') + }) + }) + }) + }) + + describe('Existing Protocol Users', () => { + let indexer: HardhatEthersSigner + let tokensToUnstake: bigint + let snapshotId: string + + before(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ONE_MILLION) + // Set tokens + tokensToUnstake = ethers.parseEther('10000') + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('should be able to unstake tokens without thawing', async () => { + // Get balance before unstaking + const balanceBefore = await graphToken.balanceOf(indexer.address) + + // Unstake tokens + await horizonStaking.connect(indexer).unstake(tokensToUnstake) + + // Verify tokens are transferred back to service provider + const balanceAfter = await graphToken.balanceOf(indexer.address) + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + + it('should be able to withdraw locked tokens after thawing period', async () => { + const oldThawingPeriod = 6646 + + // Mine blocks to complete thawing period + for (let i = 0; i < oldThawingPeriod + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(indexer.address) + + // Withdraw tokens + await horizonStaking.connect(indexer).withdraw() + + // Get balance after withdrawing + const balanceAfter = await graphToken.balanceOf(indexer.address) + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/slasher.test.ts b/packages/horizon/test/integration/after-transition-period/slasher.test.ts new file mode 100644 index 000000000..93db7b6dc --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/slasher.test.ts @@ -0,0 +1,131 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Slasher', () => { + let snapshotId: string + let serviceProvider: HardhatEthersSigner + let delegator: HardhatEthersSigner + let verifier: HardhatEthersSigner + let slashingVerifier: HardhatEthersSigner + let verifierDestination: string + + const maxVerifierCut = 1000000n // 100% + const thawingPeriod = 2419200n // 28 days + const provisionTokens = ethers.parseEther('10000') + const delegationTokens = ethers.parseEther('1000') + + const graph = hre.graph() + const { provision, delegate } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + [serviceProvider, delegator, verifier, slashingVerifier] = await graph.accounts.getTestAccounts() + verifierDestination = ethers.Wallet.createRandom().address + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + await setGRTBalance(graph.provider, graphToken.target, delegator.address, ONE_MILLION) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Create provision + await provision(serviceProvider, [serviceProvider.address, verifier.address, provisionTokens, maxVerifierCut, thawingPeriod]) + + // Send funds to delegator + await graphToken.connect(serviceProvider).transfer(delegator.address, delegationTokens * 3n) + + // Initialize delegation pool if it does not exist + await delegate(delegator, [serviceProvider.address, verifier.address, delegationTokens, 0n]) + + // Send eth to verifier to cover gas fees + await serviceProvider.sendTransaction({ + to: verifier, + value: ethers.parseEther('0.1'), + }) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('should slash service provider tokens', async () => { + const slashTokens = ethers.parseEther('1000') + const tokensVerifier = slashTokens / 2n + const provisionBefore = await horizonStaking.getProvision(serviceProvider.address, verifier) + const verifierDestinationBalanceBefore = await graphToken.balanceOf(verifierDestination) + + // Slash provision + await horizonStaking.connect(verifier).slash(serviceProvider.address, slashTokens, tokensVerifier, verifierDestination) + + // Verify provision tokens are reduced + const provisionAfter = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provisionAfter.tokens).to.equal(provisionBefore.tokens - slashTokens, 'Provision tokens should be reduced') + + // Verify verifier destination received the tokens + const verifierDestinationBalanceAfter = await graphToken.balanceOf(verifierDestination) + expect(verifierDestinationBalanceAfter).to.equal(verifierDestinationBalanceBefore + tokensVerifier, 'Verifier destination should receive the tokens') + }) + + it('should slash service provider tokens when tokens are thawing', async () => { + // Start thawing + const thawTokens = ethers.parseEther('1000') + await horizonStaking.connect(serviceProvider).thaw(serviceProvider.address, verifier.address, thawTokens) + + const slashTokens = ethers.parseEther('500') + const tokensVerifier = slashTokens / 2n + const provisionBefore = await horizonStaking.getProvision(serviceProvider.address, verifier) + const verifierDestinationBalanceBefore = await graphToken.balanceOf(verifierDestination) + + // Slash provision + await horizonStaking.connect(verifier).slash(serviceProvider.address, slashTokens, tokensVerifier, verifierDestination) + + // Verify provision tokens are reduced + const provisionAfter = await horizonStaking.getProvision(serviceProvider.address, verifier) + expect(provisionAfter.tokens).to.equal(provisionBefore.tokens - slashTokens, 'Provision tokens should be reduced') + + // Verify verifier destination received the tokens + const verifierDestinationBalanceAfter = await graphToken.balanceOf(verifierDestination) + expect(verifierDestinationBalanceAfter).to.equal(verifierDestinationBalanceBefore + tokensVerifier, 'Verifier destination should receive the tokens') + }) + + it('should only slash service provider when delegation slashing is disabled', async () => { + const slashTokens = provisionTokens + delegationTokens + const tokensVerifier = slashTokens / 2n + + // Send eth to slashing verifier to cover gas fees + await serviceProvider.sendTransaction({ + to: slashingVerifier.address, + value: ethers.parseEther('0.5'), + }) + + // Create provision for slashing verifier + await provision(serviceProvider, [serviceProvider.address, slashingVerifier.address, provisionTokens, maxVerifierCut, thawingPeriod]) + + // Initialize delegation pool for slashing verifier + await delegate(serviceProvider, [serviceProvider.address, slashingVerifier.address, delegationTokens, 0n]) + + // Get delegation pool state before slashing + const poolBefore = await horizonStaking.getDelegationPool(serviceProvider.address, slashingVerifier.address) + + // Slash the provision for all service provider and delegation pool tokens + await horizonStaking.connect(slashingVerifier).slash(serviceProvider.address, slashTokens, tokensVerifier, verifierDestination) + + // Verify provision tokens were completely slashed + const provisionAfter = await horizonStaking.getProvision(serviceProvider.address, slashingVerifier.address) + expect(provisionAfter.tokens).to.be.equal(0, 'Provision tokens should be slashed completely') + + // Verify delegation pool tokens are not reduced + const poolAfter = await horizonStaking.getDelegationPool(serviceProvider.address, slashingVerifier.address) + expect(poolAfter.tokens).to.equal(poolBefore.tokens, 'Delegation pool tokens should not be reduced') + expect(poolAfter.shares).to.equal(poolBefore.shares, 'Delegation pool shares should remain the same') + }) +}) diff --git a/packages/horizon/test/integration/after-transition-period/upgrade.test.ts b/packages/horizon/test/integration/after-transition-period/upgrade.test.ts new file mode 100644 index 000000000..15f5d8ff6 --- /dev/null +++ b/packages/horizon/test/integration/after-transition-period/upgrade.test.ts @@ -0,0 +1,83 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { zeroPadValue } from 'ethers' + +const abi = [{ + 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', +}] + +describe('Upgrading contracts', () => { + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + const graph = hre.graph() + + before(async () => { + governor = await graph.accounts.getGovernor() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('GraphPayments should be upgradeable by the governor', async () => { + const entry = graph.horizon.addressBook.getEntry('GraphPayments') + const proxyAdmin = entry.proxyAdmin! + const proxy = entry.address! + + // Upgrade the contract to a different implementation + // the implementation we use is the GraphTallyCollector, this is obviously absurd but we just need an address with code on it + const ProxyAdmin = new ethers.Contract(proxyAdmin, abi, governor) + await ProxyAdmin.upgradeAndCall(proxy, graph.horizon.contracts.GraphTallyCollector.target, '0x') + + // https:// github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L37C53-L37C119 + const implementation = await hre.ethers.provider.getStorage(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + expect(zeroPadValue(implementation, 32)).to.equal(zeroPadValue(graph.horizon.contracts.GraphTallyCollector.target as string, 32)) + }) + + it('PaymentsEscrow should be upgradeable by the governor', async () => { + const entry = graph.horizon.addressBook.getEntry('PaymentsEscrow') + const proxyAdmin = entry.proxyAdmin! + const proxy = entry.address! + + // Upgrade the contract to a different implementation + // the implementation we use is the GraphTallyCollector, this is obviously absurd but we just need an address with code on it + const ProxyAdmin = new ethers.Contract(proxyAdmin, abi, governor) + await ProxyAdmin.upgradeAndCall(proxy, graph.horizon.contracts.GraphTallyCollector.target, '0x') + + // https:// github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L37C53-L37C119 + const implementation = await hre.ethers.provider.getStorage(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + expect(zeroPadValue(implementation, 32)).to.equal(zeroPadValue(graph.horizon.contracts.GraphTallyCollector.target as string, 32)) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/delegator.test.ts b/packages/horizon/test/integration/during-transition-period/delegator.test.ts new file mode 100644 index 000000000..d267af6b2 --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/delegator.test.ts @@ -0,0 +1,141 @@ +import hre from 'hardhat' + +import { delegators } from '../../../tasks/test/fixtures/delegators' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ZERO_ADDRESS } from '@graphprotocol/toolshed' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Delegator', () => { + let snapshotId: string + + const thawingPeriod = 2419200n // 28 days + + // Subgraph service address is not set for integration tests + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Existing Protocol Users', () => { + describe('User undelegated before horizon was deployed', () => { + let indexer: HardhatEthersSigner + let delegator: HardhatEthersSigner + let tokens: bigint + + before(async () => { + const delegatorFixture = delegators[2] + const delegationFixture = delegatorFixture.delegations[0] + + // Verify delegator is undelegated + expect(delegatorFixture.undelegate).to.be.true + + // Get signers + indexer = await ethers.getSigner(delegationFixture.indexerAddress) + delegator = await ethers.getSigner(delegatorFixture.address) + + // Get tokens + tokens = delegationFixture.tokens + }) + + it('should be able to withdraw their tokens after the thawing period', async () => { + // Get the thawing period + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Mine remaining blocks to complete thawing period + for (let i = 0; i < Number(thawingPeriod) + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get delegator balance before withdrawing + const balanceBefore = await graphToken.balanceOf(delegator.address) + + // Withdraw tokens + await horizonStaking.connect(delegator)['withdrawDelegated(address,address)'](indexer.address, ZERO_ADDRESS) + + // Get delegator balance after withdrawing + const balanceAfter = await graphToken.balanceOf(delegator.address) + + // Expected balance after is the balance before plus the tokens minus the 0.5% delegation tax + const expectedBalanceAfter = balanceBefore + tokens - (tokens * 5000n / 1000000n) + + // Verify tokens are withdrawn + expect(balanceAfter).to.equal(expectedBalanceAfter) + }) + + it('should revert if the thawing period has not passed', async () => { + // Withdraw tokens + await expect( + horizonStaking.connect(delegator)['withdrawDelegated(address,address)'](indexer.address, ZERO_ADDRESS), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingNothingToWithdraw') + }) + }) + + describe('Transition period is over', () => { + let governor: HardhatEthersSigner + let indexer: HardhatEthersSigner + let delegator: HardhatEthersSigner + let tokens: bigint + + before(async () => { + const delegatorFixture = delegators[0] + const delegationFixture = delegatorFixture.delegations[0] + + // Get signers + governor = await graph.accounts.getGovernor() + indexer = await ethers.getSigner(delegationFixture.indexerAddress) + delegator = await ethers.getSigner(delegatorFixture.address) + + // Get tokens + tokens = delegationFixture.tokens + }) + + it('should be able to undelegate during transition period and withdraw after transition period', async () => { + // Get delegator's delegation + const delegation = await horizonStaking.getDelegation( + indexer.address, + subgraphServiceAddress, + delegator.address, + ) + + // Undelegate tokens + await horizonStaking.connect(delegator)['undelegate(address,address,uint256)'](indexer.address, subgraphServiceAddress, delegation.shares) + + // Wait for thawing period + await ethers.provider.send('evm_increaseTime', [Number(thawingPeriod) + 1]) + await ethers.provider.send('evm_mine', []) + + // Clear thawing period + await horizonStaking.connect(governor).clearThawingPeriod() + + // Get delegator balance before withdrawing + const balanceBefore = await graphToken.balanceOf(delegator.address) + + // Withdraw tokens + await horizonStaking.connect(delegator)['withdrawDelegated(address,address,uint256)'](indexer.address, ZERO_ADDRESS, BigInt(1)) + + // Get delegator balance after withdrawing + const balanceAfter = await graphToken.balanceOf(delegator.address) + + // Expected balance after is the balance before plus the tokens minus the 0.5% delegation tax + // because the delegation was before the horizon upgrade, after the upgrade there is no tax + const expectedBalanceAfter = balanceBefore + tokens - (tokens * 5000n / 1000000n) + + // Verify tokens are withdrawn + expect(balanceAfter).to.equal(expectedBalanceAfter) + }) + }) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/multicall.test.ts b/packages/horizon/test/integration/during-transition-period/multicall.test.ts new file mode 100644 index 000000000..fff68165c --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/multicall.test.ts @@ -0,0 +1,100 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { ONE_MILLION, PaymentTypes } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Service Provider', () => { + let snapshotId: string + + const maxVerifierCut = 50_000n + const thawingPeriod = 2419200n + + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe(('New Protocol Users'), () => { + let serviceProvider: HardhatEthersSigner + + before(async () => { + [,,serviceProvider] = await graph.accounts.getTestAccounts() + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + }) + + it('should allow multicalling stake+provision calls', async () => { + const tokensToStake = ethers.parseEther('1000') + const tokensToProvision = ethers.parseEther('100') + + // check state before + const beforeProvision = await horizonStaking.getProvision(serviceProvider.address, subgraphServiceAddress) + expect(beforeProvision.tokens).to.equal(0) + expect(beforeProvision.maxVerifierCut).to.equal(0) + expect(beforeProvision.thawingPeriod).to.equal(0) + expect(beforeProvision.createdAt).to.equal(0) + + // multicall + await graphToken.connect(serviceProvider).approve(horizonStaking.target, tokensToStake) + const stakeCalldata = horizonStaking.interface.encodeFunctionData('stake', [tokensToStake]) + const provisionCalldata = horizonStaking.interface.encodeFunctionData('provision', [ + serviceProvider.address, + subgraphServiceAddress, + tokensToProvision, + maxVerifierCut, + thawingPeriod, + ]) + await horizonStaking.connect(serviceProvider).multicall([stakeCalldata, provisionCalldata]) + + // check state after + const block = await graph.provider.getBlock('latest') + const afterProvision = await horizonStaking.getProvision(serviceProvider.address, subgraphServiceAddress) + expect(afterProvision.tokens).to.equal(tokensToProvision) + expect(afterProvision.maxVerifierCut).to.equal(maxVerifierCut) + expect(afterProvision.thawingPeriod).to.equal(thawingPeriod) + expect(afterProvision.createdAt).to.equal(block?.timestamp) + }) + + it('should allow multicalling delegation parameter set calls', async () => { + // check state before + const beforeIndexingRewards = await horizonStaking.getDelegationFeeCut(serviceProvider.address, subgraphServiceAddress, PaymentTypes.IndexingRewards) + const beforeQueryFee = await horizonStaking.getDelegationFeeCut(serviceProvider.address, subgraphServiceAddress, PaymentTypes.QueryFee) + expect(beforeIndexingRewards).to.equal(0) + expect(beforeQueryFee).to.equal(0) + + // multicall + const indexingRewardsCalldata = horizonStaking.interface.encodeFunctionData('setDelegationFeeCut', [ + serviceProvider.address, + subgraphServiceAddress, + PaymentTypes.IndexingRewards, + 10_000n, + ]) + const queryFeeCalldata = horizonStaking.interface.encodeFunctionData('setDelegationFeeCut', [ + serviceProvider.address, + subgraphServiceAddress, + PaymentTypes.QueryFee, + 12_345n, + ]) + await horizonStaking.connect(serviceProvider).multicall([indexingRewardsCalldata, queryFeeCalldata]) + + // check state after + const afterIndexingRewards = await horizonStaking.getDelegationFeeCut(serviceProvider.address, subgraphServiceAddress, PaymentTypes.IndexingRewards) + const afterQueryFee = await horizonStaking.getDelegationFeeCut(serviceProvider.address, subgraphServiceAddress, PaymentTypes.QueryFee) + expect(afterIndexingRewards).to.equal(10_000n) + expect(afterQueryFee).to.equal(12_345n) + }) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/operator.test.ts b/packages/horizon/test/integration/during-transition-period/operator.test.ts new file mode 100644 index 000000000..858d9ce72 --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/operator.test.ts @@ -0,0 +1,93 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { generatePOI } from '@graphprotocol/toolshed' +import { getEventData } from '@graphprotocol/toolshed/hardhat' +import { indexers } from '../../../tasks/test/fixtures/indexers' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' + +describe('Operator', () => { + let snapshotId: string + + // Subgraph service address is not set for integration tests + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Existing Protocol Users', () => { + let indexer: HardhatEthersSigner + let operator: HardhatEthersSigner + let allocationID: string + let allocationTokens: bigint + let delegationIndexingCut: number + + before(async () => { + const indexerFixture = indexers[0] + const allocationFixture = indexerFixture.allocations[0] + + // Get signers + indexer = await ethers.getSigner(indexerFixture.address) + ;[operator] = await graph.accounts.getTestAccounts() + + // Get allocation details + allocationID = allocationFixture.allocationID + allocationTokens = allocationFixture.tokens + delegationIndexingCut = indexerFixture.indexingRewardCut + + // Set the operator + await horizonStaking.connect(indexer).setOperator(subgraphServiceAddress, operator.address, true) + }) + + it('should allow the operator to close an open legacy allocation and collect rewards', async () => { + // Use a non-zero POI + const poi = generatePOI('poi') + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Get delegation pool before closing allocation + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Mine blocks to simulate time passing + const halfThawingPeriod = Number(thawingPeriod) / 2 + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get idle stake before closing allocation + const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) + + // Close allocation + const tx = await (horizonStaking as HorizonStakingExtension).connect(operator).closeAllocation(allocationID, poi) + const eventData = await getEventData(tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)') + const rewards = eventData[2] + + // Verify rewards are not zero + expect(rewards).to.not.equal(0, 'Rewards were not transferred to service provider') + + // Verify rewards minus delegation cut are restaked + const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) + const idleStakeRewardsTokens = rewards * BigInt(delegationIndexingCut) / 1000000n + expect(idleStakeAfter).to.equal(idleStakeBefore + allocationTokens + idleStakeRewardsTokens, 'Rewards were not restaked') + + // Verify delegators cut is added to delegation pool + const delegationPool = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPool.tokens + const delegationRewardsTokens = rewards - idleStakeRewardsTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationRewardsTokens, 'Delegators cut was not added to delegation pool') + }) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/permissionless.test.ts b/packages/horizon/test/integration/during-transition-period/permissionless.test.ts new file mode 100644 index 000000000..85da398e5 --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/permissionless.test.ts @@ -0,0 +1,69 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { generatePOI } from '@graphprotocol/toolshed' +import { indexers } from '../../../tasks/test/fixtures/indexers' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' + +describe('Permissionless', () => { + let snapshotId: string + + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + const epochManager = graph.horizon.contracts.EpochManager + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('After max allocation epochs', () => { + let indexer: HardhatEthersSigner + let anySigner: HardhatEthersSigner + let allocationID: string + let allocationTokens: bigint + + before(async () => { + // Get signers + indexer = await ethers.getSigner(indexers[0].address) + ;[anySigner] = await graph.accounts.getTestAccounts() + + // ensure anySigner is not operator for the indexer + await horizonStaking.connect(indexer).setOperator(subgraphServiceAddress, anySigner.address, false) + + // Get allocation details + allocationID = indexers[0].allocations[0].allocationID + allocationTokens = indexers[0].allocations[0].tokens + }) + + it('should allow any user to close an allocation after 28 epochs', async () => { + // Get indexer's idle stake before closing allocation + const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) + + // Mine blocks to simulate 28 epochs passing + const startingEpoch = await epochManager.currentEpoch() + while (await epochManager.currentEpoch() - startingEpoch < 28) { + await ethers.provider.send('evm_mine', []) + } + + // Close allocation + const poi = generatePOI('poi') + await (horizonStaking as HorizonStakingExtension).connect(anySigner).closeAllocation(allocationID, poi) + + // Get indexer's idle stake after closing allocation + const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) + + // Verify allocation tokens were added to indexer's idle stake but no rewards were collected + expect(idleStakeAfter).to.be.equal(idleStakeBefore + allocationTokens) + }) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/service-provider.test.ts b/packages/horizon/test/integration/during-transition-period/service-provider.test.ts new file mode 100644 index 000000000..23c0f0f30 --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/service-provider.test.ts @@ -0,0 +1,476 @@ +import hre from 'hardhat' + +import { generatePOI, ONE_MILLION } from '@graphprotocol/toolshed' +import { getEventData, setGRTBalance } from '@graphprotocol/toolshed/hardhat' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { indexers } from '../../../tasks/test/fixtures/indexers' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' + +describe('Service Provider', () => { + let snapshotId: string + + const graph = hre.graph() + const { stake, collect } = graph.horizon.actions + const horizonStaking = graph.horizon.contracts.HorizonStaking + const horizonStakingExtension = horizonStaking as HorizonStakingExtension + const graphToken = graph.horizon.contracts.L2GraphToken + + // Subgraph service address is not set for integration tests + const subgraphServiceAddress = '0x0000000000000000000000000000000000000000' + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe(('New Protocol Users'), () => { + let serviceProvider: HardhatEthersSigner + let tokensToStake = ethers.parseEther('1000') + + before(async () => { + [,,serviceProvider] = await graph.accounts.getTestAccounts() + await setGRTBalance(graph.provider, graphToken.target, serviceProvider.address, ONE_MILLION) + + // Stake tokens to service provider + await stake(serviceProvider, [tokensToStake]) + }) + + it('should allow service provider to unstake and withdraw after thawing period', async () => { + const tokensToUnstake = ethers.parseEther('100') + const balanceBefore = await graphToken.balanceOf(serviceProvider.address) + + // First unstake request + await horizonStaking.connect(serviceProvider).unstake(tokensToUnstake) + + // During transition period, tokens are locked by thawing period + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Mine remaining blocks to complete thawing period + for (let i = 0; i < Number(thawingPeriod) + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Now we can withdraw + await horizonStaking.connect(serviceProvider).withdraw() + const balanceAfter = await graphToken.balanceOf(serviceProvider.address) + + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + + it('should handle multiple unstake requests correctly', async () => { + // Make multiple unstake requests + const request1 = ethers.parseEther('50') + const request2 = ethers.parseEther('75') + + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // First unstake request + await horizonStaking.connect(serviceProvider).unstake(request1) + + // Mine half of thawing period blocks + const halfThawingPeriod = Number(thawingPeriod) / 2 + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Second unstake request + await horizonStaking.connect(serviceProvider).unstake(request2) + + // Mine remaining blocks to complete first unstake thawing period + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Check that withdraw reverts since thawing period is not complete + await expect( + horizonStaking.connect(serviceProvider).withdraw(), + ).to.be.revertedWithCustomError(horizonStaking, 'HorizonStakingStillThawing') + + // Mine remaining blocks to complete thawing period + for (let i = 0; i < halfThawingPeriod + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(serviceProvider.address) + + // Withdraw all thawed tokens + await horizonStaking.connect(serviceProvider).withdraw() + + // Verify all tokens are withdrawn and transferred back to service provider + const balanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(balanceAfter).to.equal(balanceBefore + request1 + request2, 'Tokens were not transferred back to service provider') + }) + + describe('Transition period is over', () => { + let governor: HardhatEthersSigner + let tokensToUnstake: bigint + + before(async () => { + // Get governor + governor = await graph.accounts.getGovernor() + + // Set tokens + tokensToStake = ethers.parseEther('100000') + tokensToUnstake = ethers.parseEther('10000') + }) + + it('should be able to withdraw tokens that were unstaked during transition period', async () => { + // Stake tokens + await stake(serviceProvider, [tokensToStake]) + + // Unstake tokens + await horizonStaking.connect(serviceProvider).unstake(tokensToUnstake) + + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(serviceProvider.address) + + // Get thawing period + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Clear thawing period + await horizonStaking.connect(governor).clearThawingPeriod() + + // Mine blocks to complete thawing period + for (let i = 0; i < Number(thawingPeriod) + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Withdraw tokens + await horizonStaking.connect(serviceProvider).withdraw() + + // Get balance after withdrawing + const balanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + + it('should be able to unstake tokens without a thawing period', async () => { + // Stake tokens + await stake(serviceProvider, [tokensToStake]) + + // Clear thawing period + await horizonStaking.connect(governor).clearThawingPeriod() + + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(serviceProvider.address) + + // Unstake tokens + await horizonStaking.connect(serviceProvider).unstake(tokensToUnstake) + + // Get balance after withdrawing + const balanceAfter = await graphToken.balanceOf(serviceProvider.address) + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + }) + }) + + describe('Existing Protocol Users', () => { + let indexer: HardhatEthersSigner + let tokensUnstaked: bigint + + before(async () => { + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + tokensUnstaked = indexerFixture.tokensToUnstake || 0n + + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ONE_MILLION) + }) + + it('should allow service provider to withdraw their locked tokens after thawing period passes', async () => { + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(indexer.address) + + // Get thawing period + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Mine blocks to complete thawing period + for (let i = 0; i < Number(thawingPeriod) + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Withdraw tokens + await horizonStaking.connect(indexer).withdraw() + + // Verify tokens are transferred back to service provider + const balanceAfter = await graphToken.balanceOf(indexer.address) + expect(balanceAfter).to.equal(balanceBefore + tokensUnstaked, 'Tokens were not transferred back to service provider') + }) + + describe('Legacy allocations', () => { + describe('Restaking', () => { + let delegationIndexingCut: number + let delegationQueryFeeCut: number + let allocationID: string + let allocationTokens: bigint + let gateway: HardhatEthersSigner + + beforeEach(async () => { + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + delegationIndexingCut = indexerFixture.indexingRewardCut + delegationQueryFeeCut = indexerFixture.queryFeeCut + allocationID = indexerFixture.allocations[0].allocationID + allocationTokens = indexerFixture.allocations[0].tokens + gateway = await graph.accounts.getGateway() + await setGRTBalance(graph.provider, graphToken.target, gateway.address, ONE_MILLION) + }) + + it('should be able to close an open legacy allocation and collect rewards', async () => { + // Use a non-zero POI + const poi = generatePOI('poi') + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Get delegation pool before closing allocation + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Mine blocks to simulate time passing + const halfThawingPeriod = Number(thawingPeriod) / 2 + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get idle stake before closing allocation + const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) + + // Close allocation + const tx = await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + const eventData = await getEventData(tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)') + const rewards = eventData[2] + + // Verify rewards are not zero + expect(rewards).to.not.equal(0, 'Rewards were not transferred to service provider') + + // Verify rewards minus delegation cut are restaked + const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) + const idleStakeRewardsTokens = rewards * BigInt(delegationIndexingCut) / 1000000n + expect(idleStakeAfter).to.equal(idleStakeBefore + allocationTokens + idleStakeRewardsTokens, 'Rewards were not restaked') + + // Verify delegators cut is added to delegation pool + const delegationPool = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPool.tokens + const delegationRewardsTokens = rewards - idleStakeRewardsTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationRewardsTokens, 'Delegators cut was not added to delegation pool') + }) + + it('should be able to collect query fees', async () => { + const tokensToCollect = ethers.parseEther('1000') + + // Get idle stake before collecting + const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) + + // Get delegation pool before collecting + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Collect query fees + await collect(gateway, [tokensToCollect, allocationID]) + + // Get idle stake after collecting + const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) + + // Subtract protocol tax (1%) and curation fees (10% after the protocol tax deduction) + const protocolTax = tokensToCollect * 1n / 100n + const curationFees = tokensToCollect * 99n / 1000n + const remainingTokens = tokensToCollect - protocolTax - curationFees + + // Verify tokens minus delegators cut are restaked + const indexerCutTokens = remainingTokens * BigInt(delegationQueryFeeCut) / 1000000n + expect(idleStakeAfter).to.equal(idleStakeBefore + indexerCutTokens, 'Indexer cut was not restaked') + + // Verify delegators cut is added to delegation pool + const delegationPool = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPool.tokens + const delegationCutTokens = remainingTokens - indexerCutTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationCutTokens, 'Delegators cut was not added to delegation pool') + }) + + it('should be able to close an allocation and collect query fees for the closed allocation', async () => { + // Use a non-zero POI + const poi = generatePOI('poi') + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Mine blocks to simulate time passing + const halfThawingPeriod = Number(thawingPeriod) / 2 + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Close allocation + await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + + // Tokens to collect + const tokensToCollect = ethers.parseEther('1000') + + // Get idle stake before collecting + const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) + + // Get delegation pool before collecting + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Collect query fees + await collect(gateway, [tokensToCollect, allocationID]) + + // Get idle stake after collecting + const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) + + // Subtract protocol tax (1%) and curation fees (10% after the protocol tax deduction) + const protocolTax = tokensToCollect * 1n / 100n + const curationFees = tokensToCollect * 99n / 1000n + const remainingTokens = tokensToCollect - protocolTax - curationFees + + // Verify tokens minus delegators cut are restaked + const indexerCutTokens = remainingTokens * BigInt(delegationQueryFeeCut) / 1000000n + expect(idleStakeAfter).to.equal(idleStakeBefore + indexerCutTokens, 'Indexer cut was not restaked') + + // Verify delegators cut is added to delegation pool + const delegationPool = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPool.tokens + const delegationCutTokens = remainingTokens - indexerCutTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationCutTokens, 'Delegators cut was not added to delegation pool') + }) + }) + + describe('With rewardsDestination set', () => { + let delegationIndexingCut: number + let delegationQueryFeeCut: number + let rewardsDestination: string + let allocationID: string + let gateway: HardhatEthersSigner + + beforeEach(async () => { + const indexerFixture = indexers[1] + indexer = await ethers.getSigner(indexerFixture.address) + delegationIndexingCut = indexerFixture.indexingRewardCut + delegationQueryFeeCut = indexerFixture.queryFeeCut + rewardsDestination = indexerFixture.rewardsDestination! + allocationID = indexerFixture.allocations[0].allocationID + gateway = await graph.accounts.getGateway() + await setGRTBalance(graph.provider, graphToken.target, gateway.address, ONE_MILLION) + }) + + it('should be able to close an open allocation and collect rewards', async () => { + // Use a non-zero POI + const poi = generatePOI('poi') + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Get delegation tokens before + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Mine blocks to simulate time passing + const halfThawingPeriod = Number(thawingPeriod) / 2 + for (let i = 0; i < halfThawingPeriod; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get rewards destination balance before closing allocation + const balanceBefore = await graphToken.balanceOf(rewardsDestination) + + // Close allocation + const tx = await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + const eventData = await getEventData(tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)') + const rewards = eventData[2] + + // Verify rewards are not zero + expect(rewards).to.not.equal(0, 'Rewards were not transferred to rewards destination') + + // Verify indexer rewards cut is transferred to rewards destination + const balanceAfter = await graphToken.balanceOf(rewardsDestination) + const indexerCutTokens = rewards * BigInt(delegationIndexingCut) / 1000000n + expect(balanceAfter).to.equal(balanceBefore + indexerCutTokens, 'Indexer cut was not transferred to rewards destination') + + // Verify delegators cut is added to delegation pool + const delegationPoolAfter = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPoolAfter.tokens + const delegationCutTokens = rewards - indexerCutTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationCutTokens, 'Delegators cut was not added to delegation pool') + }) + + it('should be able to collect query fees', async () => { + const tokensToCollect = ethers.parseEther('1000') + + // Get rewards destination balance before collecting + const balanceBefore = await graphToken.balanceOf(rewardsDestination) + + // Get delegation tokens before + const delegationPoolBefore = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensBefore = delegationPoolBefore.tokens + + // Collect query fees + await collect(gateway, [tokensToCollect, allocationID]) + + // Get rewards destination balance after collecting + const balanceAfter = await graphToken.balanceOf(rewardsDestination) + + // Subtract protocol tax (1%) and curation fees (10% after the protocol tax deduction) + const protocolTax = tokensToCollect * 1n / 100n + const curationFees = tokensToCollect * 99n / 1000n + const remainingTokens = tokensToCollect - protocolTax - curationFees + + // Verify indexer cut is transferred to rewards destination + const indexerCutTokens = remainingTokens * BigInt(delegationQueryFeeCut) / 1000000n + expect(balanceAfter).to.equal(balanceBefore + indexerCutTokens, 'Indexer cut was not transferred to rewards destination') + + // Verify delegators cut is added to delegation pool + const delegationPoolAfter = await horizonStaking.getDelegationPool(indexer.address, subgraphServiceAddress) + const delegationPoolTokensAfter = delegationPoolAfter.tokens + const delegationCutTokens = remainingTokens - indexerCutTokens + expect(delegationPoolTokensAfter).to.equal(delegationPoolTokensBefore + delegationCutTokens, 'Delegators cut was not added to delegation pool') + }) + }) + }) + + describe('Transition period is over', () => { + let governor: HardhatEthersSigner + let tokensToUnstake: bigint + + before(async () => { + // Get governor + governor = await graph.accounts.getGovernor() + + // Get indexer + const indexerFixture = indexers[2] + indexer = await ethers.getSigner(indexerFixture.address) + + // Set tokens + tokensToUnstake = ethers.parseEther('10000') + }) + + it('should be able to withdraw tokens that were unstaked during transition period', async () => { + // Unstake tokens during transition period + await horizonStaking.connect(indexer).unstake(tokensToUnstake) + + // Get thawing period + const thawingPeriod = await horizonStaking.__DEPRECATED_getThawingPeriod() + + // Clear thawing period + await horizonStaking.connect(governor).clearThawingPeriod() + + // Mine blocks to complete thawing period + for (let i = 0; i < Number(thawingPeriod) + 1; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Get balance before withdrawing + const balanceBefore = await graphToken.balanceOf(indexer.address) + + // Withdraw tokens + await horizonStaking.connect(indexer).withdraw() + + // Get balance after withdrawing + const balanceAfter = await graphToken.balanceOf(indexer.address) + expect(balanceAfter).to.equal(balanceBefore + tokensToUnstake, 'Tokens were not transferred back to service provider') + }) + }) + }) +}) diff --git a/packages/horizon/test/integration/during-transition-period/slasher.test.ts b/packages/horizon/test/integration/during-transition-period/slasher.test.ts new file mode 100644 index 000000000..50fb80e69 --- /dev/null +++ b/packages/horizon/test/integration/during-transition-period/slasher.test.ts @@ -0,0 +1,85 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' + +import { indexers } from '../../../tasks/test/fixtures/indexers' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Slasher', () => { + let snapshotId: string + + let indexer: string + let slasher: HardhatEthersSigner + let tokensToSlash: bigint + + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + const graphToken = graph.horizon.contracts.L2GraphToken + + before(async () => { + slasher = await graph.accounts.getArbitrator() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Available tokens', () => { + before(() => { + const indexerFixture = indexers[0] + indexer = indexerFixture.address + tokensToSlash = ethers.parseEther('10000') + }) + + it('should be able to slash indexer stake', async () => { + // Before slash state + const idleStakeBeforeSlash = await horizonStaking.getIdleStake(indexer) + const tokensVerifier = tokensToSlash / 2n + const slasherBeforeBalance = await graphToken.balanceOf(slasher.address) + + // Slash tokens + await horizonStaking.connect(slasher).slash(indexer, tokensToSlash, tokensVerifier, slasher.address) + + // Indexer's stake should have decreased + const idleStakeAfterSlash = await horizonStaking.getIdleStake(indexer) + expect(idleStakeAfterSlash).to.equal(idleStakeBeforeSlash - tokensToSlash, 'Indexer stake should have decreased') + + // Slasher should have received the tokens + const slasherAfterBalance = await graphToken.balanceOf(slasher.address) + expect(slasherAfterBalance).to.equal(slasherBeforeBalance + tokensVerifier, 'Slasher should have received the tokens') + }) + }) + + describe('Locked tokens', () => { + before(() => { + const indexerFixture = indexers[1] + indexer = indexerFixture.address + tokensToSlash = indexerFixture.stake + }) + + it('should be able to slash locked tokens', async () => { + // Before slash state + const tokensVerifier = tokensToSlash / 2n + const slasherBeforeBalance = await graphToken.balanceOf(slasher.address) + + // Slash tokens + await horizonStaking.connect(slasher).slash(indexer, tokensToSlash, tokensVerifier, slasher.address) + + // Indexer's entire stake should have been slashed + const indexerStakeAfterSlash = await horizonStaking.getServiceProvider(indexer) + expect(indexerStakeAfterSlash.tokensStaked).to.equal(0n, 'Indexer stake should have been slashed') + + // Slasher should have received the tokens + const slasherAfterBalance = await graphToken.balanceOf(slasher.address) + expect(slasherAfterBalance).to.equal(slasherBeforeBalance + tokensVerifier, 'Slasher should have received the tokens') + }) + }) +}) diff --git a/packages/horizon/test/libraries/LinkedList.tree b/packages/horizon/test/libraries/LinkedList.tree deleted file mode 100644 index dc5143cb4..000000000 --- a/packages/horizon/test/libraries/LinkedList.tree +++ /dev/null @@ -1,34 +0,0 @@ -LinkedListTest::add_ -├── given the list is empty -│ ├── it should have a count of 1 and nonce of 1 -│ ├── it should have the tail set to the element -│ └── it should have the head set to the element -├── given the list is not empty -│ ├── it should have a count of 2 and nonce of 2 -│ ├── it should have the tail set to the new element -│ └── it should have the head set to the old element -└── given the list is at max size - └── it should revert - -LinkedListTest::remove_ -├── given the list is empty -│ └── it should revert -└── given the list is not empty - ├── it should have a count of 0 - ├── it should have the tail set to bytes32(0) - └── it should have the head set to bytes32(0) - -LinkedListTest::traverse -├── given the list is empty -│ ├── it should return zero processed elements -│ └── it should return accumulator value same as the initial value -└── given the list is not empty - └── when iterations are not specified - │ ├── it should return process all elements - │ └── it should return accumulator value equal to the processed value - └── when iterations are specified - │ ├── it should return process all elements - │ └── it should return accumulator value equal to the processed value - └── when iterations are invalid - ├── it should return process all elements - └── it should return accumulator value equal to the processed value diff --git a/packages/horizon/test/GraphBase.t.sol b/packages/horizon/test/unit/GraphBase.t.sol similarity index 97% rename from packages/horizon/test/GraphBase.t.sol rename to packages/horizon/test/unit/GraphBase.t.sol index fcbbf7b48..0a72c8c0e 100644 --- a/packages/horizon/test/GraphBase.t.sol +++ b/packages/horizon/test/unit/GraphBase.t.sol @@ -16,10 +16,10 @@ import { IHorizonStaking } from "contracts/interfaces/IHorizonStaking.sol"; import { HorizonStaking } from "contracts/staking/HorizonStaking.sol"; import { HorizonStakingExtension } from "contracts/staking/HorizonStakingExtension.sol"; import { IHorizonStakingTypes } from "contracts/interfaces/internal/IHorizonStakingTypes.sol"; -import { MockGRTToken } from "../contracts/mocks/MockGRTToken.sol"; -import { EpochManagerMock } from "../contracts/mocks/EpochManagerMock.sol"; -import { RewardsManagerMock } from "../contracts/mocks/RewardsManagerMock.sol"; -import { CurationMock } from "../contracts/mocks/CurationMock.sol"; +import { MockGRTToken } from "../../contracts/mocks/MockGRTToken.sol"; +import { EpochManagerMock } from "contracts/mocks/EpochManagerMock.sol"; +import { RewardsManagerMock } from "contracts/mocks/RewardsManagerMock.sol"; +import { CurationMock } from "contracts/mocks/CurationMock.sol"; import { Constants } from "./utils/Constants.sol"; import { Users } from "./utils/Users.sol"; import { Utils } from "./utils/Utils.sol"; diff --git a/packages/horizon/test/data-service/DataService.t.sol b/packages/horizon/test/unit/data-service/DataService.t.sol similarity index 98% rename from packages/horizon/test/data-service/DataService.t.sol rename to packages/horizon/test/unit/data-service/DataService.t.sol index 7cf125364..85c576308 100644 --- a/packages/horizon/test/data-service/DataService.t.sol +++ b/packages/horizon/test/unit/data-service/DataService.t.sol @@ -1,12 +1,12 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; -import { IHorizonStakingMain } from "../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceBase } from "./implementations/DataServiceBase.sol"; import { DataServiceOverride } from "./implementations/DataServiceOverride.sol"; -import { ProvisionManager } from "./../../contracts/data-service/utilities/ProvisionManager.sol"; -import { PPMMath } from "./../../contracts/libraries/PPMMath.sol"; +import { ProvisionManager } from "./../../../contracts/data-service/utilities/ProvisionManager.sol"; +import { PPMMath } from "./../../../contracts/libraries/PPMMath.sol"; contract DataServiceTest is HorizonStakingSharedTest { DataServiceBase dataService; diff --git a/packages/horizon/test/data-service/DataServiceUpgradeable.t.sol b/packages/horizon/test/unit/data-service/DataServiceUpgradeable.t.sol similarity index 96% rename from packages/horizon/test/data-service/DataServiceUpgradeable.t.sol rename to packages/horizon/test/unit/data-service/DataServiceUpgradeable.t.sol index b25953b5e..265cb8071 100644 --- a/packages/horizon/test/data-service/DataServiceUpgradeable.t.sol +++ b/packages/horizon/test/unit/data-service/DataServiceUpgradeable.t.sol @@ -5,7 +5,7 @@ import { GraphBaseTest } from "../GraphBase.t.sol"; import { DataServiceBaseUpgradeable } from "./implementations/DataServiceBaseUpgradeable.sol"; import { UnsafeUpgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; -import { PPMMath } from "./../../contracts/libraries/PPMMath.sol"; +import { PPMMath } from "./../../../contracts/libraries/PPMMath.sol"; contract DataServiceUpgradeableTest is GraphBaseTest { function test_WhenTheContractIsDeployed() external { diff --git a/packages/horizon/test/data-service/extensions/DataServiceFees.t.sol b/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol similarity index 97% rename from packages/horizon/test/data-service/extensions/DataServiceFees.t.sol rename to packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol index 345a86db7..cd6e7bf46 100644 --- a/packages/horizon/test/data-service/extensions/DataServiceFees.t.sol +++ b/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceImpFees } from "../implementations/DataServiceImpFees.sol"; -import { IDataServiceFees } from "../../../contracts/data-service/interfaces/IDataServiceFees.sol"; -import { ProvisionTracker } from "../../../contracts/data-service/libraries/ProvisionTracker.sol"; -import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; +import { IDataServiceFees } from "../../../../contracts/data-service/interfaces/IDataServiceFees.sol"; +import { ProvisionTracker } from "../../../../contracts/data-service/libraries/ProvisionTracker.sol"; +import { LinkedList } from "../../../../contracts/libraries/LinkedList.sol"; contract DataServiceFeesTest is HorizonStakingSharedTest { function test_Lock_RevertWhen_ZeroTokensAreLocked() diff --git a/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol b/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol similarity index 97% rename from packages/horizon/test/data-service/extensions/DataServicePausable.t.sol rename to packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol index 46cded2eb..f43191a94 100644 --- a/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol +++ b/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceImpPausable } from "../implementations/DataServiceImpPausable.sol"; -import { IDataServicePausable } from "./../../../contracts/data-service/interfaces/IDataServicePausable.sol"; +import { IDataServicePausable } from "./../../../../contracts/data-service/interfaces/IDataServicePausable.sol"; contract DataServicePausableTest is HorizonStakingSharedTest { DataServiceImpPausable dataService; diff --git a/packages/horizon/test/data-service/extensions/DataServicePausableUpgradeable.t.sol b/packages/horizon/test/unit/data-service/extensions/DataServicePausableUpgradeable.t.sol similarity index 96% rename from packages/horizon/test/data-service/extensions/DataServicePausableUpgradeable.t.sol rename to packages/horizon/test/unit/data-service/extensions/DataServicePausableUpgradeable.t.sol index d52732ba3..1e47f7a34 100644 --- a/packages/horizon/test/data-service/extensions/DataServicePausableUpgradeable.t.sol +++ b/packages/horizon/test/unit/data-service/extensions/DataServicePausableUpgradeable.t.sol @@ -5,7 +5,7 @@ import { GraphBaseTest } from "../../GraphBase.t.sol"; import { DataServiceImpPausableUpgradeable } from "../implementations/DataServiceImpPausableUpgradeable.sol"; import { UnsafeUpgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; -import { PPMMath } from "./../../../contracts/libraries/PPMMath.sol"; +import { PPMMath } from "./../../../../contracts/libraries/PPMMath.sol"; contract DataServicePausableUpgradeableTest is GraphBaseTest { function test_WhenTheContractIsDeployed() external { diff --git a/packages/horizon/test/data-service/implementations/DataServiceBase.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol similarity index 92% rename from packages/horizon/test/data-service/implementations/DataServiceBase.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol index e31b21a7b..30a40b4db 100644 --- a/packages/horizon/test/data-service/implementations/DataServiceBase.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { DataService } from "../../../contracts/data-service/DataService.sol"; -import { IGraphPayments } from "./../../../contracts/interfaces/IGraphPayments.sol"; +import { DataService } from "../../../../contracts/data-service/DataService.sol"; +import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; contract DataServiceBase is DataService { uint32 public constant DELEGATION_RATIO = 100; diff --git a/packages/horizon/test/data-service/implementations/DataServiceBaseUpgradeable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol similarity index 85% rename from packages/horizon/test/data-service/implementations/DataServiceBaseUpgradeable.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol index 907ad6e3a..d24e831af 100644 --- a/packages/horizon/test/data-service/implementations/DataServiceBaseUpgradeable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { DataService } from "../../../contracts/data-service/DataService.sol"; -import { IGraphPayments } from "./../../../contracts/interfaces/IGraphPayments.sol"; +import { DataService } from "../../../../contracts/data-service/DataService.sol"; +import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; contract DataServiceBaseUpgradeable is DataService { constructor(address controller_) DataService(controller_) { diff --git a/packages/horizon/test/data-service/implementations/DataServiceImpFees.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol similarity index 83% rename from packages/horizon/test/data-service/implementations/DataServiceImpFees.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol index 163281d32..04d0ca336 100644 --- a/packages/horizon/test/data-service/implementations/DataServiceImpFees.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { DataService } from "../../../contracts/data-service/DataService.sol"; -import { DataServiceFees } from "../../../contracts/data-service/extensions/DataServiceFees.sol"; -import { IGraphPayments } from "./../../../contracts/interfaces/IGraphPayments.sol"; +import { DataService } from "../../../../contracts/data-service/DataService.sol"; +import { DataServiceFees } from "../../../../contracts/data-service/extensions/DataServiceFees.sol"; +import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; contract DataServiceImpFees is DataServiceFees { uint256 public constant STAKE_TO_FEES_RATIO = 1000; diff --git a/packages/horizon/test/data-service/implementations/DataServiceImpPausable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol similarity index 85% rename from packages/horizon/test/data-service/implementations/DataServiceImpPausable.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol index 678f46cc0..00e9c94a9 100644 --- a/packages/horizon/test/data-service/implementations/DataServiceImpPausable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { DataService } from "../../../contracts/data-service/DataService.sol"; -import { DataServicePausable } from "../../../contracts/data-service/extensions/DataServicePausable.sol"; -import { IGraphPayments } from "./../../../contracts/interfaces/IGraphPayments.sol"; +import { DataService } from "../../../../contracts/data-service/DataService.sol"; +import { DataServicePausable } from "../../../../contracts/data-service/extensions/DataServicePausable.sol"; +import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; contract DataServiceImpPausable is DataServicePausable { uint32 public constant DELEGATION_RATIO = 100; diff --git a/packages/horizon/test/data-service/implementations/DataServiceImpPausableUpgradeable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol similarity index 78% rename from packages/horizon/test/data-service/implementations/DataServiceImpPausableUpgradeable.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol index dd2ea21f1..e50864ace 100644 --- a/packages/horizon/test/data-service/implementations/DataServiceImpPausableUpgradeable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { DataService } from "../../../contracts/data-service/DataService.sol"; -import { DataServicePausableUpgradeable } from "../../../contracts/data-service/extensions/DataServicePausableUpgradeable.sol"; -import { IGraphPayments } from "./../../../contracts/interfaces/IGraphPayments.sol"; +import { DataService } from "../../../../contracts/data-service/DataService.sol"; +import { DataServicePausableUpgradeable } from "../../../../contracts/data-service/extensions/DataServicePausableUpgradeable.sol"; +import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; contract DataServiceImpPausableUpgradeable is DataServicePausableUpgradeable { constructor(address controller_) DataService(controller_) { diff --git a/packages/horizon/test/data-service/implementations/DataServiceOverride.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceOverride.sol similarity index 100% rename from packages/horizon/test/data-service/implementations/DataServiceOverride.sol rename to packages/horizon/test/unit/data-service/implementations/DataServiceOverride.sol diff --git a/packages/horizon/test/data-service/libraries/ProvisionTracker.t.sol b/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol similarity index 95% rename from packages/horizon/test/data-service/libraries/ProvisionTracker.t.sol rename to packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol index 7d8541cec..ab6a6f584 100644 --- a/packages/horizon/test/data-service/libraries/ProvisionTracker.t.sol +++ b/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { ProvisionTrackerImplementation } from "./ProvisionTrackerImplementation.sol"; -import { ProvisionTracker } from "../../../contracts/data-service/libraries/ProvisionTracker.sol"; -import { IHorizonStaking } from "./../../../contracts/interfaces/IHorizonStaking.sol"; +import { ProvisionTracker } from "../../../../contracts/data-service/libraries/ProvisionTracker.sol"; +import { IHorizonStaking } from "./../../../../contracts/interfaces/IHorizonStaking.sol"; // Wrapper required because when using vm.expectRevert, the error is expected in the next immediate call // Which in the case of this library is an internal call to the staking contract diff --git a/packages/horizon/test/data-service/libraries/ProvisionTrackerImplementation.sol b/packages/horizon/test/unit/data-service/libraries/ProvisionTrackerImplementation.sol similarity index 61% rename from packages/horizon/test/data-service/libraries/ProvisionTrackerImplementation.sol rename to packages/horizon/test/unit/data-service/libraries/ProvisionTrackerImplementation.sol index d79d13da0..1f897fd02 100644 --- a/packages/horizon/test/data-service/libraries/ProvisionTrackerImplementation.sol +++ b/packages/horizon/test/unit/data-service/libraries/ProvisionTrackerImplementation.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; -import { ProvisionTracker } from "../../../contracts/data-service/libraries/ProvisionTracker.sol"; +import { ProvisionTracker } from "../../../../contracts/data-service/libraries/ProvisionTracker.sol"; contract ProvisionTrackerImplementation { mapping(address => uint256) public provisionTracker; diff --git a/packages/horizon/test/escrow/GraphEscrow.t.sol b/packages/horizon/test/unit/escrow/GraphEscrow.t.sol similarity index 96% rename from packages/horizon/test/escrow/GraphEscrow.t.sol rename to packages/horizon/test/unit/escrow/GraphEscrow.t.sol index 5d9dea53c..5ce7dcf37 100644 --- a/packages/horizon/test/escrow/GraphEscrow.t.sol +++ b/packages/horizon/test/unit/escrow/GraphEscrow.t.sol @@ -2,13 +2,13 @@ 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 { IHorizonStakingTypes } from "../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.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"; +import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; contract GraphEscrowTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest { using PPMMath for uint256; diff --git a/packages/horizon/test/escrow/collect.t.sol b/packages/horizon/test/unit/escrow/collect.t.sol similarity index 95% rename from packages/horizon/test/escrow/collect.t.sol rename to packages/horizon/test/unit/escrow/collect.t.sol index 09b7f7f6a..c0a3c8145 100644 --- a/packages/horizon/test/escrow/collect.t.sol +++ b/packages/horizon/test/unit/escrow/collect.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/escrow/deposit.t.sol b/packages/horizon/test/unit/escrow/deposit.t.sol similarity index 100% rename from packages/horizon/test/escrow/deposit.t.sol rename to packages/horizon/test/unit/escrow/deposit.t.sol diff --git a/packages/horizon/test/escrow/getters.t.sol b/packages/horizon/test/unit/escrow/getters.t.sol similarity index 96% rename from packages/horizon/test/escrow/getters.t.sol rename to packages/horizon/test/unit/escrow/getters.t.sol index aad05996f..e0279ee49 100644 --- a/packages/horizon/test/escrow/getters.t.sol +++ b/packages/horizon/test/unit/escrow/getters.t.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/escrow/paused.t.sol b/packages/horizon/test/unit/escrow/paused.t.sol similarity index 93% rename from packages/horizon/test/escrow/paused.t.sol rename to packages/horizon/test/unit/escrow/paused.t.sol index d28e18702..60fe38f25 100644 --- a/packages/horizon/test/escrow/paused.t.sol +++ b/packages/horizon/test/unit/escrow/paused.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/escrow/thaw.t.sol b/packages/horizon/test/unit/escrow/thaw.t.sol similarity index 100% rename from packages/horizon/test/escrow/thaw.t.sol rename to packages/horizon/test/unit/escrow/thaw.t.sol diff --git a/packages/horizon/test/escrow/withdraw.t.sol b/packages/horizon/test/unit/escrow/withdraw.t.sol similarity index 96% rename from packages/horizon/test/escrow/withdraw.t.sol rename to packages/horizon/test/unit/escrow/withdraw.t.sol index 0974e8ef8..1b60118bf 100644 --- a/packages/horizon/test/escrow/withdraw.t.sol +++ b/packages/horizon/test/unit/escrow/withdraw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; contract GraphEscrowWithdrawTest is GraphEscrowTest { diff --git a/packages/horizon/test/libraries/LinkedList.t.sol b/packages/horizon/test/unit/libraries/LinkedList.t.sol similarity index 98% rename from packages/horizon/test/libraries/LinkedList.t.sol rename to packages/horizon/test/unit/libraries/LinkedList.t.sol index 1f7cb6ea9..13f31b8ad 100644 --- a/packages/horizon/test/libraries/LinkedList.t.sol +++ b/packages/horizon/test/unit/libraries/LinkedList.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/console.sol"; import { Test } from "forge-std/Test.sol"; -import { LinkedList } from "../../contracts/libraries/LinkedList.sol"; +import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; import { ListImplementation } from "./ListImplementation.sol"; diff --git a/packages/horizon/test/libraries/ListImplementation.sol b/packages/horizon/test/unit/libraries/ListImplementation.sol similarity index 95% rename from packages/horizon/test/libraries/ListImplementation.sol rename to packages/horizon/test/unit/libraries/ListImplementation.sol index fda762c6d..5f1c6ce3b 100644 --- a/packages/horizon/test/libraries/ListImplementation.sol +++ b/packages/horizon/test/unit/libraries/ListImplementation.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; -import { LinkedList } from "../../contracts/libraries/LinkedList.sol"; +import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; contract ListImplementation { using LinkedList for LinkedList.List; diff --git a/packages/horizon/test/libraries/PPMMath.t.sol b/packages/horizon/test/unit/libraries/PPMMath.t.sol similarity index 96% rename from packages/horizon/test/libraries/PPMMath.t.sol rename to packages/horizon/test/unit/libraries/PPMMath.t.sol index e2240dbcd..a2d011aeb 100644 --- a/packages/horizon/test/libraries/PPMMath.t.sol +++ b/packages/horizon/test/unit/libraries/PPMMath.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/console.sol"; import { Test } from "forge-std/Test.sol"; -import { PPMMath } from "../../contracts/libraries/PPMMath.sol"; +import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; contract PPMMathTest is Test { uint32 private constant MAX_PPM = 1000000; diff --git a/packages/horizon/test/payments/GraphPayments.t.sol b/packages/horizon/test/unit/payments/GraphPayments.t.sol similarity index 97% rename from packages/horizon/test/payments/GraphPayments.t.sol rename to packages/horizon/test/unit/payments/GraphPayments.t.sol index c162ccfb5..564bf3a1f 100644 --- a/packages/horizon/test/payments/GraphPayments.t.sol +++ b/packages/horizon/test/unit/payments/GraphPayments.t.sol @@ -3,13 +3,13 @@ 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 { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; -import { GraphPayments } from "../../contracts/payments/GraphPayments.sol"; +import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +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"; +import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; import { IERC20Errors } from "@openzeppelin/contracts/interfaces/draft-IERC6093.sol"; contract GraphPaymentsExtended is GraphPayments { diff --git a/packages/horizon/test/payments/graph-tally-collector/GraphTallyCollector.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol similarity index 90% rename from packages/horizon/test/payments/graph-tally-collector/GraphTallyCollector.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol index 4d0bb4233..ca9ff235d 100644 --- a/packages/horizon/test/payments/graph-tally-collector/GraphTallyCollector.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol @@ -5,13 +5,13 @@ import "forge-std/Test.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphTallyCollector } from "../../../contracts/interfaces/IGraphTallyCollector.sol"; -import { IPaymentsCollector } from "../../../contracts/interfaces/IPaymentsCollector.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; -import { IAuthorizable } from "../../../contracts/interfaces/IAuthorizable.sol"; -import { GraphTallyCollector } from "../../../contracts/payments/collectors/GraphTallyCollector.sol"; -import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IGraphTallyCollector } from "../../../../contracts/interfaces/IGraphTallyCollector.sol"; +import { IPaymentsCollector } from "../../../../contracts/interfaces/IPaymentsCollector.sol"; +import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; +import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { GraphTallyCollector } from "../../../../contracts/payments/collectors/GraphTallyCollector.sol"; +import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { PaymentsEscrowSharedTest } from "../../shared/payments-escrow/PaymentsEscrowShared.t.sol"; diff --git a/packages/horizon/test/payments/graph-tally-collector/collect/collect.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol similarity index 98% rename from packages/horizon/test/payments/graph-tally-collector/collect/collect.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol index 364536fbb..c0c30fb78 100644 --- a/packages/horizon/test/payments/graph-tally-collector/collect/collect.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphTallyCollector } from "../../../../contracts/interfaces/IGraphTallyCollector.sol"; -import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphTallyCollector } from "../../../../../contracts/interfaces/IGraphTallyCollector.sol"; +import { IGraphPayments } from "../../../../../contracts/interfaces/IGraphPayments.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/payments/graph-tally-collector/signer/authorizeSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol similarity index 97% rename from packages/horizon/test/payments/graph-tally-collector/signer/authorizeSigner.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol index ecdef7004..3eb65e094 100644 --- a/packages/horizon/test/payments/graph-tally-collector/signer/authorizeSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/payments/graph-tally-collector/signer/cancelThawSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol similarity index 92% rename from packages/horizon/test/payments/graph-tally-collector/signer/cancelThawSigner.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol index 460f47d46..c70379e94 100644 --- a/packages/horizon/test/payments/graph-tally-collector/signer/cancelThawSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/payments/graph-tally-collector/signer/revokeSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol similarity index 95% rename from packages/horizon/test/payments/graph-tally-collector/signer/revokeSigner.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol index ec32dfce8..cdc4f5d36 100644 --- a/packages/horizon/test/payments/graph-tally-collector/signer/revokeSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/payments/graph-tally-collector/signer/thawSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol similarity index 95% rename from packages/horizon/test/payments/graph-tally-collector/signer/thawSigner.t.sol rename to packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol index 49d5ace10..3e62dd6ff 100644 --- a/packages/horizon/test/payments/graph-tally-collector/signer/thawSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol b/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol similarity index 99% rename from packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol rename to packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol index 20f824e38..62b531ffb 100644 --- a/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol +++ b/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol @@ -4,16 +4,16 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { GraphBaseTest } from "../../GraphBase.t.sol"; -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"; -import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; -import { ExponentialRebates } from "../../../contracts/staking/libraries/ExponentialRebates.sol"; +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"; +import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; +import { ExponentialRebates } from "../../../../contracts/staking/libraries/ExponentialRebates.sol"; abstract contract HorizonStakingSharedTest is GraphBaseTest { using LinkedList for LinkedList.List; diff --git a/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol b/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol similarity index 94% rename from packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol rename to packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol index 72e92dfde..0e6c91b81 100644 --- a/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol +++ b/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IPaymentsEscrow } from "../../../../contracts/interfaces/IPaymentsEscrow.sol"; import { GraphBaseTest } from "../../GraphBase.t.sol"; abstract contract PaymentsEscrowSharedTest is GraphBaseTest { diff --git a/packages/horizon/test/staking/HorizonStaking.t.sol b/packages/horizon/test/unit/staking/HorizonStaking.t.sol similarity index 100% rename from packages/horizon/test/staking/HorizonStaking.t.sol rename to packages/horizon/test/unit/staking/HorizonStaking.t.sol diff --git a/packages/horizon/test/staking/allocation/allocation.t.sol b/packages/horizon/test/unit/staking/allocation/allocation.t.sol similarity index 91% rename from packages/horizon/test/staking/allocation/allocation.t.sol rename to packages/horizon/test/unit/staking/allocation/allocation.t.sol index 189423632..64b830be0 100644 --- a/packages/horizon/test/staking/allocation/allocation.t.sol +++ b/packages/horizon/test/unit/staking/allocation/allocation.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; contract HorizonStakingAllocationTest is HorizonStakingTest { /* diff --git a/packages/horizon/test/staking/allocation/close.t.sol b/packages/horizon/test/unit/staking/allocation/close.t.sol similarity index 95% rename from packages/horizon/test/staking/allocation/close.t.sol rename to packages/horizon/test/unit/staking/allocation/close.t.sol index da2e869a3..5bb3bc979 100644 --- a/packages/horizon/test/staking/allocation/close.t.sol +++ b/packages/horizon/test/unit/staking/allocation/close.t.sol @@ -4,8 +4,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; -import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; +import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; contract HorizonStakingCloseAllocationTest is HorizonStakingTest { using PPMMath for uint256; diff --git a/packages/horizon/test/staking/allocation/collect.t.sol b/packages/horizon/test/unit/staking/allocation/collect.t.sol similarity index 93% rename from packages/horizon/test/staking/allocation/collect.t.sol rename to packages/horizon/test/unit/staking/allocation/collect.t.sol index 6b0c6cfcd..31a5138b2 100644 --- a/packages/horizon/test/staking/allocation/collect.t.sol +++ b/packages/horizon/test/unit/staking/allocation/collect.t.sol @@ -4,8 +4,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { ExponentialRebates } from "../../../contracts/staking/libraries/ExponentialRebates.sol"; -import { PPMMath } from "../../../contracts/libraries/PPMMath.sol"; +import { ExponentialRebates } from "../../../../contracts/staking/libraries/ExponentialRebates.sol"; +import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; contract HorizonStakingCollectAllocationTest is HorizonStakingTest { using PPMMath for uint256; @@ -26,7 +26,7 @@ contract HorizonStakingCollectAllocationTest is HorizonStakingTest { staking.collect(tokens, _allocationId); } - function testCollect_Tokenss( + function testCollect_Tokens( uint256 allocationTokens, uint256 collectTokens, uint256 curationTokens, diff --git a/packages/horizon/test/staking/delegation/addToPool.t.sol b/packages/horizon/test/unit/staking/delegation/addToPool.t.sol similarity index 98% rename from packages/horizon/test/staking/delegation/addToPool.t.sol rename to packages/horizon/test/unit/staking/delegation/addToPool.t.sol index 7652478e2..d07fbc713 100644 --- a/packages/horizon/test/staking/delegation/addToPool.t.sol +++ b/packages/horizon/test/unit/staking/delegation/addToPool.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingDelegationAddToPoolTest is HorizonStakingTest { diff --git a/packages/horizon/test/staking/delegation/delegate.t.sol b/packages/horizon/test/unit/staking/delegation/delegate.t.sol similarity index 98% rename from packages/horizon/test/staking/delegation/delegate.t.sol rename to packages/horizon/test/unit/staking/delegation/delegate.t.sol index 463bc7b32..48ff6abd7 100644 --- a/packages/horizon/test/staking/delegation/delegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/delegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/delegation/legacyWithdraw.t.sol b/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol similarity index 89% rename from packages/horizon/test/staking/delegation/legacyWithdraw.t.sol rename to packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol index 89b156085..f18485fd5 100644 --- a/packages/horizon/test/staking/delegation/legacyWithdraw.t.sol +++ b/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol @@ -3,10 +3,10 @@ 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 { 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"; diff --git a/packages/horizon/test/staking/delegation/redelegate.t.sol b/packages/horizon/test/unit/staking/delegation/redelegate.t.sol similarity index 97% rename from packages/horizon/test/staking/delegation/redelegate.t.sol rename to packages/horizon/test/unit/staking/delegation/redelegate.t.sol index a4d9c8e03..27399328d 100644 --- a/packages/horizon/test/staking/delegation/redelegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/redelegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/delegation/undelegate.t.sol b/packages/horizon/test/unit/staking/delegation/undelegate.t.sol similarity index 98% rename from packages/horizon/test/staking/delegation/undelegate.t.sol rename to packages/horizon/test/unit/staking/delegation/undelegate.t.sol index 54ad91cff..fcdca8107 100644 --- a/packages/horizon/test/staking/delegation/undelegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/undelegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/delegation/withdraw.t.sol b/packages/horizon/test/unit/staking/delegation/withdraw.t.sol similarity index 95% rename from packages/horizon/test/staking/delegation/withdraw.t.sol rename to packages/horizon/test/unit/staking/delegation/withdraw.t.sol index bbf7ecd1b..7c2c1ec53 100644 --- a/packages/horizon/test/staking/delegation/withdraw.t.sol +++ b/packages/horizon/test/unit/staking/delegation/withdraw.t.sol @@ -3,9 +3,9 @@ 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 { 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"; diff --git a/packages/horizon/test/staking/governance/governance.t.sol b/packages/horizon/test/unit/staking/governance/governance.t.sol similarity index 100% rename from packages/horizon/test/staking/governance/governance.t.sol rename to packages/horizon/test/unit/staking/governance/governance.t.sol diff --git a/packages/horizon/test/staking/operator/locked.t.sol b/packages/horizon/test/unit/staking/operator/locked.t.sol similarity index 100% rename from packages/horizon/test/staking/operator/locked.t.sol rename to packages/horizon/test/unit/staking/operator/locked.t.sol diff --git a/packages/horizon/test/staking/operator/operator.t.sol b/packages/horizon/test/unit/staking/operator/operator.t.sol similarity index 100% rename from packages/horizon/test/staking/operator/operator.t.sol rename to packages/horizon/test/unit/staking/operator/operator.t.sol diff --git a/packages/horizon/test/staking/provision/deprovision.t.sol b/packages/horizon/test/unit/staking/provision/deprovision.t.sol similarity index 100% rename from packages/horizon/test/staking/provision/deprovision.t.sol rename to packages/horizon/test/unit/staking/provision/deprovision.t.sol diff --git a/packages/horizon/test/staking/provision/locked.t.sol b/packages/horizon/test/unit/staking/provision/locked.t.sol similarity index 100% rename from packages/horizon/test/staking/provision/locked.t.sol rename to packages/horizon/test/unit/staking/provision/locked.t.sol diff --git a/packages/horizon/test/staking/provision/parameters.t.sol b/packages/horizon/test/unit/staking/provision/parameters.t.sol similarity index 98% rename from packages/horizon/test/staking/provision/parameters.t.sol rename to packages/horizon/test/unit/staking/provision/parameters.t.sol index b29fc32bb..bc44876e5 100644 --- a/packages/horizon/test/staking/provision/parameters.t.sol +++ b/packages/horizon/test/unit/staking/provision/parameters.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; contract HorizonStakingProvisionParametersTest is HorizonStakingTest { /* diff --git a/packages/horizon/test/staking/provision/provision.t.sol b/packages/horizon/test/unit/staking/provision/provision.t.sol similarity index 100% rename from packages/horizon/test/staking/provision/provision.t.sol rename to packages/horizon/test/unit/staking/provision/provision.t.sol diff --git a/packages/horizon/test/staking/provision/reprovision.t.sol b/packages/horizon/test/unit/staking/provision/reprovision.t.sol similarity index 100% rename from packages/horizon/test/staking/provision/reprovision.t.sol rename to packages/horizon/test/unit/staking/provision/reprovision.t.sol diff --git a/packages/horizon/test/staking/provision/thaw.t.sol b/packages/horizon/test/unit/staking/provision/thaw.t.sol similarity index 98% rename from packages/horizon/test/staking/provision/thaw.t.sol rename to packages/horizon/test/unit/staking/provision/thaw.t.sol index 46c666618..6b57a7b70 100644 --- a/packages/horizon/test/staking/provision/thaw.t.sol +++ b/packages/horizon/test/unit/staking/provision/thaw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingTypes } from "../../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingThawTest is HorizonStakingTest { diff --git a/packages/horizon/test/staking/serviceProvider/serviceProvider.t.sol b/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol similarity index 96% rename from packages/horizon/test/staking/serviceProvider/serviceProvider.t.sol rename to packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol index 6c5fe4904..053130db1 100644 --- a/packages/horizon/test/staking/serviceProvider/serviceProvider.t.sol +++ b/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/slash/legacySlash.t.sol b/packages/horizon/test/unit/staking/slash/legacySlash.t.sol similarity index 98% rename from packages/horizon/test/staking/slash/legacySlash.t.sol rename to packages/horizon/test/unit/staking/slash/legacySlash.t.sol index 338f84bb6..d4dda3f2f 100644 --- a/packages/horizon/test/staking/slash/legacySlash.t.sol +++ b/packages/horizon/test/unit/staking/slash/legacySlash.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/slash/slash.t.sol b/packages/horizon/test/unit/staking/slash/slash.t.sol similarity index 98% rename from packages/horizon/test/staking/slash/slash.t.sol rename to packages/horizon/test/unit/staking/slash/slash.t.sol index e1aad1336..ffe76c5a8 100644 --- a/packages/horizon/test/staking/slash/slash.t.sol +++ b/packages/horizon/test/unit/staking/slash/slash.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/staking/stake/stake.t.sol b/packages/horizon/test/unit/staking/stake/stake.t.sol similarity index 100% rename from packages/horizon/test/staking/stake/stake.t.sol rename to packages/horizon/test/unit/staking/stake/stake.t.sol diff --git a/packages/horizon/test/staking/stake/unstake.t.sol b/packages/horizon/test/unit/staking/stake/unstake.t.sol similarity index 100% rename from packages/horizon/test/staking/stake/unstake.t.sol rename to packages/horizon/test/unit/staking/stake/unstake.t.sol diff --git a/packages/horizon/test/staking/stake/withdraw.t.sol b/packages/horizon/test/unit/staking/stake/withdraw.t.sol similarity index 95% rename from packages/horizon/test/staking/stake/withdraw.t.sol rename to packages/horizon/test/unit/staking/stake/withdraw.t.sol index b28dea022..5968838b4 100644 --- a/packages/horizon/test/staking/stake/withdraw.t.sol +++ b/packages/horizon/test/unit/staking/stake/withdraw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/utilities/Authorizable.t.sol b/packages/horizon/test/unit/utilities/Authorizable.t.sol similarity index 99% rename from packages/horizon/test/utilities/Authorizable.t.sol rename to packages/horizon/test/unit/utilities/Authorizable.t.sol index c31721af8..4528b339d 100644 --- a/packages/horizon/test/utilities/Authorizable.t.sol +++ b/packages/horizon/test/unit/utilities/Authorizable.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import { Test } from "forge-std/Test.sol"; -import { Authorizable } from "../../contracts/utilities/Authorizable.sol"; -import { IAuthorizable } from "../../contracts/interfaces/IAuthorizable.sol"; +import { Authorizable } from "../../../contracts/utilities/Authorizable.sol"; +import { IAuthorizable } from "../../../contracts/interfaces/IAuthorizable.sol"; import { Bounder } from "../utils/Bounder.t.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; diff --git a/packages/horizon/test/utilities/GraphDirectory.t.sol b/packages/horizon/test/unit/utilities/GraphDirectory.t.sol similarity index 97% rename from packages/horizon/test/utilities/GraphDirectory.t.sol rename to packages/horizon/test/unit/utilities/GraphDirectory.t.sol index 606933699..180590a1e 100644 --- a/packages/horizon/test/utilities/GraphDirectory.t.sol +++ b/packages/horizon/test/unit/utilities/GraphDirectory.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { stdStorage, StdStorage } from "forge-std/Test.sol"; import { GraphBaseTest } from "../GraphBase.t.sol"; -import { GraphDirectory } from "./../../contracts/utilities/GraphDirectory.sol"; +import { GraphDirectory } from "./../../../contracts/utilities/GraphDirectory.sol"; import { GraphDirectoryImplementation } from "./GraphDirectoryImplementation.sol"; contract GraphDirectoryTest is GraphBaseTest { diff --git a/packages/horizon/test/utilities/GraphDirectoryImplementation.sol b/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol similarity index 82% rename from packages/horizon/test/utilities/GraphDirectoryImplementation.sol rename to packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol index 1095adc3a..bf40a35b8 100644 --- a/packages/horizon/test/utilities/GraphDirectoryImplementation.sol +++ b/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol @@ -3,18 +3,18 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStaking } from "../../contracts/interfaces/IHorizonStaking.sol"; -import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IHorizonStaking } from "../../../contracts/interfaces/IHorizonStaking.sol"; +import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; import { IController } from "@graphprotocol/contracts/contracts/governance/IController.sol"; import { IEpochManager } from "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol"; import { IRewardsManager } from "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol"; import { ITokenGateway } from "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol"; -import { IGraphProxyAdmin } from "../../contracts/interfaces/IGraphProxyAdmin.sol"; +import { IGraphProxyAdmin } from "../../../contracts/interfaces/IGraphProxyAdmin.sol"; import { ICuration } from "@graphprotocol/contracts/contracts/curation/ICuration.sol"; -import { GraphDirectory } from "./../../contracts/utilities/GraphDirectory.sol"; +import { GraphDirectory } from "./../../../contracts/utilities/GraphDirectory.sol"; contract GraphDirectoryImplementation is GraphDirectory { constructor(address controller) GraphDirectory(controller) {} diff --git a/packages/horizon/test/utils/Bounder.t.sol b/packages/horizon/test/unit/utils/Bounder.t.sol similarity index 100% rename from packages/horizon/test/utils/Bounder.t.sol rename to packages/horizon/test/unit/utils/Bounder.t.sol diff --git a/packages/horizon/test/utils/Constants.sol b/packages/horizon/test/unit/utils/Constants.sol similarity index 100% rename from packages/horizon/test/utils/Constants.sol rename to packages/horizon/test/unit/utils/Constants.sol diff --git a/packages/horizon/test/utils/Users.sol b/packages/horizon/test/unit/utils/Users.sol similarity index 100% rename from packages/horizon/test/utils/Users.sol rename to packages/horizon/test/unit/utils/Users.sol diff --git a/packages/horizon/test/utils/Utils.sol b/packages/horizon/test/unit/utils/Utils.sol similarity index 100% rename from packages/horizon/test/utils/Utils.sol rename to packages/horizon/test/unit/utils/Utils.sol diff --git a/packages/horizon/test/utilities/GraphDirectory.tree b/packages/horizon/test/utilities/GraphDirectory.tree deleted file mode 100644 index fc928ec29..000000000 --- a/packages/horizon/test/utilities/GraphDirectory.tree +++ /dev/null @@ -1,11 +0,0 @@ -GraphDirectoryTest -├── when the contract is deployed with a valid controller -│ └── it should emit an initialization event -├── when the contract is deployed with an invalid controller -│ └── it should revert -├── when the contract is deployed with the zero address as the invalid controller -│ └── it should revert -├── when the contract getters are called -│ └── it should return the contract address -└── when an invalid contract getter is called - └── it should revert \ No newline at end of file diff --git a/packages/sdk/.eslintrc b/packages/sdk/.eslintrc deleted file mode 100644 index b59fac274..000000000 --- a/packages/sdk/.eslintrc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, - "extends": ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"], - "rules": { - "prefer-const": "warn", - "no-extra-semi": "off", - "@typescript-eslint/no-extra-semi": "off", - "@typescript-eslint/no-inferrable-types": "warn", - "@typescript-eslint/no-empty-function": "warn", - "@typescript-eslint/no-explicit-any": "warn", // TODO: enable this! - "@typescript-eslint/no-unused-vars": "warn", // TODO: enable this! - "no-only-tests/no-only-tests": "error" - }, - "plugins": [ - "no-only-tests" - ] -} \ No newline at end of file diff --git a/packages/sdk/.mocharc.json b/packages/sdk/.mocharc.json deleted file mode 100644 index 4cece68cc..000000000 --- a/packages/sdk/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": "ts-node/register/files", - "ignore": ["test/fixture-projects/**/*"], - "timeout": 6000 -} \ No newline at end of file diff --git a/packages/sdk/.prettierrc.json b/packages/sdk/.prettierrc.json deleted file mode 100644 index 4f12c5ed0..000000000 --- a/packages/sdk/.prettierrc.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "printWidth": 100, - "useTabs": false, - "bracketSpacing": true, - "overrides": [ - { - "files": "*.js", - "options": { - "semi": false, - "trailingComma": "all", - "tabWidth": 2, - "singleQuote": true, - "explicitTypes": "always" - } - }, - { - "files": "*.ts", - "options": { - "semi": false, - "trailingComma": "all", - "tabWidth": 2, - "singleQuote": true, - "explicitTypes": "always" - } - }, - { - "files": "*.sol", - "options": { - "tabWidth": 4, - "singleQuote": false, - "explicitTypes": "always" - } - } - ] -} diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md deleted file mode 100644 index 9cc5a8e17..000000000 --- a/packages/sdk/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -# @graphprotocol/sdk - -## 0.5.1 - -### Patch Changes - -- Bump contracts dependency - -## 0.5.0 - -### Minor Changes - -- 554af2c: feat(utils): add utility to parse subgraph ids - -### Patch Changes - -- c5641c5: Ensure L2 aliased addresses are the correct length -- Updated dependencies -- Updated dependencies [554af2c] - - @graphprotocol/contracts@6.2.0 diff --git a/packages/sdk/package.json b/packages/sdk/package.json deleted file mode 100644 index 6083abdcb..000000000 --- a/packages/sdk/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "@graphprotocol/sdk", - "version": "0.5.1", - "description": "TypeScript based SDK to interact with The Graph protocol contracts", - "main": "build/index.js", - "types": "src/index.ts", - "exports": { - ".": { - "default": "./src/index.ts", - "types": "./src/index.ts" - }, - "./gre": { - "default": "./src/gre/index.ts", - "types": "./src/gre/index.ts" - } - }, - "repository": "git@github.com:graphprotocol/sdk.git", - "author": "tomas@edgeandnode.com", - "license": "MIT", - "dependencies": { - "@arbitrum/sdk": "~3.1.13", - "@ethersproject/experimental": "^5.7.0", - "@graphprotocol/common-ts": "^2.0.7", - "@graphprotocol/contracts": "workspace:^7.0.0", - "@nomicfoundation/hardhat-network-helpers": "^1.0.9", - "@nomiclabs/hardhat-ethers": "^2.2.3", - "debug": "^4.3.4", - "ethers": "^5.7.0", - "hardhat": "~2.14.0", - "hardhat-secure-accounts": "^0.0.6", - "inquirer": "^8.0.0", - "lodash": "^4.17.21", - "yaml": "^1.10.2" - }, - "devDependencies": { - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/debug": "^4.1.10", - "@types/inquirer": "^8.0.0", - "@types/lodash": "^4.14.200", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.7", - "@typescript-eslint/eslint-plugin": "^6.8.0", - "@typescript-eslint/parser": "^6.8.0", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "eslint": "^8.52.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-prettier": "^5.0.1", - "prettier": "^3.0.3", - "ts-node": "^10.9.1", - "typescript": "^5.1.6" - }, - "scripts": { - "lint": "eslint '**/*.{js,ts}' --fix", - "prettier": "prettier --write '**/*.{js,ts,json}'", - "test:gre": "cd src/gre && mocha --exit --recursive 'test/**/*.test.ts' && cd ..", - "clean": "rm -rf build", - "build": "npm run clean && tsc" - }, - "files": [ - "build/*", - "src/*", - "README.md", - "CHANGELOG.md", - "LICENSE" - ] -} diff --git a/packages/sdk/src/chain/id.ts b/packages/sdk/src/chain/id.ts deleted file mode 100644 index 7ecdb4f15..000000000 --- a/packages/sdk/src/chain/id.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { GraphChainList } from './list' -import { isGraphChainId, isGraphL1ChainId, isGraphL2ChainId } from './types' - -import type { GraphChainId, GraphL1ChainId, GraphL2ChainId } from './types' - -/** A list of all L1 chain ids supported by the protocol */ -export const l1Chains: GraphL1ChainId[] = GraphChainList.map((c) => c.l1.id) -/** A list of all L2 chain ids supported by the protocol */ -export const l2Chains: GraphL2ChainId[] = GraphChainList.map((c) => c.l2.id) -/** A list of all chain ids supported by the protocol */ -export const chains: GraphChainId[] = [...l1Chains, ...l2Chains] - -/** - * Gets the L2 chain id that corresponds to the given L1 chain id - * @param chainId The L1 chain id - * @returns The L2 chain id - * - * @throws Error if the given chain id is not a valid L1 chain id - */ -export const l1ToL2 = (chainId: number): GraphChainId => { - if (!isGraphL1ChainId(chainId)) throw new Error(`Invalid L1 chain id: ${chainId}`) - const pair = GraphChainList.find((cp) => cp.l1.id === chainId) - if (pair === undefined) { - throw new Error(`Could not find L2 chain id for L1 chain id: ${chainId}`) - } - return pair.l2.id -} -/** - * Gets the L1 chain id that corresponds to the given L2 chain id - * @param chainId The L2 chain id - * @returns The L1 chain id - * - * @throws Error if the given chain id is not a valid L2 chain id - */ -export const l2ToL1 = (chainId: number): GraphChainId => { - if (!isGraphL2ChainId(chainId)) throw new Error(`Invalid L2 chain id: ${chainId}`) - const pair = GraphChainList.find((cp) => cp.l2.id === chainId) - if (pair === undefined) { - throw new Error(`Could not find L1 chain id for L2 chain id: ${chainId}`) - } - return pair.l1.id -} -/** - * Gets the counterpart chain id to the given L1 or L2 chain id - * @param chainId The chain id - * @returns The counterpart chain id - * - * @throws Error if the given chain id is not a valid chain id - */ -export const counterpart = (chainId: number): GraphChainId => { - if (!isGraphChainId(chainId)) throw new Error(`Invalid chain id: ${chainId}`) - return isGraphL1ChainId(chainId) ? l1ToL2(chainId) : l2ToL1(chainId) -} diff --git a/packages/sdk/src/chain/index.ts b/packages/sdk/src/chain/index.ts deleted file mode 100644 index 30f1140cc..000000000 --- a/packages/sdk/src/chain/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -export { l1Chains, l2Chains, chains, l1ToL2, l2ToL1, counterpart } from './id' -export { - l1ChainNames, - l2ChainNames, - chainNames, - l1ToL2Name, - l2ToL1Name, - counterpartName, -} from './name' -export { - isGraphChainId, - isGraphL1ChainId, - isGraphL2ChainId, - isGraphChainName, - isGraphL1ChainName, - isGraphL2ChainName, - isGraphChainL1Localhost, - isGraphChainL2Localhost, -} from './types' - -export type { - GraphChainId, - GraphL1ChainId, - GraphL2ChainId, - GraphL1ChainName, - GraphL2ChainName, -} from './types' diff --git a/packages/sdk/src/chain/list.ts b/packages/sdk/src/chain/list.ts deleted file mode 100644 index 471fd0407..000000000 --- a/packages/sdk/src/chain/list.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Master chain list for all the chain pairs supported by the Graph Protocol - * See {@link GraphChainPair} for details on the structure of a chain pair - * @enum - */ -export const GraphChainList = [ - { - l1: { - id: 1, - name: 'mainnet', - }, - l2: { - id: 42161, - name: 'arbitrum-one', - }, - }, - { - l1: { - id: 4, - name: 'rinkeby', - }, - l2: { - id: 421611, - name: 'arbitrum-rinkeby', - }, - }, - { - l1: { - id: 11155111, - name: 'sepolia', - }, - l2: { - id: 421614, - name: 'arbitrum-sepolia', - }, - }, - { - l1: { - id: 5, - name: 'goerli', - }, - l2: { - id: 421613, - name: 'arbitrum-goerli', - }, - }, - { - l1: { - id: 1337, - name: 'localnitrol1', - }, - l2: { - id: 412346, - name: 'localnitrol2', - }, - }, -] as const diff --git a/packages/sdk/src/chain/name.ts b/packages/sdk/src/chain/name.ts deleted file mode 100644 index faffda21e..000000000 --- a/packages/sdk/src/chain/name.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { GraphChainList } from './list' -import { isGraphChainName, isGraphL1ChainName, isGraphL2ChainName } from './types' - -import type { GraphChainName, GraphL1ChainName, GraphL2ChainName } from './types' - -/** A list of all L1 chain names supported by the protocol */ -export const l1ChainNames: GraphL1ChainName[] = GraphChainList.map((c) => c.l1.name) -/** A list of all L2 chain names supported by the protocol */ -export const l2ChainNames: GraphL2ChainName[] = GraphChainList.map((c) => c.l2.name) -/** A list of all chain names supported by the protocol */ -export const chainNames: GraphChainName[] = [...l1ChainNames, ...l2ChainNames] - -/** - * Gets the L2 chain name that corresponds to the given L1 chain name - * @param name The L1 chain name - * @returns The L2 chain name - * - * @throws Error if the given chain name is not a valid L1 chain name - */ -export const l1ToL2Name = (name: string): GraphChainName => { - if (!isGraphL1ChainName(name)) throw new Error(`Invalid L1 chain name: ${name}`) - const pair = GraphChainList.find((cp) => cp.l1.name === name) - if (pair === undefined) { - throw new Error(`Could not find L2 chain name for L1 chain name: ${name}`) - } - return pair.l2.name -} -/** - * Gets the L1 chain name that corresponds to the given L2 chain name - * @param name The L2 chain name - * @returns The L1 chain name - * - * @throws Error if the given chain name is not a valid L2 chain name - */ -export const l2ToL1Name = (name: string): GraphChainName => { - if (!isGraphL2ChainName(name)) throw new Error(`Invalid L2 chain name: ${name}`) - const pair = GraphChainList.find((cp) => cp.l2.name === name) - if (pair === undefined) { - throw new Error(`Could not find L1 chain name for L2 chain name: ${name}`) - } - return pair.l1.name -} -/** - * Gets the counterpart chain name to the given L1 or L2 chain name - * @param chainId The chain name - * @returns The counterpart chain name - * - * @throws Error if the given chain name is not a valid chain name - */ -export const counterpartName = (name: string): GraphChainName => { - if (!isGraphChainName(name)) throw new Error(`Invalid chain name: ${name}`) - return isGraphL1ChainName(name) ? l1ToL2Name(name) : l2ToL1Name(name) -} diff --git a/packages/sdk/src/chain/types.ts b/packages/sdk/src/chain/types.ts deleted file mode 100644 index ba25f69cf..000000000 --- a/packages/sdk/src/chain/types.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { l1Chains, l2Chains } from './id' -import { l1ChainNames, l2ChainNames } from './name' - -import type { GraphChainList } from './list' - -/** - * A chain pair is an object containing a valid L1 and L2 chain pairing - * - * @example - * { - * l1: { - * id: 1, - * name: 'mainnet', - * }, - * l2: { - * id: 42161, - * name: 'arbitrum-one', - * }, - * } - */ -export type GraphChainPair = (typeof GraphChainList)[number] - -/** L1 chain ids supported by the protocol */ -export type GraphL1ChainId = GraphChainPair['l1']['id'] -/** L2 chain ids supported by the protocol */ -export type GraphL2ChainId = GraphChainPair['l2']['id'] -/** L1 and L2 chain ids supported by the protocol */ -export type GraphChainId = GraphL1ChainId | GraphL2ChainId - -/** L1 chain names supported by the protocol */ -export type GraphL1ChainName = GraphChainPair['l1']['name'] -/** L2 chain names supported by the protocol */ -export type GraphL2ChainName = GraphChainPair['l2']['name'] -/** L1 and L2 chain names supported by the protocol */ -export type GraphChainName = GraphL1ChainName | GraphL2ChainName - -// ** Type guards ** - -/** Type guard for {@link GraphL1ChainId} */ -export function isGraphL1ChainId(value: unknown): value is GraphL1ChainId { - return typeof value === 'number' && l1Chains.includes(value as GraphL1ChainId) -} -/** Type guard for {@link GraphL2ChainId} */ -export function isGraphL2ChainId(value: unknown): value is GraphL2ChainId { - return typeof value === 'number' && l2Chains.includes(value as GraphL2ChainId) -} -/** Type guard for {@link GraphChainId} */ -export function isGraphChainId(value: unknown): value is GraphChainId { - return typeof value === 'number' && (isGraphL1ChainId(value) || isGraphL2ChainId(value)) -} - -export function isGraphChainL1Localhost(value: unknown): value is GraphChainId { - return typeof value === 'number' && value === 1337 -} - -/** Type guard for {@link GraphL1ChainName} */ -export function isGraphL1ChainName(value: unknown): value is GraphL1ChainName { - return typeof value === 'string' && l1ChainNames.includes(value as GraphL1ChainName) -} -/** Type guard for {@link GraphL2ChainName} */ -export function isGraphL2ChainName(value: unknown): value is GraphL2ChainName { - return typeof value === 'string' && l2ChainNames.includes(value as GraphL2ChainName) -} -/** Type guard for {@link GraphChainName} */ -export function isGraphChainName(value: unknown): value is GraphChainName { - return typeof value === 'string' && (isGraphL1ChainName(value) || isGraphL2ChainName(value)) -} - -export function isGraphChainL2Localhost(value: unknown): value is GraphChainId { - return typeof value === 'number' && value === 1337 -} diff --git a/packages/sdk/src/deployments/index.ts b/packages/sdk/src/deployments/index.ts deleted file mode 100644 index 43bca79cf..000000000 --- a/packages/sdk/src/deployments/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -// lib -export { AddressBook, SimpleAddressBook } from './lib/address-book' -export { - getItemValue, - readConfig, - writeConfig, - updateItemValue, - getContractConfig, -} from './lib/config' -export { loadContractAt } from './lib/contracts/load' -export { DeployType } from './lib/types/deploy' - -// Graph Network Contracts -export { GraphNetworkAddressBook } from './network/deployment/address-book' -export { loadGraphNetworkContracts } from './network/deployment/contracts/load' -export { - deployGraphNetwork, - deployMockGraphNetwork, - deploy, -} from './network/deployment/contracts/deploy' -export { - isGraphNetworkContractName, - GraphNetworkContractNameList, - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - GraphNetworkGovernedContractNameList, -} from './network/deployment/contracts/list' -export { - GraphNetworkConfigGeneralParams, - GraphNetworkConfigContractList, - updateContractParams, - updateGeneralParams, - getDefaults, -} from './network/deployment/config' - -export * from './network/actions/disputes' -export * from './network/actions/gns' -export * from './network/actions/staking' -export * from './network/actions/graph-token' -export * from './network/actions/governed' -export * from './network/actions/bridge-config' -export * from './network/actions/bridge-to-l1' -export * from './network/actions/bridge-to-l2' -export * from './network/actions/pause' - -export type { GraphNetworkContracts } from './network/deployment/contracts/load' -export type { GraphNetworkContractName } from './network/deployment/contracts/list' -export type { GraphNetworkAction } from './network/actions/types' diff --git a/packages/sdk/src/deployments/lib/address-book.ts b/packages/sdk/src/deployments/lib/address-book.ts deleted file mode 100644 index 02e3e3e91..000000000 --- a/packages/sdk/src/deployments/lib/address-book.ts +++ /dev/null @@ -1,149 +0,0 @@ -import fs from 'fs' -import { assertObject } from '../../utils/assertions' -import { AssertionError } from 'assert' - -import type { AddressBookJson, AddressBookEntry } from './types/address-book' -import { logInfo } from '../logger' - -/** - * An abstract class to manage the address book - * Must be extended and implement `assertChainId` and `assertAddressBookJson` - */ -export abstract class AddressBook< - ChainId extends number = number, - ContractName extends string = string, -> { - // The path to the address book file - public file: string - - // The chain id of the network the address book should be loaded for - public chainId: ChainId - - // The raw contents of the address book file - public addressBook: AddressBookJson - - public strictAssert: boolean - - /** - * Constructor for the `AddressBook` class - * - * @param _file the path to the address book file - * @param _chainId the chain id of the network the address book should be loaded for - * - * @throws AssertionError if the target file is not a valid address book - * @throws Error if the target file does not exist - */ - constructor(_file: string, _chainId: number, strictAssert = false) { - this.strictAssert = strictAssert - this.file = _file - if (!fs.existsSync(this.file)) throw new Error(`Address book path provided does not exist!`) - - logInfo(`Loading address book for chainId ${_chainId} from ${this.file}`) - this.assertChainId(_chainId) - this.chainId = _chainId - - // Ensure file is a valid address book - this.addressBook = JSON.parse(fs.readFileSync(this.file, 'utf8') || '{}') - this.assertAddressBookJson(this.addressBook) - - // If the address book is empty for this chain id, initialize it with an empty object - if (!this.addressBook[this.chainId]) { - this.addressBook[this.chainId] = {} as Record - } - } - - abstract assertChainId(chainId: string | number): asserts chainId is ChainId - - abstract assertAddressBookJson(json: unknown): asserts json is AddressBookJson - - // Assertion helper: call from `assertAddressBookJson` implementation - _assertAddressBookJson(json: unknown): asserts json is AddressBookJson { - assertObject(json, 'Assertion failed: address book is not an object') - - const contractList = json[this.chainId] - try { - assertObject(contractList, 'Assertion failed: chain contract list is not an object') - } catch (error) { - if (this.strictAssert) throw error - else return - } - - const contractNames = Object.keys(contractList) - for (const contractName of contractNames) { - this._assertAddressBookEntry(contractList[contractName]) - } - } - - _assertAddressBookEntry(json: unknown): asserts json is AddressBookEntry { - assertObject(json) - - try { - if (typeof json.address !== 'string') throw new AssertionError({ message: 'Invalid address' }) - if (json.constructorArgs && !Array.isArray(json.constructorArgs)) - throw new AssertionError({ message: 'Invalid constructorArgs' }) - if (json.initArgs && !Array.isArray(json.initArgs)) - throw new AssertionError({ message: 'Invalid initArgs' }) - if (json.creationCodeHash && typeof json.creationCodeHash !== 'string') - throw new AssertionError({ message: 'Invalid creationCodeHash' }) - if (json.runtimeCodeHash && typeof json.runtimeCodeHash !== 'string') - throw new AssertionError({ message: 'Invalid runtimeCodeHash' }) - if (json.txHash && typeof json.txHash !== 'string') - throw new AssertionError({ message: 'Invalid txHash' }) - if (json.proxy && typeof json.proxy !== 'boolean') - throw new AssertionError({ message: 'Invalid proxy' }) - if (json.implementation && typeof json.implementation !== 'object') - throw new AssertionError({ message: 'Invalid implementation' }) - if (json.libraries && typeof json.libraries !== 'object') - throw new AssertionError({ message: 'Invalid libraries' }) - } catch (error) { - if (this.strictAssert) throw error - else return - } - } - /** - * List entry names in the address book - * - * @returns a list with all the names of the entries in the address book - */ - listEntries(): ContractName[] { - return Object.keys(this.addressBook[this.chainId]) as ContractName[] - } - - /** - * Get an entry from the address book - * - * @param name the name of the contract to get - * @returns the address book entry for the contract - * Returns an empty address book entry if the contract is not found - */ - getEntry(name: ContractName): AddressBookEntry { - try { - return this.addressBook[this.chainId][name] - } catch (e) { - // TODO: should we throw instead? - // We could use ethers.constants.AddressZero but it's a costly import - return { address: '0x0000000000000000000000000000000000000000' } - } - } - - /** - * Save an entry to the address book - * - * @param name the name of the contract to save - * @param entry the address book entry for the contract - */ - setEntry(name: ContractName, entry: AddressBookEntry): void { - this.addressBook[this.chainId][name] = entry - try { - fs.writeFileSync(this.file, JSON.stringify(this.addressBook, null, 2)) - } catch (e: unknown) { - if (e instanceof Error) console.log(`Error saving artifacts: ${e.message}`) - else console.log(`Error saving artifacts: ${e}`) - } - } -} - -export class SimpleAddressBook extends AddressBook { - assertChainId(chainId: string | number): asserts chainId is number {} - assertAddressBookJson(json: unknown): asserts json is AddressBookJson {} -} diff --git a/packages/sdk/src/deployments/lib/config.ts b/packages/sdk/src/deployments/lib/config.ts deleted file mode 100644 index 18beac6e0..000000000 --- a/packages/sdk/src/deployments/lib/config.ts +++ /dev/null @@ -1,166 +0,0 @@ -import fs from 'fs' -import YAML from 'yaml' -import { Scalar, YAMLMap } from 'yaml/types' -import { AddressBook } from './address-book' - -import type { - ABRefReplace, - ContractConfig, - ContractConfigCall, - ContractConfigParam, -} from './types/config' -import type { ContractParam } from './types/contract' - -// TODO: tidy this up -const ABRefMatcher = /\${{([A-Z]\w.+)}}/ - -function parseConfigValue(value: string, addressBook: AddressBook, deployerAddress: string) { - return isAddressBookRef(value) - ? parseAddressBookRef(addressBook, value, [{ ref: 'Env.deployer', replace: deployerAddress }]) - : value -} - -function isAddressBookRef(value: string): boolean { - return ABRefMatcher.test(value) -} - -function parseAddressBookRef( - addressBook: AddressBook, - value: string, - abInject: ABRefReplace[], -): string { - const valueMatch = ABRefMatcher.exec(value) - if (valueMatch === null) { - throw new Error('Could not parse address book reference') - } - const ref = valueMatch[1] - const [contractName, contractAttr] = ref.split('.') - - // This is a convention to inject variables into the config, for example the deployer address - const inject = abInject.find((ab) => ab.ref === ref) - if (inject) { - return inject.replace - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const entry = addressBook.getEntry(contractName) as { [key: string]: any } - return entry[contractAttr] -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function readConfig(path: string, retainMetadata = false): any { - const file = fs.readFileSync(path, 'utf8') - return retainMetadata ? YAML.parseDocument(file) : YAML.parse(file) -} - -export function writeConfig(path: string, data: string): void { - fs.writeFileSync(path, data) -} - -export function loadCallParams( - values: Array, - addressBook: AddressBook, - deployerAddress: string, -): Array { - return values.map((value) => parseConfigValue(value as string, addressBook, deployerAddress)) -} - -export function getContractConfig( - config: any, - addressBook: AddressBook, - name: string, - deployerAddress: string, -): ContractConfig { - const contractConfig = config.contracts[name] || {} - const contractParams: Array = [] - const contractCalls: Array = [] - let proxy = false - - const optsList = Object.entries(contractConfig) as Array> - for (const [name, value] of optsList) { - // Process constructor params - if (name.startsWith('init')) { - const initList = Object.entries(contractConfig.init) as Array> - for (const [initName, initValue] of initList) { - contractParams.push({ - name: initName, - value: parseConfigValue(initValue, addressBook, deployerAddress), - }) - } - continue - } - - // Process contract calls - if (name.startsWith('calls')) { - for (const entry of contractConfig.calls) { - const fn = entry['fn'] - const params = Object.values(entry).slice(1) as Array // skip fn - contractCalls.push({ fn, params }) - } - continue - } - - // Process proxy - if (name.startsWith('proxy')) { - proxy = Boolean(value) - continue - } - } - - return { - params: contractParams, - calls: contractCalls, - proxy, - } -} - -// YAML helper functions -const getNode = (doc: YAML.Document.Parsed, path: string[]): YAMLMap | undefined => { - try { - let node: YAMLMap | undefined - for (const p of path) { - node = node === undefined ? doc.get(p) : node.get(p) - } - return node - } catch (error) { - throw new Error(`Could not find node: ${path}.`) - } -} - -function getItem(node: YAMLMap, key: string): Scalar { - if (!node.has(key)) { - throw new Error(`Could not find item: ${key}.`) - } - return node.get(key, true) as Scalar -} - -function getItemFromPath(doc: YAML.Document.Parsed, path: string) { - const splitPath = path.split('/') - const itemKey = splitPath.pop() - if (itemKey === undefined) { - throw new Error('Badly formed path.') - } - - const node = getNode(doc, splitPath) - if (node === undefined) { - return undefined - } - - const item = getItem(node, itemKey) - return item -} - -export const getItemValue = (doc: YAML.Document.Parsed, path: string): any => { - const item = getItemFromPath(doc, path) - return item?.value -} - -export const updateItemValue = (doc: YAML.Document.Parsed, path: string, value: any): boolean => { - const item = getItemFromPath(doc, path) - if (item === undefined) { - throw new Error(`Could not find item: ${path}.`) - } - const updated = item.value !== value - item.value = value - return updated -} diff --git a/packages/sdk/src/deployments/lib/contracts/load.ts b/packages/sdk/src/deployments/lib/contracts/load.ts deleted file mode 100644 index 182d8b9c9..000000000 --- a/packages/sdk/src/deployments/lib/contracts/load.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Contract, Signer, providers } from 'ethers' -import { AddressBook } from '../address-book' -import { loadArtifact } from '../deploy/artifacts' - -import type { ContractList } from '../types/contract' -import { getWrappedConnect, wrapCalls } from './wrap' - -/** - * Loads a contract instance for a given contract name and address - * - * @param name Name of the contract - * @param address Address of the contract - * @param signerOrProvider Signer or provider to use - * @returns the loaded contract - */ -export const loadContractAt = ( - name: string, - address: string, - artifactsPath?: string | string[], - signerOrProvider?: Signer | providers.Provider, -): Contract => { - return new Contract(address, loadArtifact(name, artifactsPath).abi, signerOrProvider) -} - -/** - * Loads a contract from an address book - * - * @param name Name of the contract - * @param addressBook Address book to use - * @param signerOrProvider Signer or provider to use - * @param enableTxLogging Enable transaction logging to console and output file. Defaults to `true` - * @param optional If true, the contract is optional and will not throw if it cannot be loaded - * @returns the loaded contract - * - * @throws Error if the contract could not be loaded - */ -export function loadContract( - name: ContractName, - addressBook: AddressBook, - artifactsPath: string | string[], - signerOrProvider?: Signer | providers.Provider, - enableTxLogging = true, - preloadedContract?: Contract, -): Contract { - const contractEntry = addressBook.getEntry(name) - - try { - let contract = preloadedContract ?? loadContractAt(name, contractEntry.address, artifactsPath) - - if (enableTxLogging) { - contract.connect = getWrappedConnect(contract, name) - contract = wrapCalls(contract, name) - } - - if (signerOrProvider) { - contract = contract.connect(signerOrProvider) - } - - return contract - } catch (err: unknown) { - if (err instanceof Error) { - throw new Error(`Could not load contract ${name} - ${err.message}`) - } else { - throw new Error(`Could not load contract ${name}`) - } - } -} - -/** - * Loads all contracts from an address book - * - * @param addressBook Address book to use - * @param signerOrProvider Signer or provider to use - * @param enableTxLogging Enable transaction logging to console and output file. Defaults to `true` - * @returns the loaded contracts - */ -export const loadContracts = < - ChainId extends number = number, - ContractName extends string = string, ->( - addressBook: AddressBook, - artifactsPath: string | string[], - signerOrProvider?: Signer | providers.Provider, - enableTXLogging = true, - optionalContractNames?: string[], -): ContractList => { - const contracts = {} as ContractList - for (const contractName of addressBook.listEntries()) { - try { - const contract = loadContract( - contractName, - addressBook, - artifactsPath, - signerOrProvider, - enableTXLogging, - ) - contracts[contractName] = contract - } catch (error) { - if (optionalContractNames?.includes(contractName)) { - console.log(`Skipping optional contract ${contractName}`) - continue - } else { - throw error - } - } - } - - return contracts -} diff --git a/packages/sdk/src/deployments/lib/contracts/log.ts b/packages/sdk/src/deployments/lib/contracts/log.ts deleted file mode 100644 index b087b9b4b..000000000 --- a/packages/sdk/src/deployments/lib/contracts/log.ts +++ /dev/null @@ -1,63 +0,0 @@ -import fs from 'fs' - -import type { ContractReceipt, ContractTransaction } from 'ethers' -import type { ContractParam } from '../types/contract' -import { logInfo } from '../../logger' - -export function logContractCall( - tx: ContractTransaction, - contractName: string, - fn: string, - args: Array, -) { - const msg: string[] = [] - msg.push(`> Sending transaction: ${contractName}.${fn}`) - msg.push(` = Sender: ${tx.from}`) - msg.push(` = Contract: ${tx.to}`) - msg.push(` = Params: [ ${args} ]`) - msg.push(` = TxHash: ${tx.hash}`) - - logToConsoleAndFile(msg) -} - -export function logContractDeploy( - tx: ContractTransaction, - contractName: string, - args: Array, -) { - const msg: string[] = [] - msg.push(`> Deploying contract: ${contractName}`) - msg.push(` = Sender: ${tx.from}`) - msg.push(` = Params: [ ${args} ]`) - msg.push(` = TxHash: ${tx.hash}`) - logToConsoleAndFile(msg) -} - -export function logContractDeployReceipt( - receipt: ContractReceipt, - creationCodeHash: string, - runtimeCodeHash: string, -) { - const msg: string[] = [] - msg.push(` = Contract deployed at: ${receipt.contractAddress}`) - msg.push(` = CreationCodeHash: ${creationCodeHash}`) - msg.push(` = RuntimeCodeHash: ${runtimeCodeHash}`) - logToConsoleAndFile(msg) - logContractReceipt(receipt) -} - -export function logContractReceipt(receipt: ContractReceipt) { - const msg: string[] = [] - msg.push(receipt.status ? ` ✔ Transaction succeeded!` : ` ✖ Transaction failed!`) - logToConsoleAndFile(msg) -} - -export function logToConsoleAndFile(msg: string[]) { - const isoDate = new Date().toISOString() - const fileName = `tx-${isoDate.substring(0, 10)}.log` - - msg.map((line) => { - logInfo(line) - fs.appendFileSync(fileName, `[${isoDate}] ${line}\n`) - }) -} diff --git a/packages/sdk/src/deployments/lib/contracts/wrap.ts b/packages/sdk/src/deployments/lib/contracts/wrap.ts deleted file mode 100644 index 411c5ceee..000000000 --- a/packages/sdk/src/deployments/lib/contracts/wrap.ts +++ /dev/null @@ -1,79 +0,0 @@ -import lodash from 'lodash' - -import type { Contract, ContractFunction, ContractTransaction, Signer } from 'ethers' -import type { Provider } from '@ethersproject/providers' -import type { ContractParam } from '../types/contract' -import { logContractCall, logContractReceipt } from './log' - -class WrappedContract { - // The meta-class properties - [key: string]: ContractFunction | any -} - -function isContractTransaction(call: ContractTransaction | any): call is ContractTransaction { - return typeof call === 'object' && (call as ContractTransaction).hash !== undefined -} - -/** - * Modifies a contract connect function to return a contract wrapped with {@link wrapCalls} - * - * @param contract Contract to wrap - * @param contractName Name of the contract - * @returns the contract connect function - */ -export function getWrappedConnect( - contract: Contract, - contractName: string, -): (signerOrProvider: string | Provider | Signer) => Contract { - const call = contract.connect.bind(contract) - const override = (signerOrProvider: string | Provider | Signer): Contract => { - const connectedContract = call(signerOrProvider) - connectedContract.connect = getWrappedConnect(connectedContract, contractName) - return wrapCalls(connectedContract, contractName) - } - return override -} - -/** - * Wraps contract calls with a modified call function that logs the tx details - * - * @remarks - * The override function will: - * 1. Make the contract call - * 2. Wait for tx confirmation using `provider.waitForTransaction()` - * 3. Log the tx details and the receipt details, both to the console and to a file - * - * @param contract Contract to be wrapped - * @param contractName Name of the contract - * @returns the wrapped contract - */ -export function wrapCalls(contract: Contract, contractName: string): Contract { - const wrappedContract = lodash.cloneDeep(contract) as WrappedContract - - for (const fn of Object.keys(contract.functions)) { - const call = contract.functions[fn] - const override = async (...args: Array): Promise => { - const response = await call(...args) - - // If it's a read only call, return the response - if (!isContractTransaction(response)) { - return Array.isArray(response) && response.length === 1 ? response[0] : response - } - - // Otherwise it's a tx, log the details - logContractCall(response, contractName, fn, args) - - // And wait for confirmation - const receipt = await contract.provider.waitForTransaction(response.hash) - logContractReceipt(receipt) - - // Finally return the tx response - return response - } - - wrappedContract[fn] = override - wrappedContract.functions[fn] = override - } - - return wrappedContract as Contract -} diff --git a/packages/sdk/src/deployments/lib/deploy/artifacts.ts b/packages/sdk/src/deployments/lib/deploy/artifacts.ts deleted file mode 100644 index 96a44cd3b..000000000 --- a/packages/sdk/src/deployments/lib/deploy/artifacts.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Artifacts } from 'hardhat/internal/artifacts' - -import type { Artifact } from 'hardhat/types' - -/** - * Load a contract's artifact from the build output folder - * If multiple build output folders are provided, they will be searched in order - * @param name Name of the contract - * @param buildDir Path to the build output folder(s). Defaults to `build/contracts`. - * @returns The artifact corresponding to the contract name - */ -export const loadArtifact = (name: string, buildDir?: string[] | string): Artifact => { - let artifacts: Artifacts | undefined - let artifact: Artifact | undefined - buildDir = buildDir ?? ['build/contracts'] - - if (typeof buildDir === 'string') { - buildDir = [buildDir] - } - - for (const dir of buildDir) { - try { - artifacts = new Artifacts(dir) - artifact = artifacts.readArtifactSync(name) - break - } catch (error) { - const message = error instanceof Error ? error.message : error - //console.error(`Could not load artifact ${name} from ${dir} - ${message}`) - } - } - - if (artifact === undefined) { - throw new Error(`Could not load artifact ${name}`) - } - - return artifact -} diff --git a/packages/sdk/src/deployments/lib/deploy/contract.ts b/packages/sdk/src/deployments/lib/deploy/contract.ts deleted file mode 100644 index ea8681493..000000000 --- a/packages/sdk/src/deployments/lib/deploy/contract.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { loadArtifact } from './artifacts' -import { getContractFactory } from './factory' -import { AddressBook } from '../address-book' -import { hashHexString } from '../../../utils/hash' -import { logInfo } from '../../logger' -import type { Signer } from 'ethers' -import type { - DeployData, - DeployResult, - DeployFunction, - DeployAddressBookFunction, -} from '../types/deploy' -import { logContractDeploy, logContractDeployReceipt } from '../contracts/log' - -/** - * Deploys a contract - * - * @remarks This function will autolink, that means it will automatically deploy external libraries - * and link them to the contract if needed - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param autolink Wether or not to autolink. Defaults to true. - * @returns the deployed contract and deployment metadata associated to it - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContract: DeployFunction = async ( - sender: Signer, - contractData: DeployData, -): Promise => { - const name = contractData.name - const args = contractData.args ?? [] - const opts = contractData.opts ?? {} - - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - // Autolink - const libraries = {} as Record - if (opts?.autolink ?? true) { - const artifact = loadArtifact(name) - if (artifact.linkReferences && Object.keys(artifact.linkReferences).length > 0) { - for (const fileReferences of Object.values(artifact.linkReferences)) { - for (const libName of Object.keys(fileReferences)) { - const deployResult = await deployContract(sender, { - name: libName, - args: [], - opts: { autolink: false }, - }) - libraries[libName] = deployResult.contract.address - } - } - } - } - - // Deploy - const factory = getContractFactory(name, libraries) - const contract = await factory.connect(sender).deploy(...args) - const txHash = contract.deployTransaction.hash - logContractDeploy(contract.deployTransaction, name, args) - const receipt = await sender.provider.waitForTransaction(txHash) - - // Receipt - const creationCodeHash = hashHexString(factory.bytecode) - const runtimeCodeHash = hashHexString(await sender.provider.getCode(contract.address)) - logContractDeployReceipt(receipt, creationCodeHash, runtimeCodeHash) - - return { contract, creationCodeHash, runtimeCodeHash, txHash, libraries } -} - -/** - * Deploys a contract and saves the deployment result to the address book - * - * @remarks Same as {@link deployContract} but this variant will also save the deployment result to the address book. - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param addressBook Address book to save the deployment result to - * @returns the deployed contract and deployment metadata associated to it - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractAndSave: DeployAddressBookFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, -): Promise => { - const name = contractData.name - const args = contractData.args ?? [] - - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - // Deploy the contract - const deployResult = await deployContract(sender, { - name: name, - args: args, - }) - - const constructorArgs = args.map((e) => { - if (Array.isArray(e)) { - return e.map((e) => e.toString()) - } else { - return e.toString() - } - }) - - // Save address entry - addressBook.setEntry(name, { - address: deployResult.contract.address, - constructorArgs: constructorArgs, - creationCodeHash: deployResult.creationCodeHash, - runtimeCodeHash: deployResult.runtimeCodeHash, - txHash: deployResult.txHash, - libraries: - deployResult.libraries && Object.keys(deployResult.libraries).length > 0 - ? deployResult.libraries - : undefined, - }) - logInfo('> Contract saved to address book') - - return deployResult -} diff --git a/packages/sdk/src/deployments/lib/deploy/deploy.ts b/packages/sdk/src/deployments/lib/deploy/deploy.ts deleted file mode 100644 index 7e5b494dc..000000000 --- a/packages/sdk/src/deployments/lib/deploy/deploy.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { deployContract, deployContractAndSave } from './contract' -import { DeployType, isDeployType } from '../types/deploy' -import { providers } from 'ethers' - -import type { Signer } from 'ethers' -import type { DeployData, DeployResult } from '../types/deploy' -import type { AddressBook } from '../address-book' -import { loadArtifact } from './artifacts' -import { hashHexString } from '../../../utils/hash' -import { assertObject } from '../../../utils/assertions' - -/** - * Checks wether a contract is deployed or not - * - * @param name Name of the contract to check - * @param proxyName Name of the contract proxy if there is one - * @param address Address of the contract - * @param addressBook Address book to use - * @param provider Provider to use - * @param checkCreationCode Check the creation code of the contract. Defaults to `true` - * @returns `true` if the contract is deployed, `false` otherwise. - */ -export const isContractDeployed = async ( - name: string, - proxyName: string, - address: string | undefined, - addressBook: AddressBook, - provider: providers.Provider, - checkCreationCode = true, -): Promise => { - console.info(`Checking for valid ${name} contract...`) - if (!address || address === '') { - console.warn('This contract is not in our address book.') - return false - } - - const addressEntry = addressBook.getEntry(name) - - // If the contract is behind a proxy we check the Proxy artifact instead - const artifact = addressEntry.proxy === true ? loadArtifact(proxyName) : loadArtifact(name) - - if (checkCreationCode) { - const savedCreationCodeHash = addressEntry.creationCodeHash - const creationCodeHash = hashHexString(artifact.bytecode) - if (!savedCreationCodeHash || savedCreationCodeHash !== creationCodeHash) { - console.warn(`creationCodeHash in our address book doesn't match ${name} artifacts`) - console.info(`${savedCreationCodeHash} !== ${creationCodeHash}`) - return false - } - } - - const savedRuntimeCodeHash = addressEntry.runtimeCodeHash - const runtimeCodeHash = hashHexString(await provider.getCode(address)) - if (runtimeCodeHash === hashHexString('0x00') || runtimeCodeHash === hashHexString('0x')) { - console.warn('No runtimeCode exists at the address in our address book') - return false - } - if (savedRuntimeCodeHash !== runtimeCodeHash) { - console.warn(`runtimeCodeHash for ${address} does not match what's in our address book`) - console.info(`${savedRuntimeCodeHash} !== ${runtimeCodeHash}`) - return false - } - return true -} - -export const deploy = async ( - type: DeployType | unknown, - sender: Signer, - contractData: DeployData, - addressBook?: AddressBook, - _proxyData?: DeployData, -): Promise => { - if (!isDeployType(type)) { - throw new Error('Please provide the correct option for deploy type') - } - - switch (type) { - case DeployType.Deploy: - console.info(`Deploying contract ${contractData.name}...`) - return await deployContract(sender, contractData) - case DeployType.DeployAndSave: - console.info(`Deploying contract ${contractData.name} and saving to address book...`) - assertObject(addressBook) - return await deployContractAndSave(sender, contractData, addressBook) - case DeployType.DeployWithProxy: - case DeployType.DeployWithProxyAndSave: - case DeployType.DeployImplementationAndSave: - throw new Error(`Base SDK does not implement ${type} deployments.`) - default: - throw new Error('Please provide the correct option for deploy type') - } -} diff --git a/packages/sdk/src/deployments/lib/deploy/factory.ts b/packages/sdk/src/deployments/lib/deploy/factory.ts deleted file mode 100644 index a89ead679..000000000 --- a/packages/sdk/src/deployments/lib/deploy/factory.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { ContractFactory } from 'ethers' -import { loadArtifact } from './artifacts' - -import type { Artifact } from 'hardhat/types' -import type { Libraries } from '../types/artifacts' - -/** - * Gets a contract factory for a given contract name - * - * @param name Name of the contract - * @param libraries Libraries to link - * @returns the contract factory - */ -export const getContractFactory = (name: string, libraries?: Libraries): ContractFactory => { - const artifact = loadArtifact(name) - // Fixup libraries - if (libraries && Object.keys(libraries).length > 0) { - artifact.bytecode = linkLibraries(artifact, libraries) - } - return new ContractFactory(artifact.abi, artifact.bytecode) -} - -const linkLibraries = (artifact: Artifact, libraries?: Libraries): string => { - let bytecode = artifact.bytecode - - if (libraries) { - if (artifact.linkReferences) { - for (const fileReferences of Object.values(artifact.linkReferences)) { - for (const [libName, fixups] of Object.entries(fileReferences)) { - const addr = libraries[libName] - if (addr === undefined) { - continue - } - - for (const fixup of fixups) { - bytecode = - bytecode.substr(0, 2 + fixup.start * 2) + - addr.substr(2) + - bytecode.substr(2 + (fixup.start + fixup.length) * 2) - } - } - } - } - } - return bytecode -} diff --git a/packages/sdk/src/deployments/lib/types/address-book.ts b/packages/sdk/src/deployments/lib/types/address-book.ts deleted file mode 100644 index 775c86b58..000000000 --- a/packages/sdk/src/deployments/lib/types/address-book.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { DeployResult } from './deploy' - -// TODO: doc this - -// JSON format: -// { -// "": { -// "": {} -// ... -// } -// } -export type AddressBookJson< - ChainId extends number = number, - ContractName extends string = string, -> = Record> - -export type ConstructorArg = string | Array - -export type AddressBookEntry = { - address: string - constructorArgs?: Array - initArgs?: Array - proxy?: boolean - implementation?: AddressBookEntry -} & Partial> diff --git a/packages/sdk/src/deployments/lib/types/artifacts.ts b/packages/sdk/src/deployments/lib/types/artifacts.ts deleted file mode 100644 index 384e861ab..000000000 --- a/packages/sdk/src/deployments/lib/types/artifacts.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Libraries { - [libraryName: string]: string -} diff --git a/packages/sdk/src/deployments/lib/types/config.ts b/packages/sdk/src/deployments/lib/types/config.ts deleted file mode 100644 index f62f6e2ee..000000000 --- a/packages/sdk/src/deployments/lib/types/config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { ContractParam } from './contract' - -export type ContractConfigParam = { name: string; value: string } -export type ContractConfigCall = { fn: string; params: Array } -export interface ContractConfig { - params: Array - calls: Array - proxy: boolean -} - -export interface ABRefReplace { - ref: string - replace: string -} diff --git a/packages/sdk/src/deployments/lib/types/contract.ts b/packages/sdk/src/deployments/lib/types/contract.ts deleted file mode 100644 index 700689445..000000000 --- a/packages/sdk/src/deployments/lib/types/contract.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { BigNumber, Contract } from 'ethers' - -export type ContractList = Partial> - -export type ContractParam = string | BigNumber | number | Array diff --git a/packages/sdk/src/deployments/lib/types/deploy.ts b/packages/sdk/src/deployments/lib/types/deploy.ts deleted file mode 100644 index 0d6cbe9aa..000000000 --- a/packages/sdk/src/deployments/lib/types/deploy.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { AddressBook } from '../address-book' -import { isSomeEnum } from '../../../utils/type-guard' - -import type { Contract, Signer } from 'ethers' -import type { ContractParam } from './contract' -import type { Libraries } from './artifacts' - -export enum DeployType { - Deploy = 'deploy', - DeployAndSave = 'deploy-save', - DeployWithProxy = 'deploy-with-proxy', - DeployWithProxyAndSave = 'deploy-with-proxy-save', - DeployImplementationAndSave = 'deploy-implementation-save', -} - -export type DeployData = { - name: string - args?: Array - opts?: Record -} - -export type DeployResult = { - contract: Contract - creationCodeHash: string - runtimeCodeHash: string - txHash: string - libraries?: Libraries -} - -// Utility type to add parameters to a function interface -// https://stackoverflow.com/a/69668215 -type AddParameters any, TParameters extends [...args: any]> = ( - ...args: [...Parameters, ...TParameters] -) => ReturnType - -export type DeployFunction = (sender: Signer, contract: DeployData) => Promise - -export type DeployAddressBookFunction = ( - sender: Signer, - contract: DeployData, - addressBook: AddressBook, -) => Promise -export type DeployAddressBookWithProxyFunction = AddParameters< - DeployAddressBookFunction, - [proxy: DeployData] -> - -// ** Type guards ** -export function isDeployType(value: unknown): value is DeployType { - return isSomeEnum(DeployType)(value) -} diff --git a/packages/sdk/src/deployments/logger.ts b/packages/sdk/src/deployments/logger.ts deleted file mode 100644 index b5ff377ad..000000000 --- a/packages/sdk/src/deployments/logger.ts +++ /dev/null @@ -1,11 +0,0 @@ -import debug from 'debug' - -const LOG_BASE = 'graph:deployments' -export const logDebug = debug(`${LOG_BASE}:debug`) -export const logInfo = debug(`${LOG_BASE}:info`) -export const logWarn = debug(`${LOG_BASE}:warn`) -export const logError = debug(`${LOG_BASE}:error`) - -// if (process.env.DEBUG === undefined) { -// debug.enable(`${LOG_BASE}:info`) -// } diff --git a/packages/sdk/src/deployments/network/actions/bridge-config.ts b/packages/sdk/src/deployments/network/actions/bridge-config.ts deleted file mode 100644 index 13ce0bf43..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-config.ts +++ /dev/null @@ -1,134 +0,0 @@ -import type { GraphNetworkAction } from './types' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { SimpleAddressBook } from '../../lib/address-book' - -export const configureL1Bridge: GraphNetworkAction<{ - l2GRTAddress: string - l2GRTGatewayAddress: string - l2GNSAddress: string - l2StakingAddress: string - arbAddressBookPath: string - chainId: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l2GRTAddress: string - l2GRTGatewayAddress: string - l2GNSAddress: string - l2StakingAddress: string - arbAddressBookPath: string - chainId: number - }, -): Promise => { - const { - l2GRTAddress, - l2GRTGatewayAddress, - l2GNSAddress, - l2StakingAddress, - arbAddressBookPath, - chainId, - } = args - console.info(`>>> Setting L1 Bridge Configuration <<<\n`) - - const arbAddressBook = new SimpleAddressBook(arbAddressBookPath, chainId) - - const gateway = contracts.L1GraphTokenGateway! - - // Gateway - console.info('L2 GRT address: ' + l2GRTAddress) - await gateway.connect(signer).setL2TokenAddress(l2GRTAddress) - - console.info('L2 Gateway address: ' + l2GRTGatewayAddress) - await gateway.connect(signer).setL2CounterpartAddress(l2GRTGatewayAddress) - - // Escrow - const bridgeEscrow = contracts.BridgeEscrow! - console.info('Escrow address: ' + bridgeEscrow.address) - await gateway.connect(signer).setEscrowAddress(bridgeEscrow.address) - await bridgeEscrow.connect(signer).approveAll(gateway.address) - - const l1Inbox = arbAddressBook.getEntry('IInbox') - const l1Router = arbAddressBook.getEntry('L1GatewayRouter') - console.info( - 'L1 Inbox address: ' + l1Inbox.address + ' and L1 Router address: ' + l1Router.address, - ) - await gateway.connect(signer).setArbitrumAddresses(l1Inbox.address, l1Router.address) - - // GNS - const gns = contracts.L1GNS! - console.info('GNS address: ' + gns.address) - console.info('L2 GNS address: ' + l2GNSAddress) - await gns.connect(signer).setCounterpartGNSAddress(l2GNSAddress) - await gateway.connect(signer).addToCallhookAllowlist(gns.address) - - // Staking - const staking = contracts.L1Staking! - console.info('Staking address: ' + staking.address) - console.info('L2 Staking address: ' + l2StakingAddress) - await staking.connect(signer).setCounterpartStakingAddress(l2StakingAddress) - await gateway.connect(signer).addToCallhookAllowlist(staking.address) -} - -export const configureL2Bridge: GraphNetworkAction<{ - l1GRTAddress: string - l1GRTGatewayAddress: string - l1GNSAddress: string - l1StakingAddress: string - arbAddressBookPath: string - chainId: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1GRTAddress: string - l1GRTGatewayAddress: string - l1GNSAddress: string - l1StakingAddress: string - arbAddressBookPath: string - chainId: number - }, -): Promise => { - const { - l1GRTAddress, - l1GRTGatewayAddress, - l1GNSAddress, - l1StakingAddress, - arbAddressBookPath, - chainId, - } = args - console.info(`>>> Setting L2 Bridge Configuration <<<\n`) - - const arbAddressBook = new SimpleAddressBook(arbAddressBookPath, chainId) - - const gateway = contracts.L2GraphTokenGateway! - const token = contracts.L2GraphToken! - - // Gateway - console.info('L1 GRT address: ' + l1GRTAddress) - await gateway.connect(signer).setL1TokenAddress(l1GRTAddress) - await token.connect(signer).setL1Address(l1GRTAddress) - - console.info('L1 Gateway address: ' + l1GRTGatewayAddress) - await gateway.connect(signer).setL1CounterpartAddress(l1GRTGatewayAddress) - - const l2Router = arbAddressBook.getEntry('L2GatewayRouter') - console.info('L2 Router address: ' + l2Router.address) - await gateway.connect(signer).setL2Router(l2Router.address) - - console.info('L2 Gateway address: ' + gateway.address) - await token.connect(signer).setGateway(gateway.address) - - // GNS - const gns = contracts.L2GNS! - console.info('GNS address: ' + gns.address) - console.info('L1 GNS address: ' + l1GNSAddress) - await gns.connect(signer).setCounterpartGNSAddress(l1GNSAddress) - - // Staking - const staking = contracts.L2Staking! - console.info('Staking address: ' + staking.address) - console.info('L1 Staking address: ' + l1StakingAddress) - await staking.connect(signer).setCounterpartStakingAddress(l1StakingAddress) -} diff --git a/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts b/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts deleted file mode 100644 index 02d90c438..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts +++ /dev/null @@ -1,206 +0,0 @@ -import { L2TransactionReceipt, L2ToL1MessageStatus, L2ToL1MessageWriter } from '@arbitrum/sdk' -import { BigNumber } from 'ethers' -import { Contract, providers } from 'ethers' -import { wait as waitFn } from '../../../utils/time' -import { getL2ToL1MessageReader, getL2ToL1MessageWriter } from '../../../utils/arbitrum' - -import type { GraphNetworkAction } from './types' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { L2GraphToken, L2GraphTokenGateway } from '@graphprotocol/contracts' - -const LEGACY_L2_GRT_ADDRESS = '0x23A941036Ae778Ac51Ab04CEa08Ed6e2FE103614' -const LEGACY_L2_GATEWAY_ADDRESS = '0x09e9222e96e7b4ae2a407b98d48e330053351eee' - -const FOURTEEN_DAYS_IN_SECONDS = 24 * 3600 * 14 -const BLOCK_SEARCH_THRESHOLD = 6 * 3600 - -export const startSendToL1: GraphNetworkAction<{ - l1Provider: providers.Provider - amount: BigNumber - recipient: string - legacyToken: boolean -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1Provider: providers.Provider - amount: BigNumber - recipient: string - legacyToken?: boolean - }, -): Promise => { - const { l1Provider, amount, recipient, legacyToken } = args - const l2Provider = contracts.GraphToken.provider - - console.info(`>>> Sending tokens to L1 <<<\n`) - console.info(`Will send ${amount} GRT to ${recipient}`) - - // GRT - const GraphToken = legacyToken - ? (new Contract(LEGACY_L2_GRT_ADDRESS, contracts.GraphToken.interface, signer) as L2GraphToken) - : contracts.GraphToken - console.info(`Using L2 GRT ${GraphToken.address}`) - - // Gateway - const GraphTokenGateway = ( - legacyToken - ? new Contract(LEGACY_L2_GATEWAY_ADDRESS, contracts.GraphTokenGateway.interface, signer) - : contracts.GraphTokenGateway - ) as L2GraphTokenGateway - console.info(`Using L2 gateway ${GraphTokenGateway.address}`) - const l1GraphTokenAddress = await GraphTokenGateway.l1Counterpart() - - // Check sender balance - const senderBalance = await GraphToken.balanceOf(signer.address) - if (senderBalance.lt(amount)) { - throw new Error('Sender balance is insufficient for the transfer') - } - - if (!legacyToken) { - console.info('Approving token transfer') - await GraphToken.connect(signer).approve(GraphTokenGateway.address, amount) - } - console.info('Sending outbound transfer transaction') - const tx = await GraphTokenGateway['outboundTransfer(address,address,uint256,bytes)']( - l1GraphTokenAddress, - recipient, - amount, - '0x', - ) - const receipt = await tx.wait() - - const l2ToL1Message = await getL2ToL1MessageReader(receipt, l1Provider, l2Provider) - const l2Receipt = new L2TransactionReceipt(receipt) - - const ethBlockNum = await l2ToL1Message.getFirstExecutableBlock(l2Provider) - if (ethBlockNum === null) { - console.info(`L2 to L1 message can or already has been executed. If not finalized call`) - } else { - console.info(`The transaction generated an L2 to L1 message in outbox with eth block number:`) - console.info(ethBlockNum.toString()) - console.info( - `After the dispute period is finalized (in ~1 week), you can finalize this by calling`, - ) - } - console.info(`finish-send-to-l1 with the following txhash:`) - console.info(l2Receipt.transactionHash) -} - -export const finishSendToL1: GraphNetworkAction<{ - l1Provider: providers.Provider - legacyToken: boolean - txHash?: string - wait?: boolean - retryDelaySeconds?: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1Provider: providers.Provider - legacyToken: boolean - txHash?: string - wait?: boolean - retryDelaySeconds?: number - }, -): Promise => { - const { l1Provider, legacyToken, wait, retryDelaySeconds } = args - let txHash = args.txHash - const l2Provider = contracts.GraphToken.provider - - console.info(`>>> Finishing transaction sending tokens to L1 <<<\n`) - - // Gateway - const GraphTokenGateway = ( - legacyToken - ? new Contract(LEGACY_L2_GATEWAY_ADDRESS, contracts.GraphTokenGateway.interface, signer) - : contracts.GraphTokenGateway - ) as L2GraphTokenGateway - console.info(`Using L2 gateway ${GraphTokenGateway.address}`) - - if (txHash === undefined) { - console.info( - `Looking for withdrawals initiated by ${signer.address} in roughly the last 14 days`, - ) - const fromBlock = await searchForArbBlockByTimestamp( - l2Provider, - Math.round(Date.now() / 1000) - FOURTEEN_DAYS_IN_SECONDS, - ) - const filt = GraphTokenGateway.filters.WithdrawalInitiated(null, signer.address) - const allEvents = await GraphTokenGateway.queryFilter( - filt, - BigNumber.from(fromBlock).toHexString(), - ) - if (allEvents.length == 0) { - throw new Error('No withdrawals found') - } - txHash = allEvents[allEvents.length - 1].transactionHash - } - - console.info(`Getting receipt from transaction ${txHash}`) - const l2ToL1Message = await getL2ToL1MessageWriter(txHash, l1Provider, l2Provider, signer) - - if (wait) { - const retryDelayMs = (retryDelaySeconds ?? 60) * 1000 - console.info('Waiting for outbox entry to be created, this can take a full week...') - await waitUntilOutboxEntryCreatedWithCb(l2ToL1Message, l2Provider, retryDelayMs, () => { - console.info('Still waiting...') - }) - } else { - const status = await l2ToL1Message.status(l2Provider) - if (status == L2ToL1MessageStatus.EXECUTED) { - throw new Error('Message already executed!') - } else if (status != L2ToL1MessageStatus.CONFIRMED) { - throw new Error( - `Transaction is not confirmed, status is ${status} when it should be ${L2ToL1MessageStatus.CONFIRMED}. Has the dispute period passed?`, - ) - } - } - - console.info('Executing outbox transaction') - const tx = await l2ToL1Message.execute(l2Provider) - const outboxExecuteReceipt = await tx.wait() - console.info('Transaction succeeded! tx hash:') - console.info(outboxExecuteReceipt.transactionHash) -} - -const searchForArbBlockByTimestamp = async ( - l2Provider: providers.Provider, - timestamp: number, -): Promise => { - let step = 131072 - let block = await l2Provider.getBlock('latest') - while (block.timestamp > timestamp) { - while (block.number - step < 0) { - step = Math.round(step / 2) - } - block = await l2Provider.getBlock(block.number - step) - } - while (step > 1 && Math.abs(block.timestamp - timestamp) > BLOCK_SEARCH_THRESHOLD) { - step = Math.round(step / 2) - if (block.timestamp - timestamp > 0) { - block = await l2Provider.getBlock(block.number - step) - } else { - block = await l2Provider.getBlock(block.number + step) - } - } - return block.number -} - -const waitUntilOutboxEntryCreatedWithCb = async ( - msg: L2ToL1MessageWriter, - provider: providers.Provider, - retryDelay: number, - callback: () => void, -) => { - let done = false - while (!done) { - const status = await msg.status(provider) - if (status == L2ToL1MessageStatus.CONFIRMED || status == L2ToL1MessageStatus.EXECUTED) { - done = true - } else { - callback() - await waitFn(retryDelay) - } - } -} diff --git a/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts b/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts deleted file mode 100644 index b0476a53b..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { BigNumber, providers, utils } from 'ethers' - -import { L1TransactionReceipt, L1ToL2MessageStatus, L1ToL2MessageWriter } from '@arbitrum/sdk' -import { GraphNetworkAction } from './types' -import { GraphNetworkContracts } from '../deployment/contracts/load' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { setGRTAllowance } from './graph-token' -import { estimateRetryableTxGas, getL1ToL2MessageWriter } from '../../../utils/arbitrum' - -export const sendToL2: GraphNetworkAction<{ - l2Provider: providers.Provider - amount: BigNumber - recipient: string - calldata?: string - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l2Provider: providers.Provider - amount: BigNumber - recipient: string - calldata?: string - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber - }, -): Promise => { - const { l2Provider, amount, recipient } = args - const l1Provider = contracts.GraphToken.provider - const calldata = args.calldata ?? '0x' - - console.info(`>>> Sending tokens to L2 <<<\n`) - - const l1GatewayAddress = contracts.GraphTokenGateway.address - const l2GatewayAddress = await contracts.L1GraphTokenGateway!.l2Counterpart() - - console.info(`Will send ${amount} GRT to ${recipient}`) - console.info(`Using L1 gateway ${l1GatewayAddress} and L2 gateway ${l2GatewayAddress}`) - await setGRTAllowance(contracts, signer, { spender: l1GatewayAddress, allowance: amount }) - - // estimate L2 ticket - // See https://github.com/OffchainLabs/arbitrum/blob/master/packages/arb-ts/src/lib/bridge.ts - const depositCalldata = await contracts.L1GraphTokenGateway!.getOutboundCalldata( - contracts.GraphToken.address, - signer.address, - recipient, - amount, - calldata, - ) - const { maxGas, gasPriceBid, maxSubmissionCost } = await estimateRetryableTxGas( - l1Provider, - l2Provider, - l1GatewayAddress, - l2GatewayAddress, - depositCalldata, - { - maxGas: args.maxGas, - gasPriceBid: args.gasPriceBid, - maxSubmissionCost: args.maxSubmissionCost, - }, - ) - const ethValue = maxSubmissionCost.add(gasPriceBid.mul(maxGas)) - console.info( - `Using maxGas:${maxGas}, gasPriceBid:${gasPriceBid}, maxSubmissionCost:${maxSubmissionCost} = tx value: ${ethValue}`, - ) - - // build transaction - console.info('Sending outbound transfer transaction') - const txData = utils.defaultAbiCoder.encode(['uint256', 'bytes'], [maxSubmissionCost, calldata]) - const tx = await contracts - .L1GraphTokenGateway!.connect(signer) - .outboundTransfer( - contracts.GraphToken.address, - recipient, - amount, - maxGas, - gasPriceBid, - txData, - { - value: ethValue, - }, - ) - const receipt = await tx.wait() - - // get l2 ticket status - if (receipt.status == 1) { - console.info('Waiting for message to propagate to L2...') - try { - const l1ToL2Message = await getL1ToL2MessageWriter(receipt, l1Provider, l2Provider) - await checkAndRedeemMessage(l1ToL2Message) - } catch (e) { - console.error('Auto redeem failed') - console.error(e) - console.error('You can re-attempt using redeem-send-to-l2 with the following txHash:') - console.error(receipt.transactionHash) - } - } -} - -export const redeemSendToL2: GraphNetworkAction<{ - txHash: string - l2Provider: providers.Provider -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - txHash: string - l2Provider: providers.Provider - }, -): Promise => { - console.info(`>>> Redeeming pending tokens on L2 <<<\n`) - const l1Provider = contracts.GraphToken.provider - const l2Provider = args.l2Provider - - const receipt = await l1Provider.getTransactionReceipt(args.txHash) - const l1Receipt = new L1TransactionReceipt(receipt) - const l1ToL2Messages = await l1Receipt.getL1ToL2Messages(signer.connect(l2Provider)) - const l1ToL2Message = l1ToL2Messages[0] - - console.info('Checking message status in L2...') - await checkAndRedeemMessage(l1ToL2Message) -} - -const logAutoRedeemReason = (autoRedeemRec: any) => { - if (autoRedeemRec == null) { - console.info(`Auto redeem was not attempted.`) - return - } - console.info(`Auto redeem reverted.`) -} - -const checkAndRedeemMessage = async (l1ToL2Message: L1ToL2MessageWriter) => { - console.info(`Waiting for status of ${l1ToL2Message.retryableCreationId}`) - const res = await l1ToL2Message.waitForStatus() - console.info('Getting auto redeem attempt') - const autoRedeemRec = await l1ToL2Message.getAutoRedeemAttempt() - const l2TxReceipt = res.status === L1ToL2MessageStatus.REDEEMED ? res.l2TxReceipt : autoRedeemRec - let l2TxHash = l2TxReceipt ? l2TxReceipt.transactionHash : 'null' - if (res.status === L1ToL2MessageStatus.FUNDS_DEPOSITED_ON_L2) { - /** Message wasn't auto-redeemed! */ - console.warn('Funds were deposited on L2 but the retryable ticket was not redeemed') - logAutoRedeemReason(autoRedeemRec) - console.info('Attempting to redeem...') - await l1ToL2Message.redeem(process.env.CI ? { gasLimit: 2_000_000 } : {}) - const redeemAttempt = await l1ToL2Message.getSuccessfulRedeem() - if (redeemAttempt.status == L1ToL2MessageStatus.REDEEMED) { - l2TxHash = redeemAttempt.l2TxReceipt ? redeemAttempt.l2TxReceipt.transactionHash : 'null' - } else { - throw new Error(`Unexpected L1ToL2MessageStatus after redeem attempt: ${res.status}`) - } - } else if (res.status != L1ToL2MessageStatus.REDEEMED) { - throw new Error(`Unexpected L1ToL2MessageStatus ${res.status}`) - } - console.info(`Transfer successful: ${l2TxHash}`) -} diff --git a/packages/sdk/src/deployments/network/actions/disputes.ts b/packages/sdk/src/deployments/network/actions/disputes.ts deleted file mode 100644 index 785bfb626..000000000 --- a/packages/sdk/src/deployments/network/actions/disputes.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { - createAttestation, - encodeAttestation as encodeAttestationLib, - Attestation, - Receipt, -} from '@graphprotocol/common-ts' -import { GraphChainId } from '../../../chain' - -export async function buildAttestation( - receipt: Receipt, - signer: string, - disputeManagerAddress: string, - chainId: GraphChainId, -) { - return await createAttestation(signer, chainId, disputeManagerAddress, receipt, '0') -} - -export function encodeAttestation(attestation: Attestation): string { - return encodeAttestationLib(attestation) -} diff --git a/packages/sdk/src/deployments/network/actions/gns.ts b/packages/sdk/src/deployments/network/actions/gns.ts deleted file mode 100644 index 8038820ee..000000000 --- a/packages/sdk/src/deployments/network/actions/gns.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, ethers } from 'ethers' - -import { setGRTAllowances } from './graph-token' -import { buildSubgraphId } from '../../../utils/subgraph' -import { randomHexBytes } from '../../../utils/bytes' - -import type { GraphNetworkAction } from './types' -import type { GraphNetworkContracts } from '../deployment/contracts/load' - -export const mintSignal: GraphNetworkAction<{ subgraphId: string; amount: BigNumber }> = async ( - contracts: GraphNetworkContracts, - curator: SignerWithAddress, - args: { - subgraphId: string - amount: BigNumber - }, -): Promise => { - const { subgraphId, amount } = args - - // Approve - await setGRTAllowances(contracts, curator, [ - { spender: contracts.GNS.address, allowance: amount }, - ]) - - // Add signal - console.log( - `\nCurator ${curator.address} add ${ethers.utils.formatEther( - amount, - )} in signal to subgraphId ${subgraphId}..`, - ) - const tx = await contracts.GNS.connect(curator).mintSignal(subgraphId, amount, 0, { - gasLimit: 4_000_000, - }) - await tx.wait() -} - -export const publishNewSubgraph: GraphNetworkAction< - { deploymentId: string; chainId: number }, - string -> = async ( - contracts: GraphNetworkContracts, - publisher: SignerWithAddress, - args: { deploymentId: string; chainId: number }, -): Promise => { - const { deploymentId, chainId } = args - - console.log(`\nPublishing new subgraph with deploymentId ${deploymentId}...`) - const subgraphId = await buildSubgraphId( - publisher.address, - await contracts.GNS.nextAccountSeqID(publisher.address), - chainId, - ) - const tx = await contracts.GNS.connect(publisher).publishNewSubgraph( - deploymentId, - randomHexBytes(), - randomHexBytes(), - { gasLimit: 4_000_000 }, - ) - await tx.wait() - - return subgraphId -} - -export const recreatePreviousSubgraphId: GraphNetworkAction< - { - owner: string - previousIndex: number - chainId: number - }, - string -> = async ( - contracts: GraphNetworkContracts, - _signer: SignerWithAddress, - args: { owner: string; previousIndex: number; chainId: number }, -): Promise => { - const { owner, previousIndex, chainId } = args - const seqID = (await contracts.GNS.nextAccountSeqID(owner)).sub(previousIndex) - return buildSubgraphId(owner, seqID, chainId) -} diff --git a/packages/sdk/src/deployments/network/actions/governed.ts b/packages/sdk/src/deployments/network/actions/governed.ts deleted file mode 100644 index 64563ae16..000000000 --- a/packages/sdk/src/deployments/network/actions/governed.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Contract, ContractTransaction, ethers } from 'ethers' - -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { GraphNetworkContractName } from '../deployment/contracts/list' -import type { GraphNetworkAction } from './types' - -type GovernedContract = Contract & { - pendingGovernor?: (overrides: ethers.CallOverrides) => Promise - acceptOwnership?: (overrides: ethers.CallOverrides) => Promise -} - -export const acceptOwnership: GraphNetworkAction< - { - contractName: GraphNetworkContractName - }, - ContractTransaction | undefined -> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { contractName: GraphNetworkContractName }, -): Promise => { - const { contractName } = args - const contract = contracts[contractName] - - if (!contract) { - throw new Error(`Contract ${contractName} not found`) - } - - const pendingGovernor = await (contract as GovernedContract).connect(signer).pendingGovernor() - - if (pendingGovernor === ethers.constants.AddressZero) { - console.log(`No pending governor for ${contract.address}`) - return - } - - if (pendingGovernor === signer.address) { - console.log(`Accepting ownership of ${contract.address}`) - const tx = await (contract as GovernedContract).connect(signer).acceptOwnership() - await tx.wait() - return tx - } else { - console.log( - `Signer ${signer.address} is not the pending governor of ${contract.address}, it is ${pendingGovernor}`, - ) - } -} diff --git a/packages/sdk/src/deployments/network/actions/graph-token.ts b/packages/sdk/src/deployments/network/actions/graph-token.ts deleted file mode 100644 index f0ec32246..000000000 --- a/packages/sdk/src/deployments/network/actions/graph-token.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { BigNumber, ethers } from 'ethers' - -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { GraphNetworkContracts, GraphNetworkAction } from '../..' - -export const setGRTBalances: GraphNetworkAction< - { - address: string - balance: BigNumber - }[] -> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { address: string; balance: BigNumber }[], -): Promise => { - for (const arg of args) { - await setGRTBalance(contracts, signer, { address: arg.address, balance: arg.balance }) - } -} - -export const setGRTBalance: GraphNetworkAction<{ - address: string - balance: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { address: string; balance: BigNumber }, -): Promise => { - const { address, balance } = args - - const currentBalance = await contracts.GraphToken.balanceOf(address) - const balanceDif = BigNumber.from(balance).sub(currentBalance) - - if (balanceDif.gt(0)) { - console.log(`Funding ${address} with ${ethers.utils.formatEther(balanceDif)} GRT...`) - const tx = await contracts.GraphToken.connect(signer).transfer(address, balanceDif) - await tx.wait() - } -} - -export const setGRTAllowances: GraphNetworkAction< - { spender: string; allowance: BigNumber }[] -> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { spender: string; allowance: BigNumber }[], -): Promise => { - for (const arg of args) { - await setGRTAllowance(contracts, signer, { - spender: arg.spender, - allowance: arg.allowance, - }) - } -} - -export const setGRTAllowance: GraphNetworkAction<{ - spender: string - allowance: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { spender: string; allowance: BigNumber }, -): Promise => { - const { spender, allowance } = args - - const currentAllowance = await contracts.GraphToken.allowance(signer.address, spender) - if (!currentAllowance.eq(allowance)) { - console.log( - `Approving ${spender} with ${ethers.utils.formatEther(allowance)} GRT on behalf of ${ - signer.address - }...`, - ) - const tx = await contracts.GraphToken.connect(signer).approve(spender, allowance) - await tx.wait() - } -} diff --git a/packages/sdk/src/deployments/network/actions/pause.ts b/packages/sdk/src/deployments/network/actions/pause.ts deleted file mode 100644 index d2be153ab..000000000 --- a/packages/sdk/src/deployments/network/actions/pause.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { GraphNetworkContracts } from '../deployment/contracts/load' -import { GraphNetworkAction } from './types' - -export const setPausedProtocol: GraphNetworkAction<{ paused: boolean }> = async ( - contracts: GraphNetworkContracts, - governorOrPauseGuardian: SignerWithAddress, - args: { paused: boolean }, -): Promise => { - const { paused } = args - const { Controller } = contracts - - console.log(`\nSetting protocol paused to ${paused}...`) - const tx = await Controller.connect(governorOrPauseGuardian).setPaused(paused) - await tx.wait() -} - -export const setPausedBridge: GraphNetworkAction<{ paused: boolean }> = async ( - contracts: GraphNetworkContracts, - governorOrPauseGuardian: SignerWithAddress, - args: { paused: boolean }, -): Promise => { - const { paused } = args - const { GraphTokenGateway } = contracts - - console.log(`\nSetting bridge ${GraphTokenGateway.address} paused to ${paused}...`) - const tx = await GraphTokenGateway.connect(governorOrPauseGuardian).setPaused(paused) - await tx.wait() -} diff --git a/packages/sdk/src/deployments/network/actions/staking.ts b/packages/sdk/src/deployments/network/actions/staking.ts deleted file mode 100644 index 1d67e4408..000000000 --- a/packages/sdk/src/deployments/network/actions/staking.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, ethers } from 'ethers' - -import { setGRTAllowances } from './graph-token' -import { randomHexBytes } from '../../../utils/bytes' - -import type { GraphNetworkAction } from './types' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import { ChannelKey } from '../../../utils' - -export const stake: GraphNetworkAction<{ amount: BigNumber }> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { amount: BigNumber }, -) => { - const { amount } = args - - // Approve - await setGRTAllowances(contracts, indexer, [ - { spender: contracts.Staking.address, allowance: amount }, - ]) - const allowance = await contracts.GraphToken.allowance(indexer.address, contracts.Staking.address) - console.log(`Allowance: ${ethers.utils.formatEther(allowance)}`) - - // Stake - console.log(`\nStaking ${ethers.utils.formatEther(amount)} tokens...`) - const tx = await contracts.Staking.connect(indexer).stake(amount) - await tx.wait() -} - -export const allocateFrom: GraphNetworkAction<{ - channelKey: ChannelKey - subgraphDeploymentID: string - amount: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { channelKey: ChannelKey; subgraphDeploymentID: string; amount: BigNumber }, -): Promise => { - const { channelKey, subgraphDeploymentID, amount } = args - - const allocationId = channelKey.address - const proof = await channelKey.generateProof(indexer.address) - const metadata = ethers.constants.HashZero - - console.log(`\nAllocating ${amount} tokens on ${allocationId}...`) - const extraArgs: ethers.Overrides = {} - if (process.env.CI) { - extraArgs.gasLimit = BigNumber.from('400000') - } - const tx = await contracts.Staking.connect(indexer).allocateFrom( - indexer.address, - subgraphDeploymentID, - amount, - allocationId, - metadata, - proof, - extraArgs, - ) - await tx.wait() -} - -export const closeAllocation: GraphNetworkAction<{ allocationId: string }> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { allocationId: string }, -): Promise => { - const { allocationId } = args - - const poi = randomHexBytes() - - console.log(`\nClosing ${allocationId}...`) - const tx = await contracts.Staking.connect(indexer).closeAllocation(allocationId, poi, { - gasLimit: 4_000_000, - }) - await tx.wait() -} diff --git a/packages/sdk/src/deployments/network/actions/types.ts b/packages/sdk/src/deployments/network/actions/types.ts deleted file mode 100644 index 1ac47a4ef..000000000 --- a/packages/sdk/src/deployments/network/actions/types.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { GraphNetworkContracts } from '../deployment/contracts/load' - -export type GraphNetworkAction = ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: A, -) => Promise diff --git a/packages/sdk/src/deployments/network/deployment/address-book.ts b/packages/sdk/src/deployments/network/deployment/address-book.ts deleted file mode 100644 index 51e8d5cba..000000000 --- a/packages/sdk/src/deployments/network/deployment/address-book.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { GraphNetworkContractName, isGraphNetworkContractName } from './contracts/list' -import { GraphChainId, isGraphChainId } from '../../..' -import { AddressBook } from '../../lib/address-book' - -import type { AddressBookJson } from '../../lib/types/address-book' - -export class GraphNetworkAddressBook extends AddressBook { - assertChainId(chainId: string | number): asserts chainId is GraphChainId { - if (!isGraphChainId(chainId)) { - throw new Error(`ChainId not supported: ${chainId}`) - } - } - - // Asserts the provided object is a valid address book - // Logs warnings for unsupported chain ids or invalid contract names - // TODO: should we enforce json format here and throw instead of just logging? - assertAddressBookJson( - json: unknown, - ): asserts json is AddressBookJson { - this._assertAddressBookJson(json) - - // // Validate contract names - const contractList = json[this.chainId] - - const contractNames = contractList ? Object.keys(contractList) : [] - for (const contract of contractNames) { - if (!isGraphNetworkContractName(contract)) { - const message = `Detected invalid GraphNetworkContract in address book: ${contract}, for chainId ${this.chainId}` - if (this.strictAssert) { - throw new Error(message) - } else { - console.error(message) - } - } - } - } -} diff --git a/packages/sdk/src/deployments/network/deployment/config.ts b/packages/sdk/src/deployments/network/deployment/config.ts deleted file mode 100644 index 49ef756ee..000000000 --- a/packages/sdk/src/deployments/network/deployment/config.ts +++ /dev/null @@ -1,198 +0,0 @@ -import YAML from 'yaml' -import { getItemValue, updateItemValue } from '../../lib/config' - -import type { GraphNetworkContractName } from './contracts/list' -import type { GraphNetworkContracts } from './contracts/load' -import { toBN, toGRT } from '../../../utils' - -interface GeneralParam { - contract: GraphNetworkContractName // contract where the param is defined - name: string // name of the parameter -} - -interface Contract { - name: string - initParams: ContractInitParam[] -} - -interface ContractInitParam { - name: string // as declared in config.yml - type: 'number' | 'BigNumber' // as returned by the contract - getter?: string // name of function to get the value from the contract. Defaults to 'name' - format?: 'number' // some parameters are stored in different formats than what the contract reports. -} - -const epochManager: Contract = { - name: 'EpochManager', - initParams: [ - { name: 'lengthInBlocks', type: 'BigNumber', getter: 'epochLength', format: 'number' }, - ], -} - -const curation: Contract = { - name: 'Curation', - initParams: [ - { name: 'reserveRatio', type: 'number', getter: 'defaultReserveRatio' }, - { name: 'curationTaxPercentage', type: 'number' }, - { name: 'minimumCurationDeposit', type: 'BigNumber' }, - ], -} - -const disputeManager: Contract = { - name: 'DisputeManager', - initParams: [ - { name: 'minimumDeposit', type: 'BigNumber' }, - { name: 'fishermanRewardPercentage', type: 'number' }, - { name: 'idxSlashingPercentage', type: 'number' }, - { name: 'qrySlashingPercentage', type: 'number' }, - ], -} - -const staking: Contract = { - name: 'Staking', - initParams: [ - { name: 'minimumIndexerStake', type: 'BigNumber' }, - { name: 'thawingPeriod', type: 'number' }, - { name: 'protocolPercentage', type: 'number' }, - { name: 'curationPercentage', type: 'number' }, - { name: 'maxAllocationEpochs', type: 'number' }, - { name: 'delegationUnbondingPeriod', type: 'number' }, - { name: 'delegationRatio', type: 'number' }, - { name: 'rebateAlphaNumerator', type: 'number', getter: 'alphaNumerator' }, - { name: 'rebateAlphaDenominator', type: 'number', getter: 'alphaDenominator' }, - { name: 'rebateLambdaNumerator', type: 'number', getter: 'lambdaNumerator' }, - { name: 'rebateLambdaDenominator', type: 'number', getter: 'lambdaDenominator' }, - ], -} - -const rewardsManager: Contract = { - name: 'RewardsManager', - initParams: [{ name: 'issuancePerBlock', type: 'BigNumber' }], -} - -export const GraphNetworkConfigContractList: Contract[] = [ - epochManager, - curation, - disputeManager, - staking, - rewardsManager, -] - -export const GraphNetworkConfigGeneralParams: GeneralParam[] = [ - { - contract: 'DisputeManager', - name: 'arbitrator', - }, - { - contract: 'Controller', - name: 'governor', - }, - { - contract: 'AllocationExchange', - name: 'authority', - }, -] - -export const updateGeneralParams = async ( - contracts: GraphNetworkContracts, - param: GeneralParam, - config: YAML.Document.Parsed, -) => { - // TODO: can we fix this? - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - const value = await contracts[param.contract][param.name]() - const updated = updateItemValue(config, `general/${param.name}`, value) - if (updated) { - console.log(`\t- Updated ${param.name} to ${value}`) - } -} - -export const updateContractParams = async ( - contracts: GraphNetworkContracts, - contract: Contract, - config: YAML.Document.Parsed, -) => { - for (const param of contract.initParams) { - // TODO: can we fix this? - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - let value = await contracts[contract.name][param.getter ?? param.name]() - if (param.type === 'BigNumber') { - if (param.format === 'number') { - value = value.toNumber() - } else { - value = value.toString() - } - } - - const updated = updateItemValue(config, `contracts/${contract.name}/init/${param.name}`, value) - if (updated) { - console.log(`\t- Updated ${param.name} to ${value}`) - } - } -} - -export const getDefaults = (config: YAML.Document.Parsed, isL1: boolean) => { - const staking = isL1 ? 'L1Staking' : 'L2Staking' - return { - curation: { - reserveRatio: getItemValue(config, 'contracts/Curation/init/reserveRatio'), - minimumCurationDeposit: getItemValue( - config, - 'contracts/Curation/init/minimumCurationDeposit', - ), - l2MinimumCurationDeposit: toBN(1), - curationTaxPercentage: getItemValue(config, 'contracts/Curation/init/curationTaxPercentage'), - }, - dispute: { - minimumDeposit: getItemValue(config, 'contracts/DisputeManager/init/minimumDeposit'), - fishermanRewardPercentage: getItemValue( - config, - 'contracts/DisputeManager/init/fishermanRewardPercentage', - ), - qrySlashingPercentage: getItemValue( - config, - 'contracts/DisputeManager/init/qrySlashingPercentage', - ), - idxSlashingPercentage: getItemValue( - config, - 'contracts/DisputeManager/init/idxSlashingPercentage', - ), - }, - epochs: { - lengthInBlocks: getItemValue(config, 'contracts/EpochManager/init/lengthInBlocks'), - }, - staking: { - minimumIndexerStake: getItemValue(config, `contracts/${staking}/init/minimumIndexerStake`), - maxAllocationEpochs: getItemValue(config, `contracts/${staking}/init/maxAllocationEpochs`), - thawingPeriod: getItemValue(config, `contracts/${staking}/init/thawingPeriod`), - delegationUnbondingPeriod: getItemValue( - config, - `contracts/${staking}/init/delegationUnbondingPeriod`, - ), - alphaNumerator: getItemValue( - config, - `contracts/${staking}/init/rebateParameters/alphaNumerator`, - ), - alphaDenominator: getItemValue( - config, - `contracts/${staking}/init/rebateParameters/alphaDenominator`, - ), - lambdaNumerator: getItemValue( - config, - `contracts/${staking}/init/rebateParameters/lambdaNumerator`, - ), - lambdaDenominator: getItemValue( - config, - `contracts/${staking}/init/rebateParameters/lambdaDenominator`, - ), - }, - token: { - initialSupply: getItemValue(config, 'contracts/GraphToken/init/initialSupply'), - }, - rewards: { - issuancePerBlock: '114155251141552511415', - }, - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts b/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts deleted file mode 100644 index 219587f66..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts +++ /dev/null @@ -1,309 +0,0 @@ -import { - deployContractImplementationAndSave, - deployContractWithProxy, - deployContractWithProxyAndSave, -} from './proxy' -import { deployContract, deployContractAndSave } from '../../../lib/deploy/contract' -import { DeployType, isDeployType } from '../../../lib/types/deploy' -import { confirm } from '../../../../utils/prompt' -import { assertObject } from '../../../../utils/assertions' -import { type GraphChainId, isGraphL1ChainId, isGraphL2ChainId } from '../../../../chain' -import { - GraphNetworkSharedContractNameList, - type GraphNetworkContractName, - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - GraphNetworkGovernedContractNameList, -} from './list' -import { getContractConfig, loadCallParams, readConfig } from '../../../lib/config' -import { logDebug } from '../../../logger' - -import type { ContractTransaction, Signer, providers } from 'ethers' -import type { DeployData, DeployResult } from '../../../lib/types/deploy' -import type { AddressBook } from '../../../lib/address-book' -import { GraphNetworkAddressBook } from '../address-book' -import { isContractDeployed } from '../../../lib/deploy/deploy' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { Contract, Wallet, ethers } from 'ethers' -import { acceptOwnership } from '../../actions/governed' -import { setPausedProtocol } from '../../actions/pause' -import { GraphNetworkContracts, loadGraphNetworkContracts } from './load' -import { setCode } from '../../../../helpers/code' -import { logContractCall, logContractReceipt } from '../../../lib/contracts/log' - -export async function deployGraphNetwork( - addressBookPath: string, - graphConfigPath: string, - chainId: GraphChainId, - deployer: SignerWithAddress, - provider: providers.Provider, - opts?: { - governor?: SignerWithAddress - skipConfirmation?: boolean - forceDeploy?: boolean - buildAcceptTx?: boolean - l2Deploy?: boolean - enableTxLogging?: boolean - }, -): Promise { - // Opts - const governor = opts?.governor ?? undefined - const skipConfirmation = opts?.skipConfirmation ?? false - const forceDeploy = opts?.forceDeploy ?? false - const buildAcceptTx = opts?.buildAcceptTx ?? false - const l2Deploy = opts?.l2Deploy ?? false - const enableTxLogging = opts?.enableTxLogging ?? true - - // Snapshot deployer - const beforeDeployerNonce = await deployer.getTransactionCount() - const beforeDeployerBalance = await deployer.getBalance() - - // Ensure action - const sure = await confirm('Are you sure you want to migrate contracts?', skipConfirmation) - if (!sure) return - - // Build list of contracts to deploy - // We force AllocationExchange to the end, it requires GraphToken and Staking to be deployed beforehand - const contractList: GraphNetworkContractName[] = [ - ...GraphNetworkSharedContractNameList.filter((c) => c !== 'AllocationExchange'), - ] - if (!l2Deploy && isGraphL1ChainId(chainId)) { - contractList.push(...GraphNetworkL1ContractNameList) - } - if (l2Deploy || isGraphL2ChainId(chainId)) { - contractList.push(...GraphNetworkL2ContractNameList) - } - contractList.push('AllocationExchange') - - logDebug(`>>> Migrating contracts <<<\n`) - - //////////////////////////////////////// - // Deploy contracts - //////////////////////////////////////// - - logDebug(`>>> Contracts deployment\n`) - - const graphConfig = readConfig(graphConfigPath) - const addressBook = new GraphNetworkAddressBook(addressBookPath, chainId) - - const pendingContractCalls = [] - const contracts = [] - for (const name of contractList) { - // Get address book info - const addressEntry = addressBook.getEntry(name) - const savedAddress = addressEntry && addressEntry.address - - logDebug(`= Deploy: ${name}`) - - // Check if contract already deployed - if (!forceDeploy) { - const isDeployed = await isContractDeployed( - name, - 'GraphProxy', - savedAddress, - addressBook, - provider, - ) - if (isDeployed) { - logDebug(`${name} is up to date, no action required`) - logDebug(`Address: ${savedAddress}\n`) - continue - } - } - - // Get config and deploy contract - const contractConfig = getContractConfig(graphConfig, addressBook, name, deployer.address) - const contract = await deploy( - contractConfig.proxy ? DeployType.DeployWithProxyAndSave : DeployType.DeployAndSave, - deployer, - { - name: name, - args: contractConfig.params.map((a) => a.value), - }, - addressBook, - { - name: 'GraphProxy', - opts: { - buildAcceptTx: buildAcceptTx, - }, - }, - ) - contracts.push({ contract: contract, name: name }) - logDebug('') - - // Defer contract calls after deploying every contract - if (contractConfig.calls) { - pendingContractCalls.push({ name, contract, calls: contractConfig.calls }) - } - } - logDebug('Contract deployments done! Contract calls are next') - - //////////////////////////////////////// - // Run contracts calls - //////////////////////////////////////// - logDebug('') - logDebug(`>>> Contracts calls\n`) - if (pendingContractCalls.length > 0) { - for (const entry of pendingContractCalls) { - if (entry.calls.length == 0) continue - - logDebug(`= Config: ${entry.name}`) - for (const call of entry.calls) { - logDebug(`* Calling ${call.fn}`) - try { - const params = loadCallParams(call.params, addressBook, deployer.address) - logDebug(`- Params: ${params.join(', ')}`) - const overrides = process.env.CI ? { gasLimit: 2_000_000 } : {} - const response: ContractTransaction = await entry.contract.contract - .connect(deployer) - .functions[call.fn](...params, overrides) - logContractCall(response, entry.name, call.fn, params) - const receipt = await entry.contract.contract.provider.waitForTransaction(response.hash) - logContractReceipt(receipt) - } catch (error) { - // TODO: can we clean this up? - // Fallback for StakingExtension methods - if (['L1Staking', 'L2Staking'].includes(entry.name)) { - const StakingExtension = contracts.find((c) => c.name === 'StakingExtension') - if (StakingExtension === undefined) { - throw new Error('StakingExtension not found') - } - const ExtendedStaking = new Contract( - entry.contract.contract.address, - StakingExtension.contract.contract.interface, - deployer, - ) - await ExtendedStaking.connect(deployer).functions[call.fn]( - ...loadCallParams(call.params, addressBook, deployer.address), - ) - } else { - throw error - } - } - } - logDebug('') - } - } else { - logDebug('Nothing to do') - } - - //////////////////////////////////////// - // Load contracts - //////////////////////////////////////// - const loadedContracts = loadGraphNetworkContracts(addressBookPath, chainId, provider, undefined, { - l2Load: l2Deploy, - enableTxLogging: enableTxLogging, - }) - - //////////////////////////////////////// - // Post deploy - //////////////////////////////////////// - // If a governor was provided, accept ownership of contracts and unpause the protocol - if (governor) { - const txs: ContractTransaction[] = [] - for (const contract of GraphNetworkGovernedContractNameList) { - const tx = await acceptOwnership(loadedContracts, governor, { contractName: contract }) - if (tx) { - txs.push() - } - } - await Promise.all(txs.map((tx) => tx.wait())) - await setPausedProtocol(loadedContracts, governor, { paused: false }) - } - - //////////////////////////////////////// - // Print summary - //////////////////////////////////////// - logDebug('') - logDebug(`>>> Summary\n`) - logDebug('All done!') - - const afterDeployerNonce = await deployer.getTransactionCount() - const afterDeployerBalance = await deployer.getBalance() - - const spent = ethers.utils.formatEther(beforeDeployerBalance.sub(afterDeployerBalance)) - const nTx = afterDeployerNonce - beforeDeployerNonce - logDebug( - `Sent ${nTx} transaction${nTx === 1 ? '' : 's'} & spent ${ - ethers.constants.EtherSymbol - } ${spent}`, - ) - - return loadedContracts -} - -export async function deployMockGraphNetwork(l2Deploy: boolean) { - // Contract list - const contractList: GraphNetworkContractName[] = [ - ...GraphNetworkSharedContractNameList.filter((c) => c !== 'AllocationExchange'), - ] - contractList.push(...(l2Deploy ? GraphNetworkL2ContractNameList : GraphNetworkL1ContractNameList)) - contractList.push('AllocationExchange') - - const contracts: any = {} - for (const name of contractList) { - const fake = Wallet.createRandom() - await setCode(fake.address, '0x1234') - contracts[name] = new Contract(fake.address, [], fake) - } - - return contracts as GraphNetworkContracts // :eyes: -} - -export const deploy = async ( - type: DeployType | unknown, - sender: Signer, - contractData: DeployData, - addressBook?: AddressBook, - proxyData?: DeployData, -): Promise => { - if (!isDeployType(type)) { - throw new Error('Please provide the correct option for deploy type') - } - - switch (type) { - case DeployType.Deploy: - logDebug(`Deploying contract ${contractData.name}...`) - return await deployContract(sender, contractData) - case DeployType.DeployAndSave: - logDebug(`Deploying contract ${contractData.name} and saving to address book...`) - assertObject(addressBook) - return await deployContractAndSave(sender, contractData, addressBook) - case DeployType.DeployWithProxy: - logDebug(`Deploying contract ${contractData.name} with proxy ...`) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractWithProxy(sender, contractData, addressBook, proxyData!) - case DeployType.DeployWithProxyAndSave: - logDebug(`Deploying contract ${contractData.name} with proxy and saving to address book...`) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractWithProxyAndSave(sender, contractData, addressBook, proxyData!) - case DeployType.DeployImplementationAndSave: - logDebug( - `Deploying contract ${contractData.name} implementation and saving to address book...`, - ) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractImplementationAndSave( - sender, - contractData, - addressBook, - proxyData!, - ) - default: - throw new Error('Please provide the correct option for deploy type') - } -} - -function validateProxyData(proxyData: DeployData | undefined): void { - if (!proxyData) { - throw new Error('Proxy data not provided!') - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/list.ts b/packages/sdk/src/deployments/network/deployment/contracts/list.ts deleted file mode 100644 index 1b0dc1730..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/list.ts +++ /dev/null @@ -1,61 +0,0 @@ -// List of contract names for the Graph Network - -export const GraphNetworkSharedContractNameList = [ - 'GraphProxyAdmin', - 'BancorFormula', - 'Controller', - 'EpochManager', - 'GraphCurationToken', - 'ServiceRegistry', - 'SubgraphNFTDescriptor', - 'SubgraphNFT', - 'StakingExtension', - 'RewardsManager', - 'DisputeManager', - 'AllocationExchange', -] as const -export const GraphNetworkOptionalContractNameList = [ - 'IENS', - 'ENS', - 'IEthereumDIDRegistry', - 'EthereumDIDRegistry', -] as const -export const GraphNetworkL1ContractNameList = [ - 'GraphToken', - 'Curation', - 'L1GNS', - 'L1Staking', - 'L1GraphTokenGateway', - 'BridgeEscrow', -] as const -export const GraphNetworkL2ContractNameList = [ - 'L2GraphToken', - 'L2Curation', - 'L2GNS', - 'L2Staking', - 'L2GraphTokenGateway', - 'SubgraphAvailabilityManager', -] as const - -export const GraphNetworkContractNameList = [ - ...GraphNetworkSharedContractNameList, - ...GraphNetworkOptionalContractNameList, - ...GraphNetworkL1ContractNameList, - ...GraphNetworkL2ContractNameList, -] as const - -export type GraphNetworkContractName = (typeof GraphNetworkContractNameList)[number] - -export function isGraphNetworkContractName(name: unknown): name is GraphNetworkContractName { - return ( - typeof name === 'string' && - GraphNetworkContractNameList.includes(name as GraphNetworkContractName) - ) -} - -export const GraphNetworkGovernedContractNameList: GraphNetworkContractName[] = [ - 'GraphToken', - 'Controller', - 'GraphProxyAdmin', - 'SubgraphNFT', -] diff --git a/packages/sdk/src/deployments/network/deployment/contracts/load.ts b/packages/sdk/src/deployments/network/deployment/contracts/load.ts deleted file mode 100644 index d453ae5d9..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/load.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { Contract, providers, Signer } from 'ethers' -import path from 'path' - -import { - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - GraphNetworkOptionalContractNameList, - GraphNetworkSharedContractNameList, - isGraphNetworkContractName, -} from './list' -import { GraphNetworkAddressBook } from '../address-book' -import { loadContract, loadContracts } from '../../../lib/contracts/load' -import { isGraphChainId, isGraphL1ChainId, isGraphL2ChainId } from '../../../..' -import { assertObject } from '../../../../utils/assertions' - -import type { GraphChainId } from '../../../..' -import type { GraphNetworkContractName } from './list' - -import type { - EpochManager, - DisputeManager, - ServiceRegistry, - Curation, - RewardsManager, - GraphProxyAdmin, - GraphToken, - Controller, - BancorFormula, - IENS, - AllocationExchange, - SubgraphNFT, - SubgraphNFTDescriptor, - GraphCurationToken, - L1GraphTokenGateway, - L2GraphToken, - L2GraphTokenGateway, - BridgeEscrow, - L1Staking, - L2Staking, - L1GNS, - L2GNS, - L2Curation, - StakingExtension, - SubgraphAvailabilityManager, -} from '@graphprotocol/contracts' -import { ContractList } from '../../../lib/types/contract' -import { loadArtifact } from '../../../lib/deploy/artifacts' -import { mergeABIs } from '../../../../utils/abi' - -export type L1ExtendedStaking = L1Staking & StakingExtension -export type L2ExtendedStaking = L2Staking & StakingExtension - -export interface GraphNetworkContracts extends ContractList { - EpochManager: EpochManager - DisputeManager: DisputeManager - ServiceRegistry: ServiceRegistry - RewardsManager: RewardsManager - GraphProxyAdmin: GraphProxyAdmin - Controller: Controller - BancorFormula: BancorFormula - AllocationExchange: AllocationExchange - SubgraphNFT: SubgraphNFT - SubgraphNFTDescriptor: SubgraphNFTDescriptor - GraphCurationToken: GraphCurationToken - StakingExtension: StakingExtension - IENS?: IENS - SubgraphAvailabilityManager: SubgraphAvailabilityManager - - // Only L1 - L1GraphToken?: GraphToken - L1Staking?: L1Staking - L1GNS?: L1GNS - L1Curation?: Curation - L1GraphTokenGateway?: L1GraphTokenGateway - BridgeEscrow?: BridgeEscrow - - // Only L2 - L2GraphToken?: L2GraphToken - L2Staking?: L2Staking - L2GNS?: L2GNS - L2Curation?: L2Curation - L2GraphTokenGateway?: L2GraphTokenGateway - - // Alias - GNS: L1GNS | L2GNS - Staking: L1ExtendedStaking | L2ExtendedStaking - GraphToken: GraphToken | L2GraphToken - Curation: Curation | L2Curation - GraphTokenGateway: L1GraphTokenGateway | L2GraphTokenGateway - - // Iterator - [Symbol.iterator]: () => Generator -} - -// This ensures that local artifacts are preferred over the ones that ship with the sdk in node_modules -export function getArtifactsPath() { - return [ - path.resolve('build/contracts'), - path.resolve('node_modules', '@graphprotocol/contracts/build/contracts'), - ] -} -export function loadGraphNetworkContracts( - addressBookPath: string, - chainId: number, - signerOrProvider?: Signer | providers.Provider, - artifactsPath?: string | string[], - opts?: { - enableTxLogging?: boolean - strictAssert?: boolean - l2Load?: boolean - }, -): GraphNetworkContracts { - artifactsPath = artifactsPath ?? getArtifactsPath() - if (!isGraphChainId(chainId)) { - throw new Error(`ChainId not supported: ${chainId}`) - } - const addressBook = new GraphNetworkAddressBook(addressBookPath, chainId) - const contracts = loadContracts( - addressBook, - artifactsPath, - signerOrProvider, - opts?.enableTxLogging ?? true, - GraphNetworkOptionalContractNameList as unknown as GraphNetworkContractName[], // This is ugly but safe - ) - - assertGraphNetworkContracts(contracts, chainId, opts?.strictAssert) - - // Alias - // One of L1/L2 should always be defined so we can safely assert the types - const loadL1 = isGraphL1ChainId(chainId) && !opts?.l2Load - contracts.GraphToken = loadL1 ? contracts.GraphToken! : contracts.L2GraphToken! - contracts.GNS = loadL1 ? contracts.L1GNS! : contracts.L2GNS! - contracts.Curation = loadL1 ? contracts.Curation! : contracts.L2Curation! - contracts.GraphTokenGateway = loadL1 - ? contracts.L1GraphTokenGateway! - : contracts.L2GraphTokenGateway! - - // Staking is a special snowflake! - // Since staking contract is a proxy for StakingExtension we need to manually - // merge the ABIs and override the contract instance - const stakingName = loadL1 ? 'L1Staking' : 'L2Staking' - const staking = contracts[stakingName] - if (staking) { - const stakingOverride = loadContract( - stakingName, - addressBook, - artifactsPath, - signerOrProvider, - opts?.enableTxLogging ?? true, - new Contract( - staking.address, - mergeABIs( - loadArtifact(stakingName, artifactsPath).abi, - loadArtifact('StakingExtension', artifactsPath).abi, - ), - signerOrProvider, - ), - ) as L1ExtendedStaking | L2ExtendedStaking - contracts.Staking = stakingOverride - if (loadL1) contracts.L1Staking = stakingOverride as L1ExtendedStaking - if (!loadL1) contracts.L2Staking = stakingOverride as L2ExtendedStaking - } - - // Iterator - contracts[Symbol.iterator] = function* () { - for (const key of Object.keys(this)) { - yield this[key as GraphNetworkContractName] as Contract - } - } - - return contracts -} - -function assertGraphNetworkContracts( - contracts: unknown, - chainId: GraphChainId, - strictAssert?: boolean, -): asserts contracts is GraphNetworkContracts { - assertObject(contracts) - - // Allow loading contracts not defined in GraphNetworkContractNameList but raise a warning - const contractNames = Object.keys(contracts) - if (!contractNames.every((c) => isGraphNetworkContractName(c))) { - console.warn( - `Loaded invalid GraphNetworkContract: ${contractNames.filter( - (c) => !isGraphNetworkContractName(c), - )}`, - ) - } - - // Assert that all shared GraphNetworkContracts were loaded - for (const contractName of GraphNetworkSharedContractNameList) { - if (!contracts[contractName]) { - const errMessage = `Missing GraphNetworkContract: ${contractName} for chainId ${chainId}` - console.error(errMessage) - if (strictAssert) { - throw new Error(errMessage) - } - } - } - - // Assert that L1/L2 specific GraphNetworkContracts were loaded - const layerSpecificContractNames = isGraphL1ChainId(chainId) - ? GraphNetworkL1ContractNameList - : GraphNetworkL2ContractNameList - for (const contractName of layerSpecificContractNames) { - if (!contracts[contractName]) { - const errMessage = `Missing GraphNetworkContract: ${contractName} for chainId ${chainId}` - console.error(errMessage) - if (strictAssert) { - throw new Error(errMessage) - } - } - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts b/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts deleted file mode 100644 index 03cc7b413..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { loadArtifact } from '../../../lib/deploy/artifacts' -import { AddressBook } from '../../../lib/address-book' -import { deployContract, deployContractAndSave } from '../../../lib/deploy/contract' -import { hashHexString } from '../../../../utils/hash' -import { loadContractAt } from '../../../lib/contracts/load' -import { getArtifactsPath } from './load' - -import type { Contract, Signer } from 'ethers' -import type { ContractParam } from '../../../lib/types/contract' -import type { - DeployAddressBookWithProxyFunction, - DeployData, - DeployResult, -} from '../../../lib/types/deploy' -import { logDebug } from '../../../logger' - -/** - * Deploys a contract with a proxy - * - * @remarks Sets a contract as the proxy admin - * @remarks The proxy admin needs to - * @remarks This function can deploy any proxy contract as long as the constructor has the following signature: - * `constructor(address implementation, address admin)` - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param proxyName Name of the proxy contract to deploy - * @param proxyAdmin Contract to be used as the proxy admin - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - * @returns the deployed contract with the proxy address - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractWithProxy: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook) - - // Deploy implementation - const implDeployResult = await deployContract(sender, { - name: contractData.name, - args: [], - }) - - // Deploy proxy - const { contract: proxy } = await deployContract(sender, { - name: proxyData.name, - args: [implDeployResult.contract.address, proxyAdmin.address], - opts: { autolink: false }, - }) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - proxy.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(proxy.address) - return implDeployResult -} - -/** - * Deploys a contract with a proxy and saves the deployment result to the address book - * - * @remarks Same as {@link deployContractWithProxy} but this variant will also save the deployment result to the address book. - * - * @param proxyName Name of the proxy contract to deploy - * @param proxyAdmin Proxy admin contract - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - * @returns the deployed contract with the proxy address - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractWithProxyAndSave: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook) - - // Deploy implementation - const implDeployResult = await deployContractAndSave( - sender, - { - name: contractData.name, - args: [], - }, - addressBook, - ) - - // Deploy proxy - const { contract: proxy } = await deployContract(sender, { - name: proxyData.name, - args: [implDeployResult.contract.address, proxyAdmin.address], - opts: { autolink: false }, - }) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - proxy.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Overwrite address entry with proxy - const artifact = loadArtifact(proxyData.name) - const contractEntry = addressBook.getEntry(contractData.name) - - addressBook.setEntry(contractData.name, { - address: proxy.address, - initArgs: - contractData.args?.length === 0 ? undefined : contractData.args?.map((e) => e.toString()), - creationCodeHash: hashHexString(artifact.bytecode), - runtimeCodeHash: hashHexString(await sender.provider.getCode(proxy.address)), - txHash: proxy.deployTransaction.hash, - proxy: true, - implementation: contractEntry, - }) - logDebug('> Contract saved to address book') - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(proxy.address) - return implDeployResult -} - -export const deployContractImplementationAndSave: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook) - - // Deploy implementation - const implDeployResult = await deployContract(sender, { - name: contractData.name, - args: [], - }) - - // Get proxy entry - const contractEntry = addressBook.getEntry(contractData.name) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - contractEntry.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Save address entry - contractEntry.implementation = { - address: implDeployResult.contract.address, - constructorArgs: - contractData.args?.length === 0 ? undefined : contractData.args?.map((e) => e.toString()), - creationCodeHash: implDeployResult.creationCodeHash, - runtimeCodeHash: implDeployResult.runtimeCodeHash, - txHash: implDeployResult.txHash, - libraries: - implDeployResult.libraries && Object.keys(implDeployResult.libraries).length > 0 - ? implDeployResult.libraries - : undefined, - } - addressBook.setEntry(contractData.name, contractEntry) - logDebug('> Contract saved to address book') - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(contractEntry.address) - return implDeployResult -} - -/** - * Accepts an upgrade for a proxy contract managed by a proxy admin - * - * @remarks Initializes the implementation if init arguments are provided - * - * @privateRemarks This function is highly specific to the graph protocol proxy system - * - * @param sender Signer to make the call to the proxy admin contract - * @param contract Implementation contract - * @param args Implementation initialization arguments - * @param proxyAdmin Proxy admin contract - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - */ -const proxyAdminAcceptUpgrade = async ( - sender: Signer, - contract: Contract, - args: Array, - proxyAdmin: Contract, - proxyAddress: string, - buildAcceptTx = false, -) => { - const initTx = args ? await contract.populateTransaction.initialize(...args) : null - const acceptFunctionName = initTx ? 'acceptProxyAndCall' : 'acceptProxy' - const acceptFunctionParams = initTx - ? [contract.address, proxyAddress, initTx.data] - : [contract.address, proxyAddress] - - if (buildAcceptTx) { - console.info( - ` - Copy this data in the Gnosis Multisig UI, or a similar app and call ${acceptFunctionName} - -------------------------------------------------------------------------------------- - > Contract Address: ${proxyAdmin.address} - > Implementation: ${contract.address} - > Proxy: ${proxyAddress} - > Data: ${initTx && initTx.data} - `, - ) - } else { - await proxyAdmin.connect(sender)[acceptFunctionName](...acceptFunctionParams) - } -} - -// Get the proxy admin to own the proxy for this contract -function getProxyAdmin(addressBook: AddressBook): Contract { - const proxyAdminEntry = addressBook.getEntry('GraphProxyAdmin') - if (!proxyAdminEntry) { - throw new Error('GraphProxyAdmin not detected in the config, must be deployed first!') - } - return loadContractAt('GraphProxyAdmin', proxyAdminEntry.address, getArtifactsPath()) -} diff --git a/packages/sdk/src/gre/README.md b/packages/sdk/src/gre/README.md deleted file mode 100644 index 1605d0a55..000000000 --- a/packages/sdk/src/gre/README.md +++ /dev/null @@ -1,316 +0,0 @@ -# Graph Runtime Environment (GRE) - -GRE is a hardhat plugin that extends hardhat's runtime environment to inject additional functionality related to the usage of the Graph Protocol. - -### Features - -- Provides a simple interface to interact with protocol contracts -- Exposes protocol configuration via graph config file and address book -- Provides account management methods for convenience -- Detailed logging of transactions to file -- Multichain! Supports both L1 and L2 layers of the protocol simultaneously -- Integrates seamlessly with [hardhat-secure-accounts](https://www.npmjs.com/package/hardhat-secure-accounts) -- Convenience method to create tasks that use GRE - -## Usage - -#### Example -Import GRE using `import '@graphprotocol/sdk/gre'` on your hardhat config file and then: - -```js -// Use L2 governor account to set the L1 token address on the L2 gateway -const { l1, l2 } = hre.graph() - -const { GraphToken } = l1.contracts - -const { L2GraphTokenGateway } = l2.contracts -const { governor } = await l2.getNamedAccounts() - -const tx = L2GraphTokenGateway.connect(governor).setL1TokenAddress(GraphToken.address) -``` -__Note__: Project must run hardhat@~2.14.0 due to https://github.com/NomicFoundation/hardhat/issues/1539#issuecomment-1067543942 - -#### Network selection - -GRE supports both the L1 and L2 networks of the Graph Protocol by default. It will use hardhat's network defined via `--network` as the "main" network and then automatically detect which is the appropriate counterpart network in L1 or L2. - -Example: - -```bash -# L1: goerli and L2: arbitrum-goerli -hh console --network goerli - -# L1: mainnet and L2: arbitrum-one -hh console --network arbitrum-one - -# L1: mainnet and L2: arbitrum-one > same as previous -hh console --network mainnet -``` - -#### Configuration - -To use GRE you'll need to configure the target networks. That is done via either hardhat's config file using the `networks` [config field](https://hardhat.org/hardhat-runner/docs/config#json-rpc-based-networks) or by passing the appropriate arguments to `hre.graph()` initializer. - -__Note__: The "main" network, defined by hardhat's `--network` flag _MUST_ be properly configured for GRE to initialize successfully. It's not necessary to configure the counterpart network if you don't plan on using it. - -**Hardhat: Network config** -```js -networks: { - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456` - accounts: { - mnemonic: 'test test test test test test test test test test test test', - }, - graphConfig: 'config/graph.goerli.yml' - }, -} -``` - -Fields: -- **(_REQUIRED_) chainId**: the chainId of the network. This field is not required by hardhat but it's used by GRE to simplify the API. -- **(_REQUIRED_) url**: the RPC endpoint of the network. -- **(_OPTIONAL_) accounts**: the accounts to use on the network. These will be used by the account management functions on GRE. -- **(_OPTIONAL_) graphConfig**: the path to the graph config file for the network. - -**Hardhat: Graph config** - -Additionally, the plugin adds a new config field to hardhat's config file: `graphConfig`. This can be used used to define defaults for the graph config file. - - -```js -... -networks: { -... -}, -graph: { - addressBook: 'addresses.json' - l1GraphConfig: 'config/graph.mainnet.yml' - l2GraphConfig: 'config/graph.arbitrum-one.yml' -} -... -``` - -Fields: -- **(_OPTIONAL_) addressBook**: the path to the address book. -- **(_REQUIRED_) l1GraphConfig**: default path to the graph config file for L1 networks. This will be used if the `graphConfig` field is not defined on the network config. -- **(_REQUIRED_) l2GraphConfig**: default path to the graph config file for L2 networks. This will be used if the `graphConfig` field is not defined on the network config. - -**Options: Graph initializer** - -The GRE initializer also allows you to set the address book and the graph config files like so: -```js -const graph = hre.graph({ - addressBook: 'addresses.json', - l1GraphConfig: 'config/graph.mainnet.yml' - l2GraphConfig: 'config/graph.arbitrum-one.yml' -}) - -// Here graphConfig will apply only to the "main" network given by --network -const graph = hre.graph({ - addressBook: 'addresses.json', - graphConfig: 'config/graph.mainnet.yml' -}) -``` - -**Config priority** - -The path to the graph config and the address book can be set in multiple ways. The plugin will use the following order to determine the path to the graph config file: - -1) `hre.graph({ ... })` init parameters `l1GraphConfigPath` and `l2GraphConfigPath` -2) `hre.graph({ ...})` init parameter graphConfigPath (but only for the "main" network) -3) `networks..graphConfig` network config parameter `graphConfig` in hardhat config file -4) `graph.lGraphConfig` graph config parameters `l1GraphConfig` and `l2GraphConfig` in hardhat config file - -The priority for the address book is: -1) `hre.graph({ ... })` init parameter `addressBook` -2) `graph.addressBook` graph config parameter `addressBook` in hardhat config file - -### Graph task convenience method - -GRE accepts a few parameters when being initialized. When using GRE in the context of a hardhat task these parameters would typically be configured as task options. - -In order to simplify the creation of hardhat tasks that will make use of GRE and would require several options to be defined we provide a convenience method: `greTask`. This is a drop in replacement for hardhat's `task` that includes GRE related boilerplate, you can still customize the task as you would do with `task`. - - you avoid having to define GRE's options on all of your tasks. - -Here is an example of a task using this convenience method: - -```ts -import { greTask } from '../../gre/gre' - -greTask('hello-world', 'Say hi!', async (args, hre) => { - console.log('hello world') - const graph = hre.graph(args) -}) -``` - -```bash -✗ npx hardhat hello-world --help -Hardhat version 2.10.1 - -Usage: hardhat [GLOBAL OPTIONS] test-graph [--address-book ] [--disable-secure-accounts] [--graph-config ] [--l1-graph-config ] [--l2-graph-config ] - -OPTIONS: - - --address-book Path to the address book file. - --disable-secure-accounts Disable secure accounts. - --enable-tx-logging Enable transaction logging. - --graph-config Path to the graph config file for the network specified using --network. - --l1-graph-config Path to the graph config file for the L1 network. - --l2-graph-config Path to the graph config file for the L2 network. - -hello-world: Say hi! - -For global options help run: hardhat help -``` - -### Transaction Logging - -By default all transactions executed via GRE will be logged to a file. The file will be created on the first transaction with the following convention `tx-.log`. Here is a sample log file: - -``` -[2024-01-15T14:33:26.747Z] > Sending transaction: GraphToken.addMinter -[2024-01-15T14:33:26.747Z] = Sender: 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 -[2024-01-15T14:33:26.747Z] = Contract: 0x428aAe4Fa354c21600b6ec0077F2a6855C7dcbC8 -[2024-01-15T14:33:26.747Z] = Params: [ 0x05eA50dc2C0389117A067D393e0395ACc32c53b6 ] -[2024-01-15T14:33:26.747Z] = TxHash: 0xa9096e5f9f9a2208202ac3a8b895561dc3f781fa7e19350b0855098a08d193f7 -[2024-01-15T14:33:26.750Z] ✔ Transaction succeeded! -[2024-01-15T14:33:26.777Z] > Sending transaction: GraphToken.renounceMinter -[2024-01-15T14:33:26.777Z] = Sender: 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 -[2024-01-15T14:33:26.777Z] = Contract: 0x428aAe4Fa354c21600b6ec0077F2a6855C7dcbC8 -[2024-01-15T14:33:26.777Z] = Params: [ ] -[2024-01-15T14:33:26.777Z] = TxHash: 0x48233b256a1f98cb3fecc3dd48d7f7c0175042142e1ca7b9b1f9fc91169bb588 -[2024-01-15T14:33:26.780Z] ✔ Transaction succeeded! -``` - -If you want to disable transaction logging you can do so by setting the `enableTxLogging` option to `false` when initializing GRE: ```g=graph({ disableSecureAccounts: true })``` - -## API - -GRE exposes functionality via a simple API: - -```js -const graph = hre.graph() - -// To access the L1 object -graph.l1 - -// To access the L2 object -graph.l2 -``` - -The interface for both `l1` and `l2` objects looks like this: - -```ts -export interface GraphNetworkEnvironment { - chainId: number - contracts: NetworkContracts - provider: EthersProviderWrapper - graphConfig: any - addressBook: AddressBook - getNamedAccounts: () => Promise - getTestAccounts: () => Promise - getDeployer: () => Promise -} -``` - -**ChainId** - -The chainId of the network. - -**Contracts** - -Returns an object with all the contracts available in the network. Connects using a provider created with the URL specified in hardhat's network configuration (it doesn't use the usual hardhat `hre.ethers.provider`). - -```js -> const graph = hre.graph() - -// Print curation default reserve ratio on L1 -> await g.l1.contracts.Curation.defaultReserveRatio() -500000 -``` - -**Graph Config** - -Returns an object that grants raw access to the YAML parse of the graph config file for the protocol. The graph config file is a YAML file that contains all the parameters with which the protocol was deployed. - -> TODO: add better APIs to interact with the graph config file. - -**Address Book** - -Returns an object that allows interacting with the address book. - -```js -> const graph = hre.graph() -> graph.l1.addressBook.getEntry('Curation') -{ - address: '0xE59B4820dDE28D2c235Bd9A73aA4e8716Cb93E9B', - initArgs: [ - '0x48eD7AfbaB432d1Fc6Ea84EEC70E745d9DAcaF3B', - '0x2DFDC3e11E035dD96A4aB30Ef67fab4Fb6EC01f2', - '0x8bEd0a89F18a801Da9dEA994D475DEa74f75A059', - '500000', - '10000', - '1000000000000000000' - ], - creationCodeHash: '0x25a7b6cafcebb062169bc25fca9bcce8f23bd7411235859229ae3cc99b9a7d58', - runtimeCodeHash: '0xaf2d63813a0e5059f63ec46e1b280eb9d129d5ad548f0cdd1649d9798fde10b6', - txHash: '0xf1b1f0f28b80068bcc9fd6ef475be6324a8b23cbdb792f7344f05ce00aa997d7', - proxy: true, - implementation: { - address: '0xAeaA2B058539750b740E858f97159E6856948670', - creationCodeHash: '0x022576ab4b739ee17dab126ea7e5a6814bda724aa0e4c6735a051b38a76bd597', - runtimeCodeHash: '0xc7b1f9bef01ef92779aab0ae9be86376c47584118c508f5b4e612a694a4aab93', - txHash: '0x400bfb7b6c384363b859a66930590507ddca08ebedf64b20c4b5f6bc8e76e125' - } -} -``` - -**Account management: getNamedAccounts** -Returns an object with all the named accounts available in the network. Named accounts are accounts that have special roles in the protocol, they are defined in the graph config file. - -```js -> const graph = hre.graph() -> const namedAccounts = await g.l1.getNamedAccounts() -> namedAccounts.governor.address -'0xf1135bFF22512FF2A585b8d4489426CE660f204c' -``` - -The accounts are initialized from the graph config file but if the correct mnemonic or private key is provided via hardhat network configuration then they will be fully capable of signing transactions. Accounts are already connected to the network provider. - -**Account management: getTestAccounts** -Returns an object with accounts which can be used for testing/interacting with the protocol. These are obtained from hardhat's network configuration using the provided mnemonic or private key. Accounts are already connected to the network provider. - -**Account management: getDeployer** -Returns an object with the would-be deployer account. The deployer is by convention the first (index 0) account derived from the mnemonic or private key provided via hardhat network configuration. Deployer account is already connected to the network provider. - -It's important to note that the deployer is not a named account as it's derived from the provided mnemonic so it won't necessarily match the actual deployer for a given deployment. It's the account that would be used to deploy the protocol with the current configuration. It's not possible at the moment to recover the actual deployer account from a deployed protocol. - -**Account management: getWallets** -Returns an object with wallets derived from the mnemonic or private key provided via hardhat network configuration. These wallets are not connected to a provider. - -**Account management: getWallet** -Returns a wallet derived from the mnemonic or private key provided via hardhat network configuration that matches a given address. This wallet is not connected to a provider. - -#### Integration with hardhat-secure-accounts - -[hardhat-secure-accounts](https://www.npmjs.com/package/hardhat-secure-accounts) is a hardhat plugin that allows you to use encrypted keystore files to store your private keys. GRE has built-in support to use this plugin. By default is enabled but can be disabled by setting the `disableSecureAccounts` option to `true` when instantiating the GRE object. When enabled, each time you call any of the account management methods you will be prompted for an account name and password to unlock: - -```js -// Without secure accounts -> const graph = hre.graph({ disableSecureAccounts: true }) -> const deployer = await g.l1.getDeployer() -> deployer.address -'0xBc7f4d3a85B820fDB1058FD93073Eb6bc9AAF59b' - -// With secure accounts -> const graph = hre.graph() -> const deployer = await g.l1.getDeployer() -== Using secure accounts, please unlock an account for L1(goerli) -Available accounts: goerli-deployer, arbitrum-goerli-deployer, rinkeby-deployer, test-mnemonic -Choose an account to unlock (use tab to autocomplete): test-mnemonic -Enter the password for this account: ************ -> deployer.address -'0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1' -``` diff --git a/packages/sdk/src/gre/accounts.ts b/packages/sdk/src/gre/accounts.ts deleted file mode 100644 index 003ef19ea..000000000 --- a/packages/sdk/src/gre/accounts.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { derivePrivateKeys } from 'hardhat/internal/core/providers/util' -import { Wallet } from 'ethers' -import { getItemValue, readConfig } from '..' -import { getNetworkName } from './helpers/network' -import { HttpNetworkHDAccountsConfig, NetworksConfig } from 'hardhat/types' -import { GREPluginError } from './helpers/error' - -import type { AccountNames, NamedAccounts } from './types' - -const namedAccountList: AccountNames[] = [ - 'arbitrator', - 'governor', - 'authority', - 'availabilityOracle', - 'pauseGuardian', - 'allocationExchangeOwner', -] - -export async function getNamedAccounts( - provider: EthersProviderWrapper, - graphConfigPath: string, -): Promise { - const namedAccounts = namedAccountList.reduce( - async (accountsPromise, name) => { - const accounts = await accountsPromise - let address - try { - address = getItemValue(readConfig(graphConfigPath, true), `general/${name}`) - } catch (e) { - // Skip if not found - } - if (address) { - accounts[name] = await SignerWithAddress.create(provider.getSigner(address)) - } - return accounts - }, - Promise.resolve({} as NamedAccounts), - ) - - return namedAccounts -} - -export async function getDeployer(provider: EthersProviderWrapper): Promise { - const signer = provider.getSigner(0) - return SignerWithAddress.create(signer) -} - -export async function getTestAccounts( - provider: EthersProviderWrapper, - graphConfigPath: string, -): Promise { - // Get list of privileged accounts we don't want as test accounts - const namedAccounts = await getNamedAccounts(provider, graphConfigPath) - const blacklist = namedAccountList.reduce((accounts: string[], name) => { - const account = namedAccounts[name] - if (account) { - accounts.push(account.address) - } - return accounts - }, []) - blacklist.push((await getDeployer(provider)).address) - - // Get signers and filter out blacklisted accounts - const accounts = await provider.listAccounts() - const signers = await Promise.all( - accounts.map(async (account) => await SignerWithAddress.create(provider.getSigner(account))), - ) - - return signers.filter((s) => { - return !blacklist.includes(s.address) - }) -} - -export async function getAllAccounts( - provider: EthersProviderWrapper, -): Promise { - const accounts = await provider.listAccounts() - return await Promise.all( - accounts.map(async (account) => await SignerWithAddress.create(provider.getSigner(account))), - ) -} - -export async function getWallets( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, -): Promise { - const networkName = getNetworkName(networks, chainId, mainNetworkName) - if (networkName === undefined) { - throw new GREPluginError(`Could not find networkName for chainId: ${chainId}!`) - } - const accounts = networks[networkName].accounts - const mnemonic = (accounts as HttpNetworkHDAccountsConfig).mnemonic - - if (mnemonic) { - const privateKeys = derivePrivateKeys(mnemonic, "m/44'/60'/0'/0/", 0, 20, '') - return privateKeys.map((privateKey) => new Wallet(privateKey)) - } - - return [] -} - -export async function getWallet( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - address: string, -): Promise { - const wallets = await getWallets(networks, chainId, mainNetworkName) - const found = wallets.find((w) => w.address === address) - if (found === undefined) { - throw new GREPluginError(`Could not find wallet for address: ${address}!`) - } - return found -} diff --git a/packages/sdk/src/gre/config.ts b/packages/sdk/src/gre/config.ts deleted file mode 100644 index f8e718bd9..000000000 --- a/packages/sdk/src/gre/config.ts +++ /dev/null @@ -1,178 +0,0 @@ -import fs from 'fs' - -import { HardhatRuntimeEnvironment } from 'hardhat/types/runtime' - -import { GREPluginError } from './helpers/error' -import { isGraphChainId, counterpart, isGraphL1ChainId, isGraphL2ChainId } from '..' -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' - -import { logDebug } from './helpers/logger' -import { normalizePath } from './helpers/utils' -import { getNetworkConfig } from './helpers/network' -import { getDefaultProvider } from './providers' - -import type { GraphRuntimeEnvironmentOptions } from './types' - -interface GREChains { - l1ChainId: number - l2ChainId: number - isHHL1: boolean - isHHL2: boolean -} - -interface GREProviders { - l1Provider: EthersProviderWrapper | undefined - l2Provider: EthersProviderWrapper | undefined -} - -interface GREGraphConfigs { - l1GraphConfigPath: string | undefined - l2GraphConfigPath: string | undefined -} - -export function getAddressBookPath( - hre: HardhatRuntimeEnvironment, - opts: GraphRuntimeEnvironmentOptions, -): string { - logDebug('== Getting address book path') - logDebug(`Graph base dir: ${hre.config.paths.graph}`) - logDebug(`1) opts.addressBook: ${opts.addressBook}`) - logDebug(`2) hre.network.config.addressBook: ${hre.network.config?.addressBook}`) - logDebug(`3) hre.config.graph.addressBook: ${hre.config.graph?.addressBook}`) - - let addressBookPath = - opts.addressBook ?? hre.network.config?.addressBook ?? hre.config.graph?.addressBook - - if (addressBookPath === undefined) { - throw new GREPluginError('Must set a an addressBook path!') - } - - addressBookPath = normalizePath(addressBookPath, hre.config.paths.graph) - - if (!fs.existsSync(addressBookPath)) { - throw new GREPluginError(`Address book not found: ${addressBookPath}`) - } - - logDebug(`Address book path found: ${addressBookPath}`) - return addressBookPath -} - -export function getChains(mainChainId: number | undefined): GREChains { - logDebug('== Getting chain ids') - logDebug(`Hardhat chain id: ${mainChainId}`) - - if (!isGraphChainId(mainChainId)) { - throw new GREPluginError(`Chain ${mainChainId} is not supported!`) - } - - // If mainChainId is supported there is a supported counterpart chainId so both chains are not undefined - mainChainId = mainChainId! - - const secondaryChainId = counterpart(mainChainId) - logDebug(`Secondary chain id: ${secondaryChainId}`) - - const isHHL1 = isGraphL1ChainId(mainChainId) - const isHHL2 = isGraphL2ChainId(mainChainId) - const l1ChainId = isHHL1 ? mainChainId : secondaryChainId - const l2ChainId = isHHL2 ? mainChainId : secondaryChainId - - logDebug(`L1 chain id: ${l1ChainId} - Is HHL1: ${isHHL1}`) - logDebug(`L2 chain id: ${l2ChainId} - Is HHL2: ${isHHL2}`) - - return { - l1ChainId, - l2ChainId, - isHHL1, - isHHL2, - } -} - -export function getDefaultProviders( - hre: HardhatRuntimeEnvironment, - l1ChainId: number, - l2ChainId: number, - isHHL1: boolean, -): GREProviders { - logDebug('== Getting providers') - - const l1Provider = getDefaultProvider(hre.config.networks, l1ChainId, hre.network, isHHL1, 'L1') - const l2Provider = getDefaultProvider(hre.config.networks, l2ChainId, hre.network, !isHHL1, 'L2') - - return { - l1Provider, - l2Provider, - } -} - -export function getGraphConfigPaths( - hre: HardhatRuntimeEnvironment, - opts: GraphRuntimeEnvironmentOptions, - l1ChainId: number, - l2ChainId: number, - isHHL1: boolean, -): GREGraphConfigs { - logDebug('== Getting graph config paths') - logDebug(`Graph base dir: ${hre.config.paths.graph}`) - - const l1Network = getNetworkConfig(hre.config.networks, l1ChainId, hre.network.name) - const l2Network = getNetworkConfig(hre.config.networks, l2ChainId, hre.network.name) - - // Priority is as follows: - // - hre.graph() init parameter l1GraphConfigPath/l2GraphConfigPath - // - hre.graph() init parameter graphConfigPath (only for layer corresponding to hh network) - // - hh network config - // - hh graph config (layer specific: l1GraphConfig, l2GraphConfig) - let l1GraphConfigPath = - opts.l1GraphConfig ?? - (isHHL1 ? opts.graphConfig : undefined) ?? - l1Network?.graphConfig ?? - hre.config.graph.l1GraphConfig - - logDebug(`> L1 graph config`) - logDebug(`1) opts.l1GraphConfig: ${opts.l1GraphConfig}`) - logDebug(`2) opts.graphConfig: ${isHHL1 ? opts.graphConfig : undefined}`) - logDebug(`3) l1Network.graphConfig: ${l1Network?.graphConfig}`) - logDebug(`4) hre.config.graph.l1GraphConfig: ${hre.config.graph.l1GraphConfig}`) - - if (isHHL1 && l1GraphConfigPath === undefined) { - throw new GREPluginError('Must specify a graph config file for L1!') - } - - if (l1GraphConfigPath !== undefined) { - l1GraphConfigPath = normalizePath(l1GraphConfigPath, hre.config.paths.graph) - } - - let l2GraphConfigPath = - opts.l2GraphConfig ?? - (!isHHL1 ? opts.graphConfig : undefined) ?? - l2Network?.graphConfig ?? - hre.config.graph.l2GraphConfig - - logDebug(`> L2 graph config`) - logDebug(`1) opts.l2GraphConfig: ${opts.l2GraphConfig}`) - logDebug(`2) opts.graphConfig: ${!isHHL1 ? opts.graphConfig : undefined}`) - logDebug(`3) l2Network.graphConfig: ${l2Network?.graphConfig}`) - logDebug(`4) hre.config.graph.l2GraphConfig: ${hre.config.graph.l2GraphConfig}`) - - if (!isHHL1 && l2GraphConfigPath === undefined) { - throw new GREPluginError('Must specify a graph config file for L2!') - } - - if (l2GraphConfigPath !== undefined) { - l2GraphConfigPath = normalizePath(l2GraphConfigPath, hre.config.paths.graph) - } - - for (const configPath of [l1GraphConfigPath, l2GraphConfigPath]) { - if (configPath !== undefined && !fs.existsSync(configPath)) { - throw new GREPluginError(`Graph config file not found: ${configPath}`) - } - } - - logDebug(`L1 graph config path: ${l1GraphConfigPath}`) - logDebug(`L2 graph config path: ${l2GraphConfigPath}`) - - return { - l1GraphConfigPath: l1GraphConfigPath, - l2GraphConfigPath: l2GraphConfigPath, - } -} diff --git a/packages/sdk/src/gre/gre.ts b/packages/sdk/src/gre/gre.ts deleted file mode 100644 index 642b3d20b..000000000 --- a/packages/sdk/src/gre/gre.ts +++ /dev/null @@ -1,233 +0,0 @@ -import path from 'path' -import { Wallet } from 'ethers' -import { lazyFunction, lazyObject } from 'hardhat/plugins' -import { HardhatConfig, HardhatRuntimeEnvironment, HardhatUserConfig } from 'hardhat/types' -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' - -import { GraphNetworkAddressBook, readConfig, loadGraphNetworkContracts } from '..' -import { - getAllAccounts, - getDeployer, - getNamedAccounts, - getTestAccounts, - getWallet, - getWallets, -} from './accounts' -import { getAddressBookPath, getChains, getDefaultProviders, getGraphConfigPaths } from './config' -import { getSecureAccountsProvider } from './providers' -import { logDebug, logWarn } from './helpers/logger' -import { getDefaults } from '..' - -import type { - GraphNetworkEnvironment, - GraphRuntimeEnvironment, - GraphRuntimeEnvironmentOptions, -} from './types' - -export const greExtendConfig = (config: HardhatConfig, userConfig: Readonly) => { - // Source for the path convention: - // https://github.com/NomicFoundation/hardhat-ts-plugin-boilerplate/blob/d450d89f4b6ed5d26a8ae32b136b9c55d2aadab5/src/index.ts - const userPath = userConfig.paths?.graph - - let newPath: string - if (userPath === undefined) { - newPath = config.paths.root - } else { - if (path.isAbsolute(userPath)) { - newPath = userPath - } else { - newPath = path.normalize(path.join(config.paths.root, userPath)) - } - } - - config.paths.graph = newPath -} - -export const greExtendEnvironment = (hre: HardhatRuntimeEnvironment) => { - hre.graph = (opts: GraphRuntimeEnvironmentOptions = {}) => { - logDebug('*** Initializing Graph Runtime Environment (GRE) ***') - logDebug(`Main network: ${hre.network.name}`) - - logDebug('== Features') - - // Tx logging - const enableTxLogging = opts.enableTxLogging ?? true - logDebug(`Tx logging: ${enableTxLogging ? 'enabled' : 'disabled'}`) - - // Secure accounts - const secureAccounts = !( - opts.disableSecureAccounts ?? - hre.config.graph?.disableSecureAccounts ?? - false - ) - logDebug(`Secure accounts: ${secureAccounts ? 'enabled' : 'disabled'}`) - - // Forking - const fork = opts.fork ?? hre.config.graph?.fork ?? false - logDebug(`Forking: ${fork ? 'enabled' : 'disabled'}`) - - if (fork && hre.network.config.accounts !== 'remote') { - console.log(hre.network.config.accounts) - - logWarn('Forking is enabled but the network is not configured to use remote accounts') - } - - const { l1ChainId, l2ChainId, isHHL1 } = getChains(hre.network.config.chainId) - - // Default providers for L1 and L2 - const { l1Provider, l2Provider } = getDefaultProviders(hre, l1ChainId, l2ChainId, isHHL1) - - // Getters to unlock secure account providers for L1 and L2 - const l1UnlockProvider = (caller: string) => - getSecureAccountsProvider( - hre.accounts, - hre.config.networks, - l1ChainId, - hre.network.name, - isHHL1, - 'L1', - caller, - opts.l1AccountName, - opts.l1AccountPassword, - ) - - const l2UnlockProvider = (caller: string) => - getSecureAccountsProvider( - hre.accounts, - hre.config.networks, - l2ChainId, - hre.network.name, - !isHHL1, - 'L2', - caller, - opts.l2AccountName, - opts.l2AccountPassword, - ) - - const addressBookPath = getAddressBookPath(hre, opts) - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - hre, - opts, - l1ChainId, - l2ChainId, - isHHL1, - ) - - // Wallet functions - const l1GetWallets = () => getWallets(hre.config.networks, l1ChainId, hre.network.name) - const l1GetWallet = (address: string) => - getWallet(hre.config.networks, l1ChainId, hre.network.name, address) - const l2GetWallets = () => getWallets(hre.config.networks, l2ChainId, hre.network.name) - const l2GetWallet = (address: string) => - getWallet(hre.config.networks, l2ChainId, hre.network.name, address) - - // Build the Graph Runtime Environment (GRE) - const l1Graph: GraphNetworkEnvironment | null = buildGraphNetworkEnvironment( - l1ChainId, - l1Provider, - l1GraphConfigPath, - addressBookPath, - isHHL1, - enableTxLogging, - secureAccounts, - fork, - l1GetWallets, - l1GetWallet, - l1UnlockProvider, - ) - - const l2Graph: GraphNetworkEnvironment | null = buildGraphNetworkEnvironment( - l2ChainId, - l2Provider, - l2GraphConfigPath, - addressBookPath, - isHHL1, - enableTxLogging, - secureAccounts, - fork, - l2GetWallets, - l2GetWallet, - l2UnlockProvider, - ) - - const gre: GraphRuntimeEnvironment = { - ...(isHHL1 ? (l1Graph as GraphNetworkEnvironment) : (l2Graph as GraphNetworkEnvironment)), - l1: l1Graph, - l2: l2Graph, - } - - logDebug('GRE initialized successfully!') - logDebug(`Main network: L${isHHL1 ? '1' : '2'}`) - logDebug(`Secondary network: ${gre.l2 !== null ? (isHHL1 ? 'L2' : 'L1') : 'not initialized'}`) - return gre - } -} - -function buildGraphNetworkEnvironment( - chainId: number, - provider: EthersProviderWrapper | undefined, - graphConfigPath: string | undefined, - addressBookPath: string, - isHHL1: boolean, - enableTxLogging: boolean, - secureAccounts: boolean, - fork: boolean, - getWallets: () => Promise, - getWallet: (address: string) => Promise, - unlockProvider: (caller: string) => Promise, -): GraphNetworkEnvironment | null { - if (graphConfigPath === undefined) { - logWarn( - `No graph config file provided for chain: ${chainId}. ${ - isHHL1 ? 'L2' : 'L1' - } will not be initialized.`, - ) - return null - } - - if (provider === undefined) { - logWarn( - `No provider URL found for: ${chainId}. ${isHHL1 ? 'L2' : 'L1'} will not be initialized.`, - ) - return null - } - - // Upgrade provider to secure accounts if feature is enabled - const getUpdatedProvider = async (caller: string) => - secureAccounts ? await unlockProvider(caller) : provider - - return { - chainId: chainId, - provider: provider, - addressBook: lazyObject(() => new GraphNetworkAddressBook(addressBookPath, chainId)), - graphConfig: lazyObject(() => { - const config = readConfig(graphConfigPath, true) - config.defaults = getDefaults(config, isHHL1) - return config - }), - contracts: lazyObject(() => - loadGraphNetworkContracts(addressBookPath, chainId, provider, undefined, { - enableTxLogging, - }), - ), - getWallets: lazyFunction(() => () => getWallets()), - getWallet: lazyFunction(() => (address: string) => getWallet(address)), - getDeployer: lazyFunction( - () => async () => getDeployer(await getUpdatedProvider('getDeployer')), - ), - getNamedAccounts: lazyFunction( - () => async () => - getNamedAccounts( - fork ? provider : await getUpdatedProvider('getNamedAccounts'), - graphConfigPath, - ), - ), - getTestAccounts: lazyFunction( - () => async () => - getTestAccounts(await getUpdatedProvider('getTestAccounts'), graphConfigPath), - ), - getAllAccounts: lazyFunction( - () => async () => getAllAccounts(await getUpdatedProvider('getAllAccounts')), - ), - } -} diff --git a/packages/sdk/src/gre/helpers/argv.ts b/packages/sdk/src/gre/helpers/argv.ts deleted file mode 100644 index 2708d35b5..000000000 --- a/packages/sdk/src/gre/helpers/argv.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { GraphRuntimeEnvironmentOptions } from '../types' - -export function getGREOptsFromArgv(): GraphRuntimeEnvironmentOptions { - const argv = process.argv.slice(2) - - const getArgv: any = (index: number) => - argv[index] && argv[index] !== 'undefined' ? argv[index] : undefined - - return { - addressBook: getArgv(0), - graphConfig: getArgv(1), - l1GraphConfig: getArgv(2), - l2GraphConfig: getArgv(3), - disableSecureAccounts: getArgv(4) === 'true', - fork: getArgv(5) === 'true', - } -} diff --git a/packages/sdk/src/gre/helpers/error.ts b/packages/sdk/src/gre/helpers/error.ts deleted file mode 100644 index 46a2d7122..000000000 --- a/packages/sdk/src/gre/helpers/error.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { HardhatPluginError } from 'hardhat/plugins' -import { logError } from './logger' - -export class GREPluginError extends HardhatPluginError { - constructor(message: string) { - super('GraphRuntimeEnvironment', message) - logError(message) - } -} diff --git a/packages/sdk/src/gre/helpers/network.ts b/packages/sdk/src/gre/helpers/network.ts deleted file mode 100644 index d2e3eabb6..000000000 --- a/packages/sdk/src/gre/helpers/network.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { NetworkConfig, NetworksConfig } from 'hardhat/types/config' -import { logDebug, logWarn } from './logger' -import { GREPluginError } from './error' -import { counterpartName } from '../..' - -export function getNetworkConfig( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, -): (NetworkConfig & { name: string }) | undefined { - const candidateNetworks = Object.keys(networks) - .map((n) => ({ ...networks[n], name: n })) - .filter((n) => n.chainId === chainId) - - if (candidateNetworks.length > 1) { - logWarn( - `Found multiple networks with chainId ${chainId}, trying to use main network name to desambiguate`, - ) - - const filteredByMainNetworkName = candidateNetworks.filter((n) => n.name === mainNetworkName) - - if (filteredByMainNetworkName.length === 1) { - logDebug(`Found network with chainId ${chainId} and name ${mainNetworkName}`) - return filteredByMainNetworkName[0] - } else { - logWarn(`Could not desambiguate with main network name, trying secondary network name`) - const secondaryNetworkName = counterpartName(mainNetworkName) - const filteredBySecondaryNetworkName = candidateNetworks.filter( - (n) => n.name === secondaryNetworkName, - ) - - if (filteredBySecondaryNetworkName.length === 1) { - logDebug(`Found network with chainId ${chainId} and name ${mainNetworkName}`) - return filteredBySecondaryNetworkName[0] - } else { - throw new GREPluginError( - `Could not desambiguate network with chainID ${chainId}. Use case not supported!`, - ) - } - } - } else if (candidateNetworks.length === 1) { - return candidateNetworks[0] - } else { - return undefined - } -} - -export function getNetworkName( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, -): string | undefined { - const network = getNetworkConfig(networks, chainId, mainNetworkName) - return network?.name -} diff --git a/packages/sdk/src/gre/helpers/utils.ts b/packages/sdk/src/gre/helpers/utils.ts deleted file mode 100644 index 3fcf810d7..000000000 --- a/packages/sdk/src/gre/helpers/utils.ts +++ /dev/null @@ -1,8 +0,0 @@ -import path from 'path' - -export function normalizePath(_path: string, graphPath?: string): string { - if (!path.isAbsolute(_path) && graphPath !== undefined) { - _path = path.join(graphPath, _path) - } - return _path -} diff --git a/packages/sdk/src/gre/index.ts b/packages/sdk/src/gre/index.ts deleted file mode 100644 index 28e2741b6..000000000 --- a/packages/sdk/src/gre/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { extendConfig, extendEnvironment } from 'hardhat/config' -import { greExtendConfig, greExtendEnvironment } from './gre' - -// Plugin dependencies -import 'hardhat-secure-accounts' - -// This import is needed to let the TypeScript compiler know that it should include your type -// extensions in your npm package's types file. -import './type-extensions' - -// ** Graph Runtime Environment (GRE) extensions for the HRE ** -extendConfig(greExtendConfig) -extendEnvironment(greExtendEnvironment) - -// Exports -export * from './types' -export { greTask as greTask } from './task' -export { getGREOptsFromArgv } from './helpers/argv' diff --git a/packages/sdk/src/gre/providers.ts b/packages/sdk/src/gre/providers.ts deleted file mode 100644 index a6a25f53a..000000000 --- a/packages/sdk/src/gre/providers.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Network } from 'hardhat/types/runtime' -import { NetworksConfig, HttpNetworkConfig } from 'hardhat/types/config' -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { HARDHAT_NETWORK_NAME } from 'hardhat/plugins' -import { createProvider } from 'hardhat/internal/core/providers/construction' - -import { getNetworkConfig, getNetworkName } from './helpers/network' -import { logDebug } from './helpers/logger' - -import { GREPluginError } from './helpers/error' -import { AccountsRuntimeEnvironment } from 'hardhat-secure-accounts/dist/src/type-extensions' - -export const getDefaultProvider = ( - networks: NetworksConfig, - chainId: number, - network: Network, - isMainProvider: boolean, - chainLabel: string, -): EthersProviderWrapper | undefined => { - // Don't recreate provider if we are on hardhat network. This avoids issues with - // hardhat node not responding to requests from the recreated provider - if (network.name === 'hardhat') { - logDebug(`Hardhat network detected; using default provider for ${chainLabel}(${network.name})`) - return new EthersProviderWrapper(network.provider) - } - - const { networkConfig, networkName } = getNetworkData( - networks, - chainId, - network.name, - isMainProvider, - chainLabel, - ) - - if (networkConfig === undefined || networkName === undefined) { - return undefined - } - - logDebug(`Creating provider for ${chainLabel}(${networkName})`) - const ethereumProvider = createProvider(networkName, networkConfig) - const ethersProviderWrapper = new EthersProviderWrapper(ethereumProvider) - return ethersProviderWrapper -} - -export const getSecureAccountsProvider = async ( - accounts: AccountsRuntimeEnvironment, - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - isMainProvider: boolean, - chainLabel: string, - caller: string, - accountName?: string, - accountPassword?: string, -): Promise => { - const { networkConfig, networkName } = getNetworkData( - networks, - chainId, - mainNetworkName, - isMainProvider, - chainLabel, - ) - - if (networkConfig === undefined || networkName === undefined) { - throw new GREPluginError( - `Could not get secure accounts provider for ${chainLabel}(${networkName})! - Caller is ${caller}`, - ) - } - - logDebug(`Using secure accounts provider for ${chainLabel}(${networkName}) - Caller is ${caller}`) - if (accountName === undefined || accountPassword === undefined) { - console.log( - `== Using secure accounts, please unlock an account for ${chainLabel}(${networkName}) - Caller is ${caller}`, - ) - } - - return await accounts.getProvider( - { name: networkName, config: networkConfig } as Network, - accountName, - accountPassword, - ) -} - -const getNetworkData = ( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - isMainProvider: boolean, - chainLabel: string, -): { networkConfig: HttpNetworkConfig | undefined; networkName: string | undefined } => { - const networkConfig = getNetworkConfig(networks, chainId, mainNetworkName) as HttpNetworkConfig - const networkName = getNetworkName(networks, chainId, mainNetworkName) - - logDebug(`Provider url for ${chainLabel}(${networkName}): ${networkConfig?.url}`) - - // Ensure at least main provider is configured - // For Hardhat network we don't need url to create a provider - if ( - isMainProvider && - (networkConfig === undefined || networkConfig.url === undefined) && - networkName !== HARDHAT_NETWORK_NAME - ) { - throw new GREPluginError(`Must set a provider url for chain: ${chainId}!`) - } - - return { networkConfig, networkName } -} diff --git a/packages/sdk/src/gre/task.ts b/packages/sdk/src/gre/task.ts deleted file mode 100644 index ac67ec507..000000000 --- a/packages/sdk/src/gre/task.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { task } from 'hardhat/config' -import { ActionType, ConfigurableTaskDefinition } from 'hardhat/types/runtime' - -function grePrefix(text: string): string { - return `[GRE] ${text}` -} - -export function greTask( - name: string, - description?: string | undefined, - action?: ActionType | undefined, -): ConfigurableTaskDefinition { - return task(name, description, action) - .addOptionalParam('addressBook', grePrefix('Path to the address book file.')) - .addOptionalParam( - 'graphConfig', - grePrefix( - 'Path to the graph config file for the network specified using --network. Lower priority than --l1GraphConfig and --l2GraphConfig.', - ), - ) - .addOptionalParam( - 'l1GraphConfig', - grePrefix('Path to the graph config file for the L1 network.'), - ) - .addOptionalParam( - 'l2GraphConfig', - grePrefix('Path to the graph config file for the L2 network.'), - ) - .addFlag('disableSecureAccounts', grePrefix('Disable secure accounts plugin.')) - .addFlag('enableTxLogging', grePrefix('Enable transaction logging.')) - .addFlag('fork', grePrefix('Wether or not the network is a fork.')) -} diff --git a/packages/sdk/src/gre/test/accounts.test.ts b/packages/sdk/src/gre/test/accounts.test.ts deleted file mode 100644 index f367fbf84..000000000 --- a/packages/sdk/src/gre/test/accounts.test.ts +++ /dev/null @@ -1,223 +0,0 @@ -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import { ethers } from 'ethers' -import { useEnvironment } from './helpers' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -import type { AccountNames, GraphRuntimeEnvironment } from '../types' - -chai.use(chaiAsPromised) - -const mnemonic = 'pumpkin orient can short never warm truth legend cereal tourist craft skin' - -describe('GRE usage > account management', function () { - // Tests that loop through all the wallets take more than the default timeout - this.timeout(10_000) - - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph() - }) - - describe('getWallets', function () { - it('should return 20 wallets', async function () { - const wallets = await graph.getWallets() - expect(wallets.length).to.equal(20) - }) - - it('should derive wallets from hardhat config mnemonic', async function () { - const wallets = await graph.getWallets() - - for (let i = 0; i < wallets.length; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - expect(wallets[i].address).to.equal(derived.address) - } - }) - - it('should return wallets capable of signing messages', async function () { - const wallets = await graph.getWallets() - - for (const wallet of wallets) { - await expect(wallet.signMessage('test')).to.eventually.be.fulfilled - } - }) - - it('should return wallets not connected to a provider', async function () { - const wallets = await graph.getWallets() - - for (const wallet of wallets) { - expect(wallet.provider).to.be.null - } - }) - }) - - describe('getWallet', function () { - it('should return wallet if provided address can be derived from mnemonic', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - expect(wallet.address).to.equal(derived.address) - } - }) - - it('should return wallet capable of signing messages', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - await expect(wallet.signMessage('test')).to.eventually.be.fulfilled - } - }) - - it('should return wallet not connected to a provider', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - expect(wallet.provider).to.be.null - } - }) - - it('should throw if provided address cant be derived from mnemonic', async function () { - const getWallet = graph.getWallet('0x0000000000000000000000000000000000000000') - await expect(getWallet).to.eventually.be.rejectedWith(/Could not find wallet for address: /) - }) - }) -}) - -describe('GRE usage > secure accounts', function () { - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - let graphSecureAccounts: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph({ - disableSecureAccounts: true, - }) - - graphSecureAccounts = this.hre.graph({ - disableSecureAccounts: false, - l1AccountName: 'test-account', - l1AccountPassword: 'batman-with-cheese', - l2AccountName: 'test-account-l2', - l2AccountPassword: 'batman-with-cheese', - }) - }) - - describe('getDeployer', function () { - it('should return different accounts', async function () { - const deployer = await graph.l1!.getDeployer() - const deployerSecureAccount = await graphSecureAccounts.l1!.getDeployer() - - expect(deployer.address).not.to.equal(deployerSecureAccount.address) - expect(deployer.address).to.equal('0x2770fb12b368a9aBf4A02DB34B0F6057fC03BD0d') - expect(deployerSecureAccount.address).to.equal('0xC108fda1b5b2903751594298769Efd4904b146bD') - }) - - it('should return accounts capable of signing messages', async function () { - const deployer = await graph.l1!.getDeployer() - const deployerSecureAccount = await graphSecureAccounts.l1!.getDeployer() - - await expect(deployer.signMessage('test')).to.eventually.be.fulfilled - await expect(deployerSecureAccount.signMessage('test')).to.eventually.be.fulfilled - }) - }) - - describe('getNamedAccounts', function () { - it('should return the same accounts', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - const secureAccountNames = Object.keys(secureAccounts) - - expect(accountNames.length).to.equal(secureAccountNames.length) - - for (const name of accountNames) { - const account = accounts[name] - const secureAccount = secureAccounts[name] - - expect(account.address).to.equal(secureAccount.address) - } - }) - - it('should return accounts incapable of signing messages', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - - for (const name of accountNames) { - const account = accounts[name] - const secureAccount = secureAccounts[name] - - await expect(account.signMessage('test')).to.eventually.be.rejectedWith(/unknown account/) - await expect(secureAccount.signMessage('test')).to.eventually.be.rejected - const tx = account.sendTransaction({ - to: ethers.constants.AddressZero, - value: ethers.utils.parseEther('0'), - }) - await expect(tx).to.eventually.be.rejected - } - }) - }) - - describe('getTestAccounts', function () { - it('should return different accounts', async function () { - const accounts = await graph.l1!.getTestAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getTestAccounts() - - expect(accounts.length).to.equal(secureAccounts.length) - - for (let i = 0; i < accounts.length; i++) { - expect(accounts[i].address).not.to.equal(secureAccounts[i].address) - } - }) - - it('should return accounts capable of signing messages', async function () { - const accounts = await graph.l1!.getTestAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getTestAccounts() - - for (let i = 0; i < accounts.length; i++) { - await expect(accounts[i].signMessage('test')).to.eventually.be.fulfilled - await expect(secureAccounts[i].signMessage('test')).to.eventually.be.fulfilled - } - }) - }) -}) - -describe('GRE usage > fork', function () { - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph({ - fork: true, - }) - }) - describe('getNamedAccounts', function () { - it('should allow impersonating named accounts', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graph.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - - for (const name of accountNames) { - const account: SignerWithAddress = accounts[name] - const secureAccount: SignerWithAddress = secureAccounts[name] - - await expect(account.signMessage('test')).to.eventually.be.rejectedWith(/unknown account/) - await expect(secureAccount.signMessage('test')).to.eventually.be.rejected - - const tx = account.sendTransaction({ - to: ethers.constants.AddressZero, - value: ethers.utils.parseEther('0'), - }) - await expect(tx).to.eventually.be.fulfilled - } - }) - }) -}) diff --git a/packages/sdk/src/gre/test/config.test.ts b/packages/sdk/src/gre/test/config.test.ts deleted file mode 100644 index 56a6129a3..000000000 --- a/packages/sdk/src/gre/test/config.test.ts +++ /dev/null @@ -1,269 +0,0 @@ -import { expect } from 'chai' -import { useEnvironment } from './helpers' -import path from 'path' - -import { getAddressBookPath, getChains, getDefaultProviders, getGraphConfigPaths } from '../config' -import { getNetworkName } from '../helpers/network' - -describe('GRE init functions', function () { - describe('getAddressBookPath with graph-config project', function () { - useEnvironment('graph-config') - - it('should use opts parameter if available', function () { - const addressBook = getAddressBookPath(this.hre, { - addressBook: 'addresses-opts.json', - }) - expect(path.basename(addressBook)).to.equal('addresses-opts.json') - }) - - it('should use HH graph config if opts parameter not available ', function () { - const addressBook = getAddressBookPath(this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-hre.json') - }) - }) - - describe('getAddressBookPath with default-config project', function () { - useEnvironment('default-config') - - it('should throw if no address book is specified', function () { - expect(() => getAddressBookPath(this.hre, {})).to.throw('Must set a an addressBook path!') - }) - }) - - describe('getAddressBookPath with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it("should throw if address book doesn't exist", function () { - expect(() => getAddressBookPath(this.hre, {})).to.throw(/Address book not found: /) - }) - }) - - describe('getChains', function () { - it('should return L1 and L2 chain ids for a supported L1 chain', function () { - const { l1ChainId, l2ChainId, isHHL1, isHHL2 } = getChains(5) // Goerli - - expect(l1ChainId).to.equal(5) - expect(l2ChainId).to.equal(421613) - expect(isHHL1).to.equal(true) - expect(isHHL2).to.equal(false) - }) - it('should return L1 and L2 chain ids for a supported L2 chain', function () { - const { l1ChainId, l2ChainId, isHHL1, isHHL2 } = getChains(42161) // Arbitrum One - - expect(l1ChainId).to.equal(1) - expect(l2ChainId).to.equal(42161) - expect(isHHL1).to.equal(false) - expect(isHHL2).to.equal(true) - }) - it('should throw if provided chain is not supported', function () { - const badChainId = 999 - expect(() => getChains(badChainId)).to.throw(`Chain ${badChainId} is not supported!`) - }) - }) - - describe('getDefaultProviders with graph-config project', function () { - useEnvironment('graph-config') - - it('should return L1 and L2 providers for supported networks (HH L1)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 421613, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - }) - - it('should return L1 and L2 providers for supported networks (HH L2)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 421613, false) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - }) - - it('should return only L1 provider if L2 is not supported (HH L1)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 123456, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.undefined - }) - - it('should return only L2 provider if L1 is not supported (HH L2)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 123456, 421613, false) - expect(l1Provider).to.be.undefined - expect(l2Provider).to.be.an('object') - }) - }) - - describe('getDefaultProviders with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it('should throw if main network is not defined in hardhat config (HH L1)', function () { - expect(() => getDefaultProviders(this.hre, 4, 421611, true)).to.throw( - /Must set a provider url for chain: /, - ) - }) - - it('should throw if main network is not defined in hardhat config (HH L2)', function () { - expect(() => getDefaultProviders(this.hre, 5, 421613, false)).to.throw( - /Must set a provider url for chain: /, - ) - }) - }) - - describe('getProviders with graph-config-desambiguate project', function () { - useEnvironment('graph-config-desambiguate', 'localnitrol1') - - it('should use main network name to desambiguate if multiple chains are defined with same chainId', async function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 1337, 412346, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - - const l1NetworkName = getNetworkName(this.hre.config.networks, 1337, 'localnitrol1') - const l2NetworkName = getNetworkName(this.hre.config.networks, 412346, 'localnitrol1') - expect(l1NetworkName).to.equal('localnitrol1') - expect(l2NetworkName).to.equal('localnitrol2') - }) - }) - - describe('getProviders with graph-config-desambiguate project', function () { - useEnvironment('graph-config-desambiguate', 'localnitrol2') - - it('should use secondary network name to desambiguate if multiple chains are defined with same chainId', async function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 1337, 412346, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - - const l1NetworkName = getNetworkName(this.hre.config.networks, 1337, 'localnitrol2') - const l2NetworkName = getNetworkName(this.hre.config.networks, 412346, 'localnitrol2') - expect(l1NetworkName).to.equal('localnitrol1') - expect(l2NetworkName).to.equal('localnitrol2') - }) - }) - - describe('getGraphConfigPaths with graph-config-full project', function () { - useEnvironment('graph-config-full') - - it('should use opts parameters if available', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { l1GraphConfig: 'config/graph.opts.yml', l2GraphConfig: 'config/graph.arbitrum-opts.yml' }, - 5, - 421613, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should use opts graphConfig parameter only for main network if available (HH L1)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { graphConfig: 'config/graph.opts.yml' }, - 4, - 421611, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-hre.yml') - }) - - it('should use opts graphConfig parameter only for main network if available (HH L2)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { graphConfig: 'config/graph.arbitrum-opts.yml' }, - 4, - 421611, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.hre.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should ignore graphConfig parameter if both config paths are provided (HH L1)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { - graphConfig: 'config/graph.opts2.yml', - l1GraphConfig: 'config/graph.opts.yml', - l2GraphConfig: 'config/graph.arbitrum-opts.yml', - }, - 5, - 421613, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should ignore graphConfig parameter if both config paths are provided (HH L2)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { - graphConfig: 'config/graph.opts2.yml', - l1GraphConfig: 'config/graph.opts.yml', - l2GraphConfig: 'config/graph.arbitrum-opts.yml', - }, - 5, - 421613, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should use network specific config if no opts given', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - {}, - 1, - 42161, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.mainnet.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-goerli.yml') - }) - - it('should use graph generic config if nothing else given', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - {}, - 4, - 421611, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.hre.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-hre.yml') - }) - }) - - describe('getGraphConfigPaths with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it('should throw if no config file for main network (HH L1)', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 5, 421611, true)).to.throw( - 'Must specify a graph config file for L1!', - ) - }) - - it('should throw if no config file for main network (HH L2)', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 5, 421611, false)).to.throw( - 'Must specify a graph config file for L2!', - ) - }) - - it('should throw if config file does not exist', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 1, 421611, true)).to.throw( - /Graph config file not found: /, - ) - }) - }) -}) diff --git a/packages/sdk/src/gre/test/files/addresses-hre.json b/packages/sdk/src/gre/test/files/addresses-hre.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/addresses-opts.json b/packages/sdk/src/gre/test/files/addresses-opts.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-goerli.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-goerli.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-hre.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-hre.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-opts.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-opts.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.goerli.yml b/packages/sdk/src/gre/test/files/config/graph.goerli.yml deleted file mode 100644 index d15d1d25a..000000000 --- a/packages/sdk/src/gre/test/files/config/graph.goerli.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - arbitrator: &arbitrator "0xFD01aa87BeB04D0ac764FC298aCFd05FfC5439cD" # Arbitration Council - governor: &governor "0xf1135bFF22512FF2A585b8d4489426CE660f204c" # Graph Council - authority: &authority "0x52e498aE9B8A5eE2A5Cd26805F06A9f29A7F489F" # Authority that signs payment vouchers - availabilityOracle: &availabilityOracle "0x14053D40ea2E81D3AB0739728a54ab84F21200F9" # Subgraph Availability Oracle - pauseGuardian: &pauseGuardian "0x6855D551CaDe60754D145fb5eDCD90912D860262" # Protocol pause guardian - allocationExchangeOwner: &allocationExchangeOwner "0xf1135bFF22512FF2A585b8d4489426CE660f204c" # Allocation Exchange owner diff --git a/packages/sdk/src/gre/test/files/config/graph.hre.yml b/packages/sdk/src/gre/test/files/config/graph.hre.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.mainnet.yml b/packages/sdk/src/gre/test/files/config/graph.mainnet.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.opts.yml b/packages/sdk/src/gre/test/files/config/graph.opts.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.opts2.yml b/packages/sdk/src/gre/test/files/config/graph.opts2.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts deleted file mode 100644 index 17de4a585..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - networks: { - mainnet: { - chainId: 1, - url: `https://mainnet.infura.io/v3/123456`, - }, - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts deleted file mode 100644 index 314b3a5d1..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts +++ /dev/null @@ -1,43 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet-does-not-exist.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-does-not-exist.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - }, - // 'arbitrum-goerli': { - // chainId: 421613, - // url: 'https://goerli-rollup.arbitrum.io/rpc', - // }, - // rinkeby: { - // chainId: 4, - // url: `https://goerli.infura.io/v3/123456`, - // }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-does-not-exist.json', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts deleted file mode 100644 index 8fcfb1dd0..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts +++ /dev/null @@ -1,59 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - localhost: { - chainId: 1337, - url: `http://127.0.0.1:8545`, - }, - localnitrol1: { - chainId: 1337, - url: `http://127.0.0.1:8545`, - }, - localnitrol2: { - chainId: 412346, - url: `http://127.0.0.1:8547`, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - graphConfig: 'config/graph.goerli.yml', - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - rinkeby: { - chainId: 4, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.hre.yml', - l2GraphConfig: 'config/graph.arbitrum-hre.yml', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts deleted file mode 100644 index 2bad7705c..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts +++ /dev/null @@ -1,47 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - graphConfig: 'config/graph.goerli.yml', - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - rinkeby: { - chainId: 4, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.hre.yml', - l2GraphConfig: 'config/graph.arbitrum-hre.yml', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json b/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json deleted file mode 100644 index ab1ae36bb..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "address": "5baa8472c470a400f830e2458ddb97b13cc8eb32", - "id": "ead5a876-efae-4cdf-aeab-ab81907427c8", - "version": 3, - "Crypto": { - "cipher": "aes-128-ctr", - "cipherparams": { "iv": "5e90eb61380cee63382bd8c935eea554" }, - "ciphertext": "67800c67ab32b8baf2df4a697aa1108ee7f91b5a182ff2e29fa562009e1bbd9f", - "kdf": "scrypt", - "kdfparams": { - "salt": "415db4971651654fb4b381f86525c273e4c7470a69307f7c83f71ec38aca7d12", - "n": 131072, - "dklen": 32, - "p": 1, - "r": 8 - }, - "mac": "f5611372940c7da01e774aaf35046a5b3c4eec050d482b9f0912707ba645e681" - }, - "x-ethers": { - "client": "ethers.js", - "gethFilename": "UTC--2022-08-25T14-48-23.0Z--5baa8472c470a400f830e2458ddb97b13cc8eb32", - "mnemonicCounter": "b84bf04ecd5d0ab111950ee4cf168d86", - "mnemonicCiphertext": "672a53846059b4e8bae97747d684529a", - "path": "m/44'/60'/0'/0/0", - "locale": "en", - "version": "0.1" - } -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json b/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json deleted file mode 100644 index de055e684..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "address": "c108fda1b5b2903751594298769efd4904b146bd", - "id": "37ec99f7-8244-4982-b2d4-173c244784f3", - "version": 3, - "Crypto": { - "cipher": "aes-128-ctr", - "cipherparams": { "iv": "1eb9d55c0882a50e7988a09e674c2402" }, - "ciphertext": "822fd907f44e48d15d500433200ac244b70487813982936a88c0830fa9cd66b6", - "kdf": "scrypt", - "kdfparams": { - "salt": "f6d158afdf9a11d3353fbe736cbb769626c8428015603c6449ca1fa0b42e3c2e", - "n": 131072, - "dklen": 32, - "p": 1, - "r": 8 - }, - "mac": "1af4526f4e62b6722226ee1c3a18d7f5dfff0d5b7862ca123989e7a464153f28" - }, - "x-ethers": { - "client": "ethers.js", - "gethFilename": "UTC--2022-08-24T12-27-39.0Z--c108fda1b5b2903751594298769efd4904b146bd", - "mnemonicCounter": "3bd3b82c7148351fe0cdc005a631d445", - "mnemonicCiphertext": "f2bc1c5598c60fe265bf7908344fde6d", - "path": "m/44'/60'/0'/0/0", - "locale": "en", - "version": "0.1" - } -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts deleted file mode 100644 index 48faa5586..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - accounts: '.accounts', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - accounts: { - mnemonic: 'pumpkin orient can short never warm truth legend cereal tourist craft skin', - }, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - }, - localhost: { - chainId: 1337, - url: 'http://127.0.0.1:8545', - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: 'http://127.0.0.1:8545', - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.goerli.yml', - l2GraphConfig: 'config/graph.arbitrum-goerli.yml', - }, -} diff --git a/packages/sdk/src/gre/test/gre.test.ts b/packages/sdk/src/gre/test/gre.test.ts deleted file mode 100644 index 7f08b6814..000000000 --- a/packages/sdk/src/gre/test/gre.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { expect } from 'chai' -import { useEnvironment } from './helpers' - -describe('GRE usage', function () { - describe('graph-config project setting --network to an L1', function () { - useEnvironment('graph-config', 'mainnet') - - it('should return L1 and L2 configured objects', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.an('object') - expect(g.l1?.chainId).to.equal(1) - expect(g.l2?.chainId).to.equal(42161) - expect(g.chainId).to.equal(1) - }) - }) - - describe('graph-config project setting --network to an L2', function () { - useEnvironment('graph-config', 'arbitrum-goerli') - - it('should return L1 and L2 configured objects', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.an('object') - expect(g.l1?.chainId).to.equal(5) - expect(g.l2?.chainId).to.equal(421613) - expect(g.chainId).to.equal(421613) - }) - }) - - describe('graph-config project setting --network to hardhat network', function () { - useEnvironment('graph-config', 'hardhat') - - it('should return L1 configured object and L2 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.null - expect(g.l1?.chainId).to.equal(1337) - expect(g.chainId).to.equal(1337) - }) - }) - - describe('graph-config project setting --network to an L1 with no configured counterpart', function () { - useEnvironment('graph-config', 'localhost') - - it('should return L1 configured object and L2 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.null - expect(g.l1?.chainId).to.equal(1337) - expect(g.chainId).to.equal(1337) - }) - }) - - describe('graph-config project setting --network to an L2 with no configured counterpart', function () { - useEnvironment('graph-config', 'arbitrum-rinkeby') - - it('should return L2 configured object and L1 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.null - expect(g.l2).to.be.an('object') - expect(g.l2?.chainId).to.equal(421611) - expect(g.chainId).to.equal(421611) - }) - }) - - describe('default-config project', function () { - useEnvironment('default-config', 'mainnet') - - it('should throw', function () { - expect(() => this.hre.graph()).to.throw() - }) - }) -}) diff --git a/packages/sdk/src/gre/test/helpers.ts b/packages/sdk/src/gre/test/helpers.ts deleted file mode 100644 index 81c97cd9b..000000000 --- a/packages/sdk/src/gre/test/helpers.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { resetHardhatContext } from 'hardhat/plugins-testing' -import { HardhatRuntimeEnvironment } from 'hardhat/types' -import path from 'path' - -declare module 'mocha' { - interface Context { - hre: HardhatRuntimeEnvironment - } -} - -export function useEnvironment(fixtureProjectName: string, network?: string): void { - beforeEach('Loading hardhat environment', function () { - process.chdir(path.join(__dirname, 'fixture-projects', fixtureProjectName)) - - if (network !== undefined) { - process.env.HARDHAT_NETWORK = network - } - this.hre = require('hardhat') - }) - - afterEach('Resetting hardhat', function () { - resetHardhatContext() - delete process.env.HARDHAT_NETWORK - }) -} diff --git a/packages/sdk/src/gre/type-extensions.ts b/packages/sdk/src/gre/type-extensions.ts deleted file mode 100644 index a653a09fc..000000000 --- a/packages/sdk/src/gre/type-extensions.ts +++ /dev/null @@ -1,49 +0,0 @@ -// To extend one of Hardhat's types, you need to import the module where it has been defined, and redeclare it. -import 'hardhat/types/config' -import 'hardhat/types/runtime' - -import type { GraphRuntimeEnvironment, GraphRuntimeEnvironmentOptions } from './types' - -declare module 'hardhat/types/runtime' { - export interface HardhatRuntimeEnvironment { - graph: (opts?: GraphRuntimeEnvironmentOptions) => GraphRuntimeEnvironment - } -} - -declare module 'hardhat/types/config' { - export interface HardhatConfig { - graph: Omit - } - - export interface HardhatUserConfig { - graph: Omit - } - - export interface HardhatNetworkConfig { - graphConfig?: string - addressBook?: string - } - - export interface HardhatNetworkUserConfig { - graphConfig?: string - addressBook?: string - } - - export interface HttpNetworkConfig { - graphConfig?: string - addressBook?: string - } - - export interface HttpNetworkUserConfig { - graphConfig?: string - addressBook?: string - } - - export interface ProjectPathsConfig { - graph?: string - } - - export interface ProjectPathsUserConfig { - graph?: string - } -} diff --git a/packages/sdk/src/gre/types.ts b/packages/sdk/src/gre/types.ts deleted file mode 100644 index fc10304df..000000000 --- a/packages/sdk/src/gre/types.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { GraphNetworkAddressBook, GraphNetworkContracts } from '..' - -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { Wallet } from 'ethers' - -export interface GraphRuntimeEnvironmentOptions { - addressBook?: string - l1GraphConfig?: string - l2GraphConfig?: string - graphConfig?: string - enableTxLogging?: boolean - disableSecureAccounts?: boolean - fork?: boolean - - // These are mostly for testing purposes - l1AccountName?: string - l2AccountName?: string - l1AccountPassword?: string - l2AccountPassword?: string -} - -export type AccountNames = - | 'arbitrator' - | 'governor' - | 'authority' - | 'availabilityOracle' - | 'pauseGuardian' - | 'allocationExchangeOwner' - -export type NamedAccounts = { - [name in AccountNames]: SignerWithAddress -} - -export interface GraphNetworkEnvironment { - chainId: number - provider: EthersProviderWrapper - contracts: GraphNetworkContracts - graphConfig: any - addressBook: GraphNetworkAddressBook - getNamedAccounts: () => Promise - getTestAccounts: () => Promise - getAllAccounts: () => Promise - getDeployer: () => Promise - getWallets: () => Promise - getWallet: (address: string) => Promise -} - -export interface GraphRuntimeEnvironment extends GraphNetworkEnvironment { - l1: GraphNetworkEnvironment | null - l2: GraphNetworkEnvironment | null -} diff --git a/packages/sdk/src/helpers/arbitrum.ts b/packages/sdk/src/helpers/arbitrum.ts deleted file mode 100644 index ae91d662b..000000000 --- a/packages/sdk/src/helpers/arbitrum.ts +++ /dev/null @@ -1,143 +0,0 @@ -import fs from 'fs' -import { addCustomNetwork } from '@arbitrum/sdk' -import { applyL1ToL2Alias } from '../utils/arbitrum/' -import { impersonateAccount } from './impersonate' -import { Wallet, ethers, providers } from 'ethers' - -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { DeployType, deploy } from '../deployments' -import type { BridgeMock, InboxMock, OutboxMock } from '@graphprotocol/contracts' -import { setCode } from './code' - -export interface L1ArbitrumMocks { - bridgeMock: BridgeMock - inboxMock: InboxMock - outboxMock: OutboxMock - routerMock: Wallet -} - -export interface L2ArbitrumMocks { - routerMock: Wallet -} - -export async function deployL1MockBridge( - deployer: SignerWithAddress, - arbitrumAddressBook: string, - provider: providers.Provider, -): Promise { - // Deploy mock contracts - const bridgeMock = (await deploy(DeployType.Deploy, deployer, { name: 'BridgeMock' })) - .contract as BridgeMock - const inboxMock = (await deploy(DeployType.Deploy, deployer, { name: 'InboxMock' })) - .contract as InboxMock - const outboxMock = (await deploy(DeployType.Deploy, deployer, { name: 'OutboxMock' })) - .contract as OutboxMock - - // "deploy" router - set dummy code so that it appears as a contract - const routerMock = Wallet.createRandom() - await setCode(routerMock.address, '0x1234') - - // Configure mock contracts - await bridgeMock.connect(deployer).setInbox(inboxMock.address, true) - await bridgeMock.connect(deployer).setOutbox(outboxMock.address, true) - await inboxMock.connect(deployer).setBridge(bridgeMock.address) - await outboxMock.connect(deployer).setBridge(bridgeMock.address) - - // Update address book - const deployment = fs.existsSync(arbitrumAddressBook) - ? JSON.parse(fs.readFileSync(arbitrumAddressBook, 'utf-8')) - : {} - const addressBook = { - '1337': { - L1GatewayRouter: { - address: routerMock.address, - }, - IInbox: { - address: inboxMock.address, - }, - }, - '412346': { - L2GatewayRouter: { - address: deployment['412346']?.L2GatewayRouter?.address ?? '', - }, - }, - } - - fs.writeFileSync(arbitrumAddressBook, JSON.stringify(addressBook)) - - return { - bridgeMock: bridgeMock.connect(provider), - inboxMock: inboxMock.connect(provider), - outboxMock: outboxMock.connect(provider), - routerMock: routerMock.connect(provider), - } -} - -export async function deployL2MockBridge( - deployer: SignerWithAddress, - arbitrumAddressBook: string, - provider: providers.Provider, -): Promise { - // "deploy" router - set dummy code so that it appears as a contract - const routerMock = Wallet.createRandom() - await setCode(routerMock.address, '0x1234') - - // Update address book - const deployment = fs.existsSync(arbitrumAddressBook) - ? JSON.parse(fs.readFileSync(arbitrumAddressBook, 'utf-8')) - : {} - const addressBook = { - '1337': { - L1GatewayRouter: { - address: deployment['1337']?.L1GatewayRouter?.address, - }, - IInbox: { - address: deployment['1337']?.IInbox?.address, - }, - }, - '412346': { - L2GatewayRouter: { - address: routerMock.address, - }, - }, - } - - fs.writeFileSync(arbitrumAddressBook, JSON.stringify(addressBook)) - - return { - routerMock: routerMock.connect(provider), - } -} - -export async function getL2SignerFromL1(l1Address: string): Promise { - const l2Address = applyL1ToL2Alias(l1Address) - return impersonateAccount(l2Address) -} - -export function addLocalNetwork(deploymentFile: string) { - if (!fs.existsSync(deploymentFile)) { - throw new Error(`Deployment file not found: ${deploymentFile}`) - } - const deployment = JSON.parse(fs.readFileSync(deploymentFile, 'utf-8')) - addCustomNetwork({ - customL1Network: deployment.l1Network, - customL2Network: deployment.l2Network, - }) -} - -// Use prefunded genesis address to fund accounts -// See: https://docs.arbitrum.io/node-running/how-tos/local-dev-node#default-endpoints-and-addresses -export async function fundLocalAccounts( - accounts: SignerWithAddress[], - provider: providers.Provider, -) { - for (const account of accounts) { - const amount = ethers.utils.parseEther('10') - const wallet = new Wallet('b6b15c8cb491557369f3c7d2c287b053eb229daa9c22138887752191c9520659') - const tx = await wallet.connect(provider).sendTransaction({ - value: amount, - to: account.address, - }) - await tx.wait() - } -} diff --git a/packages/sdk/src/helpers/balance.ts b/packages/sdk/src/helpers/balance.ts deleted file mode 100644 index 28d7bb8e5..000000000 --- a/packages/sdk/src/helpers/balance.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { setBalance as hardhatSetBalance } from '@nomicfoundation/hardhat-network-helpers' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -import type { BigNumber } from 'ethers' - -export async function setBalance( - address: string, - balance: BigNumber | number, - funder?: SignerWithAddress, -) { - try { - await hardhatSetBalance(address, balance) - } catch (error) { - if (funder === undefined) throw error - await funder.sendTransaction({ to: address, value: balance }) - } -} - -export async function setBalances( - args: { address: string; balance: BigNumber }[], - funder?: SignerWithAddress, -) { - for (let i = 0; i < args.length; i++) { - await setBalance(args[i].address, args[i].balance, funder) - } -} diff --git a/packages/sdk/src/helpers/code.ts b/packages/sdk/src/helpers/code.ts deleted file mode 100644 index f1797caf0..000000000 --- a/packages/sdk/src/helpers/code.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { setCode as hardhatSetCode } from '@nomicfoundation/hardhat-network-helpers' - -export async function setCode(address: string, code: string): Promise { - return hardhatSetCode(address, code) -} diff --git a/packages/sdk/src/helpers/epoch.ts b/packages/sdk/src/helpers/epoch.ts deleted file mode 100644 index f5a1a17e6..000000000 --- a/packages/sdk/src/helpers/epoch.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { mine } from './mine' -import type { EpochManager } from '@graphprotocol/contracts' - -export type PartialEpochManager = Pick - -export async function mineEpoch(epochManager: PartialEpochManager, epochs?: number): Promise { - epochs = epochs ?? 1 - for (let i = 0; i < epochs; i++) { - epochManager - await _mineEpoch(epochManager) - } -} - -async function _mineEpoch(epochManager: PartialEpochManager): Promise { - const blocksSinceEpoch = await epochManager.currentEpochBlockSinceStart() - const epochLen = await epochManager.epochLength() - return mine(epochLen.sub(blocksSinceEpoch)) -} diff --git a/packages/sdk/src/helpers/impersonate.ts b/packages/sdk/src/helpers/impersonate.ts deleted file mode 100644 index 8f7858322..000000000 --- a/packages/sdk/src/helpers/impersonate.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { impersonateAccount as hardhatImpersonateAccount } from '@nomicfoundation/hardhat-network-helpers' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -export async function impersonateAccount(address: string): Promise { - const hre = await import('hardhat') - await hardhatImpersonateAccount(address) - - // This allows the dynamic import to work on both ts and js - const ethers = hre.ethers ?? hre.default.ethers - return ethers.getSigner(address) -} diff --git a/packages/sdk/src/helpers/index.ts b/packages/sdk/src/helpers/index.ts deleted file mode 100644 index 418c8f237..000000000 --- a/packages/sdk/src/helpers/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './arbitrum' -export * from './balance' -export * from './code' -export * from './epoch' -export * from './time' -export * from './impersonate' -export * from './mine' -export * from './snapshot' diff --git a/packages/sdk/src/helpers/mine.ts b/packages/sdk/src/helpers/mine.ts deleted file mode 100644 index a6175c85d..000000000 --- a/packages/sdk/src/helpers/mine.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - mine as hardhatMine, - mineUpTo as hardhatMineUpTo, -} from '@nomicfoundation/hardhat-network-helpers' - -import type { BigNumber } from 'ethers' - -export async function mine( - blocks?: string | number | BigNumber, - interval?: string | number | BigNumber, -): Promise { - return hardhatMine(blocks, { interval }) -} - -export async function mineUpTo(blockNumber: string | number | BigNumber): Promise { - return hardhatMineUpTo(blockNumber) -} - -export async function setAutoMine(autoMine: boolean): Promise { - const hre = await import('hardhat') - - // This allows the dynamic import to work on both ts and js - const network = hre.network ?? hre.default.network - return network.provider.send('evm_setAutomine', [autoMine]) -} - -export async function setIntervalMining(interval: number): Promise { - const hre = await import('hardhat') - - // This allows the dynamic import to work on both ts and js - const network = hre.network ?? hre.default.network - return network.provider.send('evm_setIntervalMining', [interval]) -} diff --git a/packages/sdk/src/helpers/snapshot.ts b/packages/sdk/src/helpers/snapshot.ts deleted file mode 100644 index 552f43359..000000000 --- a/packages/sdk/src/helpers/snapshot.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { - SnapshotRestorer, - takeSnapshot as hardhatTakeSnapshot, -} from '@nomicfoundation/hardhat-network-helpers' - -export async function takeSnapshot(): Promise { - return hardhatTakeSnapshot() -} - -export async function restoreSnapshot(snapshot: SnapshotRestorer): Promise { - return snapshot.restore() -} - -export type { SnapshotRestorer } from '@nomicfoundation/hardhat-network-helpers' diff --git a/packages/sdk/src/helpers/time.ts b/packages/sdk/src/helpers/time.ts deleted file mode 100644 index 427678ae1..000000000 --- a/packages/sdk/src/helpers/time.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { time } from '@nomicfoundation/hardhat-network-helpers' - -export async function latestBlock(): Promise { - return time.latestBlock() -} diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts deleted file mode 100644 index 3bc0457f5..000000000 --- a/packages/sdk/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './chain' -export * from './deployments' -export * as helpers from './helpers' -export * from './utils' diff --git a/packages/sdk/src/utils/abi.ts b/packages/sdk/src/utils/abi.ts deleted file mode 100644 index 885c335f6..000000000 --- a/packages/sdk/src/utils/abi.ts +++ /dev/null @@ -1,8 +0,0 @@ -export function mergeABIs(abi1: any[], abi2: any[]) { - for (const item of abi2) { - if (abi1.find((v) => v.name === item.name) === undefined) { - abi1.push(item) - } - } - return abi1 -} diff --git a/packages/sdk/src/utils/address.ts b/packages/sdk/src/utils/address.ts deleted file mode 100644 index 62e110ac6..000000000 --- a/packages/sdk/src/utils/address.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { getAddress } from 'ethers/lib/utils' -import { randomHexBytes } from './bytes' - -export const randomAddress = (): string => getAddress(randomHexBytes(20)) diff --git a/packages/sdk/src/utils/allocation.ts b/packages/sdk/src/utils/allocation.ts deleted file mode 100644 index 00a322934..000000000 --- a/packages/sdk/src/utils/allocation.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { utils, Wallet } from 'ethers' -import type { Signer } from 'ethers' - -export enum AllocationState { - Null, - Active, - Closed, - Finalized, - Claimed, -} - -export interface ChannelKey { - privKey: string - pubKey: string - address: string - wallet: Signer - generateProof: (address: string) => Promise -} - -export const deriveChannelKey = (): ChannelKey => { - const w = Wallet.createRandom() - return { - privKey: w.privateKey, - pubKey: w.publicKey, - address: w.address, - wallet: w, - generateProof: (indexerAddress: string): Promise => { - const messageHash = utils.solidityKeccak256( - ['address', 'address'], - [indexerAddress, w.address], - ) - const messageHashBytes = utils.arrayify(messageHash) - return w.signMessage(messageHashBytes) - }, - } -} diff --git a/packages/sdk/src/utils/arbitrum/address.ts b/packages/sdk/src/utils/arbitrum/address.ts deleted file mode 100644 index 6f92890b7..000000000 --- a/packages/sdk/src/utils/arbitrum/address.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { hexZeroPad } from 'ethers/lib/utils' -import { toBN } from '../units' - -// Adapted from: -// https://github.com/livepeer/arbitrum-lpt-bridge/blob/e1a81edda3594e434dbcaa4f1ebc95b7e67ecf2a/utils/arbitrum/messaging.ts#L118 -export const applyL1ToL2Alias = (l1Address: string): string => { - const offset = toBN('0x1111000000000000000000000000000000001111') - const l1AddressAsNumber = toBN(l1Address) - const l2AddressAsNumber = l1AddressAsNumber.add(offset) - - const mask = toBN(2).pow(160) - return hexZeroPad(l2AddressAsNumber.mod(mask).toHexString(), 20) -} diff --git a/packages/sdk/src/utils/arbitrum/gas.ts b/packages/sdk/src/utils/arbitrum/gas.ts deleted file mode 100644 index 1d7573afc..000000000 --- a/packages/sdk/src/utils/arbitrum/gas.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { L1ToL2MessageGasEstimator } from '@arbitrum/sdk' -import { parseEther } from 'ethers/lib/utils' - -import type { L1ToL2MessageNoGasParams } from '@arbitrum/sdk/dist/lib/message/L1ToL2MessageCreator' -import type { GasOverrides } from '@arbitrum/sdk/dist/lib/message/L1ToL2MessageGasEstimator' -import type { BigNumber, providers } from 'ethers' - -export interface L2GasParams { - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber -} - -/** - * Estimate gas parameters for a retryable ticket creation - * - * @remark Uses Arbitrum's SDK to estimate the parameters - * - * @param l1Provider Provider for the L1 network (ethereum) - * @param l2Provider Provider for the L2 network (arbitrum) - * @param gatewayAddress Address where the tickets will be sent from in L1 - * @param l2Dest Address of the destination in L2 - * @param depositCalldata Calldata to be sent to L2 - * @param opts Gas parameters to be used if not auto-estimated - * @returns estimated gas parameters - */ -export const estimateRetryableTxGas = async ( - l1Provider: providers.Provider, - l2Provider: providers.Provider, - gatewayAddress: string, - l2Dest: string, - depositCalldata: string, - opts: L2GasParams, -): Promise => { - const autoEstimate = opts && (!opts.maxGas || !opts.gasPriceBid || !opts.maxSubmissionCost) - if (!autoEstimate) { - return opts - } - - console.info('Estimating retryable ticket gas:') - const baseFee = (await l1Provider.getBlock('latest')).baseFeePerGas - const gasEstimator = new L1ToL2MessageGasEstimator(l2Provider) - const retryableEstimateData: L1ToL2MessageNoGasParams = { - from: gatewayAddress, - to: l2Dest, - data: depositCalldata, - l2CallValue: parseEther('0'), - excessFeeRefundAddress: gatewayAddress, - callValueRefundAddress: gatewayAddress, - } - - const estimateOpts: GasOverrides = {} - if (opts.maxGas) estimateOpts.gasLimit = { base: opts.maxGas } - if (opts.maxSubmissionCost) estimateOpts.maxSubmissionFee = { base: opts.maxSubmissionCost } - if (opts.gasPriceBid) estimateOpts.maxFeePerGas = { base: opts.gasPriceBid } - - const gasParams = await gasEstimator.estimateAll( - retryableEstimateData, - baseFee as BigNumber, - l1Provider, - estimateOpts, - ) - - return { - maxGas: opts.maxGas ?? gasParams.gasLimit, - gasPriceBid: opts.gasPriceBid ?? gasParams.maxFeePerGas, - maxSubmissionCost: opts.maxSubmissionCost ?? gasParams.maxSubmissionCost, - } -} diff --git a/packages/sdk/src/utils/arbitrum/index.ts b/packages/sdk/src/utils/arbitrum/index.ts deleted file mode 100644 index 9e449cf5c..000000000 --- a/packages/sdk/src/utils/arbitrum/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { applyL1ToL2Alias } from './address' -export { estimateRetryableTxGas, type L2GasParams } from './gas' -export * from './message' diff --git a/packages/sdk/src/utils/arbitrum/message.ts b/packages/sdk/src/utils/arbitrum/message.ts deleted file mode 100644 index e4746ab22..000000000 --- a/packages/sdk/src/utils/arbitrum/message.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { - L1ToL2MessageReader, - L1ToL2MessageStatus, - L1ToL2MessageWriter, - L1TransactionReceipt, - L2ToL1MessageReader, - L2ToL1MessageStatus, - L2ToL1MessageWriter, - L2TransactionReceipt, -} from '@arbitrum/sdk' - -import type { Provider } from '@ethersproject/abstract-provider' -import type { providers, Signer } from 'ethers' - -// L1 -> L2 -export async function getL1ToL2MessageWriter( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return (await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider)) as L1ToL2MessageWriter -} - -export async function getL1ToL2MessageReader( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider) -} - -export async function getL1ToL2MessageStatus( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const message = await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider) - return await message.status() -} - -async function getL1ToL2Message( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const txReceipt = - typeof txHashOrReceipt === 'string' - ? await l1Provider.getTransactionReceipt(txHashOrReceipt) - : txHashOrReceipt - const l1Receipt = new L1TransactionReceipt(txReceipt) - const l1ToL2Messages = await l1Receipt.getL1ToL2Messages(l2Provider) - return l1ToL2Messages[0] -} - -// L2 -> L1 -export async function getL2ToL1MessageWriter( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, - signer: Signer, -): Promise { - return (await getL2ToL1Message( - txHashOrReceipt, - l1Provider, - l2Provider, - signer, - )) as L2ToL1MessageWriter -} - -export async function getL2ToL1MessageReader( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return await getL2ToL1Message(txHashOrReceipt, l1Provider, l2Provider) -} - -export async function getL2ToL1MessageStatus( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const message = await getL2ToL1Message(txHashOrReceipt, l1Provider, l2Provider) - return await message.status(l2Provider) -} - -async function getL2ToL1Message( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, - signer?: Signer, -) { - const txReceipt = - typeof txHashOrReceipt === 'string' - ? await l2Provider.getTransactionReceipt(txHashOrReceipt) - : txHashOrReceipt - const l1SignerOrProvider = signer ? signer.connect(l1Provider) : l1Provider - const l2Receipt = new L2TransactionReceipt(txReceipt) - const l2ToL1Messages = await l2Receipt.getL2ToL1Messages(l1SignerOrProvider) - return l2ToL1Messages[0] -} diff --git a/packages/sdk/src/utils/assertions.ts b/packages/sdk/src/utils/assertions.ts deleted file mode 100644 index f215a9497..000000000 --- a/packages/sdk/src/utils/assertions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { AssertionError } from 'assert' - -export function assertObject( - value: unknown, - errorMessage?: string, -): asserts value is Record { - if (typeof value !== 'object' || value == null) - throw new AssertionError({ - message: errorMessage ?? 'Not an object', - }) -} diff --git a/packages/sdk/src/utils/bytes.ts b/packages/sdk/src/utils/bytes.ts deleted file mode 100644 index 551be450c..000000000 --- a/packages/sdk/src/utils/bytes.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ethers } from 'ethers' -import { hexlify, randomBytes } from 'ethers/lib/utils' - -export const randomHexBytes = (n = 32): string => hexlify(randomBytes(n)) - -export const base58ToHex = (base58: string): string => { - return ethers.utils.hexlify(ethers.utils.base58.decode(base58)) -} diff --git a/packages/sdk/src/utils/eip712.ts b/packages/sdk/src/utils/eip712.ts deleted file mode 100644 index 010e7df4f..000000000 --- a/packages/sdk/src/utils/eip712.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { eip712 } from '@graphprotocol/common-ts/dist/attestations' -import { BigNumber, BytesLike, Signature } from 'ethers' -import { SigningKey, keccak256 } from 'ethers/lib/utils' - -export interface Permit { - owner: string - spender: string - value: BigNumber - nonce: BigNumber - deadline: BigNumber -} - -const PERMIT_TYPE_HASH = eip712.typeHash( - 'Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)', -) - -export function signPermit( - signer: BytesLike, - chainId: number, - contractAddress: string, - permit: Permit, - salt: string, -): Signature { - const domainSeparator = eip712.domainSeparator({ - name: 'Graph Token', - version: '0', - chainId, - verifyingContract: contractAddress, - salt: salt, - }) - const hashEncodedPermit = hashEncodePermit(permit) - const message = eip712.encode(domainSeparator, hashEncodedPermit) - const messageHash = keccak256(message) - const signingKey = new SigningKey(signer) - return signingKey.signDigest(messageHash) -} - -function hashEncodePermit(permit: Permit) { - return eip712.hashStruct( - PERMIT_TYPE_HASH, - ['address', 'address', 'uint256', 'uint256', 'uint256'], - [permit.owner, permit.spender, permit.value, permit.nonce, permit.deadline], - ) -} diff --git a/packages/sdk/src/utils/hash.ts b/packages/sdk/src/utils/hash.ts deleted file mode 100644 index ab860c928..000000000 --- a/packages/sdk/src/utils/hash.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { keccak256 } from 'ethers/lib/utils' - -export const hashHexString = (input: string): string => keccak256(`0x${input.replace(/^0x/, '')}`) diff --git a/packages/sdk/src/utils/index.ts b/packages/sdk/src/utils/index.ts deleted file mode 100644 index d8e5a95bb..000000000 --- a/packages/sdk/src/utils/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './address' -export * from './arbitrum' -export * from './bytes' -export * from './hash' -export * from './subgraph' -export * from './allocation' -export * from './units' -export * from './eip712' -export * from './prompt' diff --git a/packages/sdk/src/utils/nonce.ts b/packages/sdk/src/utils/nonce.ts deleted file mode 100644 index 62589fb85..000000000 --- a/packages/sdk/src/utils/nonce.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { NonceManager } from '@ethersproject/experimental' - -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { providers } from 'ethers' - -export class NonceManagerWithAddress extends NonceManager { - public address: string - public signerWithAddress: SignerWithAddress - - constructor(signer: SignerWithAddress) { - super(signer) - this.address = signer.address - this.signerWithAddress = signer - } - - connect(provider: providers.Provider): NonceManager { - return new NonceManagerWithAddress(this.signerWithAddress.connect(provider)) - } -} diff --git a/packages/sdk/src/utils/prompt.ts b/packages/sdk/src/utils/prompt.ts deleted file mode 100644 index 1c8f0d324..000000000 --- a/packages/sdk/src/utils/prompt.ts +++ /dev/null @@ -1,15 +0,0 @@ -import inquirer from 'inquirer' - -export const confirm = async (message: string, skip: boolean): Promise => { - if (skip) return true - const res = await inquirer.prompt({ - name: 'confirm', - type: 'confirm', - message, - }) - if (!res.confirm) { - console.info('Cancelled') - return false - } - return true -} diff --git a/packages/sdk/src/utils/subgraph.ts b/packages/sdk/src/utils/subgraph.ts deleted file mode 100644 index b696f60b8..000000000 --- a/packages/sdk/src/utils/subgraph.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { BigNumber, ethers } from 'ethers' -import { solidityKeccak256 } from 'ethers/lib/utils' -import { base58ToHex, randomHexBytes } from './bytes' - -export interface PublishSubgraph { - subgraphDeploymentID: string - versionMetadata: string - subgraphMetadata: string -} - -export interface Subgraph { - vSignal: BigNumber - nSignal: BigNumber - subgraphDeploymentID: string - reserveRatioDeprecated: number - disabled: boolean - withdrawableGRT: BigNumber - id?: string -} - -export const buildSubgraphId = async ( - account: string, - seqId: number | BigNumber, - chainId: number | BigNumber, -): Promise => { - return solidityKeccak256(['address', 'uint256', 'uint256'], [account, seqId, chainId]) -} - -export const buildLegacySubgraphId = (account: string, seqID: BigNumber): string => - solidityKeccak256(['address', 'uint256'], [account, seqID]) - -export const buildSubgraph = (): PublishSubgraph => { - return { - subgraphDeploymentID: randomHexBytes(), - versionMetadata: randomHexBytes(), - subgraphMetadata: randomHexBytes(), - } -} - -export const subgraphIdToHex = (id: string): string => { - id = id.startsWith('Qm') ? id : `Qm${id}` - return `0x${base58ToHex(id).slice(6)}` -} diff --git a/packages/sdk/src/utils/time.ts b/packages/sdk/src/utils/time.ts deleted file mode 100644 index 87e1bdeba..000000000 --- a/packages/sdk/src/utils/time.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const wait = (ms: number): Promise => { - return new Promise((res) => setTimeout(res, ms)) -} diff --git a/packages/sdk/src/utils/type-guard.ts b/packages/sdk/src/utils/type-guard.ts deleted file mode 100644 index f8c77df35..000000000 --- a/packages/sdk/src/utils/type-guard.ts +++ /dev/null @@ -1,14 +0,0 @@ -// https://stackoverflow.com/questions/58278652/generic-enum-type-guard -export function isSomeEnum>( - e: T, -): (token: unknown) => token is T[keyof T] { - const keys = Object.keys(e).filter((k) => { - return !/^\d/.test(k) - }) - const values = keys.map((k) => { - return (e as any)[k] - }) - return (token: unknown): token is T[keyof T] => { - return values.includes(token) - } -} diff --git a/packages/sdk/src/utils/units.ts b/packages/sdk/src/utils/units.ts deleted file mode 100644 index 997d47050..000000000 --- a/packages/sdk/src/utils/units.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BigNumber } from 'ethers' -import { formatUnits, parseUnits } from 'ethers/lib/utils' - -export const toBN = (value: string | number): BigNumber => BigNumber.from(value) -export const toGRT = (value: string | number): BigNumber => { - return parseUnits(typeof value === 'number' ? value.toString() : value, '18') -} -export const formatGRT = (value: BigNumber): string => formatUnits(value, '18') diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json deleted file mode 100644 index c9379e787..000000000 --- a/packages/sdk/tsconfig.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES2020" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - "declarationMap": true /* Create sourcemaps for d.ts files. */, - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true /* Create source map files for emitted JavaScript files. */, - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./build" /* Specify an output folder for all emitted files. */, - "removeComments": true /* Disable emitting comments. */, - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - "noEmitOnError": true /* Disable emitting files if any type checking errors are reported. */, - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */, - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": ["./src/**/*.ts", "./test/**/*.ts"], - "exclude": ["node_modules", "build"] -} diff --git a/packages/solhint-graph-config/README.md b/packages/solhint-graph-config/README.md index 4257b2dd8..6257d8f2b 100644 --- a/packages/solhint-graph-config/README.md +++ b/packages/solhint-graph-config/README.md @@ -6,15 +6,12 @@ This repository contains shared linting and formatting rules for Solidity projec ### Installation -⚠️ Unfortunately there isn't a way to install peer dependencies using Yarn v4, so we need to install them manually. - - ```bash # Install with peer packages -yarn add --dev solhint solhint-graph-config +pnpm add --dev solhint solhint-graph-config # For projects on this monorepo -yarn add --dev solhint solhint-graph-config@workspace:^x.y.z +pnpm add --dev solhint solhint-graph-config@workspace:^x.y.z ``` To use graph plugin you'll also need to manually add the plugin to your `package.json`: @@ -42,15 +39,12 @@ Run `solhint` with `node_modules/solhint-graph-config/index.js` as the configura ### Installation -⚠️ Unfortunately there isn't a way to install peer dependencies using Yarn v4, so we need to install them manually. - - ```bash # Install with peer packages -yarn add --dev solhint-graph-config prettier prettier-plugin-solidity +pnpm add --dev solhint-graph-config prettier prettier-plugin-solidity # For projects on this monorepo -yarn add --dev solhint-graph-config@workspace:^x.y.z prettier prettier-plugin-solidity +pnpm add --dev solhint-graph-config@workspace:^x.y.z prettier prettier-plugin-solidity ``` diff --git a/packages/subgraph-service/CHANGELOG.md b/packages/subgraph-service/CHANGELOG.md new file mode 100644 index 000000000..7eae7802c --- /dev/null +++ b/packages/subgraph-service/CHANGELOG.md @@ -0,0 +1,55 @@ +# @graphprotocol/subgraph-service + +## 0.3.4 + +### Patch Changes + +- chore: fix package visibility + +## 0.3.3 + +### Patch Changes + +- Fix missing public getter from toolshed interface + +## 0.3.2 + +### Patch Changes + +- Fix IServiceRegistry import in subgraph service toolshed deployment + +## 0.3.1 + +### Patch Changes + +- Use proper types for Curation contract, add epochLength to EpochManager import in Horizon. + +## 0.3.0 + +### Minor Changes + +- Publish types for contracts packages + +## 0.2.1 + +### Patch Changes + +- Pin ethers version + +## 0.2.0 + +### Minor Changes + +- Publish scratch testnet 2 address book + +## 0.1.1 + +### Patch Changes + +- Publish fork 1 deployment + +## 0.1.0 + +### Minor Changes + +- Publish initial dev versions diff --git a/packages/subgraph-service/README.md b/packages/subgraph-service/README.md index 36755d41a..430ebd7aa 100644 --- a/packages/subgraph-service/README.md +++ b/packages/subgraph-service/README.md @@ -12,8 +12,6 @@ The following environment variables might be required: | `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | | `ARBITRUM_SEPOLIA_RPC` | Arbitrum Sepolia RPC URL - defaults to `https://sepolia-rollup.arbitrum.io/rpc` | | `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | -| `LOCALHOST_CHAIN_ID` | Localhost chain ID - defaults to `31337` | -| `LOCALHOST_ACCOUNTS_MNEMONIC` | Localhost accounts mnemonic - no default value. Note that setting this will override any secure accounts configuration. | You can set them using Hardhat: @@ -24,8 +22,8 @@ npx hardhat vars set ## Build ```bash -yarn install -yarn build +pnpm install +pnpm build ``` ## Deployment @@ -52,4 +50,24 @@ cd subgraph-service && npx hardhat deploy:migrate --network hardhat --step 2 && cd horizon && npx hardhat deploy:migrate --network hardhat --step 4 && cd .. # Run with governor. Optionally add --patch-config ``` -Horizon Steps 2, 3 and 4, and Subgraph Service Step 2 require patching the configuration file with addresses from previous steps. The files are located in the `ignition/configs` directory and need to be manually edited. You can also pass `--patch-config` flag to the deploy command to automatically patch the configuration reading values from the address book. Note that this will NOT update the configuration file. \ No newline at end of file +Horizon Steps 2, 3 and 4, and Subgraph Service Step 2 require patching the configuration file with addresses from previous steps. The files are located in the `ignition/configs` directory and need to be manually edited. You can also pass `--patch-config` flag to the deploy command to automatically patch the configuration reading values from the address book. Note that this will NOT update the configuration file. + +## Testing +- **unit**: Unit tests can be run with `pnpm test` +- **integration**: Integration tests can be run with `pnpm test:integration` + - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed + - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` +- **deployment**: Deployment tests can be run with `pnpm test:deployment --network `, the following environment variables allow customizing the test suite for different scenarios: + - `TEST_DEPLOYMENT_STEP` (default: 1) - Specify the latest deployment step that has been executed. Tests for later steps will be skipped. + - `TEST_DEPLOYMENT_TYPE` (default: migrate) - The deployment type `protocol/migrate` that is being tested. Test suite has been developed for `migrate` use case but can be run against a `protocol` deployment, likely with some failed tests. + - `TEST_DEPLOYMENT_CONFIG` (default: `hre.network.name`) - The Ignition config file name to use for the test suite. + +## Verification + +To verify contracts on a network, run the following commands: + +```bash +./scripts/pre-verify +npx hardhat ignition verify --network --include-unrelated-contracts +./scripts/post-verify +``` \ No newline at end of file diff --git a/packages/subgraph-service/addresses-integration-tests.json b/packages/subgraph-service/addresses-integration-tests.json new file mode 100644 index 000000000..7f60fa388 --- /dev/null +++ b/packages/subgraph-service/addresses-integration-tests.json @@ -0,0 +1,35 @@ +{ + "421614": { + "L2Curation": { + "address": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "proxy": "graph", + "implementation": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210" + }, + "L2GNS": { + "address": "0x3133948342F35b8699d8F94aeE064AbB76eDe965", + "proxy": "graph", + "implementation": "0x00CBF5024d454255577Bf2b0fB6A43328a6828c9" + }, + "SubgraphNFT": { + "address": "0xF21Df5BbA7EB9b54D8F60C560aFb9bA63e6aED1A" + }, + "LegacyDisputeManager": { + "address": "0x7C9B82717f9433932507dF6EdA93A9678b258698" + }, + "LegacyServiceRegistry": { + "address": "0x888541878CbDDEd880Cd58c728f1Af5C47343F86" + }, + "SubgraphService": { + "address": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + "proxy": "transparent", + "proxyAdmin": "0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6", + "implementation": "0x30b34eAaF354cAdd64836Bc0846F4414254271ea" + }, + "DisputeManager": { + "address": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "proxy": "transparent", + "proxyAdmin": "0x9a8C3B6D649108bd11670de0B9b981ae3C167707", + "implementation": "0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8" + } + } +} \ No newline at end of file diff --git a/packages/subgraph-service/addresses.json b/packages/subgraph-service/addresses.json index 7a73a41bf..7f60fa388 100644 --- a/packages/subgraph-service/addresses.json +++ b/packages/subgraph-service/addresses.json @@ -1,2 +1,35 @@ { + "421614": { + "L2Curation": { + "address": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "proxy": "graph", + "implementation": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210" + }, + "L2GNS": { + "address": "0x3133948342F35b8699d8F94aeE064AbB76eDe965", + "proxy": "graph", + "implementation": "0x00CBF5024d454255577Bf2b0fB6A43328a6828c9" + }, + "SubgraphNFT": { + "address": "0xF21Df5BbA7EB9b54D8F60C560aFb9bA63e6aED1A" + }, + "LegacyDisputeManager": { + "address": "0x7C9B82717f9433932507dF6EdA93A9678b258698" + }, + "LegacyServiceRegistry": { + "address": "0x888541878CbDDEd880Cd58c728f1Af5C47343F86" + }, + "SubgraphService": { + "address": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + "proxy": "transparent", + "proxyAdmin": "0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6", + "implementation": "0x30b34eAaF354cAdd64836Bc0846F4414254271ea" + }, + "DisputeManager": { + "address": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "proxy": "transparent", + "proxyAdmin": "0x9a8C3B6D649108bd11670de0B9b981ae3C167707", + "implementation": "0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8" + } + } } \ No newline at end of file diff --git a/packages/subgraph-service/contracts/SubgraphService.sol b/packages/subgraph-service/contracts/SubgraphService.sol index 00c997826..4179cf786 100644 --- a/packages/subgraph-service/contracts/SubgraphService.sol +++ b/packages/subgraph-service/contracts/SubgraphService.sol @@ -103,7 +103,7 @@ contract SubgraphService is * * @param indexer The address of the indexer to register * @param data Encoded registration data: - * - address `url`: The URL of the indexer + * - string `url`: The URL of the indexer * - string `geohash`: The geohash of the indexer * - address `paymentsDestination`: The address where the indexer wants to receive payments. * Use zero address for automatically restaking payments. diff --git a/packages/subgraph-service/contracts/mocks/imports.sol b/packages/subgraph-service/contracts/mocks/imports.sol new file mode 100644 index 000000000..e37e8a377 --- /dev/null +++ b/packages/subgraph-service/contracts/mocks/imports.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +// These are needed to get artifacts for toolshed +import "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol"; +import "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol"; + +// Also for toolshed, solidity version in @graphprotocol/contracts does not support overriding public getters +// in interface file, so we need to amend them here. +import { IServiceRegistry } from "@graphprotocol/contracts/contracts/discovery/IServiceRegistry.sol"; +import { IL2Curation } from "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol"; + +interface IL2CurationToolshed is IL2Curation { + function subgraphService() external view returns (address); +} + +interface IServiceRegistryToolshed is IServiceRegistry { + function services(address _indexer) external view returns (IServiceRegistry.IndexerService memory); +} \ No newline at end of file diff --git a/packages/subgraph-service/foundry.toml b/packages/subgraph-service/foundry.toml index d70cbf59d..5aff4f8b1 100644 --- a/packages/subgraph-service/foundry.toml +++ b/packages/subgraph-service/foundry.toml @@ -6,4 +6,4 @@ test = 'test' cache_path = 'cache_forge' fs_permissions = [{ access = "read", path = "./"}] optimizer = true -optimizer-runs = 100 +optimizer_runs = 100 diff --git a/packages/subgraph-service/hardhat.config.ts b/packages/subgraph-service/hardhat.config.ts index 70334ba1e..d07ec83a4 100644 --- a/packages/subgraph-service/hardhat.config.ts +++ b/packages/subgraph-service/hardhat.config.ts @@ -1,19 +1,18 @@ -import { hardhatBaseConfig } from 'hardhat-graph-protocol/sdk' +import { hardhatBaseConfig, isProjectBuilt, loadTasks } from '@graphprotocol/toolshed/hardhat' import { HardhatUserConfig } from 'hardhat/config' // Hardhat plugins import '@nomicfoundation/hardhat-foundry' import '@nomicfoundation/hardhat-toolbox' import '@nomicfoundation/hardhat-ignition-ethers' -import 'hardhat-storage-layout' import 'hardhat-contract-sizer' import 'hardhat-secure-accounts' import 'solidity-docgen' // Skip importing hardhat-graph-protocol when building the project, it has circular dependency -if (process.env.BUILD_RUN !== 'true') { +if (isProjectBuilt(__dirname)) { require('hardhat-graph-protocol') - require('./tasks/deploy') + loadTasks(__dirname) } const config: HardhatUserConfig = { diff --git a/packages/subgraph-service/ignition/configs/migrate.default.json5 b/packages/subgraph-service/ignition/configs/migrate.default.json5 index 6678781a7..1944dd1fb 100644 --- a/packages/subgraph-service/ignition/configs/migrate.default.json5 +++ b/packages/subgraph-service/ignition/configs/migrate.default.json5 @@ -1,23 +1,27 @@ { "$global": { + // Accounts already configured in the original Graph Protocol - Arbitrum Sepolia values "governor": "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3", - "arbitrator": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", - "pauseGuardian": "0xB0aD33a21b98bCA1761729A105e2E34e27153aAE", + "arbitrator": "0x1726A5d52e279d02ff4732eCeB2D67BFE5Add328", + "pauseGuardian": "0xa0444508232dA3FA6C2f96a5f105f3f0cc0d20D7", - // Addresses for contracts deployed in the original Graph Protocol + // Addresses for contracts deployed in the original Graph Protocol - Arbitrum Sepolia values "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", + "curationProxyAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + "curationImplementationAddress": "0xd90022aB67920212D0F902F5c427DE82732DE136", // Must be set for step 2 of the deployment - "disputeManagerProxyAddress": "" + "disputeManagerProxyAddress": "", + "disputeManagerProxyAdminAddress": "", + "subgraphServiceProxyAddress": "", + "subgraphServiceProxyAdminAddress": "", + "graphTallyCollectorAddress": "" }, "DisputeManager": { "disputePeriod": 2419200, "disputeDeposit": "10000000000000000000000n", "fishermanRewardCut": 500000, "maxSlashingCut": 1000000, - - // Must be set for step 2 of the deployment - "disputeManagerProxyAdminAddress": "" }, "SubgraphService": { "minimumProvisionTokens": "100000000000000000000000n", @@ -25,13 +29,5 @@ "stakeToFeesRatio": 2, "maxPOIStaleness": 2419200, // 28 days = 2419200 seconds "curationCut": 100000, - - // Addresses for contracts deployed in the original Graph Protocol - "curationAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", - - // Must be set for step 2 of the deployment - "subgraphServiceProxyAddress": "", - "subgraphServiceProxyAdminAddress": "", - "graphTallyCollectorAddress": "" } } diff --git a/packages/subgraph-service/ignition/configs/migrate.fork1.json5 b/packages/subgraph-service/ignition/configs/migrate.fork1.json5 new file mode 100644 index 000000000..72e74e1f7 --- /dev/null +++ b/packages/subgraph-service/ignition/configs/migrate.fork1.json5 @@ -0,0 +1,33 @@ +{ + "$global": { + // Accounts already configured in the original Graph Protocol - Arbitrum Sepolia values + "governor": "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3", + "arbitrator": "0x1726A5d52e279d02ff4732eCeB2D67BFE5Add328", + "pauseGuardian": "0xa0444508232dA3FA6C2f96a5f105f3f0cc0d20D7", + + // Addresses for contracts deployed in the original Graph Protocol - Arbitrum Sepolia values + "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", + "curationProxyAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + "curationImplementationAddress": "0xd90022aB67920212D0F902F5c427DE82732DE136", + + // Must be set for step 2 of the deployment + "disputeManagerProxyAddress": "0x1CEBe1C314Cc454baf4bd553409d957C833623c0", + "disputeManagerProxyAdminAddress": "0x1a14fF838e7e06FdabFb20c2553b4ad613aD832b", + "subgraphServiceProxyAddress": "0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d", + "subgraphServiceProxyAdminAddress": "0x7CB6291437029a4cFd28b3455c9e2242767010F3", + "graphTallyCollectorAddress": "0xF2DB533658a1728f3ce04A49Df4b545f4A53b620" + }, + "DisputeManager": { + "disputePeriod": 2419200, + "disputeDeposit": "10000000000000000000000n", + "fishermanRewardCut": 500000, + "maxSlashingCut": 1000000, + }, + "SubgraphService": { + "minimumProvisionTokens": "100000000000000000000000n", + "maximumDelegationRatio": 16, + "stakeToFeesRatio": 2, + "maxPOIStaleness": 2419200, // 28 days = 2419200 seconds + "curationCut": 100000, + } +} diff --git a/packages/subgraph-service/ignition/configs/migrate.integration.json5 b/packages/subgraph-service/ignition/configs/migrate.integration.json5 new file mode 100644 index 000000000..7effb5dec --- /dev/null +++ b/packages/subgraph-service/ignition/configs/migrate.integration.json5 @@ -0,0 +1,33 @@ +{ + "$global": { + // Accounts for new deployment - derived from local network mnemonic + "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", + "arbitrator": "0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b", + "pauseGuardian": "0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d", + + // Addresses for contracts deployed in the original Graph Protocol - Arbitrum Sepolia values + "controllerAddress": "0x9DB3ee191681f092607035d9BDA6e59FbEaCa695", + "curationProxyAddress": "0xDe761f075200E75485F4358978FB4d1dC8644FD5", + "curationImplementationAddress": "0xd90022aB67920212D0F902F5c427DE82732DE136", + + // Must be set for step 2 of the deployment + "disputeManagerProxyAddress": "", + "disputeManagerProxyAdminAddress": "", + "subgraphServiceProxyAddress": "", + "subgraphServiceProxyAdminAddress": "", + "graphTallyCollectorAddress": "" + }, + "DisputeManager": { + "disputePeriod": 2419200, + "disputeDeposit": "10000000000000000000000n", + "fishermanRewardCut": 500000, + "maxSlashingCut": 1000000, + }, + "SubgraphService": { + "minimumProvisionTokens": "100000000000000000000000n", + "maximumDelegationRatio": 16, + "stakeToFeesRatio": 2, + "maxPOIStaleness": 2419200, // 28 days = 2419200 seconds + "curationCut": 100000, + } +} diff --git a/packages/subgraph-service/ignition/configs/protocol.default.json5 b/packages/subgraph-service/ignition/configs/protocol.default.json5 index 6bb5191bf..4a228f1b4 100644 --- a/packages/subgraph-service/ignition/configs/protocol.default.json5 +++ b/packages/subgraph-service/ignition/configs/protocol.default.json5 @@ -1,24 +1,27 @@ { "$global": { - "governor": "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3", - "arbitrator": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", - "pauseGuardian": "0xB0aD33a21b98bCA1761729A105e2E34e27153aAE", + // Accounts for new deployment - derived from hardhat default mnemonic + "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", // index 1 + "arbitrator": "0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b", // index 2 + "pauseGuardian": "0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d", // index 3 - // Must be set for step 2 of the deployment + // Address of the new controller contract - must be set for step 2 of the deployment "controllerAddress": "", - "disputeManagerProxyAddress": "", - "curationAddress": "", + "curationProxyAddress": "", "curationImplementationAddress": "", - "subgraphServiceProxyAddress": "" + + // Must be set for step 2 of the deployment + "disputeManagerProxyAddress": "", + "disputeManagerProxyAdminAddress": "", + "subgraphServiceProxyAddress": "", + "subgraphServiceProxyAdminAddress": "", + "graphTallyCollectorAddress": "" }, "DisputeManager": { "disputePeriod": 2419200, "disputeDeposit": "10000000000000000000000n", "fishermanRewardCut": 500000, "maxSlashingCut": 1000000, - - // Must be set for step 2 of the deployment - "disputeManagerProxyAdminAddress": "", }, "SubgraphService": { "minimumProvisionTokens": "100000000000000000000000n", @@ -26,9 +29,5 @@ "stakeToFeesRatio": 2, "maxPOIStaleness": 2419200, // 28 days = 2419200 seconds "curationCut": 100000, - - // Must be set for step 2 of the deployment - "subgraphServiceProxyAdminAddress": "", - "graphTallyCollectorAddress": "" } } diff --git a/packages/subgraph-service/ignition/configs/protocol.local-network.json5 b/packages/subgraph-service/ignition/configs/protocol.local-network.json5 index d43a2eb68..942acbb49 100644 --- a/packages/subgraph-service/ignition/configs/protocol.local-network.json5 +++ b/packages/subgraph-service/ignition/configs/protocol.local-network.json5 @@ -1,24 +1,28 @@ { "$global": { - "governor": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "arbitrator": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", - "pauseGuardian": "0xB0aD33a21b98bCA1761729A105e2E34e27153aAE", + // Accounts for new deployment - derived from local network mnemonic + "governor": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", // index 0 + "arbitrator": "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", // index 2 + "pauseGuardian": "0x90F79bf6EB2c4f870365E785982E1f101E93b906", // index 3 - // Must be set for step 2 of the deployment + // Address of the new controller contract - must be set for step 2 of the deployment "controllerAddress": "", + "curationProxyAddress": "", + "curationImplementationAddress": "", + + // Must be set for step 2 of the deployment "disputeManagerProxyAddress": "", - "curationAddress": "", - "curationImplementationAddress": "" + "disputeManagerProxyAdminAddress": "", + "subgraphServiceProxyAddress": "", + "subgraphServiceProxyAdminAddress": "", + "graphTallyCollectorAddress": "" }, "DisputeManager": { "disputePeriod": 2419200, "disputeDeposit": "10000000000000000000000n", "fishermanRewardCut": 500000, "maxSlashingCut": 1000000, - - // Must be set for step 2 of the deployment - "disputeManagerProxyAdminAddress": "", }, "SubgraphService": { "minimumProvisionTokens": "100000000000000000000000n", @@ -26,10 +30,5 @@ "stakeToFeesRatio": 2, "maxPOIStaleness": 2419200, // 28 days = 2419200 seconds "curationCut": 100000, - - // Must be set for step 2 of the deployment - "subgraphServiceProxyAddress": "", - "subgraphServiceProxyAdminAddress": "", - "graphTallyCollectorAddress": "" } } 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 new file mode 100644 index 000000000..6979339d2 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json @@ -0,0 +1,349 @@ +{ + "_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/DisputeManager#DisputeManager.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json new file mode 100644 index 000000000..767ad87b5 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/81754efc7e2eec76b7d493cc60c0f970.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 new file mode 100644 index 000000000..e01123577 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json @@ -0,0 +1,1557 @@ +{ + "_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": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeInConflict", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeNotInConflict", + "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": "DisputeManagerSubgraphServiceNotSet", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": 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": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "LegacyDisputeCreated", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": [], + "name": "MIN_DISPUTE_DEPOSIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "acceptDisputeInConflict", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "tokensSlashRelated", + "type": "uint256" + } + ], + "name": "acceptDisputeConflict", + "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": "address", + "name": "fisherman", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "createAndAcceptLegacyDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": "cancellableAt", + "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": [], + "name": "getFishermanRewardCut", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "getStakeSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "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": "0x6101c060405234801561001157600080fd5b50604051613b6e380380613b6e8339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516135f261057c60003960005050600050506000505060005050600050506000505060005050600050506000611f23015260006119cc01526135f26000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json new file mode 100644 index 000000000..5f5b5ea19 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json @@ -0,0 +1,116 @@ +{ + "_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": "FailedCall", + "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": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json new file mode 100644 index 000000000..e01123577 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json @@ -0,0 +1,1557 @@ +{ + "_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": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeInConflict", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeNotInConflict", + "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": "DisputeManagerSubgraphServiceNotSet", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": 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": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "LegacyDisputeCreated", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": [], + "name": "MIN_DISPUTE_DEPOSIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "acceptDisputeInConflict", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "tokensSlashRelated", + "type": "uint256" + } + ], + "name": "acceptDisputeConflict", + "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": "address", + "name": "fisherman", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "createAndAcceptLegacyDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": "cancellableAt", + "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": [], + "name": "getFishermanRewardCut", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "getStakeSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "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": "0x6101c060405234801561001157600080fd5b50604051613b6e380380613b6e8339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516135f261057c60003960005050600050506000505060005050600050506000505060005050600050506000611f23015260006119cc01526135f26000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..8db6171f9 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json @@ -0,0 +1,132 @@ +{ + "_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": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", + "deployedBytecode": "0x608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", + "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 new file mode 100644 index 000000000..b14ccddd8 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json @@ -0,0 +1,364 @@ +{ + "_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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json new file mode 100644 index 000000000..b14ccddd8 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json @@ -0,0 +1,364 @@ +{ + "_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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", + "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 new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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/GraphPayments#GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json new file mode 100644 index 000000000..45cfb0f51 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json @@ -0,0 +1,337 @@ +{ + "_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": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "contractName", + "type": "bytes" + } + ], + "name": "GraphDirectoryInvalidZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cut", + "type": "uint256" + } + ], + "name": "GraphPaymentsInvalidCut", + "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" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "PPMMathInvalidPPM", + "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": 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": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensProtocol", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDataService", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDelegationPool", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReceiver", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "GraphPaymentCollected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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": "0x6101e060405234801561001157600080fd5b50604051611552380380611552833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c576040516339b762e560e21b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610f546105fe600039600081816056015261021f0152600050506000505060005050600050506000505060005050600050506000505060006108b20152600061077f0152610f546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json new file mode 100644 index 000000000..45cfb0f51 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json @@ -0,0 +1,337 @@ +{ + "_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": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "contractName", + "type": "bytes" + } + ], + "name": "GraphDirectoryInvalidZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cut", + "type": "uint256" + } + ], + "name": "GraphPaymentsInvalidCut", + "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" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "PPMMathInvalidPPM", + "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": 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": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensProtocol", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDataService", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDelegationPool", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReceiver", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "GraphPaymentCollected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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": "0x6101e060405234801561001157600080fd5b50604051611552380380611552833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c576040516339b762e560e21b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610f546105fe600039600081816056015261021f0152600050506000505060005050600050506000505060005050600050506000505060006108b20152600061077f0152610f546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..07f0623c5 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json @@ -0,0 +1,234 @@ +{ + "_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/GraphTallyCollector#GraphTallyCollector.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json new file mode 100644 index 000000000..f430c0ad9 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json @@ -0,0 +1,900 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "GraphTallyCollector", + "sourceName": "contracts/payments/collectors/GraphTallyCollector.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": "AuthorizableInvalidSignerProof", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proofDeadline", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "currentTimestamp", + "type": "uint256" + } + ], + "name": "AuthorizableInvalidSignerProofDeadline", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bool", + "name": "revoked", + "type": "bool" + } + ], + "name": "AuthorizableSignerAlreadyAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "AuthorizableSignerNotAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "AuthorizableSignerNotThawing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "currentTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "AuthorizableSignerStillThawing", + "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": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + } + ], + "name": "GraphTallyCollectorCallerNotDataService", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensCollected", + "type": "uint256" + } + ], + "name": "GraphTallyCollectorInconsistentRAVTokens", + "type": "error" + }, + { + "inputs": [], + "name": "GraphTallyCollectorInvalidRAVSigner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokensToCollect", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTokensToCollect", + "type": "uint256" + } + ], + "name": "GraphTallyCollectorInvalidTokensToCollectAmount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dataService", + "type": "address" + } + ], + "name": "GraphTallyCollectorUnauthorizedDataService", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "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": false, + "internalType": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "PaymentCollected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dataService", + "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": "authorizer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "SignerThawCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "SignerThawing", + "type": "event" + }, + { + "inputs": [], + "name": "REVOKE_AUTHORIZATION_THAWING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "authorizations", + "outputs": [ + { + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "revoked", + "type": "bool" + } + ], + "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": "cancelThawSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "tokensToCollect", + "type": "uint256" + } + ], + "name": "collect", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "internalType": "uint64", + "name": "timestampNs", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "valueAggregate", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "metadata", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.ReceiptAggregateVoucher", + "name": "rav", + "type": "tuple" + } + ], + "name": "encodeRAV", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "getThawEnd", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "authorizer", + "type": "address" + }, + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "isAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "internalType": "uint64", + "name": "timestampNs", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "valueAggregate", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "metadata", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.ReceiptAggregateVoucher", + "name": "rav", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.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": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "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": "0x6102c060405234801561001157600080fd5b506040516122bf3803806122bf833981016040819052610030916105e0565b8082858561003f8260006103e2565b6101205261004e8160016103e2565b61014052815160208084019190912060e052815190820120610100524660a0526100db60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661012d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101e05260408051808201909152600a81526923b930b8342a37b5b2b760b11b602082015261016590610415565b6001600160a01b0316610160526040805180820190915260078152665374616b696e6760c81b602082015261019990610415565b6001600160a01b03166101805260408051808201909152600d81526c47726170685061796d656e747360981b60208201526101d390610415565b6001600160a01b03166101a05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261020e90610415565b6001600160a01b03166101c05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261024790610415565b6001600160a01b03166102005260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b602082015261028290610415565b6001600160a01b0316610220526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102c090610415565b6001600160a01b03166102405260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102fc90610415565b6001600160a01b03166102605260408051808201909152600881526721bab930ba34b7b760c11b602082015261033190610415565b6001600160a01b039081166102808190526101e05161018051610160516101a0516101c0516102005161022051610240516102605160408051968c168752948b166020870152928a1685850152908916606085015288166080840152871660a083015260c0820195909552935192851694918216939116917fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a439181900360e00190a4506102a0525061082d92505050565b60006020835110156103fe576103f7836104c3565b905061040f565b8161040984826106ea565b5060ff90505b92915050565b6000806101e0516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161045091815260200190565b602060405180830381865afa15801561046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049191906107a8565b9050826001600160a01b0382166104bc5760405163218f5add60e11b815260040161012491906107f6565b5092915050565b600080829050601f815111156104ee578260405163305a27a960e01b815260040161012491906107f6565b80516104f982610809565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561053257818101518382015260200161051a565b50506000910152565b600082601f83011261054c57600080fd5b81516001600160401b0381111561056557610565610501565b604051601f8201601f19908116603f011681016001600160401b038111828210171561059357610593610501565b6040528181528382016020018510156105ab57600080fd5b6105bc826020830160208701610517565b949350505050565b80516001600160a01b03811681146105db57600080fd5b919050565b600080600080608085870312156105f657600080fd5b84516001600160401b0381111561060c57600080fd5b6106188782880161053b565b602087015190955090506001600160401b0381111561063657600080fd5b6106428782880161053b565b935050610651604086016105c4565b6060959095015193969295505050565b600181811c9082168061067557607f821691505b60208210810361069557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106e557806000526020600020601f840160051c810160208510156106c25750805b601f840160051c820191505b818110156106e257600081556001016106ce565b50505b505050565b81516001600160401b0381111561070357610703610501565b610717816107118454610661565b8461069b565b6020601f82116001811461074b57600083156107335750848201515b600019600385901b1c1916600184901b1784556106e2565b600084815260208120601f198516915b8281101561077b578785015182556020948501946001909201910161075b565b50848210156107995786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000602082840312156107ba57600080fd5b6107c3826105c4565b9392505050565b600081518084526107e2816020860160208601610517565b601f01601f19169290920160200192915050565b6020815260006107c360208301846107ca565b805160208083015191908110156106955760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516119d06108ef60003960008181610247015261036501526000505060005050600050506000505060005050600050506000610a19015260005050600061083e0152600050506000610bb401526000610b8201526000610f2b01526000610f0301526000610e5e01526000610e8801526000610eb201526119d06000f3fe608060405234801561001057600080fd5b50600436106100ba5760003560e01c8063015cdd80146100bf5780631354f019146100d4578063181250ff146100e757806326969c4c1461013457806339aa7416146101475780633a13e1af1461015a57806363648817146101be57806365e4ad9e146101de578063692209ce146102015780637f07d2831461021457806384b0196e146102275780639b95288114610242578063bea5d2ab14610269578063fee9f01f14610295575b600080fd5b6100d26100cd3660046111d7565b6102a8565b005b6100d26100e23660046111d7565b610355565b6101216100f53660046111f4565b600360209081526000948552604080862082529385528385208152918452828420909152825290205481565b6040519081526020015b60405180910390f35b610121610142366004611247565b6103ea565b6100d26101553660046111d7565b610403565b6101976101683660046111d7565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169160ff1683565b604080516001600160a01b039094168452602084019290925215159082015260600161012b565b6101d16101cc366004611281565b6104cd565b60405161012b91906112bb565b6101f16101ec3660046112cf565b6104e0565b604051901515815260200161012b565b61012161020f36600461135f565b6104f3565b6101216102223660046113b8565b61050a565b61022f610521565b60405161012b9796959493929190611450565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6101216102773660046111d7565b6001600160a01b031660009081526002602052604090206001015490565b6100d26102a33660046114e8565b610567565b806102b33382610633565b6001600160a01b03821660009081526002602052604090206001015482906102f85760405163cd3cd55d60e01b81526004016102ef91906112bb565b60405180910390fd5b506001600160a01b038216600081815260026020908152604080832060010180549390555182815291929133917f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb910160405180910390a3505050565b806103603382610633565b61038a7f000000000000000000000000000000000000000000000000000000000000000042611559565b6001600160a01b0383166000818152600260205260409081902060010183905551909133917fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf916103de9190815260200190565b60405180910390a35050565b60006103fd6103f88361170b565b610666565b92915050565b8061040e3382610633565b6001600160a01b038216600090815260026020526040902060010154828161044a5760405163cd3cd55d60e01b81526004016102ef91906112bb565b504281818111156104775760405163bd76307f60e01b8152600481019290925260248201526044016102ef565b50506001600160a01b0383166000818152600260208190526040808320909101805460ff191660011790555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a3505050565b60006103fd6104db836117a8565b610738565b60006104ec8383610758565b9392505050565b6000610501858585856107bb565b95945050505050565b600061051984848460006107bb565b949350505050565b600060608060008060006060610535610b7b565b61053d610bad565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6001600160a01b0384811660009081526002602081905260409091208054910154911690859060ff1682156105cb57604051630c83a00f60e01b81526001600160a01b039384166004820152929091166024830152151560448201526064016102ef565b5050506105da82828587610bda565b6001600160a01b03841660008181526002602052604080822080546001600160a01b03191633908117909155905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b61063d8282610758565b8282909161066057604051631e58ab1f60e01b81526004016102ef9291906117b4565b50505050565b60006103fd7f2f8962be843489018f0fe44aa06adfead655e3c10d7347a020040f9524f392d3836000015184602001518560400151866060015187608001518860a001518960c001518051906020012060405160200161071d98979695949392919097885260208801969096526001600160a01b0394851660408801529284166060870152921660808501526001600160401b039190911660a08401526001600160801b031660c083015260e08201526101000190565b60405160208183030381529060405280519060200120610d17565b6000806107488360000151610666565b90506104ec818460200151610d44565b60006001600160a01b0383161580159061078e57506001600160a01b038281166000908152600260205260409020548116908416145b80156104ec5750506001600160a01b03166000908152600260208190526040909120015460ff1615919050565b60008080806107cc868801886117ce565b825160600151929550909350915033906001600160a01b038116821461080757604051632b65e49760e11b81526004016102ef9291906117b4565b505061081283610d6e565b8251805160608201516040928301519251630119cbed60e31b8152919290916000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906308ce5f689061087590859087906004016117b4565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611828565b875160600151909150816108de5760405163037a2d1f60e61b81526004016102ef91906112bb565b5050855160a001516001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081205490916001600160801b031690818180821161095c57604051637007d4a160e01b8152600481019290925260248201526044016102ef565b50508a600003610977576109708183611841565b92506109bd565b6109818183611841565b8b11158b61098f8385611841565b90916109b75760405163c5602bb160e01b8152600481019290925260248201526044016102ef565b50508a92505b50508015610aac576001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081208054839290610a13908490611559565b909155507f000000000000000000000000000000000000000000000000000000000000000090506001600160a01b0316631230fa3e8d8960000151602001518585888c8c6040518863ffffffff1660e01b8152600401610a79979695949392919061188c565b600060405180830381600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050505b826001600160a01b03168760000151602001516001600160a01b0316857f481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb48f8686604051610afc939291906118d8565b60405180910390a48651602080820151608083015160a084015160c090940151928b01516040516001600160a01b03808a16969416948a947f3943fc3b19ec289c87b57de7a8bf1448d81ced03d1806144ecaca4ba9e97605694610b64948b94919391611900565b60405180910390a49b9a5050505050505050505050565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006000610da6565b905090565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006001610da6565b8142808211610c055760405163d7705a0160e01b8152600481019290925260248201526044016102ef565b505060408051466020808301919091526001600160601b031930606090811b8216848601527330baba3437b934bd32a9b4b3b732b9283937b7b360611b60548501526068840187905233901b1660888301528251808303607c018152609c90920190925280519101207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6000908152601c829052603c81209050826001600160a01b0316610ce88288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4492505050565b6001600160a01b031614610d0f57604051631c07ed3360e31b815260040160405180910390fd5b505050505050565b60006103fd610d24610e51565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d548686610f7c565b925092509250610d648282610fc9565b5090949350505050565b805160200151610d8690610d8183610738565b610758565b610da35760405163aa415c3360e01b815260040160405180910390fd5b50565b606060ff8314610dc057610db983611086565b90506103fd565b818054610dcc90611960565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611960565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505090506103fd565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610eaa57507f000000000000000000000000000000000000000000000000000000000000000046145b15610ed457507f000000000000000000000000000000000000000000000000000000000000000090565b610ba8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103610fb65760208401516040850151606086015160001a610fa8888285856110c5565b955095509550505050610fc2565b50508151600091506002905b9250925092565b6000826003811115610fdd57610fdd611854565b03610fe6575050565b6001826003811115610ffa57610ffa611854565b036110185760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561102c5761102c611854565b0361104d5760405163fce698f760e01b8152600481018290526024016102ef565b600382600381111561106157611061611854565b03611082576040516335e2f38360e21b8152600481018290526024016102ef565b5050565b606060006110938361118a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156110f65750600091506003905082611180565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561114a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661117657506000925060019150829050611180565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103fd57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0381168114610da357600080fd5b80356111d2816111b2565b919050565b6000602082840312156111e957600080fd5b81356104ec816111b2565b6000806000806080858703121561120a57600080fd5b8435611215816111b2565b935060208501359250604085013561122c816111b2565b9150606085013561123c816111b2565b939692955090935050565b60006020828403121561125957600080fd5b81356001600160401b0381111561126f57600080fd5b820160e081850312156104ec57600080fd5b60006020828403121561129357600080fd5b81356001600160401b038111156112a957600080fd5b8201604081850312156104ec57600080fd5b6001600160a01b0391909116815260200190565b600080604083850312156112e257600080fd5b82356112ed816111b2565b915060208301356112fd816111b2565b809150509250929050565b8035600381106111d257600080fd5b60008083601f84011261132957600080fd5b5081356001600160401b0381111561134057600080fd5b60208301915083602082850101111561135857600080fd5b9250929050565b6000806000806060858703121561137557600080fd5b61137e85611308565b935060208501356001600160401b0381111561139957600080fd5b6113a587828801611317565b9598909750949560400135949350505050565b6000806000604084860312156113cd57600080fd5b6113d684611308565b925060208401356001600160401b038111156113f157600080fd5b6113fd86828701611317565b9497909650939450505050565b6000815180845260005b8181101561143057602081850181015186830182015201611414565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e06020820152600061146f60e083018961140a565b8281036040840152611481818961140a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156114d75783518352602093840193909201916001016114b9565b50909b9a5050505050505050505050565b600080600080606085870312156114fe57600080fd5b8435611509816111b2565b93506020850135925060408501356001600160401b0381111561152b57600080fd5b61153787828801611317565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103fd576103fd611543565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156115a4576115a461156c565b60405290565b80356001600160401b03811681146111d257600080fd5b80356001600160801b03811681146111d257600080fd5b600082601f8301126115e957600080fd5b81356001600160401b038111156116025761160261156c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116305761163061156c565b60405281815283820160200185101561164857600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0828403121561167757600080fd5b61167f611582565b823581529050611691602083016111c7565b60208201526116a2604083016111c7565b60408201526116b3606083016111c7565b60608201526116c4608083016115aa565b60808201526116d560a083016115c1565b60a082015260c08201356001600160401b038111156116f357600080fd5b6116ff848285016115d8565b60c08301525092915050565b60006103fd3683611665565b60006040828403121561172957600080fd5b604080519081016001600160401b038111828210171561174b5761174b61156c565b60405290508082356001600160401b0381111561176757600080fd5b61177385828601611665565b82525060208301356001600160401b0381111561178f57600080fd5b61179b858286016115d8565b6020830152505092915050565b60006103fd3683611717565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156117e357600080fd5b83356001600160401b038111156117f957600080fd5b61180586828701611717565b93505060208401359150604084013561181d816111b2565b809150509250925092565b60006020828403121561183a57600080fd5b5051919050565b818103818111156103fd576103fd611543565b634e487b7160e01b600052602160045260246000fd5b6003811061188857634e487b7160e01b600052602160045260246000fd5b9052565b60e0810161189a828a61186a565b6001600160a01b03978816602083015295871660408201526060810194909452918516608084015260a083015290921660c090920191909152919050565b606081016118e6828661186a565b6001600160a01b0393909316602082015260400152919050565b6001600160a01b03861681526001600160401b03851660208201526001600160801b038416604082015260a0606082018190526000906119429083018561140a565b8281036080840152611954818561140a565b98975050505050505050565b600181811c9082168061197457607f821691505b60208210810361199457634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202168ccf8bac6984eef611a01a2e1c7b84ddb64fd4b819201ae6206ab6038e15764736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ba5760003560e01c8063015cdd80146100bf5780631354f019146100d4578063181250ff146100e757806326969c4c1461013457806339aa7416146101475780633a13e1af1461015a57806363648817146101be57806365e4ad9e146101de578063692209ce146102015780637f07d2831461021457806384b0196e146102275780639b95288114610242578063bea5d2ab14610269578063fee9f01f14610295575b600080fd5b6100d26100cd3660046111d7565b6102a8565b005b6100d26100e23660046111d7565b610355565b6101216100f53660046111f4565b600360209081526000948552604080862082529385528385208152918452828420909152825290205481565b6040519081526020015b60405180910390f35b610121610142366004611247565b6103ea565b6100d26101553660046111d7565b610403565b6101976101683660046111d7565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169160ff1683565b604080516001600160a01b039094168452602084019290925215159082015260600161012b565b6101d16101cc366004611281565b6104cd565b60405161012b91906112bb565b6101f16101ec3660046112cf565b6104e0565b604051901515815260200161012b565b61012161020f36600461135f565b6104f3565b6101216102223660046113b8565b61050a565b61022f610521565b60405161012b9796959493929190611450565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6101216102773660046111d7565b6001600160a01b031660009081526002602052604090206001015490565b6100d26102a33660046114e8565b610567565b806102b33382610633565b6001600160a01b03821660009081526002602052604090206001015482906102f85760405163cd3cd55d60e01b81526004016102ef91906112bb565b60405180910390fd5b506001600160a01b038216600081815260026020908152604080832060010180549390555182815291929133917f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb910160405180910390a3505050565b806103603382610633565b61038a7f000000000000000000000000000000000000000000000000000000000000000042611559565b6001600160a01b0383166000818152600260205260409081902060010183905551909133917fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf916103de9190815260200190565b60405180910390a35050565b60006103fd6103f88361170b565b610666565b92915050565b8061040e3382610633565b6001600160a01b038216600090815260026020526040902060010154828161044a5760405163cd3cd55d60e01b81526004016102ef91906112bb565b504281818111156104775760405163bd76307f60e01b8152600481019290925260248201526044016102ef565b50506001600160a01b0383166000818152600260208190526040808320909101805460ff191660011790555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a3505050565b60006103fd6104db836117a8565b610738565b60006104ec8383610758565b9392505050565b6000610501858585856107bb565b95945050505050565b600061051984848460006107bb565b949350505050565b600060608060008060006060610535610b7b565b61053d610bad565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6001600160a01b0384811660009081526002602081905260409091208054910154911690859060ff1682156105cb57604051630c83a00f60e01b81526001600160a01b039384166004820152929091166024830152151560448201526064016102ef565b5050506105da82828587610bda565b6001600160a01b03841660008181526002602052604080822080546001600160a01b03191633908117909155905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b61063d8282610758565b8282909161066057604051631e58ab1f60e01b81526004016102ef9291906117b4565b50505050565b60006103fd7f2f8962be843489018f0fe44aa06adfead655e3c10d7347a020040f9524f392d3836000015184602001518560400151866060015187608001518860a001518960c001518051906020012060405160200161071d98979695949392919097885260208801969096526001600160a01b0394851660408801529284166060870152921660808501526001600160401b039190911660a08401526001600160801b031660c083015260e08201526101000190565b60405160208183030381529060405280519060200120610d17565b6000806107488360000151610666565b90506104ec818460200151610d44565b60006001600160a01b0383161580159061078e57506001600160a01b038281166000908152600260205260409020548116908416145b80156104ec5750506001600160a01b03166000908152600260208190526040909120015460ff1615919050565b60008080806107cc868801886117ce565b825160600151929550909350915033906001600160a01b038116821461080757604051632b65e49760e11b81526004016102ef9291906117b4565b505061081283610d6e565b8251805160608201516040928301519251630119cbed60e31b8152919290916000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906308ce5f689061087590859087906004016117b4565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611828565b875160600151909150816108de5760405163037a2d1f60e61b81526004016102ef91906112bb565b5050855160a001516001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081205490916001600160801b031690818180821161095c57604051637007d4a160e01b8152600481019290925260248201526044016102ef565b50508a600003610977576109708183611841565b92506109bd565b6109818183611841565b8b11158b61098f8385611841565b90916109b75760405163c5602bb160e01b8152600481019290925260248201526044016102ef565b50508a92505b50508015610aac576001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081208054839290610a13908490611559565b909155507f000000000000000000000000000000000000000000000000000000000000000090506001600160a01b0316631230fa3e8d8960000151602001518585888c8c6040518863ffffffff1660e01b8152600401610a79979695949392919061188c565b600060405180830381600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050505b826001600160a01b03168760000151602001516001600160a01b0316857f481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb48f8686604051610afc939291906118d8565b60405180910390a48651602080820151608083015160a084015160c090940151928b01516040516001600160a01b03808a16969416948a947f3943fc3b19ec289c87b57de7a8bf1448d81ced03d1806144ecaca4ba9e97605694610b64948b94919391611900565b60405180910390a49b9a5050505050505050505050565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006000610da6565b905090565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006001610da6565b8142808211610c055760405163d7705a0160e01b8152600481019290925260248201526044016102ef565b505060408051466020808301919091526001600160601b031930606090811b8216848601527330baba3437b934bd32a9b4b3b732b9283937b7b360611b60548501526068840187905233901b1660888301528251808303607c018152609c90920190925280519101207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6000908152601c829052603c81209050826001600160a01b0316610ce88288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4492505050565b6001600160a01b031614610d0f57604051631c07ed3360e31b815260040160405180910390fd5b505050505050565b60006103fd610d24610e51565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d548686610f7c565b925092509250610d648282610fc9565b5090949350505050565b805160200151610d8690610d8183610738565b610758565b610da35760405163aa415c3360e01b815260040160405180910390fd5b50565b606060ff8314610dc057610db983611086565b90506103fd565b818054610dcc90611960565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611960565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505090506103fd565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610eaa57507f000000000000000000000000000000000000000000000000000000000000000046145b15610ed457507f000000000000000000000000000000000000000000000000000000000000000090565b610ba8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103610fb65760208401516040850151606086015160001a610fa8888285856110c5565b955095509550505050610fc2565b50508151600091506002905b9250925092565b6000826003811115610fdd57610fdd611854565b03610fe6575050565b6001826003811115610ffa57610ffa611854565b036110185760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561102c5761102c611854565b0361104d5760405163fce698f760e01b8152600481018290526024016102ef565b600382600381111561106157611061611854565b03611082576040516335e2f38360e21b8152600481018290526024016102ef565b5050565b606060006110938361118a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156110f65750600091506003905082611180565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561114a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661117657506000925060019150829050611180565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103fd57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0381168114610da357600080fd5b80356111d2816111b2565b919050565b6000602082840312156111e957600080fd5b81356104ec816111b2565b6000806000806080858703121561120a57600080fd5b8435611215816111b2565b935060208501359250604085013561122c816111b2565b9150606085013561123c816111b2565b939692955090935050565b60006020828403121561125957600080fd5b81356001600160401b0381111561126f57600080fd5b820160e081850312156104ec57600080fd5b60006020828403121561129357600080fd5b81356001600160401b038111156112a957600080fd5b8201604081850312156104ec57600080fd5b6001600160a01b0391909116815260200190565b600080604083850312156112e257600080fd5b82356112ed816111b2565b915060208301356112fd816111b2565b809150509250929050565b8035600381106111d257600080fd5b60008083601f84011261132957600080fd5b5081356001600160401b0381111561134057600080fd5b60208301915083602082850101111561135857600080fd5b9250929050565b6000806000806060858703121561137557600080fd5b61137e85611308565b935060208501356001600160401b0381111561139957600080fd5b6113a587828801611317565b9598909750949560400135949350505050565b6000806000604084860312156113cd57600080fd5b6113d684611308565b925060208401356001600160401b038111156113f157600080fd5b6113fd86828701611317565b9497909650939450505050565b6000815180845260005b8181101561143057602081850181015186830182015201611414565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e06020820152600061146f60e083018961140a565b8281036040840152611481818961140a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156114d75783518352602093840193909201916001016114b9565b50909b9a5050505050505050505050565b600080600080606085870312156114fe57600080fd5b8435611509816111b2565b93506020850135925060408501356001600160401b0381111561152b57600080fd5b61153787828801611317565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103fd576103fd611543565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156115a4576115a461156c565b60405290565b80356001600160401b03811681146111d257600080fd5b80356001600160801b03811681146111d257600080fd5b600082601f8301126115e957600080fd5b81356001600160401b038111156116025761160261156c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116305761163061156c565b60405281815283820160200185101561164857600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0828403121561167757600080fd5b61167f611582565b823581529050611691602083016111c7565b60208201526116a2604083016111c7565b60408201526116b3606083016111c7565b60608201526116c4608083016115aa565b60808201526116d560a083016115c1565b60a082015260c08201356001600160401b038111156116f357600080fd5b6116ff848285016115d8565b60c08301525092915050565b60006103fd3683611665565b60006040828403121561172957600080fd5b604080519081016001600160401b038111828210171561174b5761174b61156c565b60405290508082356001600160401b0381111561176757600080fd5b61177385828601611665565b82525060208301356001600160401b0381111561178f57600080fd5b61179b858286016115d8565b6020830152505092915050565b60006103fd3683611717565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156117e357600080fd5b83356001600160401b038111156117f957600080fd5b61180586828701611717565b93505060208401359150604084013561181d816111b2565b809150509250925092565b60006020828403121561183a57600080fd5b5051919050565b818103818111156103fd576103fd611543565b634e487b7160e01b600052602160045260246000fd5b6003811061188857634e487b7160e01b600052602160045260246000fd5b9052565b60e0810161189a828a61186a565b6001600160a01b03978816602083015295871660408201526060810194909452918516608084015260a083015290921660c090920191909152919050565b606081016118e6828661186a565b6001600160a01b0393909316602082015260400152919050565b6001600160a01b03861681526001600160401b03851660208201526001600160801b038416604082015260a0606082018190526000906119429083018561140a565b8281036080840152611954818561140a565b98975050505050505050565b600181811c9082168061197457607f821691505b60208210810361199457634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202168ccf8bac6984eef611a01a2e1c7b84ddb64fd4b819201ae6206ab6038e15764736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json new file mode 100644 index 000000000..45cfb0f51 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json @@ -0,0 +1,337 @@ +{ + "_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": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "contractName", + "type": "bytes" + } + ], + "name": "GraphDirectoryInvalidZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cut", + "type": "uint256" + } + ], + "name": "GraphPaymentsInvalidCut", + "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" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "PPMMathInvalidPPM", + "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": 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": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensProtocol", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDataService", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDelegationPool", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReceiver", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "GraphPaymentCollected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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": "0x6101e060405234801561001157600080fd5b50604051611552380380611552833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c576040516339b762e560e21b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610f546105fe600039600081816056015261021f0152600050506000505060005050600050506000505060005050600050506000505060006108b20152600061077f0152610f546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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 new file mode 100644 index 000000000..8fbd24cbb --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Dummy", + "sourceName": "contracts/mocks/Dummy.sol", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "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 new file mode 100644 index 000000000..8fbd24cbb --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Dummy", + "sourceName": "contracts/mocks/Dummy.sol", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json new file mode 100644 index 000000000..c543471bf --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json @@ -0,0 +1,680 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PaymentsEscrow", + "sourceName": "contracts/payments/PaymentsEscrow.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "controller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "withdrawEscrowThawingPeriod", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "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": "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": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensThawing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "CancelThaw", + "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": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "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": "WITHDRAW_ESCROW_THAWING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "cancelThaw", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6101e060405234801561001157600080fd5b50604051611bb6380380611bb6833981016040819052610030916104ef565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610373565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610373565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610373565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610373565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610373565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610373565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610373565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610373565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610373565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450806276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c081905261036c610421565b505061058b565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ae91815260200190565b602060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef919061051b565b9050826001600160a01b03821661041a5760405163218f5add60e11b8152600401610071919061053d565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104ea57600080fd5b919050565b6000806040838503121561050257600080fd5b61050b836104d3565b9150602083015190509250929050565b60006020828403121561052d57600080fd5b610536826104d3565b9392505050565b602081526000825180602084015260005b8181101561056b576020818601810151604086840101520161054e565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516115b3610603600039600081816101350152610b4e015260005050600050506000505060005050600050506000610d910152600050506000610dd90152600050506000610db501526115b36000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..2e9762744 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "@openzeppelin/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": "0x608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "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 new file mode 100644 index 000000000..2e9762744 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "@openzeppelin/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": "0x608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "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 new file mode 100644 index 000000000..700f93578 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "@openzeppelin/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": "FailedCall", + "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": "0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..700f93578 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "@openzeppelin/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": "FailedCall", + "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": "0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json new file mode 100644 index 000000000..56c4ece9f --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json @@ -0,0 +1,55 @@ +{ + "_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": "0x610c2d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201ef3beb7da88d73c1ec2e008b9308e699e4621df52e1b4b35ff71522e3621d6464736f6c634300081b0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201ef3beb7da88d73c1ec2e008b9308e699e4621df52e1b4b35ff71522e3621d6464736f6c634300081b0033", + "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 new file mode 100644 index 000000000..094f54411 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json @@ -0,0 +1,2481 @@ +{ + "_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": "FailedCall", + "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": "HorizonStakingInsufficientDelegationTokens", + "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": [ + { + "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": [], + "name": "HorizonStakingInvalidThawRequestType", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "thawingPeriod", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "maxThawingPeriod", + "type": "uint64" + } + ], + "name": "HorizonStakingInvalidThawingPeriod", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "HorizonStakingInvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidVerifierZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroShares", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroTokens", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingLegacySlashFailed", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingNoTokensToSlash", + "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": "HorizonStakingNothingToWithdraw", + "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": [], + "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": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeDeposited", + "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": "HorizonStakeLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeWithdrawn", + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "StakeDelegatedWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "ThawRequestCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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": "", + "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": "lastParametersStagedAt", + "type": "uint256" + }, + { + "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": [], + "name": "getStakingExtension", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "nextRequest", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "thawingNonce", + "type": "uint256" + } + ], + "internalType": "struct IHorizonStakingTypes.ThawRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "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": "", + "type": "address" + } + ], + "name": "withdrawDelegated", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x61020060405234801561001157600080fd5b506040516162a33803806162a38339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615d2861057b6000396000818161025b0152818161055e01526128a3015260008181610a450152818161140a015281816130de015281816131a001528181614130015261447401526000505060005050600050506000505060006114e901526000613097015260005050600050506000505060006135670152615d286000f3fe608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json new file mode 100644 index 000000000..5dee92f1e --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json @@ -0,0 +1,1252 @@ +{ + "_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": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "contractName", + "type": "bytes" + } + ], + "name": "GraphDirectoryInvalidZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidThawRequestType", + "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": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeDeposited", + "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": "indexer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "StakeSlashed", + "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": "bool", + "name": "", + "type": "bool" + }, + { + "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": "", + "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": "lastParametersStagedAt", + "type": "uint256" + }, + { + "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": [], + "name": "getSubgraphService", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "nextRequest", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "thawingNonce", + "type": "uint256" + } + ], + "internalType": "struct IHorizonStakingTypes.ThawRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "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": "address", + "name": "indexer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "legacySlash", + "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": "0x6101e060405234801561001157600080fd5b506040516133a83803806133a883398101604081905261003091610411565b818181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610347565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610347565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610347565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610347565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610347565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610347565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610347565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610347565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610347565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b03166101c052506104b4915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038291815260200190565b602060405180830381865afa15801561039f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c39190610444565b9050826001600160a01b0382166103ee5760405163218f5add60e11b81526004016100749190610466565b5092915050565b80516001600160a01b038116811461040c57600080fd5b919050565b6000806040838503121561042457600080fd5b61042d836103f5565b915061043b602084016103f5565b90509250929050565b60006020828403121561045657600080fd5b61045f826103f5565b9392505050565b602081526000825180602084015260005b818110156104945760208186018101516040868401015201610477565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051612e76610532600039600081816104ec0152611e5901526000611f6c0152600050506000505060006124d70152600061222e01526000611966015260005050600050506000505060006119a10152612e766000f3fe608060405234801561001057600080fd5b50600436106101805760003560e01c806308ce5f68146101855780630e022923146101ab5780631787e69f1461023357806325d9897e1461025c5780632f7cc5011461038457806339514ad2146103975780634488a382146103bc57806344c32a61146103d157806355c85269146103e4578063561285e41461042e5780637573ef4f146104835780637a76646014610233578063872d0489146104965780638cc01c86146104a95780638d3c100a146104d75780639363c522146104ea57806398c657dc146105185780639ce7abe514610538578063a2594d821461054b578063a784d4981461055e578063ac9650d814610571578063ae4fe67a14610591578063b6363cf2146105cd578063c0641994146105e0578063ccebcabb146105ee578063d48de84514610610578063e2e1e8e91461065f578063e56f8a1d1461067f578063e73e14bf146106c5578063f1d60d66146106f0578063fb744cc014610703578063fc54fb2714610716575b600080fd5b610198610193366004612721565b610721565b6040519081526020015b60405180910390f35b6101be6101b936600461275a565b610736565b6040516101a2919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b61019861024136600461275a565b6001600160a01b03166000908152600e602052604090205490565b61037761026a366004612721565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516101a29190612777565b61019861039236600461284b565b610816565b601a546001600160401b03165b6040516001600160401b0390911681526020016101a2565b6103cf6103ca3660046128a5565b610918565b005b6103cf6103df3660046128e4565b610d04565b6103f76103f236600461275a565b610d99565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c0016101a2565b61044161043c366004612721565b610e6f565b6040516101a29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b610198610491366004612910565b610ec1565b6101986104a436600461295f565b610f25565b6104bc6104b736600461275a565b610f7a565b604080518251815260209283015192810192909252016101a2565b6103cf6104e53660046129a8565b610fb6565b7f00000000000000000000000000000000000000000000000000000000000000006040516101a291906129cd565b61052b61052636600461275a565b611405565b6040516101a291906129f7565b6103cf610546366004612a1f565b611410565b6103cf61055936600461275a565b61150b565b61019861056c36600461275a565b6115f7565b61058461057f366004612aa4565b611602565b6040516101a29190612b3d565b6105bd61059f36600461275a565b6001600160a01b031660009081526022602052604090205460ff1690565b60405190151581526020016101a2565b6105bd6105db366004612721565b6116e9565b600d5463ffffffff166103a4565b6106016105fc366004612bbd565b611718565b604051905181526020016101a2565b61062361061e366004612bfd565b61176a565b6040516101a29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61019861066d366004612c19565b60009081526010602052604090205490565b61069261068d36600461284b565b6117d7565b6040516101a291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b6105bd6106d336600461275a565b6001600160a01b03166000908152600e6020526040902054151590565b6105bd6106fe36600461275a565b61183f565b610198610711366004612721565b611864565b60205460ff166105bd565b600061072d8383611870565b90505b92915050565b61079160405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b600080610825868686866118a8565b9050806003015460000361083d576000915050610910565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b80156109075760006108838c83611914565b905084600501548160030154036108fc576001810154426001600160401b03909116116108f6576000838583600001546108bd9190612c48565b6108c79190612c5f565b90506108d38186612c81565b82549095506108e29085612c81565b93506108ee8188612c94565b9650506108fc565b50610907565b600201549050610871565b50929450505050505b949350505050565b3360009081526012602052604090205460ff166109675760405162461bcd60e51b815260206004820152600860248201526710b9b630b9b432b960c11b60448201526064015b60405180910390fd5b61096f611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612ca7565b156109ee57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152600e6020526040902083610a3d5760405162461bcd60e51b815260206004820152600760248201526621746f6b656e7360c81b604482015260640161095e565b82841015610a7d5760405162461bcd60e51b815260206004820152600d60248201526c0e4caeec2e4c8e67ce6d8c2e6d609b1b604482015260640161095e565b8054610ab45760405162461bcd60e51b8152602060048201526006602482015265217374616b6560d01b604482015260640161095e565b8054841115610af35760405162461bcd60e51b815260206004820152600b60248201526a736c6173683e7374616b6560a81b604482015260640161095e565b6001600160a01b038216610b385760405162461bcd60e51b815260206004820152600c60248201526b2162656e656669636961727960a01b604482015260640161095e565b600081600201548260010154610b4e9190612c94565b9050600082600001548211610b6f578254610b6a908390612c81565b610b72565b60005b90508086118015610b87575060008360020154115b15610bd5576000610b988288612c81565b90506000610baa828660020154611988565b9050808560020154610bbc9190612c81565b60028601819055600003610bd257600060038601555b50505b60048301548354600091610be891612c81565b905080600003610c4157876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f360008088604051610c3093929190612cc9565b60405180910390a250505050610cfe565b80871115610c645786610c548288612c48565b610c5e9190612c5f565b95508096505b8354610c71908890612c81565b8455610c97610c808789612c81565b610c8861199f565b6001600160a01b0316906119c3565b610cb48587610ca461199f565b6001600160a01b03169190611a0b565b876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f3888888604051610cf193929190612cc9565b60405180910390a2505050505b50505050565b610d0c611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d9190612ca7565b15610d8b57604051632b37d9d160e21b815260040160405180910390fd5b610d958282611ac2565b5050565b6001600160a01b038082166000908152600f6020908152604080832081516101208101835281549095168552600180820154938601939093526002810154918501919091526003810154606085015260048101546080850152600581015460a0850152600681015460c0850152600781015460e0850152600801546101008401529091829182918291829182918290610e318a611dfc565b6002811115610e4257610e426129e1565b83516020850151604086015160e090960151939092149c909b509099509297509550600094509092505050565b610e776126c3565b610e7f6126c3565b6000610e8b8585611e55565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610efb57610efb6129e1565b6002811115610f0c57610f0c6129e1565b81526020019081526020016000205490505b9392505050565b600080610f328585611870565b90506000610f408686611ed9565b90506000610f5463ffffffff861684612c48565b90506000610f628383611988565b9050610f6e8185612c94565b98975050505050505050565b610f826126f2565b610f8a6126f2565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b610fbe611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190612ca7565b1561103d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b03811661107c5760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b604482015260640161095e565b600061108782611dfc565b9050600081600281111561109d5761109d6129e1565b036110d55760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b604482015260640161095e565b826000036110e257505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080611123338661111361199f565b6001600160a01b03169190611efc565b600d5461113e908690600160401b900463ffffffff16611f3d565b935061114a8486612c81565b600d5490955061116a9087908790600160201b900463ffffffff16611f58565b92506111768386612c81565b94508487600501546111889190612c94565b6005880155600287015460009015806111ae5750601954600160a01b900463ffffffff16155b6112795760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273__$8eb3cac1482a31d7a7f2cbe7dc8bdcd821$__906349484d819060c401602060405180830381865af4158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612ce8565b61127c565b60005b905061128c81896008015461212e565b92506112988387611988565b92506112a7610c808488612c81565b821561130f578288600801546112bd9190612c94565b600889015587546112d7906001600160a01b031684612148565b91506112e38284612c81565b88546001600160a01b0390811660008181526017602052604090205492955061130f92869216156121da565b5086546001600160a01b03808b16918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b3361134b61222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ac9190612ce8565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b600061073082611dfc565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612d01565b6001600160a01b0316336001600160a01b0316146114a55760405162461bcd60e51b815260040161095e90612d1e565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114d39086908690600401612d55565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190612d01565b6001600160a01b0316336001600160a01b0316146115a05760405162461bcd60e51b815260040161095e90612d1e565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050505050565b600061073082612250565b604080516000815260208101909152606090826001600160401b0381111561162c5761162c612d84565b60405190808252806020026020018201604052801561165f57816020015b606081526020019060019003908161164a5790505b50915060005b838110156116e1576116bc3086868481811061168357611683612d9a565b90506020028101906116959190612db0565b856040516020016116a893929190612dfd565b6040516020818303038152906040526122c1565b8382815181106116ce576116ce612d9a565b6020908102919091010152600101611665565b505092915050565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b60408051602081019091526000815260408051602081019091526000815260006117428686611e55565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b6040805160808101825260008082526020820181905291810182905260608101919091526117988383611914565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b604080516080810182526000808252602082018190529181018290526060810191909152611807858585856118a8565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b60008061184b83611dfc565b600281111561185c5761185c6129e1565b141592915050565b600061072d8383611ed9565b6001600160a01b038281166000908152601b6020908152604080832093851683529290529081206001810154905461072d9190612c81565b6000601e60008660018111156118c0576118c06129e1565b60018111156118d1576118d16129e1565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d600084600181111561192c5761192c6129e1565b600181111561193d5761193d6129e1565b81526020019081526020016000206000838152602001908152602001600020905092915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b600081831115611998578161072d565b5090919050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610d9557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156115db57600080fd5b8015611abd5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a859190612ca7565b611abd5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161095e565b505050565b6000611acd83611dfc565b90506001816002811115611ae357611ae36129e1565b14611b1a5760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b604482015260640161095e565b6001600160a01b038084166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260080154610100820152611ba361222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c049190612ce8565b608082018190526060820151600091611c1c9161212e565b9050600082600001516001600160a01b0316336001600160a01b03161480611c4d5750611c4d3384600001516116e9565b600d54909150600160801b900463ffffffff1682111580611c7057506040830151155b15611caa5780611caa5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015260640161095e565b604083015115611d6857808015611cc057508415155b15611cd857611cd3868460000151612337565b611ce5565b611ce5836020015161240b565b60408084015184516001600160a01b03166000908152600e6020529190912060010154611d129190612c81565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611d529190612c81565b6020808501516000908152601090915260409020555b608080840180516001600160a01b03808a166000818152600f6020908152604091829020600401949094558389015189519551828b01518351918252958101959095523391850191909152606084018b9052861595840195909552939216907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b6001600160a01b038082166000908152600f6020526040812080549192909116611e295750600092915050565b600381015415801590611e3e57506004810154155b15611e4c5750600192915050565b50600292915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611eae57506001600160a01b0382166000908152601460205260409020610730565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610730565b600080611ee68484611e55565b9050806005015481600201546109109190612c81565b8015611abd576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611a42565b600080611f4a8484612483565b905061072d81610c8861199f565b600082600003611f6a57506000610f1e565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611fa457506001600160a01b03821615155b90508080156120175750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120179190612ca7565b156121225760006120288686612483565b90508015612118576120386124d5565b6001600160a01b0316631d1c2fec886040518263ffffffff1660e01b815260040161206591815260200190565b6020604051808303816000875af1158015612084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a89190612ce8565b506120b68382610ca461199f565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b1580156120ff57600080fd5b505af1158015612113573d6000803e3d6000fd5b505050505b9250610f1e915050565b50600095945050505050565b600081831161213e57600061072d565b61072d8284612c81565b6001600160a01b038216600090815260146020526040812060028101548291901580159061218757508054600160401b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160401b90910481169087906124f916565b90506121b98186612c81565b92508282600201546121cb9190612c94565b6002830155505b509392505050565b826000036121e757505050565b80156121f757611abd8284612560565b6001600160a01b0380831660009081526017602052604090205416610cfe81156122215781612223565b835b85610ca461199f565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261228391612c94565b61228d9190612c94565b6001600160a01b0384166000908152600e60205260409020549091508181116122b7576000610910565b6109108282612c81565b6060600080846001600160a01b0316846040516122de9190612e24565b600060405180830381855af49150503d8060008114612319576040519150601f19603f3d011682016040523d82523d6000602084013e61231e565b606091505b509150915061232e8583836125df565b95945050505050565b60006123416124d5565b6001600160a01b031663db750926846040518263ffffffff1660e01b815260040161236c91906129cd565b6020604051808303816000875af115801561238b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123af9190612ce8565b9050806000036123be57505050565b60006123ca8383612632565b905060006123d88284612c81565b6001600160a01b03808616600090815260176020526040902054919250612404918391879116156121da565b5050505050565b6124136124d5565b6001600160a01b031663eeac3e0e826040518263ffffffff1660e01b815260040161244091815260200190565b6020604051808303816000875af115801561245f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190612ce8565b600061249282620f4240101590565b82906124b457604051633dc311df60e01b815260040161095e91815260200190565b506124cb836124c684620f4240612c81565b6124f9565b61072d9084612c81565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061250883620f4240101590565b8061251b575061251b82620f4240101590565b838390916125455760405163768bf0eb60e11b81526004810192909252602482015260440161095e565b50620f424090506125568385612c48565b61072d9190612c5f565b6001600160a01b0382166000908152600e6020526040902054612584908290612c94565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906125d39084815260200190565b60405180910390a25050565b6060826125f4576125ef82612697565b610f1e565b815115801561260b57506001600160a01b0384163b155b1561262b5783604051639996b31560e01b815260040161095e91906129cd565b5080610f1e565b6001600160a01b038216600090815260146020526040812060028101548291901580159061267157508054600160201b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160201b90910481169087906124f916565b8051156126a75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6001600160a01b03811681146126c057600080fd5b6000806040838503121561273457600080fd5b823561273f8161270c565b9150602083013561274f8161270c565b809150509250929050565b60006020828403121561276c57600080fd5b813561072d8161270c565b60006101408201905082518252602083015160208301526040830151604083015260608301516127af606084018263ffffffff169052565b5060808301516127ca60808401826001600160401b03169052565b5060a08301516127e560a08401826001600160401b03169052565b5060c08301516127fd60c084018263ffffffff169052565b5060e083015161281860e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b80356002811061284657600080fd5b919050565b6000806000806080858703121561286157600080fd5b61286a85612837565b9350602085013561287a8161270c565b9250604085013561288a8161270c565b9150606085013561289a8161270c565b939692955090935050565b600080600080608085870312156128bb57600080fd5b84356128c68161270c565b93506020850135925060408501359150606085013561289a8161270c565b600080604083850312156128f757600080fd5b82356129028161270c565b946020939093013593505050565b60008060006060848603121561292557600080fd5b83356129308161270c565b925060208401356129408161270c565b915060408401356003811061295457600080fd5b809150509250925092565b60008060006060848603121561297457600080fd5b833561297f8161270c565b9250602084013561298f8161270c565b9150604084013563ffffffff8116811461295457600080fd5b600080604083850312156129bb57600080fd5b82359150602083013561274f8161270c565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6020810160038310612a1957634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060408486031215612a3457600080fd5b8335612a3f8161270c565b925060208401356001600160401b03811115612a5a57600080fd5b8401601f81018613612a6b57600080fd5b80356001600160401b03811115612a8157600080fd5b866020828401011115612a9357600080fd5b939660209190910195509293505050565b60008060208385031215612ab757600080fd5b82356001600160401b03811115612acd57600080fd5b8301601f81018513612ade57600080fd5b80356001600160401b03811115612af457600080fd5b8560208260051b8401011115612b0957600080fd5b6020919091019590945092505050565b60005b83811015612b34578181015183820152602001612b1c565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015612bb157603f1987860301845281518051808752612b8e816020890160208501612b19565b601f01601f19169590950160209081019550938401939190910190600101612b65565b50929695505050505050565b600080600060608486031215612bd257600080fd5b8335612bdd8161270c565b92506020840135612bed8161270c565b915060408401356129548161270c565b60008060408385031215612c1057600080fd5b61290283612837565b600060208284031215612c2b57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761073057610730612c32565b600082612c7c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561073057610730612c32565b8082018082111561073057610730612c32565b600060208284031215612cb957600080fd5b8151801515811461072d57600080fd5b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215612cfa57600080fd5b5051919050565b600060208284031215612d1357600080fd5b815161072d8161270c565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612dc757600080fd5b8301803591506001600160401b03821115612de157600080fd5b602001915036819003821315612df657600080fd5b9250929050565b828482376000838201600081528351612e1a818360208801612b19565b0195945050505050565b60008251612e36818460208701612b19565b919091019291505056fea2646970667358221220eee2ca3f28b971ad70ed8bb53d0d0f8eb32b9f33a12776bc83fb4b7d1b75ddfd64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101805760003560e01c806308ce5f68146101855780630e022923146101ab5780631787e69f1461023357806325d9897e1461025c5780632f7cc5011461038457806339514ad2146103975780634488a382146103bc57806344c32a61146103d157806355c85269146103e4578063561285e41461042e5780637573ef4f146104835780637a76646014610233578063872d0489146104965780638cc01c86146104a95780638d3c100a146104d75780639363c522146104ea57806398c657dc146105185780639ce7abe514610538578063a2594d821461054b578063a784d4981461055e578063ac9650d814610571578063ae4fe67a14610591578063b6363cf2146105cd578063c0641994146105e0578063ccebcabb146105ee578063d48de84514610610578063e2e1e8e91461065f578063e56f8a1d1461067f578063e73e14bf146106c5578063f1d60d66146106f0578063fb744cc014610703578063fc54fb2714610716575b600080fd5b610198610193366004612721565b610721565b6040519081526020015b60405180910390f35b6101be6101b936600461275a565b610736565b6040516101a2919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b61019861024136600461275a565b6001600160a01b03166000908152600e602052604090205490565b61037761026a366004612721565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516101a29190612777565b61019861039236600461284b565b610816565b601a546001600160401b03165b6040516001600160401b0390911681526020016101a2565b6103cf6103ca3660046128a5565b610918565b005b6103cf6103df3660046128e4565b610d04565b6103f76103f236600461275a565b610d99565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c0016101a2565b61044161043c366004612721565b610e6f565b6040516101a29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b610198610491366004612910565b610ec1565b6101986104a436600461295f565b610f25565b6104bc6104b736600461275a565b610f7a565b604080518251815260209283015192810192909252016101a2565b6103cf6104e53660046129a8565b610fb6565b7f00000000000000000000000000000000000000000000000000000000000000006040516101a291906129cd565b61052b61052636600461275a565b611405565b6040516101a291906129f7565b6103cf610546366004612a1f565b611410565b6103cf61055936600461275a565b61150b565b61019861056c36600461275a565b6115f7565b61058461057f366004612aa4565b611602565b6040516101a29190612b3d565b6105bd61059f36600461275a565b6001600160a01b031660009081526022602052604090205460ff1690565b60405190151581526020016101a2565b6105bd6105db366004612721565b6116e9565b600d5463ffffffff166103a4565b6106016105fc366004612bbd565b611718565b604051905181526020016101a2565b61062361061e366004612bfd565b61176a565b6040516101a29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61019861066d366004612c19565b60009081526010602052604090205490565b61069261068d36600461284b565b6117d7565b6040516101a291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b6105bd6106d336600461275a565b6001600160a01b03166000908152600e6020526040902054151590565b6105bd6106fe36600461275a565b61183f565b610198610711366004612721565b611864565b60205460ff166105bd565b600061072d8383611870565b90505b92915050565b61079160405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b600080610825868686866118a8565b9050806003015460000361083d576000915050610910565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b80156109075760006108838c83611914565b905084600501548160030154036108fc576001810154426001600160401b03909116116108f6576000838583600001546108bd9190612c48565b6108c79190612c5f565b90506108d38186612c81565b82549095506108e29085612c81565b93506108ee8188612c94565b9650506108fc565b50610907565b600201549050610871565b50929450505050505b949350505050565b3360009081526012602052604090205460ff166109675760405162461bcd60e51b815260206004820152600860248201526710b9b630b9b432b960c11b60448201526064015b60405180910390fd5b61096f611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612ca7565b156109ee57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152600e6020526040902083610a3d5760405162461bcd60e51b815260206004820152600760248201526621746f6b656e7360c81b604482015260640161095e565b82841015610a7d5760405162461bcd60e51b815260206004820152600d60248201526c0e4caeec2e4c8e67ce6d8c2e6d609b1b604482015260640161095e565b8054610ab45760405162461bcd60e51b8152602060048201526006602482015265217374616b6560d01b604482015260640161095e565b8054841115610af35760405162461bcd60e51b815260206004820152600b60248201526a736c6173683e7374616b6560a81b604482015260640161095e565b6001600160a01b038216610b385760405162461bcd60e51b815260206004820152600c60248201526b2162656e656669636961727960a01b604482015260640161095e565b600081600201548260010154610b4e9190612c94565b9050600082600001548211610b6f578254610b6a908390612c81565b610b72565b60005b90508086118015610b87575060008360020154115b15610bd5576000610b988288612c81565b90506000610baa828660020154611988565b9050808560020154610bbc9190612c81565b60028601819055600003610bd257600060038601555b50505b60048301548354600091610be891612c81565b905080600003610c4157876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f360008088604051610c3093929190612cc9565b60405180910390a250505050610cfe565b80871115610c645786610c548288612c48565b610c5e9190612c5f565b95508096505b8354610c71908890612c81565b8455610c97610c808789612c81565b610c8861199f565b6001600160a01b0316906119c3565b610cb48587610ca461199f565b6001600160a01b03169190611a0b565b876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f3888888604051610cf193929190612cc9565b60405180910390a2505050505b50505050565b610d0c611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d9190612ca7565b15610d8b57604051632b37d9d160e21b815260040160405180910390fd5b610d958282611ac2565b5050565b6001600160a01b038082166000908152600f6020908152604080832081516101208101835281549095168552600180820154938601939093526002810154918501919091526003810154606085015260048101546080850152600581015460a0850152600681015460c0850152600781015460e0850152600801546101008401529091829182918291829182918290610e318a611dfc565b6002811115610e4257610e426129e1565b83516020850151604086015160e090960151939092149c909b509099509297509550600094509092505050565b610e776126c3565b610e7f6126c3565b6000610e8b8585611e55565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610efb57610efb6129e1565b6002811115610f0c57610f0c6129e1565b81526020019081526020016000205490505b9392505050565b600080610f328585611870565b90506000610f408686611ed9565b90506000610f5463ffffffff861684612c48565b90506000610f628383611988565b9050610f6e8185612c94565b98975050505050505050565b610f826126f2565b610f8a6126f2565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b610fbe611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190612ca7565b1561103d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b03811661107c5760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b604482015260640161095e565b600061108782611dfc565b9050600081600281111561109d5761109d6129e1565b036110d55760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b604482015260640161095e565b826000036110e257505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080611123338661111361199f565b6001600160a01b03169190611efc565b600d5461113e908690600160401b900463ffffffff16611f3d565b935061114a8486612c81565b600d5490955061116a9087908790600160201b900463ffffffff16611f58565b92506111768386612c81565b94508487600501546111889190612c94565b6005880155600287015460009015806111ae5750601954600160a01b900463ffffffff16155b6112795760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273__$8eb3cac1482a31d7a7f2cbe7dc8bdcd821$__906349484d819060c401602060405180830381865af4158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612ce8565b61127c565b60005b905061128c81896008015461212e565b92506112988387611988565b92506112a7610c808488612c81565b821561130f578288600801546112bd9190612c94565b600889015587546112d7906001600160a01b031684612148565b91506112e38284612c81565b88546001600160a01b0390811660008181526017602052604090205492955061130f92869216156121da565b5086546001600160a01b03808b16918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b3361134b61222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ac9190612ce8565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b600061073082611dfc565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612d01565b6001600160a01b0316336001600160a01b0316146114a55760405162461bcd60e51b815260040161095e90612d1e565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114d39086908690600401612d55565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190612d01565b6001600160a01b0316336001600160a01b0316146115a05760405162461bcd60e51b815260040161095e90612d1e565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050505050565b600061073082612250565b604080516000815260208101909152606090826001600160401b0381111561162c5761162c612d84565b60405190808252806020026020018201604052801561165f57816020015b606081526020019060019003908161164a5790505b50915060005b838110156116e1576116bc3086868481811061168357611683612d9a565b90506020028101906116959190612db0565b856040516020016116a893929190612dfd565b6040516020818303038152906040526122c1565b8382815181106116ce576116ce612d9a565b6020908102919091010152600101611665565b505092915050565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b60408051602081019091526000815260408051602081019091526000815260006117428686611e55565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b6040805160808101825260008082526020820181905291810182905260608101919091526117988383611914565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b604080516080810182526000808252602082018190529181018290526060810191909152611807858585856118a8565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b60008061184b83611dfc565b600281111561185c5761185c6129e1565b141592915050565b600061072d8383611ed9565b6001600160a01b038281166000908152601b6020908152604080832093851683529290529081206001810154905461072d9190612c81565b6000601e60008660018111156118c0576118c06129e1565b60018111156118d1576118d16129e1565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d600084600181111561192c5761192c6129e1565b600181111561193d5761193d6129e1565b81526020019081526020016000206000838152602001908152602001600020905092915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b600081831115611998578161072d565b5090919050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610d9557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156115db57600080fd5b8015611abd5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a859190612ca7565b611abd5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161095e565b505050565b6000611acd83611dfc565b90506001816002811115611ae357611ae36129e1565b14611b1a5760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b604482015260640161095e565b6001600160a01b038084166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260080154610100820152611ba361222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c049190612ce8565b608082018190526060820151600091611c1c9161212e565b9050600082600001516001600160a01b0316336001600160a01b03161480611c4d5750611c4d3384600001516116e9565b600d54909150600160801b900463ffffffff1682111580611c7057506040830151155b15611caa5780611caa5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015260640161095e565b604083015115611d6857808015611cc057508415155b15611cd857611cd3868460000151612337565b611ce5565b611ce5836020015161240b565b60408084015184516001600160a01b03166000908152600e6020529190912060010154611d129190612c81565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611d529190612c81565b6020808501516000908152601090915260409020555b608080840180516001600160a01b03808a166000818152600f6020908152604091829020600401949094558389015189519551828b01518351918252958101959095523391850191909152606084018b9052861595840195909552939216907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b6001600160a01b038082166000908152600f6020526040812080549192909116611e295750600092915050565b600381015415801590611e3e57506004810154155b15611e4c5750600192915050565b50600292915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611eae57506001600160a01b0382166000908152601460205260409020610730565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610730565b600080611ee68484611e55565b9050806005015481600201546109109190612c81565b8015611abd576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611a42565b600080611f4a8484612483565b905061072d81610c8861199f565b600082600003611f6a57506000610f1e565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611fa457506001600160a01b03821615155b90508080156120175750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120179190612ca7565b156121225760006120288686612483565b90508015612118576120386124d5565b6001600160a01b0316631d1c2fec886040518263ffffffff1660e01b815260040161206591815260200190565b6020604051808303816000875af1158015612084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a89190612ce8565b506120b68382610ca461199f565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b1580156120ff57600080fd5b505af1158015612113573d6000803e3d6000fd5b505050505b9250610f1e915050565b50600095945050505050565b600081831161213e57600061072d565b61072d8284612c81565b6001600160a01b038216600090815260146020526040812060028101548291901580159061218757508054600160401b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160401b90910481169087906124f916565b90506121b98186612c81565b92508282600201546121cb9190612c94565b6002830155505b509392505050565b826000036121e757505050565b80156121f757611abd8284612560565b6001600160a01b0380831660009081526017602052604090205416610cfe81156122215781612223565b835b85610ca461199f565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261228391612c94565b61228d9190612c94565b6001600160a01b0384166000908152600e60205260409020549091508181116122b7576000610910565b6109108282612c81565b6060600080846001600160a01b0316846040516122de9190612e24565b600060405180830381855af49150503d8060008114612319576040519150601f19603f3d011682016040523d82523d6000602084013e61231e565b606091505b509150915061232e8583836125df565b95945050505050565b60006123416124d5565b6001600160a01b031663db750926846040518263ffffffff1660e01b815260040161236c91906129cd565b6020604051808303816000875af115801561238b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123af9190612ce8565b9050806000036123be57505050565b60006123ca8383612632565b905060006123d88284612c81565b6001600160a01b03808616600090815260176020526040902054919250612404918391879116156121da565b5050505050565b6124136124d5565b6001600160a01b031663eeac3e0e826040518263ffffffff1660e01b815260040161244091815260200190565b6020604051808303816000875af115801561245f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190612ce8565b600061249282620f4240101590565b82906124b457604051633dc311df60e01b815260040161095e91815260200190565b506124cb836124c684620f4240612c81565b6124f9565b61072d9084612c81565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061250883620f4240101590565b8061251b575061251b82620f4240101590565b838390916125455760405163768bf0eb60e11b81526004810192909252602482015260440161095e565b50620f424090506125568385612c48565b61072d9190612c5f565b6001600160a01b0382166000908152600e6020526040902054612584908290612c94565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906125d39084815260200190565b60405180910390a25050565b6060826125f4576125ef82612697565b610f1e565b815115801561260b57506001600160a01b0384163b155b1561262b5783604051639996b31560e01b815260040161095e91906129cd565b5080610f1e565b6001600160a01b038216600090815260146020526040812060028101548291901580159061267157508054600160201b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160201b90910481169087906124f916565b8051156126a75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6001600160a01b03811681146126c057600080fd5b6000806040838503121561273457600080fd5b823561273f8161270c565b9150602083013561274f8161270c565b809150509250929050565b60006020828403121561276c57600080fd5b813561072d8161270c565b60006101408201905082518252602083015160208301526040830151604083015260608301516127af606084018263ffffffff169052565b5060808301516127ca60808401826001600160401b03169052565b5060a08301516127e560a08401826001600160401b03169052565b5060c08301516127fd60c084018263ffffffff169052565b5060e083015161281860e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b80356002811061284657600080fd5b919050565b6000806000806080858703121561286157600080fd5b61286a85612837565b9350602085013561287a8161270c565b9250604085013561288a8161270c565b9150606085013561289a8161270c565b939692955090935050565b600080600080608085870312156128bb57600080fd5b84356128c68161270c565b93506020850135925060408501359150606085013561289a8161270c565b600080604083850312156128f757600080fd5b82356129028161270c565b946020939093013593505050565b60008060006060848603121561292557600080fd5b83356129308161270c565b925060208401356129408161270c565b915060408401356003811061295457600080fd5b809150509250925092565b60008060006060848603121561297457600080fd5b833561297f8161270c565b9250602084013561298f8161270c565b9150604084013563ffffffff8116811461295457600080fd5b600080604083850312156129bb57600080fd5b82359150602083013561274f8161270c565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6020810160038310612a1957634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060408486031215612a3457600080fd5b8335612a3f8161270c565b925060208401356001600160401b03811115612a5a57600080fd5b8401601f81018613612a6b57600080fd5b80356001600160401b03811115612a8157600080fd5b866020828401011115612a9357600080fd5b939660209190910195509293505050565b60008060208385031215612ab757600080fd5b82356001600160401b03811115612acd57600080fd5b8301601f81018513612ade57600080fd5b80356001600160401b03811115612af457600080fd5b8560208260051b8401011115612b0957600080fd5b6020919091019590945092505050565b60005b83811015612b34578181015183820152602001612b1c565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015612bb157603f1987860301845281518051808752612b8e816020890160208501612b19565b601f01601f19169590950160209081019550938401939190910190600101612b65565b50929695505050505050565b600080600060608486031215612bd257600080fd5b8335612bdd8161270c565b92506020840135612bed8161270c565b915060408401356129548161270c565b60008060408385031215612c1057600080fd5b61290283612837565b600060208284031215612c2b57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761073057610730612c32565b600082612c7c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561073057610730612c32565b8082018082111561073057610730612c32565b600060208284031215612cb957600080fd5b8151801515811461072d57600080fd5b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215612cfa57600080fd5b5051919050565b600060208284031215612d1357600080fd5b815161072d8161270c565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612dc757600080fd5b8301803591506001600160401b03821115612de157600080fd5b602001915036819003821315612df657600080fd5b9250929050565b828482376000838201600081528351612e1a818360208801612b19565b0195945050505050565b60008251612e36818460208701612b19565b919091019291505056fea2646970667358221220eee2ca3f28b971ad70ed8bb53d0d0f8eb32b9f33a12776bc83fb4b7d1b75ddfd64736f6c634300081b0033", + "linkReferences": { + "contracts/staking/libraries/ExponentialRebates.sol": { + "ExponentialRebates": [ + { + "length": 20, + "start": 5960 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/staking/libraries/ExponentialRebates.sol": { + "ExponentialRebates": [ + { + "length": 20, + "start": 4630 + } + ] + } + } +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json new file mode 100644 index 000000000..094f54411 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json @@ -0,0 +1,2481 @@ +{ + "_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": "FailedCall", + "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": "HorizonStakingInsufficientDelegationTokens", + "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": [ + { + "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": [], + "name": "HorizonStakingInvalidThawRequestType", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "thawingPeriod", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "maxThawingPeriod", + "type": "uint64" + } + ], + "name": "HorizonStakingInvalidThawingPeriod", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "HorizonStakingInvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidVerifierZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroShares", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroTokens", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingLegacySlashFailed", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingNoTokensToSlash", + "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": "HorizonStakingNothingToWithdraw", + "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": [], + "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": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeDeposited", + "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": "HorizonStakeLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeWithdrawn", + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "StakeDelegatedWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "ThawRequestCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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": "", + "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": "lastParametersStagedAt", + "type": "uint256" + }, + { + "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": [], + "name": "getStakingExtension", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "nextRequest", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "thawingNonce", + "type": "uint256" + } + ], + "internalType": "struct IHorizonStakingTypes.ThawRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "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": "", + "type": "address" + } + ], + "name": "withdrawDelegated", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x61020060405234801561001157600080fd5b506040516162a33803806162a38339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615d2861057b6000396000818161025b0152818161055e01526128a3015260008181610a450152818161140a015281816130de015281816131a001528181614130015261447401526000505060005050600050506000505060006114e901526000613097015260005050600050506000505060006135670152615d286000f3fe608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json new file mode 100644 index 000000000..b7220dcc7 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json @@ -0,0 +1,414 @@ +{ + "_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/L2Curation#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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/L2Curation#L2Curation.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json new file mode 100644 index 000000000..0d8c75203 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json @@ -0,0 +1,707 @@ +{ + "_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": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json new file mode 100644 index 000000000..0d8c75203 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json @@ -0,0 +1,707 @@ +{ + "_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": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json new file mode 100644 index 000000000..0d8c75203 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json @@ -0,0 +1,707 @@ +{ + "_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": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json new file mode 100644 index 000000000..0d8c75203 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json @@ -0,0 +1,707 @@ +{ + "_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": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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/L2GraphToken#L2GraphToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json new file mode 100644 index 000000000..5889eeaf0 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json @@ -0,0 +1,750 @@ +{ + "_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/L2GraphToken#L2GraphToken_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json new file mode 100644 index 000000000..5889eeaf0 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json @@ -0,0 +1,750 @@ +{ + "_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/L2GraphTokenGateway#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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/L2GraphTokenGateway#L2GraphTokenGateway.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json new file mode 100644 index 000000000..0a9b3a140 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json @@ -0,0 +1,647 @@ +{ + "_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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", + "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json new file mode 100644 index 000000000..0a9b3a140 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json @@ -0,0 +1,647 @@ +{ + "_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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", + "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ 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 new file mode 100644 index 000000000..c543471bf --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json @@ -0,0 +1,680 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PaymentsEscrow", + "sourceName": "contracts/payments/PaymentsEscrow.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "controller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "withdrawEscrowThawingPeriod", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "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": "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": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensThawing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "CancelThaw", + "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": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "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": "WITHDRAW_ESCROW_THAWING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "cancelThaw", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6101e060405234801561001157600080fd5b50604051611bb6380380611bb6833981016040819052610030916104ef565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610373565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610373565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610373565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610373565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610373565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610373565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610373565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610373565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610373565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450806276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c081905261036c610421565b505061058b565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ae91815260200190565b602060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef919061051b565b9050826001600160a01b03821661041a5760405163218f5add60e11b8152600401610071919061053d565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104ea57600080fd5b919050565b6000806040838503121561050257600080fd5b61050b836104d3565b9150602083015190509250929050565b60006020828403121561052d57600080fd5b610536826104d3565b9392505050565b602081526000825180602084015260005b8181101561056b576020818601810151604086840101520161054e565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516115b3610603600039600081816101350152610b4e015260005050600050506000505060005050600050506000610d910152600050506000610dd90152600050506000610db501526115b36000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json new file mode 100644 index 000000000..c543471bf --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json @@ -0,0 +1,680 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PaymentsEscrow", + "sourceName": "contracts/payments/PaymentsEscrow.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "controller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "withdrawEscrowThawingPeriod", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "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": "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": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensThawing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "CancelThaw", + "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": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "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": "WITHDRAW_ESCROW_THAWING_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "cancelThaw", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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" + }, + { + "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" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6101e060405234801561001157600080fd5b50604051611bb6380380611bb6833981016040819052610030916104ef565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610373565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610373565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610373565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610373565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610373565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610373565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610373565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610373565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610373565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450806276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c081905261036c610421565b505061058b565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ae91815260200190565b602060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef919061051b565b9050826001600160a01b03821661041a5760405163218f5add60e11b8152600401610071919061053d565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104ea57600080fd5b919050565b6000806040838503121561050257600080fd5b61050b836104d3565b9150602083015190509250929050565b60006020828403121561052d57600080fd5b610536826104d3565b9392505050565b602081526000825180602084015260005b8181101561056b576020818601810151604086840101520161054e565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516115b3610603600039600081816101350152610b4e015260005050600050506000505060005050600050506000610d910152600050506000610dd90152600050506000610db501526115b36000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..2cfb21e41 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json @@ -0,0 +1,177 @@ +{ + "_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 new file mode 100644 index 000000000..fe6be7a77 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json @@ -0,0 +1,622 @@ +{ + "_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": true, + "internalType": "address", + "name": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationID", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "HorizonRewardsAssigned", + "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" + } + ], + "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": "_rewardsIssuer", + "type": "address" + }, + { + "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": "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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611ca761017360003980610e60525080610e37525080610e0e52806117d9525080610de5528061155c525080610dbc525080610d93525080610d6a52806113a05250611ca76000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json new file mode 100644 index 000000000..fe6be7a77 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json @@ -0,0 +1,622 @@ +{ + "_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": true, + "internalType": "address", + "name": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationID", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "HorizonRewardsAssigned", + "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" + } + ], + "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": "_rewardsIssuer", + "type": "address" + }, + { + "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": "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": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611ca761017360003980610e60525080610e37525080610e0e52806117d9525080610de5528061155c525080610dbc525080610d93525080610d6a52806113a05250611ca76000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", + "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 new file mode 100644 index 000000000..8db6171f9 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json @@ -0,0 +1,132 @@ +{ + "_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": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", + "deployedBytecode": "0x608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", + "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 new file mode 100644 index 000000000..767ad87b5 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/81754efc7e2eec76b7d493cc60c0f970.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 new file mode 100644 index 000000000..d14c050d0 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json @@ -0,0 +1,2268 @@ +{ + "_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": "graphTallyCollector", + "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": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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": "FailedCall", + "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": "LegacyAllocationAlreadyExists", + "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" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + } + ], + "name": "SubgraphServiceInvalidCollectionId", + "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" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forceClosed", + "type": "bool" + } + ], + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentEpoch", + "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": "bytes", + "name": "poiMetadata", + "type": "bytes" + }, + { + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "paymentsDestination", + "type": "address" + } + ], + "name": "PaymentsDestinationSet", + "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": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "subgraphDeploymentId", + "type": "bytes32" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "subgraphService", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "disputeManager", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "graphTallyCollector", + "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": "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": "allocationId", + "type": "address" + } + ], + "name": "closeStaleAllocation", + "outputs": [], + "stateMutability": "nonpayable", + "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": "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": "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": "uint256", + "name": "createdAtEpoch", + "type": "uint256" + } + ], + "internalType": "struct Allocation.State", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "getAllocationData", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "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": "getCuration", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegationRatio", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDisputeManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGraphTallyCollector", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "address", + "name": "owner", + "type": "address" + }, + { + "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": "indexer", + "type": "address" + } + ], + "name": "isOverAllocated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPOIStaleness", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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" + } + ], + "name": "paymentsDestination", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "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": "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": "paymentsDestination_", + "type": "address" + } + ], + "name": "setPaymentsDestination", + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x61024060405234801561001157600080fd5b5060405161667738038061667783398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615fd961069e6000396000612ee2015260006132de01526000818161163b0152612fe101526000505060005050600050506000505060006137080152600061457c01526000505060005050600050506000611b6b01526000613a640152615fd96000f3fe608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json new file mode 100644 index 000000000..5f5b5ea19 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json @@ -0,0 +1,116 @@ +{ + "_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": "FailedCall", + "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": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json new file mode 100644 index 000000000..d14c050d0 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json @@ -0,0 +1,2268 @@ +{ + "_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": "graphTallyCollector", + "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": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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": "FailedCall", + "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": "LegacyAllocationAlreadyExists", + "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" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + } + ], + "name": "SubgraphServiceInvalidCollectionId", + "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" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forceClosed", + "type": "bool" + } + ], + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentEpoch", + "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": "bytes", + "name": "poiMetadata", + "type": "bytes" + }, + { + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "paymentsDestination", + "type": "address" + } + ], + "name": "PaymentsDestinationSet", + "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": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "subgraphDeploymentId", + "type": "bytes32" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "subgraphService", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "disputeManager", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "graphTallyCollector", + "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": "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": "allocationId", + "type": "address" + } + ], + "name": "closeStaleAllocation", + "outputs": [], + "stateMutability": "nonpayable", + "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": "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": "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": "uint256", + "name": "createdAtEpoch", + "type": "uint256" + } + ], + "internalType": "struct Allocation.State", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "getAllocationData", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "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": "getCuration", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegationRatio", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDisputeManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGraphTallyCollector", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "address", + "name": "owner", + "type": "address" + }, + { + "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": "indexer", + "type": "address" + } + ], + "name": "isOverAllocated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPOIStaleness", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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" + } + ], + "name": "paymentsDestination", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "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": "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": "paymentsDestination_", + "type": "address" + } + ], + "name": "setPaymentsDestination", + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x61024060405234801561001157600080fd5b5060405161667738038061667783398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615fd961069e6000396000612ee2015260006132de01526000818161163b0152612fe101526000505060005050600050506000505060006137080152600061457c01526000505060005050600050506000611b6b01526000613a640152615fd96000f3fe608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json new file mode 100644 index 000000000..e01123577 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json @@ -0,0 +1,1557 @@ +{ + "_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": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeInConflict", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeNotInConflict", + "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": "DisputeManagerSubgraphServiceNotSet", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": 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": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "LegacyDisputeCreated", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": [], + "name": "MIN_DISPUTE_DEPOSIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "acceptDisputeInConflict", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "tokensSlashRelated", + "type": "uint256" + } + ], + "name": "acceptDisputeConflict", + "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": "address", + "name": "fisherman", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "createAndAcceptLegacyDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": "cancellableAt", + "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": [], + "name": "getFishermanRewardCut", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "getStakeSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "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": "0x6101c060405234801561001157600080fd5b50604051613b6e380380613b6e8339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516135f261057c60003960005050600050506000505060005050600050506000505060005050600050506000611f23015260006119cc01526135f26000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..8fbd24cbb --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Dummy", + "sourceName": "contracts/mocks/Dummy.sol", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "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 new file mode 100644 index 000000000..8fbd24cbb --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Dummy", + "sourceName": "contracts/mocks/Dummy.sol", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", + "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 new file mode 100644 index 000000000..2e9762744 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "@openzeppelin/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": "0x608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "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 new file mode 100644 index 000000000..2e9762744 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json @@ -0,0 +1,132 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProxyAdmin", + "sourceName": "@openzeppelin/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": "0x608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json new file mode 100644 index 000000000..d14c050d0 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json @@ -0,0 +1,2268 @@ +{ + "_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": "graphTallyCollector", + "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": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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": "FailedCall", + "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": "LegacyAllocationAlreadyExists", + "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" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + } + ], + "name": "SubgraphServiceInvalidCollectionId", + "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" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forceClosed", + "type": "bool" + } + ], + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentEpoch", + "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": "bytes", + "name": "poiMetadata", + "type": "bytes" + }, + { + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "paymentsDestination", + "type": "address" + } + ], + "name": "PaymentsDestinationSet", + "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": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "subgraphDeploymentId", + "type": "bytes32" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "subgraphService", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "disputeManager", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "graphTallyCollector", + "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": "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": "allocationId", + "type": "address" + } + ], + "name": "closeStaleAllocation", + "outputs": [], + "stateMutability": "nonpayable", + "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": "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": "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": "uint256", + "name": "createdAtEpoch", + "type": "uint256" + } + ], + "internalType": "struct Allocation.State", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "getAllocationData", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "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": "getCuration", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegationRatio", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDisputeManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGraphTallyCollector", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "address", + "name": "owner", + "type": "address" + }, + { + "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": "indexer", + "type": "address" + } + ], + "name": "isOverAllocated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPOIStaleness", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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" + } + ], + "name": "paymentsDestination", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "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": "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": "paymentsDestination_", + "type": "address" + } + ], + "name": "setPaymentsDestination", + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x61024060405234801561001157600080fd5b5060405161667738038061667783398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615fd961069e6000396000612ee2015260006132de01526000818161163b0152612fe101526000505060005050600050506000505060006137080152600061457c01526000505060005050600050506000611b6b01526000613a640152615fd96000f3fe608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "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 new file mode 100644 index 000000000..700f93578 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "@openzeppelin/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": "FailedCall", + "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": "0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", + "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 new file mode 100644 index 000000000..700f93578 --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json @@ -0,0 +1,116 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransparentUpgradeableProxy", + "sourceName": "@openzeppelin/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": "FailedCall", + "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": "0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json b/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json new file mode 100644 index 000000000..03954694c --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json @@ -0,0 +1,315165 @@ +{ + "id": "81754efc7e2eec76b7d493cc60c0f970", + "_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/disputes/IDisputeManager.sol": { + "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity >=0.6.12 <0.8.0 || 0.8.27;\npragma abicoder v2;\n\ninterface IDisputeManager {\n // -- Dispute --\n\n enum DisputeType {\n Null,\n IndexingDispute,\n QueryDispute\n }\n\n enum DisputeStatus {\n Null,\n Accepted,\n Rejected,\n Drawn,\n Pending\n }\n\n // Disputes contain info necessary for the Arbitrator to verify and resolve\n struct Dispute {\n address indexer;\n address fisherman;\n uint256 deposit;\n bytes32 relatedDisputeID;\n DisputeType disputeType;\n DisputeStatus status;\n }\n\n // -- Attestation --\n\n // Receipt content sent from indexer in response to request\n struct Receipt {\n bytes32 requestCID;\n bytes32 responseCID;\n bytes32 subgraphDeploymentID;\n }\n\n // Attestation sent from indexer in response to a request\n struct Attestation {\n bytes32 requestCID;\n bytes32 responseCID;\n bytes32 subgraphDeploymentID;\n bytes32 r;\n bytes32 s;\n uint8 v;\n }\n\n // -- Configuration --\n\n function setArbitrator(address _arbitrator) external;\n\n function setMinimumDeposit(uint256 _minimumDeposit) external;\n\n function setFishermanRewardPercentage(uint32 _percentage) external;\n\n function setSlashingPercentage(uint32 _qryPercentage, uint32 _idxPercentage) external;\n\n // -- Getters --\n\n function isDisputeCreated(bytes32 _disputeID) external view returns (bool);\n\n function encodeHashReceipt(Receipt memory _receipt) external view returns (bytes32);\n\n function areConflictingAttestations(\n Attestation memory _attestation1,\n Attestation memory _attestation2\n ) external pure returns (bool);\n\n function getAttestationIndexer(Attestation memory _attestation) external view returns (address);\n\n // -- Dispute --\n\n function createQueryDispute(bytes calldata _attestationData, uint256 _deposit) 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, uint256 _deposit) external returns (bytes32);\n\n function acceptDispute(bytes32 _disputeID) external;\n\n function rejectDispute(bytes32 _disputeID) external;\n\n function drawDispute(bytes32 _disputeID) external;\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/gateway/ICallhookReceiver.sol": { + "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\n/**\n * @title Interface for contracts that can receive callhooks through the Arbitrum GRT bridge\n * @dev Any contract that can receive a callhook on L2, sent through the bridge from L1, must\n * be allowlisted by the governor, but also implement this interface that contains\n * the function that will actually be called by the L2GraphTokenGateway.\n */\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface ICallhookReceiver {\n /**\n * @notice Receive tokens with a callhook from the bridge\n * @param _from Token sender in L1\n * @param _amount Amount of tokens that were transferred\n * @param _data ABI-encoded callhook data\n */\n function onTokenTransfer(address _from, uint256 _amount, bytes calldata _data) external;\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/l2/curation/IL2Curation.sol": { + "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\n/**\n * @title Interface of the L2 Curation contract.\n */\ninterface IL2Curation {\n /**\n * @notice Set the subgraph service address.\n * @param _subgraphService Address of the SubgraphService contract\n */\n function setSubgraphService(address _subgraphService) external;\n\n /**\n * @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\n * @dev This function charges no tax and can only be called by GNS in specific scenarios (for now\n * only during an L1-L2 transfer).\n * @param _subgraphDeploymentID Subgraph deployment pool from where to mint signal\n * @param _tokensIn Amount of Graph Tokens to deposit\n * @return Signal minted\n */\n function mintTaxFree(bytes32 _subgraphDeploymentID, uint256 _tokensIn) external returns (uint256);\n\n /**\n * @notice Calculate amount of signal that can be bought with tokens in a curation pool,\n * without accounting for curation tax.\n * @param _subgraphDeploymentID Subgraph deployment for which to mint signal\n * @param _tokensIn Amount of tokens used to mint signal\n * @return Amount of signal that can be bought\n */\n function tokensToSignalNoTax(bytes32 _subgraphDeploymentID, uint256 _tokensIn) external view returns (uint256);\n\n /**\n * @notice Calculate the amount of tokens that would be recovered if minting signal with\n * the input tokens and then burning it. This can be used to compute rounding error.\n * This function does not account for curation tax.\n * @param _subgraphDeploymentID Subgraph deployment for which to mint signal\n * @param _tokensIn Amount of tokens used to mint signal\n * @return Amount of tokens that would be recovered after minting and burning signal\n */\n function tokensToSignalToTokensNoTax(\n bytes32 _subgraphDeploymentID,\n uint256 _tokensIn\n ) external view returns (uint256);\n}\n" + }, + "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol": { + "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\nimport { ICallhookReceiver } from \"../../gateway/ICallhookReceiver.sol\";\n\n/**\n * @title Interface for the L2GNS contract.\n */\ninterface IL2GNS is ICallhookReceiver {\n enum L1MessageCodes {\n RECEIVE_SUBGRAPH_CODE,\n RECEIVE_CURATOR_BALANCE_CODE\n }\n\n /**\n * @dev The SubgraphL2TransferData struct holds information\n * about a subgraph related to its transfer from L1 to L2.\n */\n struct SubgraphL2TransferData {\n uint256 tokens; // GRT that will be sent to L2 to mint signal\n mapping(address => bool) curatorBalanceClaimed; // True for curators whose balance has been claimed in L2\n bool l2Done; // Transfer finished on L2 side\n uint256 subgraphReceivedOnL2BlockNumber; // Block number when the subgraph was received on L2\n }\n\n /**\n * @notice Finish a subgraph transfer from L1.\n * The subgraph must have been previously sent through the bridge\n * using the sendSubgraphToL2 function on L1GNS.\n * @param _l2SubgraphID Subgraph ID in L2 (aliased from the L1 subgraph ID)\n * @param _subgraphDeploymentID Latest subgraph deployment to assign to the subgraph\n * @param _subgraphMetadata IPFS hash of the subgraph metadata\n * @param _versionMetadata IPFS hash of the version metadata\n */\n function finishSubgraphTransferFromL1(\n uint256 _l2SubgraphID,\n bytes32 _subgraphDeploymentID,\n bytes32 _subgraphMetadata,\n bytes32 _versionMetadata\n ) external;\n\n /**\n * @notice Return the aliased L2 subgraph ID from a transferred L1 subgraph ID\n * @param _l1SubgraphID L1 subgraph ID\n * @return L2 subgraph ID\n */\n function getAliasedL2SubgraphID(uint256 _l1SubgraphID) external pure returns (uint256);\n\n /**\n * @notice Return the unaliased L1 subgraph ID from a transferred L2 subgraph ID\n * @param _l2SubgraphID L2 subgraph ID\n * @return L1subgraph ID\n */\n function getUnaliasedL1SubgraphID(uint256 _l2SubgraphID) external pure returns (uint256);\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 * \n * @param allocationId The allocation Id\n * @return isActive Whether the allocation is active or not\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 bool isActive,\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" + }, + "@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 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 _rewardsIssuer, 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 * - Note that in both cases if using {__DataService_init_unchained} variant the corresponding parent\n * initializers must be called in the implementation.\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 */\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 /// @inheritdoc IDataService\n function getThawingPeriodRange() external view returns (uint64, uint64) {\n return _getThawingPeriodRange();\n }\n\n /// @inheritdoc IDataService\n function getVerifierCutRange() external view returns (uint32, uint32) {\n return _getVerifierCutRange();\n }\n\n /// @inheritdoc IDataService\n function getProvisionTokensRange() external view returns (uint256, uint256) {\n return _getProvisionTokensRange();\n }\n\n /// @inheritdoc IDataService\n function getDelegationRatio() external view returns (uint32) {\n return _getDelegationRatio();\n }\n\n /**\n * @notice Initializes the contract and any parent contracts.\n */\n function __DataService_init() internal onlyInitializing {\n __ProvisionManager_init_unchained();\n __DataService_init_unchained();\n }\n\n /**\n * @notice Initializes the contract.\n */\n function __DataService_init_unchained() internal onlyInitializing {}\n}\n" + }, + "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title DataServiceStorage\n * @dev This contract holds the storage variables for the DataService 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 */\nabstract contract DataServiceV1Storage {\n /// @dev Gap to allow adding variables in future upgrades\n /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract\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 * @dev This contract inherits from {DataService} which needs to be initialized, please see\n * {DataService} for detailed instructions.\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 */\nabstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDataServiceFees {\n using ProvisionTracker for mapping(address => uint256);\n using LinkedList for LinkedList.List;\n\n /// @inheritdoc IDataServiceFees\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 Releases expired stake claims for a service provider.\n * @dev This function can be overriden and/or disabled.\n * @dev Note that the list is traversed by creation date not by releasableAt date. Traversing will stop\n * when the first stake claim that is not yet expired is found even if later stake claims have expired. This\n * could happen if stake claims are genereted with different unlock periods.\n * @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n * @param _serviceProvider The address of the service provider\n * @param _numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed.\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 Whether 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 * @return The stake claim details\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 * @return The next stake claim ID\n */\n function _getNextStakeClaim(bytes32 _claimId) private view returns (bytes32) {\n return claims[_claimId].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 * @return The stake claim ID\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nabstract contract DataServiceFeesV1Storage {\n /// @notice The amount of tokens locked in stake claims for each service provider\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 /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract\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 * @dev This contract inherits from {DataService} which needs to be initialized, please see\n * {DataService} for detailed instructions.\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 */\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 /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\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 /// @inheritdoc IDataServicePausable\n function pause() external override onlyPauseGuardian {\n _pause();\n }\n\n /// @inheritdoc IDataServicePausable\n function unpause() external override onlyPauseGuardian {\n _unpause();\n }\n\n /**\n * @notice Initializes the contract and parent contracts\n */\n function __DataServicePausable_init() internal onlyInitializing {\n __Pausable_init_unchained();\n __DataServicePausable_init_unchained();\n }\n\n /**\n * @notice Initializes the contract\n */\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 {\n require(\n pauseGuardians[_pauseGuardian] == !_allowed,\n DataServicePausablePauseGuardianNoChange(_pauseGuardian, _allowed)\n );\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 *\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 * @param tokens The amount of tokens to be locked in the claim\n * @param createdAt The timestamp when the claim was created\n * @param releasableAt The timestamp when the tokens can be released\n * @param nextClaim The next claim in the linked list\n */\n struct StakeClaim {\n uint256 tokens;\n uint256 createdAt;\n uint256 releasableAt;\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 * @param claimId The id of the stake claim\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 Emitted when a pause guardian is set to the same allowed status\n * @param account The address of the pause guardian\n * @param allowed The allowed status of the pause guardian\n */\n error DataServicePausablePauseGuardianNoChange(address account, bool allowed);\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nlibrary ProvisionTracker {\n /**\n * @notice Thrown when trying to lock more tokens than available\n * @param tokensAvailable The amount of tokens available\n * @param tokensRequired The amount of tokens required\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 * @return true if the service provider has enough tokens available to lock, false otherwise\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 *\n * Note that default values for all provision parameters provide the most permissive configuration, it's\n * highly recommended to override them at the data service level.\n *\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 */\nabstract contract ProvisionManager is Initializable, GraphDirectory, ProvisionManagerV1Storage {\n using UintRange for uint256;\n\n /// @notice The default minimum verifier cut.\n uint32 internal constant DEFAULT_MIN_VERIFIER_CUT = type(uint32).min;\n\n /// @notice The default maximum verifier cut.\n uint32 internal constant DEFAULT_MAX_VERIFIER_CUT = uint32(PPMMath.MAX_PPM);\n\n /// @notice The default minimum thawing period.\n uint64 internal constant DEFAULT_MIN_THAWING_PERIOD = type(uint64).min;\n\n /// @notice The default maximum thawing period.\n uint64 internal constant DEFAULT_MAX_THAWING_PERIOD = type(uint64).max;\n\n /// @notice The default minimum provision tokens.\n uint256 internal constant DEFAULT_MIN_PROVISION_TOKENS = type(uint256).min;\n\n /// @notice The default maximum provision tokens.\n uint256 internal constant DEFAULT_MAX_PROVISION_TOKENS = type(uint256).max;\n\n /// @notice The default delegation ratio.\n uint32 internal constant DEFAULT_DELEGATION_RATIO = type(uint32).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 * @param serviceProvider The address of the 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 * @param serviceProvider The address of the service provider.\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 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 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 _setDelegationRatio(DEFAULT_DELEGATION_RATIO);\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 * @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 * Note that thawing tokens are not considered in this check.\n * @param _provision The provision to check.\n */\n function _checkProvisionTokens(IHorizonStaking.Provision memory _provision) internal view virtual {\n _checkValueInRange(\n _provision.tokens - _provision.tokensThawing,\n _minimumProvisionTokens,\n _maximumProvisionTokens,\n \"tokens\"\n );\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 The minimum allowed value for the provision tokens.\n * @return The maximum allowed value for the provision tokens.\n */\n function _getProvisionTokensRange() internal view virtual returns (uint256, uint256) {\n return (_minimumProvisionTokens, _maximumProvisionTokens);\n }\n\n /**\n * @notice Gets the range for the thawing period.\n * @return The minimum allowed value for the thawing period.\n * @return The maximum allowed value for the thawing period.\n */\n function _getThawingPeriodRange() internal view virtual returns (uint64, uint64) {\n return (_minimumThawingPeriod, _maximumThawingPeriod);\n }\n\n /**\n * @notice Gets the range for the verifier cut.\n * @return The minimum allowed value for the max verifier cut.\n * @return The maximum allowed value for the max verifier cut.\n */\n function _getVerifierCutRange() internal view virtual returns (uint32, uint32) {\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 * @return The provision.\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nabstract contract ProvisionManagerV1Storage {\n /// @notice The minimum amount of tokens required to register a provision in the data service\n uint256 internal _minimumProvisionTokens;\n\n /// @notice The maximum amount of tokens allowed to register a provision in the data service\n uint256 internal _maximumProvisionTokens;\n\n /// @notice The minimum thawing period required to register a provision in the data service\n uint64 internal _minimumThawingPeriod;\n\n /// @notice The maximum thawing period allowed to register a provision in the data service\n uint64 internal _maximumThawingPeriod;\n\n /// @notice The minimum verifier cut required to register a provision in the data service (in PPM)\n uint32 internal _minimumVerifierCut;\n\n /// @notice The maximum verifier cut allowed to register a provision in the data service (in PPM)\n uint32 internal _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 internal _delegationRatio;\n\n /// @dev Gap to allow adding variables in future upgrades\n /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 paymentType The type of payment as defined in {IGraphPayments}\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 tokens The total amount of tokens being collected\n * @param tokensProtocol Amount of tokens charged as protocol tax\n * @param tokensDataService Amount of tokens for the data service\n * @param tokensDelegationPool Amount of tokens for delegators\n * @param tokensReceiver Amount of tokens for the receiver\n * @param receiverDestination The address where the receiver's payment cut is sent.\n */\n event GraphPaymentCollected(\n PaymentTypes indexed paymentType,\n address indexed payer,\n address receiver,\n address indexed dataService,\n uint256 tokens,\n uint256 tokensProtocol,\n uint256 tokensDataService,\n uint256 tokensDelegationPool,\n uint256 tokensReceiver,\n address receiverDestination\n );\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 Thrown when trying to use a cut that is not expressed in PPM\n * @param cut The cut\n */\n error GraphPaymentsInvalidCut(uint256 cut);\n\n /**\n * @notice Initialize the contract\n */\n function initialize() external;\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 destination address. If the\n * destination address is zero the funds are automatically staked to the receiver. Note that the receiver \n * destination address can be set to the receiver address to collect funds on the receiver without re-staking.\n *\n * Note that the collected amount can be zero.\n *\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 dataServiceCut The data service cut in PPM\n * @param receiverDestination The address where the receiver's payment cut is sent.\n */\n function collect(\n PaymentTypes paymentType,\n address receiver,\n uint256 tokens,\n address dataService,\n uint256 dataServiceCut,\n address receiverDestination\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ninterface IGraphProxyAdmin {}\n" + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IPaymentsCollector } from \"./IPaymentsCollector.sol\";\nimport { IGraphPayments } from \"./IGraphPayments.sol\";\n\n/**\n * @title Interface for the {GraphTallyCollector} 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 GraphTally RAV (Receipt Aggregate Voucher).\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 */\ninterface IGraphTallyCollector is IPaymentsCollector {\n /**\n * @notice The Receipt Aggregate Voucher (RAV) struct\n * @param collectionId The ID of the collection \"bucket\" the RAV belongs to. Note that multiple RAVs can be collected for the same collection id.\n * @param payer The address of the payer the RAV was issued by\n * @param serviceProvider The address of the service provider the RAV was issued to\n * @param dataService The address of the data service the RAV was issued to\n * @param timestampNs The RAV timestamp, indicating the latest GraphTally Receipt in the RAV\n * @param valueAggregate The total amount owed to the service provider since the beginning of the payer-service provider relationship, including all debt that is already paid for.\n * @param metadata Arbitrary metadata to extend functionality if a data service requires it\n */\n struct ReceiptAggregateVoucher {\n bytes32 collectionId;\n address payer;\n address serviceProvider;\n address dataService;\n uint64 timestampNs;\n uint128 valueAggregate;\n bytes metadata;\n }\n\n /**\n * @notice A struct representing a signed RAV\n * @param rav The RAV\n * @param signature The signature of the RAV - 65 bytes: r (32 Bytes) || s (32 Bytes) || v (1 Byte)\n */\n struct SignedRAV {\n ReceiptAggregateVoucher rav;\n bytes signature;\n }\n\n /**\n * @notice Emitted when a RAV is collected\n * @param collectionId The ID of the collection \"bucket\" the RAV belongs to.\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 bytes32 indexed collectionId,\n address indexed payer,\n address serviceProvider,\n address indexed dataService,\n uint64 timestampNs,\n uint128 valueAggregate,\n bytes metadata,\n bytes signature\n );\n\n /**\n * @notice Thrown when the RAV signer is invalid\n */\n error GraphTallyCollectorInvalidRAVSigner();\n\n /**\n * @notice Thrown when the RAV is for a data service the service provider has no provision for\n * @param dataService The address of the data service\n */\n error GraphTallyCollectorUnauthorizedDataService(address dataService);\n\n /**\n * @notice 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 GraphTallyCollectorCallerNotDataService(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 GraphTallyCollectorInconsistentRAVTokens(uint256 tokens, uint256 tokensCollected);\n\n /**\n * @notice Thrown when the attempting to collect more tokens than what it's owed\n * @param tokensToCollect The amount of tokens to collect\n * @param maxTokensToCollect The maximum amount of tokens to collect\n */\n error GraphTallyCollectorInvalidTokensToCollectAmount(uint256 tokensToCollect, uint256 maxTokensToCollect);\n\n /**\n * @notice See {IPaymentsCollector.collect}\n * This variant adds the ability to partially collect a RAV by specifying the amount of tokens to collect.\n *\n * Requirements:\n * - The amount of tokens to collect must be less than or equal to the total amount of tokens in the RAV minus\n * the tokens already collected.\n * @param paymentType The payment type to collect\n * @param data Additional data required for the payment collection. Encoded as follows:\n * - SignedRAV `signedRAV`: The signed RAV\n * - uint256 `dataServiceCut`: The data service cut in PPM\n * - address `receiverDestination`: The address where the receiver's payment should be sent.\n * @param tokensToCollect The amount of tokens to collect\n * @return The amount of tokens collected\n */\n function collect(\n IGraphPayments.PaymentTypes paymentType,\n bytes calldata data,\n uint256 tokensToCollect\n ) external returns (uint256);\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/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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ninterface IHorizonStakingBase {\n /**\n * @notice Emitted when a service provider stakes tokens.\n * @dev TRANSITION PERIOD: 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 HorizonStakeDeposited(address indexed serviceProvider, uint256 tokens);\n\n /**\n * @notice Thrown when using an invalid thaw request type.\n */\n error HorizonStakingInvalidThawRequestType();\n\n /**\n * @notice Gets the details of a service provider.\n * @param serviceProvider The address of the service provider.\n * @return The service provider details.\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 thawRequestType The type of thaw request.\n * @param thawRequestId The id of the thaw request.\n * @return The thaw request details.\n */\n function getThawRequest(\n IHorizonStakingTypes.ThawRequestType thawRequestType,\n bytes32 thawRequestId\n ) 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 thawRequestType The type of thaw request.\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 IHorizonStakingTypes.ThawRequestType thawRequestType,\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 that can be releasedfor a given provision.\n * @dev Note that the value returned by this function does not return the total amount of thawed tokens\n * but only those that can be released. If thaw requests are created with different thawing periods it's\n * possible that an unexpired thaw request temporarily blocks the release of other ones that have already\n * expired. This function will stop counting when it encounters the first thaw request that is not yet expired.\n * @param thawRequestType The type of thaw request.\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(\n IHorizonStakingTypes.ThawRequestType thawRequestType,\n address serviceProvider,\n address verifier,\n address owner\n ) external view returns (uint256);\n\n /**\n * @notice Gets the maximum allowed thawing period for a provision.\n * @return The maximum allowed thawing period in seconds.\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 * @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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 * @param indexer The indexer address\n * @param subgraphDeploymentID The subgraph deployment ID\n * @param tokens The amount of tokens allocated to the subgraph deployment\n * @param createdAtEpoch The epoch when the allocation was created\n * @param closedAtEpoch The epoch when the allocation was closed\n * @param collectedFees The amount of collected fees for the allocation\n * @param __DEPRECATED_effectiveAllocation Deprecated field.\n * @param accRewardsPerAllocatedToken Snapshot used for reward calculation\n * @param distributedRebates The amount of collected rebates that have been rebated\n */\n struct Allocation {\n address indexer;\n bytes32 subgraphDeploymentID;\n uint256 tokens;\n uint256 createdAtEpoch;\n uint256 closedAtEpoch;\n uint256 collectedFees;\n uint256 __DEPRECATED_effectiveAllocation;\n uint256 accRewardsPerAllocatedToken;\n uint256 distributedRebates;\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 * @param indexer The indexer address\n * @param subgraphDeploymentID The subgraph deployment ID\n * @param epoch The protocol epoch the allocation was closed on\n * @param tokens The amount of tokens unallocated from the allocation\n * @param allocationID The allocation identifier\n * @param sender The address closing the allocation\n * @param poi The proof of indexing submitted by the sender\n * @param isPublic True if the allocation was force closed by someone other than the indexer/operator\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 * @param assetHolder The address of the asset holder, the entity paying the query fees\n * @param indexer The indexer address\n * @param subgraphDeploymentID The subgraph deployment ID\n * @param allocationID The allocation identifier\n * @param epoch The protocol epoch the rebate was collected on\n * @param tokens The amount of tokens collected\n * @param protocolTax The amount of tokens burnt as protocol tax\n * @param curationFees The amount of tokens distributed to the curation pool\n * @param queryFees The amount of tokens collected as query fees\n * @param queryRebates The amount of tokens distributed to the indexer\n * @param delegationRewards The amount of tokens collected from 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 * @dev Emitted when `indexer` was slashed for a total of `tokens` amount.\n * Tracks `reward` amount of tokens given to `beneficiary`.\n * @param indexer The indexer address\n * @param tokens The amount of tokens slashed\n * @param reward The amount of reward tokens to send to a beneficiary\n * @param beneficiary The address of a beneficiary to receive a reward for the slashing\n */\n event StakeSlashed(address indexed indexer, uint256 tokens, uint256 reward, address beneficiary);\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 * @dev Collect and rebate query fees to the indexer\n * This function will accept calls with zero tokens.\n * We use an exponential rebate formula to calculate the amount of tokens to rebate to the indexer.\n * This implementation allows collecting multiple times on the same allocation, keeping track of the\n * total amount rebated, the total amount collected and compensating the indexer for the difference.\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 Slash the indexer stake. Delegated tokens are not subject to slashing.\n * Note that depending on the state of the indexer's stake, the slashed amount might be smaller than the\n * requested slash amount. This can happen if the indexer has moved a significant part of their stake to\n * a provision. Any outstanding slashing amount should be settled using Horizon's slash function\n * {IHorizonStaking.slash}.\n * @dev Can only be called by the slasher role.\n * @param indexer Address of indexer to slash\n * @param tokens Amount of tokens to slash from the indexer stake\n * @param reward Amount of reward tokens to send to a beneficiary\n * @param beneficiary Address of a beneficiary to receive a reward for the slashing\n */\n function legacySlash(address indexer, uint256 tokens, uint256 reward, address beneficiary) external;\n\n /**\n * @notice (Legacy) Return true if operator is allowed for the service provider on the subgraph data service.\n * @param operator Address of the operator\n * @param indexer Address of the service provider\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 * Deprecated, now enforced by each data service (verifier)\n * @return Thawing period in blocks\n */\n function __DEPRECATED_getThawingPeriod() external view returns (uint64);\n\n /**\n * @notice Return the address of the subgraph data service.\n * @dev TRANSITION PERIOD: After transition period move to main HorizonStaking contract\n * @return Address of the subgraph data service\n */\n function getSubgraphService() external view returns (address);\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\";\nimport { IHorizonStakingTypes } from \"./IHorizonStakingTypes.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 * @dev TRANSITION PERIOD: After transition period rename to IHorizonStaking.\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 */\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 now locked (including previously locked tokens)\n * @param until The block number until the stake is locked\n */\n event HorizonStakeLocked(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 HorizonStakeWithdrawn(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 * @param shares The amount of shares delegated\n */\n event TokensDelegated(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed delegator,\n uint256 tokens,\n uint256 shares\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 * @param shares The amount of shares undelegated\n */\n event TokensUndelegated(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed delegator,\n uint256 tokens,\n uint256 shares\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 `delegator` withdrew delegated `tokens` from `indexer` using `withdrawDelegated`.\n * @dev This event is for the legacy `withdrawDelegated` function.\n * @param indexer The address of the indexer\n * @param delegator The address of the delegator\n * @param tokens The amount of tokens withdrawn\n */\n event StakeDelegatedWithdrawn(address indexed indexer, address indexed delegator, uint256 tokens);\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 requestType The type of thaw request\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 * @param nonce The nonce of the thaw request\n */\n event ThawRequestCreated(\n IHorizonStakingTypes.ThawRequestType indexed requestType,\n address indexed serviceProvider,\n address indexed verifier,\n address owner,\n uint256 shares,\n uint64 thawingUntil,\n bytes32 thawRequestId,\n uint256 nonce\n );\n\n /**\n * @notice Emitted when a thaw request is fulfilled, meaning the stake is released.\n * @param requestType The type of thaw request\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 IHorizonStakingTypes.ThawRequestType indexed requestType,\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 * @param requestType The type of thaw request\n */\n event ThawRequestsFulfilled(\n IHorizonStakingTypes.ThawRequestType indexed requestType,\n address indexed serviceProvider,\n address indexed verifier,\n address 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 */\n event DelegationSlashingEnabled();\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 a verifier other than the\n * subgraph data service. This restriction only applies during the transition period.\n * @param verifier The verifier address\n */\n error HorizonStakingInvalidVerifier(address verifier);\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 the minimum token amount required for delegation is not met.\n * @param tokens The actual token amount\n * @param minTokens The minimum required token amount\n */\n error HorizonStakingInsufficientDelegationTokens(uint256 tokens, uint256 minTokens);\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 /**\n * @notice Thrown when attempting to fulfill a thaw request but there is nothing thawing.\n */\n error HorizonStakingNothingThawing();\n\n /**\n * @notice Thrown when a service provider has too many thaw requests.\n */\n error HorizonStakingTooManyThawRequests();\n\n /**\n * @notice Thrown when attempting to withdraw tokens that have not thawed (legacy undelegate).\n */\n error HorizonStakingNothingToWithdraw();\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 * @param verifier The verifier address\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 /**\n * @notice Thrown when a legacy slash fails.\n */\n error HorizonStakingLegacySlashFailed();\n\n /**\n * @notice Thrown when there attempting to slash a provision with no tokens to slash.\n */\n error HorizonStakingNoTokensToSlash();\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 {HorizonStakeDeposited} 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 {HorizonStakeDeposited} 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 /**\n * @notice Deposit tokens on the service provider stake, on behalf of the service provider,\n * provisioned to a specific verifier.\n * @dev This function can be called by the service provider, by an authorized operator or by the verifier itself.\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 {HorizonStakeDeposited} 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 * Note that after the transition period if there are tokens still locked they will have to be\n * withdrawn by calling {withdraw}.\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 {HorizonStakeLocked} event during the transition period.\n * Emits a {HorizonStakeWithdrawn} 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 During the transition period, only the subgraph data service can be used as a verifier. This\n * prevents an escape hatch for legacy allocation stake.\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. Otherwise, the function\n * will attempt to fulfill all thaw requests until the first one that is not yet expired is found.\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}. Calling this function is a no-op if the new parameters are the same as the current\n * ones.\n * @dev This two step update process prevents the service provider from changing the parameters\n * without the verifier's consent.\n *\n * Requirements:\n * - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Note that if `_maxThawingPeriod` changes the\n * function will not revert if called with the same thawing period as the current one.\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 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. Otherwise, the function\n * will attempt to fulfill all thaw requests until the first one that is not yet expired is found.\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 tokens undelegated before horizon upgrade.\n * @dev See {delegate}.\n * @param serviceProvider The service provider address\n * @param deprecated Deprecated parameter kept for backwards compatibility\n * @return The amount of tokens withdrawn\n */\n function withdrawDelegated(\n address serviceProvider,\n address deprecated // kept for backwards compatibility\n ) external returns (uint256);\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 /**\n * @notice Get the address of the staking extension.\n * @return The address of the staking extension\n */\n function getStakingExtension() external view returns (address);\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/**\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 * @param tokens Service provider tokens in the provision (does not include delegated tokens)\n * @param tokensThawing Service provider tokens that are being thawed (and will stop being slashable soon)\n * @param sharesThawing Shares representing the thawing tokens\n * @param maxVerifierCut Max amount that can be taken by the verifier when slashing, expressed in parts-per-million of the amount slashed\n * @param thawingPeriod Time, in seconds, tokens must thaw before being withdrawn\n * @param createdAt Timestamp when the provision was created\n * @param maxVerifierCutPending Pending value for `maxVerifierCut`. Verifier needs to accept it before it becomes active.\n * @param thawingPeriodPending Pending value for `thawingPeriod`. Verifier needs to accept it before it becomes active.\n * @param lastParametersStagedAt Timestamp when the provision parameters were last staged. Can be used by data service implementation to\n * implement arbitrary parameter update logic.\n * @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n */\n struct Provision {\n uint256 tokens;\n uint256 tokensThawing;\n uint256 sharesThawing;\n uint32 maxVerifierCut;\n uint64 thawingPeriod;\n uint64 createdAt;\n uint32 maxVerifierCutPending;\n uint64 thawingPeriodPending;\n uint256 lastParametersStagedAt;\n uint256 thawingNonce;\n }\n\n /**\n * @notice Public representation of a service provider.\n * @dev See {ServiceProviderInternal} for the actual storage representation\n * @param tokensStaked Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n * @param tokensProvisioned Total amount of tokens locked in provisions (only staked by the provider)\n */\n struct ServiceProvider {\n uint256 tokensStaked;\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 * @param tokensStaked Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n * @param __DEPRECATED_tokensAllocated (Deprecated) Tokens used in allocations\n * @param __DEPRECATED_tokensLocked (Deprecated) Tokens locked for withdrawal subject to thawing period\n * @param __DEPRECATED_tokensLockedUntil (Deprecated) Block when locked tokens can be withdrawn\n * @param tokensProvisioned Total amount of tokens locked in provisions (only staked by the provider)\n */\n struct ServiceProviderInternal {\n uint256 tokensStaked;\n uint256 __DEPRECATED_tokensAllocated;\n uint256 __DEPRECATED_tokensLocked;\n uint256 __DEPRECATED_tokensLockedUntil;\n uint256 tokensProvisioned;\n }\n\n /**\n * @notice Public representation of a delegation pool.\n * @dev See {DelegationPoolInternal} for the actual storage representation\n * @param tokens Total tokens as pool reserves\n * @param shares Total shares minted in the pool\n * @param tokensThawing Tokens thawing in the pool\n * @param sharesThawing Shares representing the thawing tokens\n * @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n */\n struct DelegationPool {\n uint256 tokens;\n uint256 shares;\n uint256 tokensThawing;\n uint256 sharesThawing;\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 * @param __DEPRECATED_cooldownBlocks (Deprecated) Time, in blocks, an indexer must wait before updating delegation parameters\n * @param __DEPRECATED_indexingRewardCut (Deprecated) Percentage of indexing rewards for the service provider, in PPM\n * @param __DEPRECATED_queryFeeCut (Deprecated) Percentage of query fees for the service provider, in PPM\n * @param __DEPRECATED_updatedAtBlock (Deprecated) Block when the delegation parameters were last updated\n * @param tokens Total tokens as pool reserves\n * @param shares Total shares minted in the pool\n * @param delegators Delegation details by delegator\n * @param tokensThawing Tokens thawing in the pool\n * @param sharesThawing Shares representing the thawing tokens\n * @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n */\n struct DelegationPoolInternal {\n uint32 __DEPRECATED_cooldownBlocks;\n uint32 __DEPRECATED_indexingRewardCut;\n uint32 __DEPRECATED_queryFeeCut;\n uint256 __DEPRECATED_updatedAtBlock;\n uint256 tokens;\n uint256 shares;\n mapping(address delegator => DelegationInternal delegation) delegators;\n uint256 tokensThawing;\n uint256 sharesThawing;\n uint256 thawingNonce;\n }\n\n /**\n * @notice Public representation of delegation details.\n * @dev See {DelegationInternal} for the actual storage representation\n * @param shares Shares owned by a delegator in the pool\n */\n struct Delegation {\n uint256 shares;\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 * @param shares Shares owned by the delegator in the pool\n * @param __DEPRECATED_tokensLocked Tokens locked for undelegation\n * @param __DEPRECATED_tokensLockedUntil Epoch when locked tokens can be withdrawn\n */\n struct DelegationInternal {\n uint256 shares;\n uint256 __DEPRECATED_tokensLocked;\n uint256 __DEPRECATED_tokensLockedUntil;\n }\n\n /**\n * @dev Enum to specify the type of thaw request.\n * @param Provision Represents a thaw request for a provision.\n * @param Delegation Represents a thaw request for a delegation.\n */\n enum ThawRequestType {\n Provision,\n Delegation\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 * @param shares Shares that represent the tokens being thawed\n * @param thawingUntil The timestamp when the thawed funds can be removed from the provision\n * @param nextRequest Id of the next thaw request in the linked list\n * @param thawingNonce Used to invalidate unfulfilled thaw requests\n */\n struct ThawRequest {\n uint256 shares;\n uint64 thawingUntil;\n bytes32 nextRequest;\n uint256 thawingNonce;\n }\n\n /**\n * @notice Parameters to fulfill thaw requests.\n * @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function.\n * @param requestType The type of thaw request (Provision or Delegation)\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 tokensThawing The current amount of tokens already thawing\n * @param sharesThawing The current amount of shares already thawing\n * @param nThawRequests The number of thaw requests to fulfill. If set to 0, all thaw requests are fulfilled.\n * @param thawingNonce The current valid thawing nonce. Any thaw request with a different nonce is invalid and should be ignored.\n */\n struct FulfillThawRequestsParams {\n ThawRequestType requestType;\n address serviceProvider;\n address verifier;\n address owner;\n uint256 tokensThawing;\n uint256 sharesThawing;\n uint256 nThawRequests;\n uint256 thawingNonce;\n }\n\n /**\n * @notice Results of the traversal of thaw requests.\n * @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function.\n * @param requestsFulfilled The number of thaw requests fulfilled\n * @param tokensThawed The total amount of tokens thawed\n * @param tokensThawing The total amount of tokens thawing\n * @param sharesThawing The total amount of shares thawing\n */\n struct TraverseThawRequestsResults {\n uint256 requestsFulfilled;\n uint256 tokensThawed;\n uint256 tokensThawing;\n uint256 sharesThawing;\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 collectionId The id for the collection. Can be used at the discretion of the collector to group multiple payments.\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 tokens The amount of tokens being collected\n */\n event PaymentCollected(\n IGraphPayments.PaymentTypes paymentType,\n bytes32 indexed collectionId,\n address indexed payer,\n address receiver,\n address indexed dataService,\n uint256 tokens\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 *\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 * @return The amount of tokens collected\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ninterface IPaymentsEscrow {\n /**\n * @notice Escrow account for a payer-collector-receiver tuple\n * @param balance The total token balance for the payer-collector-receiver tuple\n * @param tokensThawing The amount of tokens currently being thawed\n * @param thawEndTimestamp The timestamp at which thawing period ends (zero if not thawing)\n */\n struct EscrowAccount {\n uint256 balance;\n uint256 tokensThawing;\n uint256 thawEndTimestamp;\n }\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 collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokensThawing The amount of tokens that were being thawed\n * @param thawEndTimestamp The timestamp at which the thawing period was ending\n */\n event CancelThaw(\n address indexed payer,\n address indexed collector,\n address indexed receiver,\n uint256 tokensThawing,\n uint256 thawEndTimestamp\n );\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 paymentType The type of payment being collected as defined in the {IGraphPayments} interface\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 * @param receiverDestination The address where the receiver's payment should be sent.\n */\n event EscrowCollected(\n IGraphPayments.PaymentTypes indexed paymentType,\n address indexed payer,\n address indexed collector,\n address receiver,\n uint256 tokens,\n address receiverDestination\n );\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 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 Initialize the contract\n */\n function initialize() 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 * 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.\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 Cancels the thawing of escrow from a payer-collector-receiver's escrow account.\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @dev Requirements:\n * - The payer must be thawing funds\n * Emits a {CancelThaw} event.\n */\n function cancelThaw(address collector, address receiver) 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 *\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 dataServiceCut The data service cut in PPM that {GraphPayments} should send\n * @param receiverDestination The address where the receiver's payment should be sent.\n */\n function collect(\n IGraphPayments.PaymentTypes paymentType,\n address payer,\n address receiver,\n uint256 tokens,\n address dataService,\n uint256 dataServiceCut,\n address receiverDestination\n ) external;\n\n /**\n * @notice Get the balance of a payer-collector-receiver tuple\n * This function will return 0 if the current balance is less than the amount of funds being thawed.\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 * @return The balance of the payer-collector-receiver tuple\n */\n function getBalance(address payer, address collector, address receiver) external view returns (uint256);\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nlibrary LinkedList {\n using LinkedList for List;\n\n /**\n * @notice Represents a linked list\n * @param head The head of the list\n * @param tail The tail of the list\n * @param nonce A nonce, which can optionally be used to generate unique ids\n * @param count The number of items in the list\n */\n struct List {\n bytes32 head;\n bytes32 tail;\n uint256 nonce;\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 * @return The id of the head of the list.\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 * @return The number of items processed\n * @return The final accumulator data.\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 equal or 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 * @param x The first number\n * @param y The second number\n * @return The minimum of the 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 * @param x The first number\n * @param y The second number\n * @return The difference between the 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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 * @return The result of the multiplication.\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 * @return true if the value is in PPM, false otherwise.\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nlibrary UintRange {\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 * @return true if the value is in the range, false otherwise.\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 // TRANSITION PERIOD: remove these once HorizonStakingExtension is removed\n\n /// @notice The Curation contract address\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 * @return 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 * @return 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 * @return 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 * @return 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 * @return 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 * @return 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 * @return The Rewards Manager contract address\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 * @return 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 * @return 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 * @return 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 * @return The address of the contract\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.3.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 reinitialization) 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 Pointer to storage slot. Allows integrators to override it with a custom storage location.\n *\n * NOTE: Consider following the ERC-7201 formula to derive storage locations.\n */\n function _initializableStorageSlot() internal pure virtual returns (bytes32) {\n return INITIALIZABLE_STORAGE;\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 bytes32 slot = _initializableStorageSlot();\n assembly {\n $.slot := slot\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.3.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 * @inheritdoc IERC5267\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.3.0) (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 {Context-_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 * {Context-_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.3.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 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 function __Pausable_init() internal onlyInitializing {\n }\n\n function __Pausable_init_unchained() internal onlyInitializing {\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.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\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.2.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\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 Errors.InsufficientBalance(address(this).balance, amount);\n }\n\n (bool success, bytes memory returndata) = recipient.call{value: amount}(\"\");\n if (!success) {\n _revert(returndata);\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 * {Errors.FailedCall} 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 Errors.InsufficientBalance(address(this).balance, value);\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 {Errors.FailedCall}) in case\n * of an 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 {Errors.FailedCall} 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 {Errors.FailedCall}.\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 assembly (\"memory-safe\") {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert Errors.FailedCall();\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.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(\n bytes32 hash,\n bytes memory signature\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\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 assembly (\"memory-safe\") {\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[ERC-2098 short signatures]\n */\n function tryRecover(\n bytes32 hash,\n bytes32 r,\n bytes32 vs\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\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 recovered, RecoverError err, bytes32 errArg) {\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.3.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[ERC-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 ERC-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://ethereum.org/en/developers/docs/apis/json-rpc/#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 assembly (\"memory-safe\") {\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 ERC-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://ethereum.org/en/developers/docs/apis/json-rpc/#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 ERC-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 Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32.\n */\n function toDataWithIntendedValidatorHash(\n address validator,\n bytes32 messageHash\n ) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n mstore(0x00, hex\"19_00\")\n mstore(0x02, shl(96, validator))\n mstore(0x16, messageHash)\n digest := keccak256(0x00, 0x36)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-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 assembly (\"memory-safe\") {\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/Errors.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of common custom errors used in multiple contracts\n *\n * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n * It is recommended to avoid relying on the error API for critical functionality.\n *\n * _Available since v5.1._\n */\nlibrary Errors {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error InsufficientBalance(uint256 balance, uint256 needed);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedCall();\n\n /**\n * @dev The deployment failed.\n */\n error FailedDeployment();\n\n /**\n * @dev A necessary precompile is missing.\n */\n error MissingPrecompile(address);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\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 Return the 512-bit addition of two uint256.\n *\n * The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low.\n */\n function add512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n assembly (\"memory-safe\") {\n low := add(a, b)\n high := lt(low, a)\n }\n }\n\n /**\n * @dev Return the 512-bit multiplication of two uint256.\n *\n * The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low.\n */\n function mul512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n // 512-bit multiply [high low] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = high * 2²⁵⁶ + low.\n assembly (\"memory-safe\") {\n let mm := mulmod(a, b, not(0))\n low := mul(a, b)\n high := sub(sub(mm, low), lt(mm, low))\n }\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with a success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n success = c >= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a - b;\n success = c <= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a * b;\n assembly (\"memory-safe\") {\n // Only true when the multiplication doesn't overflow\n // (c / a == b) || (a == 0)\n success := or(eq(div(c, a), b), iszero(a))\n }\n // equivalent to: success ? c : 0\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `DIV` opcode returns zero when the denominator is 0.\n result := div(a, b)\n }\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `MOD` opcode returns zero when the denominator is 0.\n result := mod(a, b)\n }\n }\n }\n\n /**\n * @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingAdd(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryAdd(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Unsigned saturating subtraction, bounds to zero instead of overflowing.\n */\n function saturatingSub(uint256 a, uint256 b) internal pure returns (uint256) {\n (, uint256 result) = trySub(a, b);\n return result;\n }\n\n /**\n * @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingMul(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryMul(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\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 ternary(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 ternary(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 Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * 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 (uint256 high, uint256 low) = mul512(x, y);\n\n // Handle non-overflow cases, 256 by 256 division.\n if (high == 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 low / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= high) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [high low].\n uint256 remainder;\n assembly (\"memory-safe\") {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n high := sub(high, gt(remainder, low))\n low := sub(low, 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 (\"memory-safe\") {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [high low] by twos.\n low := div(low, twos)\n\n // Flip twos such that it is 2²⁵⁶ / 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 high into low.\n low |= high * twos;\n\n // Invert denominator mod 2²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, this is the final result. We don't need to compute the high bits of the result and high\n // is no longer required.\n result = low * inverse;\n return result;\n }\n }\n\n /**\n * @dev 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 return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256.\n */\n function mulShr(uint256 x, uint256 y, uint8 n) internal pure returns (uint256 result) {\n unchecked {\n (uint256 high, uint256 low) = mul512(x, y);\n if (high >= 1 << n) {\n Panic.panic(Panic.UNDER_OVERFLOW);\n }\n return (high << (256 - n)) | (low >> n);\n }\n }\n\n /**\n * @dev Calculates x * y >> n with full precision, following the selected rounding direction.\n */\n function mulShr(uint256 x, uint256 y, uint8 n, Rounding rounding) internal pure returns (uint256) {\n return mulShr(x, y, n) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, 1 << n) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n *\n * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n *\n * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n */\n function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n unchecked {\n return Math.modExp(a, p - 2, p);\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n assembly (\"memory-safe\") {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\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 * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\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 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // If upper 8 bits of 16-bit half set, add 8 to result\n r |= SafeCast.toUint((x >> r) > 0xff) << 3;\n // If upper 4 bits of 8-bit half set, add 4 to result\n r |= SafeCast.toUint((x >> r) > 0xf) << 2;\n\n // Shifts value right by the current result and use it as an index into this lookup table:\n //\n // | x (4 bits) | index | table[index] = MSB position |\n // |------------|---------|-----------------------------|\n // | 0000 | 0 | table[0] = 0 |\n // | 0001 | 1 | table[1] = 0 |\n // | 0010 | 2 | table[2] = 1 |\n // | 0011 | 3 | table[3] = 1 |\n // | 0100 | 4 | table[4] = 2 |\n // | 0101 | 5 | table[5] = 2 |\n // | 0110 | 6 | table[6] = 2 |\n // | 0111 | 7 | table[7] = 2 |\n // | 1000 | 8 | table[8] = 3 |\n // | 1001 | 9 | table[9] = 3 |\n // | 1010 | 10 | table[10] = 3 |\n // | 1011 | 11 | table[11] = 3 |\n // | 1100 | 12 | table[12] = 3 |\n // | 1101 | 13 | table[13] = 3 |\n // | 1110 | 14 | table[14] = 3 |\n // | 1111 | 15 | table[15] = 3 |\n //\n // The lookup table is represented as a 32-byte value with the MSB positions for 0-15 in the last 16 bytes.\n assembly (\"memory-safe\") {\n r := or(r, byte(shr(r, x), 0x0000010102020202030303030303030300000000000000000000000000000000))\n }\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\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 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // Add 1 if upper 8 bits of 16-bit half set, and divide accumulated result by 8\n return (r >> 3) | SafeCast.toUint((x >> r) > 0xff);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\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/SafeCast.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n assembly (\"memory-safe\") {\n u := iszero(iszero(b))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));\n }\n }\n\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return ternary(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 ternary(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 // Formula from the \"Bit Twiddling Hacks\" by Sean Eron Anderson.\n // Since `n` is a signed integer, the generated bytecode will use the SAR opcode to perform the right shift,\n // taking advantage of the most significant (or \"sign\" bit) in two's complement representation.\n // This opcode adds new most significant bits set to the value of the previous most significant bit. As a result,\n // the mask will either be `bytes32(0)` (if n is positive) or `~bytes32(0)` (if n is negative).\n int256 mask = n >> 255;\n\n // A `bytes32(0)` mask leaves the input unchanged, while a `~bytes32(0)` mask complements it.\n return uint256((n + mask) ^ mask);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SafeCast} from \"./math/SafeCast.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n using SafeCast for *;\n\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n uint256 private constant SPECIAL_CHARS_LOOKUP =\n (1 << 0x08) | // backspace\n (1 << 0x09) | // tab\n (1 << 0x0a) | // newline\n (1 << 0x0c) | // form feed\n (1 << 0x0d) | // carriage return\n (1 << 0x22) | // double quote\n (1 << 0x5c); // backslash\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 The string being parsed contains characters that are not in scope of the given base.\n */\n error StringsInvalidChar();\n\n /**\n * @dev The string being parsed is not a properly formatted address.\n */\n error StringsInvalidAddressFormat();\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 assembly (\"memory-safe\") {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n assembly (\"memory-safe\") {\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 Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n * representation, according to EIP-55.\n */\n function toChecksumHexString(address addr) internal pure returns (string memory) {\n bytes memory buffer = bytes(toHexString(addr));\n\n // hash the hex part of buffer (skip length + 2 bytes, length 40)\n uint256 hashValue;\n assembly (\"memory-safe\") {\n hashValue := shr(96, keccak256(add(buffer, 0x22), 40))\n }\n\n for (uint256 i = 41; i > 1; --i) {\n // possible values for buffer[i] are 48 (0) to 57 (9) and 97 (a) to 102 (f)\n if (hashValue & 0xf > 7 && uint8(buffer[i]) > 96) {\n // case shift by xoring with 0x20\n buffer[i] ^= 0x20;\n }\n hashValue >>= 4;\n }\n return string(buffer);\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 /**\n * @dev Parse a decimal string and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input) internal pure returns (uint256) {\n return parseUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n uint256 result = 0;\n for (uint256 i = begin; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 9) return (false, 0);\n result *= 10;\n result += chr;\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a decimal string and returns the value as a `int256`.\n *\n * Requirements:\n * - The string must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input) internal pure returns (int256) {\n return parseInt(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input, uint256 begin, uint256 end) internal pure returns (int256) {\n (bool success, int256 value) = tryParseInt(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n * the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(string memory input) internal pure returns (bool success, int256 value) {\n return _tryParseIntUncheckedBounds(input, 0, bytes(input).length);\n }\n\n uint256 private constant ABS_MIN_INT256 = 2 ** 255;\n\n /**\n * @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character or if the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, int256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseIntUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseIntUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, int256 value) {\n bytes memory buffer = bytes(input);\n\n // Check presence of a negative sign.\n bytes1 sign = begin == end ? bytes1(0) : bytes1(_unsafeReadBytesOffset(buffer, begin)); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n bool positiveSign = sign == bytes1(\"+\");\n bool negativeSign = sign == bytes1(\"-\");\n uint256 offset = (positiveSign || negativeSign).toUint();\n\n (bool absSuccess, uint256 absValue) = tryParseUint(input, begin + offset, end);\n\n if (absSuccess && absValue < ABS_MIN_INT256) {\n return (true, negativeSign ? -int256(absValue) : int256(absValue));\n } else if (absSuccess && negativeSign && absValue == ABS_MIN_INT256) {\n return (true, type(int256).min);\n } else return (false, 0);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input) internal pure returns (uint256) {\n return parseHexUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseHexUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseHexUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n * invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseHexUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseHexUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n // skip 0x prefix if present\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(buffer, begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 offset = hasPrefix.toUint() * 2;\n\n uint256 result = 0;\n for (uint256 i = begin + offset; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 15) return (false, 0);\n result *= 16;\n unchecked {\n // Multiplying by 16 is equivalent to a shift of 4 bits (with additional overflow check).\n // This guarantees that adding a value < 16 will not cause an overflow, hence the unchecked.\n result += chr;\n }\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input) internal pure returns (address) {\n return parseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input, uint256 begin, uint256 end) internal pure returns (address) {\n (bool success, address value) = tryParseAddress(input, begin, end);\n if (!success) revert StringsInvalidAddressFormat();\n return value;\n }\n\n /**\n * @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n * formatted address. See {parseAddress-string} requirements.\n */\n function tryParseAddress(string memory input) internal pure returns (bool success, address value) {\n return tryParseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n * formatted address. See {parseAddress-string-uint256-uint256} requirements.\n */\n function tryParseAddress(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, address value) {\n if (end > bytes(input).length || begin > end) return (false, address(0));\n\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(bytes(input), begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 expectedLength = 40 + hasPrefix.toUint() * 2;\n\n // check that input is the correct length\n if (end - begin == expectedLength) {\n // length guarantees that this does not overflow, and value is at most type(uint160).max\n (bool s, uint256 v) = _tryParseHexUintUncheckedBounds(input, begin, end);\n return (s, address(uint160(v)));\n } else {\n return (false, address(0));\n }\n }\n\n function _tryParseChr(bytes1 chr) private pure returns (uint8) {\n uint8 value = uint8(chr);\n\n // Try to parse `chr`:\n // - Case 1: [0-9]\n // - Case 2: [a-f]\n // - Case 3: [A-F]\n // - otherwise not supported\n unchecked {\n if (value > 47 && value < 58) value -= 48;\n else if (value > 96 && value < 103) value -= 87;\n else if (value > 64 && value < 71) value -= 55;\n else return type(uint8).max;\n }\n\n return value;\n }\n\n /**\n * @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n *\n * WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n *\n * NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n * RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n * characters that are not in this range, but other tooling may provide different results.\n */\n function escapeJSON(string memory input) internal pure returns (string memory) {\n bytes memory buffer = bytes(input);\n bytes memory output = new bytes(2 * buffer.length); // worst case scenario\n uint256 outputLength = 0;\n\n for (uint256 i; i < buffer.length; ++i) {\n bytes1 char = bytes1(_unsafeReadBytesOffset(buffer, i));\n if (((SPECIAL_CHARS_LOOKUP & (1 << uint8(char))) != 0)) {\n output[outputLength++] = \"\\\\\";\n if (char == 0x08) output[outputLength++] = \"b\";\n else if (char == 0x09) output[outputLength++] = \"t\";\n else if (char == 0x0a) output[outputLength++] = \"n\";\n else if (char == 0x0c) output[outputLength++] = \"f\";\n else if (char == 0x0d) output[outputLength++] = \"r\";\n else if (char == 0x5c) output[outputLength++] = \"\\\\\";\n else if (char == 0x22) {\n // solhint-disable-next-line quotes\n output[outputLength++] = '\"';\n }\n } else {\n output[outputLength++] = char;\n }\n }\n // write the actual length and deallocate unused memory\n assembly (\"memory-safe\") {\n mstore(output, outputLength)\n mstore(0x40, add(output, shl(5, shr(5, add(outputLength, 63)))))\n }\n\n return string(output);\n }\n\n /**\n * @dev Reads a bytes32 from a bytes array without bounds checking.\n *\n * NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n * assembly block as such would prevent some optimizations.\n */\n function _unsafeReadBytesOffset(bytes memory buffer, uint256 offset) private pure returns (bytes32 value) {\n // This is not memory safe in the general case, but all calls to this private function are within bounds.\n assembly (\"memory-safe\") {\n value := mload(add(buffer, add(0x20, offset)))\n }\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 { 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 periodically present a Proof of Indexing (POI) to prove they are indexing a subgraph.\n * The Subgraph Service contract emits that proof which includes the POI. Any fisherman can dispute the\n * validity of a POI by submitting a dispute to this contract 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 /// @notice Maximum value for fisherman reward cut in PPM\n uint32 public constant MAX_FISHERMAN_REWARD_CUT = 500000; // 50%\n\n /// @notice Minimum value for dispute deposit\n uint256 public constant MIN_DISPUTE_DEPOSIT = 1e18; // 1 GRT\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 /// @inheritdoc IDisputeManager\n function initialize(\n address owner,\n address arbitrator_,\n uint64 disputePeriod_,\n uint256 disputeDeposit_,\n uint32 fishermanRewardCut_,\n uint32 maxSlashingCut_\n ) external override initializer {\n __Ownable_init(owner);\n __AttestationManager_init();\n\n _setArbitrator(arbitrator_);\n _setDisputePeriod(disputePeriod_);\n _setDisputeDeposit(disputeDeposit_);\n _setFishermanRewardCut(fishermanRewardCut_);\n _setMaxSlashingCut(maxSlashingCut_);\n }\n\n /// @inheritdoc IDisputeManager\n function createIndexingDispute(address allocationId, bytes32 poi) external override returns (bytes32) {\n // Get funds from fisherman\n _graphToken().pullTokens(msg.sender, disputeDeposit);\n\n // Create a dispute\n return _createIndexingDisputeWithAllocation(msg.sender, disputeDeposit, allocationId, poi);\n }\n\n /// @inheritdoc IDisputeManager\n function createQueryDispute(bytes calldata attestationData) external override returns (bytes32) {\n // Get funds from fisherman\n _graphToken().pullTokens(msg.sender, disputeDeposit);\n\n // Create a dispute\n return\n _createQueryDisputeWithAttestation(\n msg.sender,\n disputeDeposit,\n Attestation.parse(attestationData),\n attestationData\n );\n }\n\n /// @inheritdoc IDisputeManager\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 // Get funds from fisherman\n _graphToken().pullTokens(msg.sender, disputeDeposit);\n\n // Create the disputes\n // The deposit is zero for conflicting attestations\n bytes32 dId1 = _createQueryDisputeWithAttestation(\n fisherman,\n disputeDeposit / 2,\n attestation1,\n attestationData1\n );\n bytes32 dId2 = _createQueryDisputeWithAttestation(\n fisherman,\n disputeDeposit / 2,\n attestation2,\n attestationData2\n );\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 /// @inheritdoc IDisputeManager\n function createAndAcceptLegacyDispute(\n address allocationId,\n address fisherman,\n uint256 tokensSlash,\n uint256 tokensRewards\n ) external override onlyArbitrator returns (bytes32) {\n // Create a disputeId\n bytes32 disputeId = keccak256(abi.encodePacked(allocationId, \"legacy\"));\n\n // Get the indexer for the legacy allocation\n address indexer = _graphStaking().getAllocation(allocationId).indexer;\n require(indexer != address(0), DisputeManagerIndexerNotFound(allocationId));\n\n // Store dispute\n disputes[disputeId] = Dispute(\n indexer,\n fisherman,\n 0,\n 0,\n DisputeType.LegacyDispute,\n IDisputeManager.DisputeStatus.Accepted,\n block.timestamp,\n block.timestamp + disputePeriod,\n 0\n );\n\n // Slash the indexer\n ISubgraphService subgraphService_ = _getSubgraphService();\n subgraphService_.slash(indexer, abi.encode(tokensSlash, tokensRewards));\n\n // Reward the fisherman\n _graphToken().pushTokens(fisherman, tokensRewards);\n\n emit LegacyDisputeCreated(disputeId, indexer, fisherman, allocationId, tokensSlash, tokensRewards);\n emit DisputeAccepted(disputeId, indexer, fisherman, tokensRewards);\n\n return disputeId;\n }\n\n /// @inheritdoc IDisputeManager\n function acceptDispute(\n bytes32 disputeId,\n uint256 tokensSlash\n ) external override onlyArbitrator onlyPendingDispute(disputeId) {\n require(!_isDisputeInConflict(disputes[disputeId]), DisputeManagerDisputeInConflict(disputeId));\n Dispute storage dispute = disputes[disputeId];\n _acceptDispute(disputeId, dispute, tokensSlash);\n }\n\n /// @inheritdoc IDisputeManager\n function acceptDisputeConflict(\n bytes32 disputeId,\n uint256 tokensSlash,\n bool acceptDisputeInConflict,\n uint256 tokensSlashRelated\n ) external override onlyArbitrator onlyPendingDispute(disputeId) {\n require(_isDisputeInConflict(disputes[disputeId]), DisputeManagerDisputeNotInConflict(disputeId));\n Dispute storage dispute = disputes[disputeId];\n _acceptDispute(disputeId, dispute, tokensSlash);\n\n if (acceptDisputeInConflict) {\n _acceptDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId], tokensSlashRelated);\n } else {\n _drawDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]);\n }\n }\n\n /// @inheritdoc IDisputeManager\n function rejectDispute(bytes32 disputeId) external override onlyArbitrator onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n require(!_isDisputeInConflict(dispute), DisputeManagerDisputeInConflict(disputeId));\n _rejectDispute(disputeId, dispute);\n }\n\n /// @inheritdoc IDisputeManager\n function drawDispute(bytes32 disputeId) external override onlyArbitrator onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n _drawDispute(disputeId, dispute);\n\n if (_isDisputeInConflict(dispute)) {\n _drawDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]);\n }\n }\n\n /// @inheritdoc IDisputeManager\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.cancellableAt <= block.timestamp, DisputeManagerDisputePeriodNotFinished());\n _cancelDispute(disputeId, dispute);\n\n if (_isDisputeInConflict(dispute)) {\n _cancelDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]);\n }\n }\n\n /// @inheritdoc IDisputeManager\n function setArbitrator(address arbitrator) external override onlyOwner {\n _setArbitrator(arbitrator);\n }\n\n /// @inheritdoc IDisputeManager\n function setDisputePeriod(uint64 disputePeriod) external override onlyOwner {\n _setDisputePeriod(disputePeriod);\n }\n\n /// @inheritdoc IDisputeManager\n function setDisputeDeposit(uint256 disputeDeposit) external override onlyOwner {\n _setDisputeDeposit(disputeDeposit);\n }\n\n /// @inheritdoc IDisputeManager\n function setFishermanRewardCut(uint32 fishermanRewardCut_) external override onlyOwner {\n _setFishermanRewardCut(fishermanRewardCut_);\n }\n\n /// @inheritdoc IDisputeManager\n function setMaxSlashingCut(uint32 maxSlashingCut_) external override onlyOwner {\n _setMaxSlashingCut(maxSlashingCut_);\n }\n\n /// @inheritdoc IDisputeManager\n function setSubgraphService(address subgraphService_) external override onlyOwner {\n _setSubgraphService(subgraphService_);\n }\n\n /// @inheritdoc IDisputeManager\n function encodeReceipt(Attestation.Receipt calldata receipt) external view override returns (bytes32) {\n return _encodeReceipt(receipt);\n }\n\n /// @inheritdoc IDisputeManager\n function getFishermanRewardCut() external view override returns (uint32) {\n return fishermanRewardCut;\n }\n\n /// @inheritdoc IDisputeManager\n function getDisputePeriod() external view override returns (uint64) {\n return disputePeriod;\n }\n\n /// @inheritdoc IDisputeManager\n function getStakeSnapshot(address indexer) external view override returns (uint256) {\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(\n indexer,\n address(_getSubgraphService())\n );\n return _getStakeSnapshot(indexer, provision.tokens);\n }\n\n /// @inheritdoc IDisputeManager\n function areConflictingAttestations(\n Attestation.State calldata attestation1,\n Attestation.State calldata attestation2\n ) external pure override returns (bool) {\n return Attestation.areConflicting(attestation1, attestation2);\n }\n\n /// @inheritdoc IDisputeManager\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 = _getSubgraphService().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 /// @inheritdoc IDisputeManager\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(\n indexer,\n address(_getSubgraphService())\n );\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 at a time\n require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId));\n\n // Store dispute\n uint256 stakeSnapshot = _getStakeSnapshot(indexer, provision.tokens);\n uint256 cancellableAt = block.timestamp + disputePeriod;\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 cancellableAt,\n stakeSnapshot\n );\n\n emit QueryDisputeCreated(\n disputeId,\n indexer,\n _fisherman,\n _deposit,\n _attestation.subgraphDeploymentId,\n _attestationData,\n cancellableAt,\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 * @return The dispute id\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 ISubgraphService subgraphService_ = _getSubgraphService();\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 uint256 cancellableAt = block.timestamp + disputePeriod;\n disputes[disputeId] = Dispute(\n alloc.indexer,\n _fisherman,\n _deposit,\n 0,\n DisputeType.IndexingDispute,\n IDisputeManager.DisputeStatus.Pending,\n block.timestamp,\n cancellableAt,\n stakeSnapshot\n );\n\n emit IndexingDisputeCreated(\n disputeId,\n alloc.indexer,\n _fisherman,\n _deposit,\n _allocationId,\n _poi,\n stakeSnapshot,\n cancellableAt\n );\n\n return disputeId;\n }\n\n /**\n * @notice Accept a dispute\n * @param _disputeId The id of the dispute\n * @param _dispute The dispute\n * @param _tokensSlashed The amount of tokens to slash\n */\n function _acceptDispute(bytes32 _disputeId, Dispute storage _dispute, uint256 _tokensSlashed) private {\n uint256 tokensToReward = _slashIndexer(_dispute.indexer, _tokensSlashed, _dispute.stakeSnapshot);\n _dispute.status = IDisputeManager.DisputeStatus.Accepted;\n _graphToken().pushTokens(_dispute.fisherman, tokensToReward + _dispute.deposit);\n\n emit DisputeAccepted(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit + tokensToReward);\n }\n\n /**\n * @notice Reject a dispute\n * @param _disputeId The id of the dispute\n * @param _dispute The dispute\n */\n function _rejectDispute(bytes32 _disputeId, Dispute storage _dispute) private {\n _dispute.status = IDisputeManager.DisputeStatus.Rejected;\n _graphToken().burnTokens(_dispute.deposit);\n\n emit DisputeRejected(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit);\n }\n\n /**\n * @notice Draw a dispute\n * @param _disputeId The id of the dispute\n * @param _dispute The dispute\n */\n function _drawDispute(bytes32 _disputeId, Dispute storage _dispute) private {\n _dispute.status = IDisputeManager.DisputeStatus.Drawn;\n _graphToken().pushTokens(_dispute.fisherman, _dispute.deposit);\n\n emit DisputeDrawn(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit);\n }\n\n /**\n * @notice Cancel a dispute\n * @param _disputeId The id of the dispute\n * @param _dispute The dispute\n */\n function _cancelDispute(bytes32 _disputeId, Dispute storage _dispute) private {\n _dispute.status = IDisputeManager.DisputeStatus.Cancelled;\n _graphToken().pushTokens(_dispute.fisherman, _dispute.deposit);\n\n emit DisputeCancelled(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit);\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 fishermanRewardCut 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 * @return The amount of tokens rewarded to the fisherman\n */\n function _slashIndexer(\n address _indexer,\n uint256 _tokensSlash,\n uint256 _tokensStakeSnapshot\n ) private returns (uint256) {\n ISubgraphService subgraphService_ = _getSubgraphService();\n\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 calculation:\n // - Rewards can only be extracted from service provider tokens so we grab the minimum between the slash\n // amount and indexer's tokens\n // - The applied cut is the minimum between the provision's maxVerifierCut and the current fishermanRewardCut. This\n // protects the indexer from sudden changes to the fishermanRewardCut while ensuring the slashing does not revert due\n // to excessive rewards being requested.\n uint256 maxRewardableTokens = MathUtils.min(_tokensSlash, provision.tokens);\n uint256 effectiveCut = MathUtils.min(provision.maxVerifierCut, fishermanRewardCut);\n uint256 tokensRewards = effectiveCut.mulPPM(maxRewardableTokens);\n\n subgraphService_.slash(_indexer, abi.encode(_tokensSlash, tokensRewards));\n return tokensRewards;\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) private {\n require(_arbitrator != address(0), DisputeManagerInvalidZeroAddress());\n arbitrator = _arbitrator;\n emit ArbitratorSet(_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) private {\n require(_disputePeriod != 0, DisputeManagerDisputePeriodZero());\n disputePeriod = _disputePeriod;\n emit DisputePeriodSet(_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) private {\n require(_disputeDeposit >= MIN_DISPUTE_DEPOSIT, DisputeManagerInvalidDisputeDeposit(_disputeDeposit));\n disputeDeposit = _disputeDeposit;\n emit DisputeDepositSet(_disputeDeposit);\n }\n\n /**\n * @notice Set the reward cut that the fisherman gets when slashing occurs.\n * @dev Update the reward cut to `_fishermanRewardCut`\n * @param _fishermanRewardCut The fisherman reward cut, in PPM\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 Set the maximum cut that can be used for slashing indexers.\n * @param _maxSlashingCut Max slashing cut, in PPM\n */\n function _setMaxSlashingCut(uint32 _maxSlashingCut) private {\n require(PPMMath.isValidPPM(_maxSlashingCut), DisputeManagerInvalidMaxSlashingCut(_maxSlashingCut));\n maxSlashingCut = _maxSlashingCut;\n emit MaxSlashingCutSet(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) private {\n require(_subgraphService != address(0), DisputeManagerInvalidZeroAddress());\n subgraphService = ISubgraphService(_subgraphService);\n emit SubgraphServiceSet(_subgraphService);\n }\n\n /**\n * @notice Get the address of the subgraph service\n * @dev Will revert if the subgraph service is not set\n * @return The subgraph service address\n */\n function _getSubgraphService() private view returns (ISubgraphService) {\n require(address(subgraphService) != address(0), DisputeManagerSubgraphServiceNotSet());\n return 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 storage _dispute) private view returns (bool) {\n return _dispute.relatedDisputeId != bytes32(0);\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 *\n * Note that the snapshot can be inflated by delegators front-running the dispute creation with a delegation\n * to the indexer. Given the snapshot is a cap, the dispute outcome is uncertain and considering the cost of capital\n * and slashing risk, this is not a concern.\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(_getSubgraphService())).tokens;\n return _indexerStake + delegatorsStake;\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\n/**\n * @title DisputeManagerStorage\n * @notice This contract holds all the storage variables for the Dispute Manager 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 */\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\n/**\n * @title IDisputeManager\n * @notice Interface for the {Dispute Manager} 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 */\ninterface IDisputeManager {\n /// @notice Types of disputes that can be created\n enum DisputeType {\n Null,\n IndexingDispute,\n QueryDispute,\n LegacyDispute\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 /**\n * @notice Dispute details\n * @param indexer The indexer that is being disputed\n * @param fisherman The fisherman that created the dispute\n * @param deposit The amount of tokens deposited by the fisherman\n * @param relatedDisputeId The link to a related dispute, used when creating dispute via conflicting attestations\n * @param disputeType The type of dispute\n * @param status The status of the dispute\n * @param createdAt The timestamp when the dispute was created\n * @param cancellableAt The timestamp when the dispute can be cancelled\n * @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute (includes delegation up to the delegation ratio)\n */\n struct Dispute {\n address indexer;\n address fisherman;\n uint256 deposit;\n bytes32 relatedDisputeId;\n DisputeType disputeType;\n DisputeStatus status;\n uint256 createdAt;\n uint256 cancellableAt;\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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of tokens deposited by the fisherman\n * @param subgraphDeploymentId The subgraph deployment id\n * @param attestation The attestation\n * @param cancellableAt The timestamp when the dispute can be cancelled\n * @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute\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 uint256 cancellableAt\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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of tokens deposited by the fisherman\n * @param allocationId The allocation id\n * @param poi The POI\n * @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute\n * @param cancellableAt The timestamp when the dispute can be cancelled\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 uint256 cancellableAt\n );\n\n /**\n * @dev Emitted when a legacy dispute is created for `allocationId` and `fisherman`.\n * The event emits the amount of `tokensSlash` to slash and `tokensRewards` to reward the fisherman.\n * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address to be credited with the rewards\n * @param allocationId The allocation id\n * @param tokensSlash The amount of tokens to slash\n * @param tokensRewards The amount of tokens to reward the fisherman\n */\n event LegacyDisputeCreated(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n address allocationId,\n uint256 tokensSlash,\n uint256 tokensRewards\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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of 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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of 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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of tokens returned to the fisherman - the deposit\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 * @param disputeId1 The first dispute id\n * @param disputeId2 The second dispute id\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 * @param disputeId The dispute id\n * @param indexer The indexer address\n * @param fisherman The fisherman address\n * @param tokens The amount of tokens returned to the fisherman - the deposit\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 /**\n * @notice Thrown when the caller is not the arbitrator\n */\n error DisputeManagerNotArbitrator();\n\n /**\n * @notice Thrown when the caller is not the fisherman\n */\n error DisputeManagerNotFisherman();\n\n /**\n * @notice Thrown when the address is the zero address\n */\n error DisputeManagerInvalidZeroAddress();\n\n /**\n * @notice Thrown when the dispute period is zero\n */\n error DisputeManagerDisputePeriodZero();\n\n /**\n * @notice Thrown when the indexer being disputed has no provisioned tokens\n */\n error DisputeManagerZeroTokens();\n\n /**\n * @notice Thrown when the dispute id is invalid\n * @param disputeId The dispute id\n */\n error DisputeManagerInvalidDispute(bytes32 disputeId);\n\n /**\n * @notice Thrown when the dispute deposit is invalid - less than the minimum dispute deposit\n * @param disputeDeposit The dispute deposit\n */\n error DisputeManagerInvalidDisputeDeposit(uint256 disputeDeposit);\n\n /**\n * @notice Thrown when the fisherman reward cut is invalid\n * @param cut The fisherman reward cut\n */\n error DisputeManagerInvalidFishermanReward(uint32 cut);\n\n /**\n * @notice Thrown when the max slashing cut is invalid\n * @param maxSlashingCut The max slashing cut\n */\n error DisputeManagerInvalidMaxSlashingCut(uint32 maxSlashingCut);\n\n /**\n * @notice Thrown when the tokens slash is invalid\n * @param tokensSlash The tokens slash\n * @param maxTokensSlash The max tokens slash\n */\n error DisputeManagerInvalidTokensSlash(uint256 tokensSlash, uint256 maxTokensSlash);\n\n /**\n * @notice Thrown when the dispute is not pending\n * @param status The status of the dispute\n */\n error DisputeManagerDisputeNotPending(IDisputeManager.DisputeStatus status);\n\n /**\n * @notice Thrown when the dispute is already created\n * @param disputeId The dispute id\n */\n error DisputeManagerDisputeAlreadyCreated(bytes32 disputeId);\n\n /**\n * @notice Thrown when the dispute period is not finished\n */\n error DisputeManagerDisputePeriodNotFinished();\n\n /**\n * @notice Thrown when the dispute is in conflict\n * @param disputeId The dispute id\n */\n error DisputeManagerDisputeInConflict(bytes32 disputeId);\n\n /**\n * @notice Thrown when the dispute is not in conflict\n * @param disputeId The dispute id\n */\n error DisputeManagerDisputeNotInConflict(bytes32 disputeId);\n\n /**\n * @notice Thrown when the dispute must be accepted\n * @param disputeId The dispute id\n * @param relatedDisputeId The related dispute id\n */\n error DisputeManagerMustAcceptRelatedDispute(bytes32 disputeId, bytes32 relatedDisputeId);\n\n /**\n * @notice Thrown when the indexer is not found\n * @param allocationId The allocation id\n */\n error DisputeManagerIndexerNotFound(address allocationId);\n\n /**\n * @notice Thrown when the subgraph deployment is not matching\n * @param subgraphDeploymentId1 The subgraph deployment id of the first attestation\n * @param subgraphDeploymentId2 The subgraph deployment id of the second attestation\n */\n error DisputeManagerNonMatchingSubgraphDeployment(bytes32 subgraphDeploymentId1, bytes32 subgraphDeploymentId2);\n\n /**\n * @notice Thrown when the attestations are not conflicting\n * @param requestCID1 The request CID of the first attestation\n * @param responseCID1 The response CID of the first attestation\n * @param subgraphDeploymentId1 The subgraph deployment id of the first attestation\n * @param requestCID2 The request CID of the second attestation\n * @param responseCID2 The response CID of the second attestation\n * @param subgraphDeploymentId2 The subgraph deployment id of the second attestation\n */\n error DisputeManagerNonConflictingAttestations(\n bytes32 requestCID1,\n bytes32 responseCID1,\n bytes32 subgraphDeploymentId1,\n bytes32 requestCID2,\n bytes32 responseCID2,\n bytes32 subgraphDeploymentId2\n );\n\n /**\n * @notice Thrown when attempting to get the subgraph service before it is set\n */\n error DisputeManagerSubgraphServiceNotSet();\n\n /**\n * @notice Initialize this contract.\n * @param owner The owner of the 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 owner,\n address arbitrator,\n uint64 disputePeriod,\n uint256 disputeDeposit,\n uint32 fishermanRewardCut_,\n uint32 maxSlashingCut_\n ) external;\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;\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;\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;\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;\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;\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;\n\n // -- Dispute --\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 * @return The dispute id\n */\n function createQueryDispute(bytes calldata attestationData) external returns (bytes32);\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 * Two linked disputes will be created and if the arbitrator resolve one, the other\n * one will be automatically resolved. Note that:\n * - it's not possible to reject a conflicting query dispute as by definition at least one\n * of the attestations is incorrect.\n * - if both attestations are proven to be incorrect, the arbitrator can slash the indexer twice.\n * Requirements:\n * - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n * of tokens from their balance.\n * @param attestationData1 First attestation data submitted\n * @param attestationData2 Second attestation data submitted\n * @return The first dispute id\n * @return The second dispute id\n */\n function createQueryDisputeConflict(\n bytes calldata attestationData1,\n bytes calldata attestationData2\n ) external returns (bytes32, bytes32);\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 * @return The dispute id\n */\n function createIndexingDispute(address allocationId, bytes32 poi) external returns (bytes32);\n\n /**\n * @notice Creates and auto-accepts a legacy dispute.\n * This disputes can be created to settle outstanding slashing amounts with an indexer that has been\n * \"legacy slashed\" during or shortly after the transition period. See {HorizonStakingExtension.legacySlash}\n * for more details.\n *\n * Note that this type of dispute:\n * - can only be created by the arbitrator\n * - does not require a bond\n * - is automatically accepted when created\n *\n * Additionally, note that this type of disputes allow the arbitrator to directly set the slash and rewards\n * amounts, bypassing the usual mechanisms that impose restrictions on those. This is done to give arbitrators\n * maximum flexibility to ensure outstanding slashing amounts are settled fairly. This function needs to be removed\n * after the transition period.\n *\n * Requirements:\n * - Indexer must have been legacy slashed during or shortly after the transition period\n * - Indexer must have provisioned funds to the Subgraph Service\n *\n * @param allocationId The allocation to dispute\n * @param fisherman The fisherman address to be credited with the rewards\n * @param tokensSlash The amount of tokens to slash\n * @param tokensRewards The amount of tokens to reward the fisherman\n * @return The dispute id\n */\n function createAndAcceptLegacyDispute(\n address allocationId,\n address fisherman,\n uint256 tokensSlash,\n uint256 tokensRewards\n ) external returns (bytes32);\n\n // -- Arbitrator --\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 * This function will also revert if the dispute is in conflict, to accept a conflicting dispute\n * use acceptDisputeConflict.\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(bytes32 disputeId, uint256 tokensSlash) external;\n\n /**\n * @notice The arbitrator accepts a conflicting 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.\n * @param disputeId Id of the dispute to be accepted\n * @param tokensSlash Amount of tokens to slash from the indexer for the first dispute\n * @param acceptDisputeInConflict Accept the conflicting dispute. Otherwise it will be drawn automatically\n * @param tokensSlashRelated Amount of tokens to slash from the indexer for the related dispute in case\n * acceptDisputeInConflict is true, otherwise it will be ignored\n */\n function acceptDisputeConflict(\n bytes32 disputeId,\n uint256 tokensSlash,\n bool acceptDisputeInConflict,\n uint256 tokensSlashRelated\n ) external;\n\n /**\n * @notice The arbitrator rejects a dispute as being invalid.\n * Note that conflicting query disputes cannot be rejected.\n * @dev Reject a dispute with Id `disputeId`\n * @param disputeId Id of the dispute to be rejected\n */\n function rejectDispute(bytes32 disputeId) external;\n\n /**\n * @notice The arbitrator draws dispute.\n * Note that drawing a conflicting query dispute should not be possible however it is allowed\n * to give arbitrators greater flexibility when resolving disputes.\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;\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 * Note that cancelling a conflicting query dispute will also cancel the related dispute.\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;\n\n // -- Getters --\n\n /**\n * @notice Get the fisherman reward cut.\n * @return Fisherman reward cut in percentage (ppm)\n */\n function getFishermanRewardCut() external view returns (uint32);\n\n /**\n * @notice Get the dispute period.\n * @return Dispute period in seconds\n */\n function getDisputePeriod() external view returns (uint64);\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 * @return True if dispute already exists\n */\n function isDisputeCreated(bytes32 disputeId) external view returns (bool);\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 returns (bytes32);\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) external view returns (address);\n\n /**\n * @notice Get the stake snapshot for an indexer.\n * @param indexer The indexer address\n * @return The stake snapshot\n */\n function getStakeSnapshot(address indexer) external view returns (uint256);\n\n /**\n * @notice Checks if two attestations are conflicting\n * @param attestation1 The first attestation\n * @param attestation2 The second attestation\n * @return Whether the attestations are conflicting\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ninterface ISubgraphService is IDataServiceFees {\n /**\n * @notice Indexer details\n * @param registeredAt The timestamp when the indexer registered\n * @param url The URL where the indexer can be reached at for queries\n * @param geoHash The indexer's geo location, expressed as a geo hash\n */\n struct Indexer {\n uint256 registeredAt;\n string url;\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 payer The address paying for the query fees\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n * @param tokensCollected The amount of tokens collected\n * @param tokensCurators The amount of tokens curators receive\n */\n event QueryFeesCollected(\n address indexed serviceProvider,\n address indexed payer,\n address indexed allocationId,\n bytes32 subgraphDeploymentId,\n uint256 tokensCollected,\n uint256 tokensCurators\n );\n\n /**\n * @notice Emitted when an indexer sets a new payments destination\n * @param indexer The address of the indexer\n * @param paymentsDestination The address where payments should be sent\n */\n event PaymentsDestinationSet(address indexed indexer, address indexed paymentsDestination);\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 * @notice 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 after collecting from Graph Payments\n * @param balanceBefore The contract GRT balance before the collection\n * @param balanceAfter The contract GRT balance after the collection\n */\n error SubgraphServiceInconsistentCollection(uint256 balanceBefore, uint256 balanceAfter);\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 Thrown when collectionId is not a valid address\n * @param collectionId The collectionId\n */\n error SubgraphServiceInvalidCollectionId(bytes32 collectionId);\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 owner The owner of the contract\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 address owner,\n uint256 minimumProvisionTokens,\n uint32 maximumDelegationRatio,\n uint256 stakeToFeesRatio\n ) external;\n\n /**\n * @notice Force close a stale allocation\n * @dev This function can be permissionlessly called when the allocation is stale. This\n * ensures that rewards for other allocations are not diluted by an inactive allocation.\n *\n * Requirements:\n * - Allocation must exist and be open\n * - Allocation must be stale\n * - Allocation cannot be altruistic\n *\n * Emits a {AllocationClosed} event.\n *\n * @param allocationId The id of the allocation\n */\n function closeStaleAllocation(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 payments destination for an indexer to receive payments\n * @dev Emits a {PaymentsDestinationSet} event\n * @param paymentsDestination The address where payments should be sent\n */\n function setPaymentsDestination(address paymentsDestination) 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 * @return The allocation details\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 * @return The legacy allocation details\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 * @return The encoded allocation proof\n */\n function encodeAllocationProof(address indexer, address allocationId) external view returns (bytes32);\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 /**\n * @notice Gets the address of the dispute manager\n * @return The address of the dispute manager\n */\n function getDisputeManager() external view returns (address);\n\n /**\n * @notice Gets the address of the graph tally collector\n * @return The address of the graph tally collector\n */\n function getGraphTallyCollector() external view returns (address);\n\n /**\n * @notice Gets the address of the curation contract\n * @return The address of the curation contract\n */\n function getCuration() external view returns (address);\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nlibrary Allocation {\n using Allocation for State;\n\n /**\n * @notice Allocation details\n * @param indexer The indexer that owns the allocation\n * @param subgraphDeploymentId The subgraph deployment id the allocation is for\n * @param tokens The number of tokens allocated\n * @param createdAt The timestamp when the allocation was created\n * @param closedAt The timestamp when the allocation was closed\n * @param lastPOIPresentedAt The timestamp when the last POI was presented\n * @param accRewardsPerAllocatedToken The accumulated rewards per allocated token\n * @param accRewardsPending The accumulated rewards that are pending to be claimed due allocation resize\n * @param createdAtEpoch The epoch when the allocation was created\n */\n struct State {\n address indexer;\n bytes32 subgraphDeploymentId;\n uint256 tokens;\n uint256 createdAt;\n uint256 closedAt;\n uint256 lastPOIPresentedAt;\n uint256 accRewardsPerAllocatedToken;\n uint256 accRewardsPending;\n uint256 createdAtEpoch;\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 * @param createdAtEpoch The epoch when the allocation was created\n * @return The allocation\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 uint256 createdAtEpoch\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 createdAtEpoch: createdAtEpoch\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 * @return The allocation\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 * @return True if the allocation is 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 * @return True if the allocation exists\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 * @return True if the allocation is open\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 * @return True if the allocation is alturistic\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 * @return The allocation\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\nlibrary Attestation {\n /**\n * @notice Receipt content sent from the service provider in response to request\n * @param requestCID The request CID\n * @param responseCID The response CID\n * @param subgraphDeploymentId The subgraph deployment id\n */\n struct Receipt {\n bytes32 requestCID;\n bytes32 responseCID;\n bytes32 subgraphDeploymentId;\n }\n\n /**\n * @notice Attestation sent from the service provider in response to a request\n * @param requestCID The request CID\n * @param responseCID The response CID\n * @param subgraphDeploymentId The subgraph deployment id\n * @param r The r value of the signature\n * @param s The s value of the signature\n * @param v The v value of the signature\n */\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 /// @notice The length of the r value of the signature\n uint256 private constant SIG_R_LENGTH = 32;\n\n /// @notice The length of the s value of the signature\n uint256 private constant SIG_S_LENGTH = 32;\n\n /// @notice The length of the v value of the signature\n uint256 private constant SIG_V_LENGTH = 1;\n\n /// @notice The offset of the r value of the signature\n uint256 private constant SIG_R_OFFSET = RECEIPT_SIZE_BYTES;\n\n /// @notice The offset of the s value of the signature\n uint256 private constant SIG_S_OFFSET = RECEIPT_SIZE_BYTES + SIG_R_LENGTH;\n\n /// @notice The offset of the v value of the signature\n uint256 private constant SIG_V_OFFSET = RECEIPT_SIZE_BYTES + SIG_R_LENGTH + SIG_S_LENGTH;\n\n /// @notice The size of the signature\n uint256 private constant SIG_SIZE_BYTES = SIG_R_LENGTH + SIG_S_LENGTH + SIG_V_LENGTH;\n\n /// @notice The size of the attestation\n uint256 private constant ATTESTATION_SIZE_BYTES = RECEIPT_SIZE_BYTES + SIG_SIZE_BYTES;\n\n /// @notice The length of the uint8 value\n uint256 private constant UINT8_BYTE_LENGTH = 1;\n\n /// @notice The length of the bytes32 value\n uint256 private constant BYTES32_BYTE_LENGTH = 32;\n\n /**\n * @notice The error thrown when the attestation data length is invalid\n * @param length The length of the attestation data\n * @param expectedLength The expected length of the attestation data\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 * @param _data The bytes to parse\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 * @param _bytes The bytes to parse\n * @param _start The start offset\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 * @param _bytes The bytes to parse\n * @param _start The start offset\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\nimport { IHorizonStaking } from \"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\";\n\n/**\n * @title LegacyAllocation library\n * @notice A library to handle legacy Allocations.\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 */\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 * @param indexer The indexer that owns the allocation\n * @param subgraphDeploymentId The subgraph deployment id the allocation is for\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 LegacyAllocationAlreadyExists(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 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(), LegacyAllocationAlreadyExists(allocationId));\n\n self[allocationId] = State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId });\n }\n\n /**\n * @notice Get a legacy allocation\n * @param self The legacy allocation list mapping\n * @param allocationId The allocation id\n * @return The legacy allocation details\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 * @dev We first check the migrated mapping then the old staking contract.\n * @dev TRANSITION PERIOD: after the transition period when all the allocations are migrated we can\n * remove the call to the staking contract.\n * @param self The legacy allocation list mapping\n * @param graphStaking The Horizon Staking contract\n * @param allocationId The allocation id\n */\n function revertIfExists(\n mapping(address => State) storage self,\n IHorizonStaking graphStaking,\n address allocationId\n ) internal view {\n require(!self[allocationId].exists(), LegacyAllocationAlreadyExists(allocationId));\n require(!graphStaking.isAllocation(allocationId), LegacyAllocationAlreadyExists(allocationId));\n }\n\n /**\n * @notice Check if a legacy allocation exists\n * @param self The legacy allocation\n * @return True if the allocation exists\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 * @return The legacy allocation details\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/mocks/imports.sol": { + "content": "// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity ^0.7.6 || 0.8.27;\n\n// These are needed to get artifacts for toolshed\nimport \"@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol\";\nimport \"@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol\";\nimport \"@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol\";\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 { IGraphTallyCollector } from \"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol\";\nimport { IRewardsIssuer } from \"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\";\nimport { IDataService } from \"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.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 graphTallyCollector The address of the GraphTallyCollector contract\n * @param curation The address of the Curation contract\n */\n constructor(\n address graphController,\n address disputeManager,\n address graphTallyCollector,\n address curation\n ) DataService(graphController) Directory(address(this), disputeManager, graphTallyCollector, curation) {\n _disableInitializers();\n }\n\n /// @inheritdoc ISubgraphService\n function initialize(\n address owner,\n uint256 minimumProvisionTokens,\n uint32 maximumDelegationRatio,\n uint256 stakeToFeesRatio_\n ) external initializer {\n __Ownable_init(owner);\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 * - string `url`: The URL of the indexer\n * - string `geohash`: The geohash of the indexer\n * - address `paymentsDestination`: The address where the indexer wants to receive payments.\n * Use zero address for automatically restaking payments.\n */\n /// @inheritdoc IDataService\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 paymentsDestination_) = 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 (paymentsDestination_ != address(0)) {\n _setPaymentsDestination(indexer, paymentsDestination_);\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 /// @inheritdoc IDataService\n function acceptProvisionPendingParameters(\n address indexer,\n bytes calldata\n ) external override onlyAuthorizedForProvision(indexer) whenNotPaused {\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 /// @inheritdoc IDataService\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 /// @inheritdoc IDataService\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, false);\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:\n * - For query fees:\n * - IGraphTallyCollector.SignedRAV `signedRav`: The signed RAV\n * - For indexing rewards:\n * - address `allocationId`: The id of the allocation\n * - bytes32 `poi`: The POI being presented\n * - bytes `poiMetadata`: The metadata associated with the POI. See {AllocationManager-_collectIndexingRewards} for more details.\n */\n /// @inheritdoc IDataService\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 paymentCollected = _collectQueryFees(indexer, data);\n } else if (paymentType == IGraphPayments.PaymentTypes.IndexingRewards) {\n paymentCollected = _collectIndexingRewards(indexer, data);\n } else {\n revert SubgraphServiceInvalidPaymentType(paymentType);\n }\n\n emit ServicePaymentCollected(indexer, paymentType, paymentCollected);\n return paymentCollected;\n }\n\n /**\n * @notice See {IHorizonStaking-slash} for more details.\n * @dev Slashing is delegated to the {DisputeManager} contract which is the only one that can call this\n * function.\n */\n /// @inheritdoc IDataService\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 /// @inheritdoc ISubgraphService\n function closeStaleAllocation(address allocationId) external override whenNotPaused {\n Allocation.State memory allocation = _allocations.get(allocationId);\n require(allocation.isStale(maxPOIStaleness), SubgraphServiceCannotForceCloseAllocation(allocationId));\n require(!allocation.isAltruistic(), SubgraphServiceAllocationIsAltruistic(allocationId));\n _closeAllocation(allocationId, true);\n }\n\n /// @inheritdoc ISubgraphService\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 /// @inheritdoc ISubgraphService\n function migrateLegacyAllocation(\n address indexer,\n address allocationId,\n bytes32 subgraphDeploymentID\n ) external override onlyOwner {\n _migrateLegacyAllocation(indexer, allocationId, subgraphDeploymentID);\n }\n\n /// @inheritdoc ISubgraphService\n function setPauseGuardian(address pauseGuardian, bool allowed) external override onlyOwner {\n _setPauseGuardian(pauseGuardian, allowed);\n }\n\n /// @inheritdoc ISubgraphService\n function setPaymentsDestination(address paymentsDestination_) external override {\n _setPaymentsDestination(msg.sender, paymentsDestination_);\n }\n\n /// @inheritdoc ISubgraphService\n function setMinimumProvisionTokens(uint256 minimumProvisionTokens) external override onlyOwner {\n _setProvisionTokensRange(minimumProvisionTokens, DEFAULT_MAX_PROVISION_TOKENS);\n }\n\n /// @inheritdoc ISubgraphService\n function setDelegationRatio(uint32 delegationRatio) external override onlyOwner {\n _setDelegationRatio(delegationRatio);\n }\n\n /// @inheritdoc ISubgraphService\n function setStakeToFeesRatio(uint256 stakeToFeesRatio_) external override onlyOwner {\n _setStakeToFeesRatio(stakeToFeesRatio_);\n }\n\n /// @inheritdoc ISubgraphService\n function setMaxPOIStaleness(uint256 maxPOIStaleness_) external override onlyOwner {\n _setMaxPOIStaleness(maxPOIStaleness_);\n }\n\n /// @inheritdoc ISubgraphService\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 /// @inheritdoc ISubgraphService\n function getAllocation(address allocationId) external view override returns (Allocation.State memory) {\n return _allocations[allocationId];\n }\n\n /// @inheritdoc IRewardsIssuer\n function getAllocationData(\n address allocationId\n ) external view override returns (bool, address, bytes32, uint256, uint256, uint256) {\n Allocation.State memory allo = _allocations[allocationId];\n return (\n allo.isOpen(),\n allo.indexer,\n allo.subgraphDeploymentId,\n allo.tokens,\n allo.accRewardsPerAllocatedToken,\n allo.accRewardsPending\n );\n }\n\n /// @inheritdoc IRewardsIssuer\n function getSubgraphAllocatedTokens(bytes32 subgraphDeploymentId) external view override returns (uint256) {\n return _subgraphAllocatedTokens[subgraphDeploymentId];\n }\n\n /// @inheritdoc ISubgraphService\n function getLegacyAllocation(address allocationId) external view override returns (LegacyAllocation.State memory) {\n return _legacyAllocations[allocationId];\n }\n\n /// @inheritdoc ISubgraphService\n function getDisputeManager() external view override returns (address) {\n return address(_disputeManager());\n }\n\n /// @inheritdoc ISubgraphService\n function getGraphTallyCollector() external view override returns (address) {\n return address(_graphTallyCollector());\n }\n\n /// @inheritdoc ISubgraphService\n function getCuration() external view override returns (address) {\n return address(_curation());\n }\n\n /// @inheritdoc ISubgraphService\n function encodeAllocationProof(address indexer, address allocationId) external view override returns (bytes32) {\n return _encodeAllocationProof(indexer, allocationId);\n }\n\n /// @inheritdoc ISubgraphService\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 * The accepted range is just the dispute period defined by {DisputeManager-getDisputePeriod}\n * @dev This override ensures {ProvisionManager} uses the thawing period from the {DisputeManager}\n * @return The minimum thawing period - the dispute period\n * @return The maximum thawing period - the dispute period\n */\n function _getThawingPeriodRange() internal view override returns (uint64, uint64) {\n uint64 disputePeriod = _disputeManager().getDisputePeriod();\n return (disputePeriod, disputePeriod);\n }\n\n /**\n * @notice Getter for the accepted verifier cut range for provisions\n * @return The minimum verifier cut which is defined by the fisherman reward cut {DisputeManager-getFishermanRewardCut}\n * @return The maximum is 100% in PPM\n */\n function _getVerifierCutRange() internal view override returns (uint32, uint32) {\n return (_disputeManager().getFishermanRewardCut(), 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 {GraphTallyCollector} 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 indexer The address of the indexer\n * @param data Encoded data:\n * - IGraphTallyCollector.SignedRAV `signedRav`: The signed RAV\n * - uint256 `tokensToCollect`: The amount of tokens to collect. Allows partially collecting a RAV. If 0, the entire RAV will\n * be collected.\n * @return The amount of fees collected\n */\n function _collectQueryFees(address indexer, bytes calldata data) private returns (uint256) {\n (IGraphTallyCollector.SignedRAV memory signedRav, uint256 tokensToCollect) = abi.decode(\n data,\n (IGraphTallyCollector.SignedRAV, uint256)\n );\n require(\n signedRav.rav.serviceProvider == indexer,\n SubgraphServiceIndexerMismatch(signedRav.rav.serviceProvider, indexer)\n );\n\n // Check that collectionId (256 bits) is a valid address (160 bits)\n // collectionId is expected to be a zero padded address so it's safe to cast to uint160\n require(\n uint256(signedRav.rav.collectionId) <= type(uint160).max,\n SubgraphServiceInvalidCollectionId(signedRav.rav.collectionId)\n );\n address allocationId = address(uint160(uint256(signedRav.rav.collectionId)));\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 tokensCollected;\n uint256 tokensCurators;\n {\n uint256 balanceBefore = _graphToken().balanceOf(address(this));\n\n tokensCollected = _graphTallyCollector().collect(\n IGraphPayments.PaymentTypes.QueryFee,\n _encodeGraphTallyData(signedRav, _curation().isCurated(subgraphDeploymentId) ? curationFeesCut : 0),\n tokensToCollect\n );\n\n uint256 balanceAfter = _graphToken().balanceOf(address(this));\n require(balanceAfter >= balanceBefore, SubgraphServiceInconsistentCollection(balanceBefore, balanceAfter));\n tokensCurators = balanceAfter - balanceBefore;\n }\n\n if (tokensCollected > 0) {\n // lock stake as economic security for fees\n _lockStake(\n indexer,\n tokensCollected * stakeToFeesRatio,\n block.timestamp + _disputeManager().getDisputePeriod()\n );\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(\n indexer,\n signedRav.rav.payer,\n allocationId,\n subgraphDeploymentId,\n tokensCollected,\n tokensCurators\n );\n return tokensCollected;\n }\n\n /**\n * @notice Collect indexing rewards\n * @param indexer The address of the indexer\n * @param data Encoded data:\n * - address `allocationId`: The id of the allocation\n * - bytes32 `poi`: The POI being presented\n * - bytes `poiMetadata`: The metadata associated with the POI. See {AllocationManager-_presentPOI} for more details.\n * @return The amount of indexing rewards collected\n */\n function _collectIndexingRewards(address indexer, bytes calldata data) private returns (uint256) {\n (address allocationId, bytes32 poi_, bytes memory poiMetadata_) = abi.decode(data, (address, bytes32, bytes));\n require(\n _allocations.get(allocationId).indexer == indexer,\n SubgraphServiceAllocationNotAuthorized(indexer, allocationId)\n );\n return _presentPOI(allocationId, poi_, poiMetadata_, _delegationRatio, paymentsDestination[indexer]);\n }\n\n /**\n * @notice Sets the payments destination for an indexer to receive payments\n * @dev Emits a {PaymentsDestinationSet} event\n * @param _indexer The address of the indexer\n * @param _paymentsDestination The address where payments should be sent\n */\n function _setPaymentsDestination(address _indexer, address _paymentsDestination) internal {\n paymentsDestination[_indexer] = _paymentsDestination;\n emit PaymentsDestinationSet(_indexer, _paymentsDestination);\n }\n\n /**\n * @notice Set the stake to fees ratio.\n * @param _stakeToFeesRatio The stake to fees ratio\n */\n function _setStakeToFeesRatio(uint256 _stakeToFeesRatio) private {\n require(_stakeToFeesRatio != 0, SubgraphServiceInvalidZeroStakeToFeesRatio());\n stakeToFeesRatio = _stakeToFeesRatio;\n emit StakeToFeesRatioSet(_stakeToFeesRatio);\n }\n\n /**\n * @notice Encodes the data for the GraphTallyCollector\n * @dev The purpose of this function is just to avoid stack too deep errors\n * @param signedRav The signed RAV\n * @param curationCut The curation cut\n * @return The encoded data\n */\n function _encodeGraphTallyData(\n IGraphTallyCollector.SignedRAV memory signedRav,\n uint256 curationCut\n ) private view returns (bytes memory) {\n return abi.encode(signedRav, curationCut, paymentsDestination[signedRav.rav.serviceProvider]);\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\n/**\n * @title SubgraphServiceStorage\n * @notice This contract holds all the storage variables for the Subgraph Service 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 */\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. In PPM.\n uint256 public curationFeesCut;\n\n /// @notice Destination of indexer payments\n mapping(address indexer => address destination) public paymentsDestination;\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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 id proof\n bytes32 private constant EIP712_ALLOCATION_ID_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 * @param currentEpoch The current epoch\n */\n event AllocationCreated(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 tokens,\n uint256 currentEpoch\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 * @param poiMetadata The metadata associated with the POI\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 bytes poiMetadata,\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 * @param forceClosed Whether the allocation was force closed\n */\n event AllocationClosed(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 tokens,\n bool forceClosed\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 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 * @param _name The name to use for EIP712 domain separation\n * @param _version The version to use for EIP712 domain separation\n */\n function __AllocationManager_init(string memory _name, string memory _version) internal onlyInitializing {\n __EIP712_init(_name, _version);\n __AllocationManager_init_unchained();\n }\n\n /**\n * @notice Initializes the contract\n */\n function __AllocationManager_init_unchained() 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 {\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(_graphStaking(), _allocationId);\n\n uint256 currentEpoch = _graphEpochManager().currentEpoch();\n Allocation.State memory allocation = _allocations.create(\n _indexer,\n _allocationId,\n _subgraphDeploymentId,\n _tokens,\n _graphRewardsManager().onSubgraphAllocationUpdate(_subgraphDeploymentId),\n currentEpoch\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, currentEpoch);\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 * Conditions 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 * - allocation must be open for at least one epoch\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 * Note on allocation duration restriction: this is required to ensure that non protocol chains have a valid block number for\n * which to calculate POIs. EBO posts once per epoch typically at each epoch change, so we restrict rewards to allocations\n * that have gone through at least one epoch change.\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 * @param _poiMetadata The metadata associated with the POI. The data and encoding format is for off-chain components to define, this function will only emit the value in an event as-is.\n * @param _delegationRatio The delegation ratio to consider when locking tokens\n * @param _paymentsDestination The address where indexing rewards should be sent\n * @return The amount of tokens collected\n */\n function _presentPOI(\n address _allocationId,\n bytes32 _poi,\n bytes memory _poiMetadata,\n uint32 _delegationRatio,\n address _paymentsDestination\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)) && _graphEpochManager().currentEpoch() > allocation.createdAtEpoch\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 if (_paymentsDestination == address(0)) {\n _graphToken().approve(address(_graphStaking()), tokensIndexerRewards);\n _graphStaking().stakeToProvision(allocation.indexer, address(this), tokensIndexerRewards);\n } else {\n _graphToken().pushTokens(_paymentsDestination, 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 _poiMetadata,\n _graphEpochManager().currentEpoch()\n );\n\n // Check if the indexer is over-allocated and force close the allocation if necessary\n if (_isOverAllocated(allocation.indexer, _delegationRatio)) {\n _closeAllocation(_allocationId, true);\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(address _allocationId, uint256 _tokens, uint32 _delegationRatio) internal {\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 }\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 * @param _forceClosed Whether the allocation was force closed\n */\n function _closeAllocation(address _allocationId, bool _forceClosed) 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(\n allocation.indexer,\n _allocationId,\n allocation.subgraphDeploymentId,\n allocation.tokens,\n _forceClosed\n );\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 Encodes the allocation proof for EIP712 signing\n * @param _indexer The address of the indexer\n * @param _allocationId The id of the allocation\n * @return The encoded allocation proof\n */\n function _encodeAllocationProof(address _indexer, address _allocationId) internal view returns (bytes32) {\n return _hashTypedDataV4(keccak256(abi.encode(EIP712_ALLOCATION_ID_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\n/**\n * @title AllocationManagerStorage\n * @notice This contract holds all the storage variables for the Allocation Manager 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 */\nabstract contract AllocationManagerV1Storage {\n /// @notice Allocation details\n mapping(address allocationId => Allocation.State allocation) internal _allocations;\n\n /// @notice Legacy allocation details\n mapping(address allocationId => LegacyAllocation.State allocation) internal _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 Track total tokens allocated per subgraph deployment\n /// @dev Used to calculate indexing rewards\n mapping(bytes32 subgraphDeploymentId => uint256 tokens) internal _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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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\n/**\n * @title AttestationManagerStorage\n * @notice This contract holds all the storage variables for the Attestation Manager 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 */\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 { IGraphTallyCollector } from \"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.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 * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\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 Graph Tally Collector contract address\n /// @dev Required to collect payments via Graph Horizon payments protocol\n IGraphTallyCollector private immutable GRAPH_TALLY_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 graphTallyCollector The Graph Tally Collector contract address\n * @param curation The Curation contract address\n */\n event SubgraphServiceDirectoryInitialized(\n address subgraphService,\n address disputeManager,\n address graphTallyCollector,\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 graphTallyCollector The Graph Tally Collector contract address\n * @param curation The Curation contract address\n */\n constructor(address subgraphService, address disputeManager, address graphTallyCollector, address curation) {\n SUBGRAPH_SERVICE = ISubgraphService(subgraphService);\n DISPUTE_MANAGER = IDisputeManager(disputeManager);\n GRAPH_TALLY_COLLECTOR = IGraphTallyCollector(graphTallyCollector);\n CURATION = ICuration(curation);\n\n emit SubgraphServiceDirectoryInitialized(subgraphService, disputeManager, graphTallyCollector, curation);\n }\n\n /**\n * @notice Returns the Subgraph Service contract address\n * @return The Subgraph Service contract\n */\n function _subgraphService() internal view returns (ISubgraphService) {\n return SUBGRAPH_SERVICE;\n }\n\n /**\n * @notice Returns the Dispute Manager contract address\n * @return The Dispute Manager contract\n */\n function _disputeManager() internal view returns (IDisputeManager) {\n return DISPUTE_MANAGER;\n }\n\n /**\n * @notice Returns the Graph Tally Collector contract address\n * @return The Graph Tally Collector contract\n */\n function _graphTallyCollector() internal view returns (IGraphTallyCollector) {\n return GRAPH_TALLY_COLLECTOR;\n }\n\n /**\n * @notice Returns the Curation contract address\n * @return The Curation contract\n */\n function _curation() internal view returns (ICuration) {\n return CURATION;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 10 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "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/disputes/IDisputeManager.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol", + "exportedSymbols": { + "IDisputeManager": [ + 314 + ] + }, + "id": 315, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 167, + "literals": [ + "solidity", + ">=", + "0.6", + ".12", + "<", + "0.8", + ".0", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:42:2" + }, + { + "id": 168, + "literals": [ + "abicoder", + "v2" + ], + "nodeType": "PragmaDirective", + "src": "89:19:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDisputeManager", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 314, + "linearizedBaseContracts": [ + 314 + ], + "name": "IDisputeManager", + "nameLocation": "120:15:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IDisputeManager.DisputeType", + "id": 172, + "members": [ + { + "id": 169, + "name": "Null", + "nameLocation": "191:4:2", + "nodeType": "EnumValue", + "src": "191:4:2" + }, + { + "id": 170, + "name": "IndexingDispute", + "nameLocation": "205:15:2", + "nodeType": "EnumValue", + "src": "205:15:2" + }, + { + "id": 171, + "name": "QueryDispute", + "nameLocation": "230:12:2", + "nodeType": "EnumValue", + "src": "230:12:2" + } + ], + "name": "DisputeType", + "nameLocation": "169:11:2", + "nodeType": "EnumDefinition", + "src": "164:84:2" + }, + { + "canonicalName": "IDisputeManager.DisputeStatus", + "id": 178, + "members": [ + { + "id": 173, + "name": "Null", + "nameLocation": "283:4:2", + "nodeType": "EnumValue", + "src": "283:4:2" + }, + { + "id": 174, + "name": "Accepted", + "nameLocation": "297:8:2", + "nodeType": "EnumValue", + "src": "297:8:2" + }, + { + "id": 175, + "name": "Rejected", + "nameLocation": "315:8:2", + "nodeType": "EnumValue", + "src": "315:8:2" + }, + { + "id": 176, + "name": "Drawn", + "nameLocation": "333:5:2", + "nodeType": "EnumValue", + "src": "333:5:2" + }, + { + "id": 177, + "name": "Pending", + "nameLocation": "348:7:2", + "nodeType": "EnumValue", + "src": "348:7:2" + } + ], + "name": "DisputeStatus", + "nameLocation": "259:13:2", + "nodeType": "EnumDefinition", + "src": "254:107:2" + }, + { + "canonicalName": "IDisputeManager.Dispute", + "id": 193, + "members": [ + { + "constant": false, + "id": 180, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "480:7:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "472:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "472:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "505:9:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "497:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 184, + "mutability": "mutable", + "name": "deposit", + "nameLocation": "532:7:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "524:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "524:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "relatedDisputeID", + "nameLocation": "557:16:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "549:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 185, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "549:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "disputeType", + "nameLocation": "595:11:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "583:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$172", + "typeString": "enum IDisputeManager.DisputeType" + }, + "typeName": { + "id": 188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 187, + "name": "DisputeType", + "nameLocations": [ + "583:11:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 172, + "src": "583:11:2" + }, + "referencedDeclaration": 172, + "src": "583:11:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$172", + "typeString": "enum IDisputeManager.DisputeType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "status", + "nameLocation": "630:6:2", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "616:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$178", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + "typeName": { + "id": 191, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 190, + "name": "DisputeStatus", + "nameLocations": [ + "616:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 178, + "src": "616:13:2" + }, + "referencedDeclaration": 178, + "src": "616:13:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$178", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "visibility": "internal" + } + ], + "name": "Dispute", + "nameLocation": "454:7:2", + "nodeType": "StructDefinition", + "scope": 314, + "src": "447:196:2", + "visibility": "public" + }, + { + "canonicalName": "IDisputeManager.Receipt", + "id": 200, + "members": [ + { + "constant": false, + "id": 195, + "mutability": "mutable", + "name": "requestCID", + "nameLocation": "772:10:2", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "764:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 194, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "764:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "responseCID", + "nameLocation": "800:11:2", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "792:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 196, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "792:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 199, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "829:20:2", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "821:28:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 198, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Receipt", + "nameLocation": "746:7:2", + "nodeType": "StructDefinition", + "scope": 314, + "src": "739:117:2", + "visibility": "public" + }, + { + "canonicalName": "IDisputeManager.Attestation", + "id": 213, + "members": [ + { + "constant": false, + "id": 202, + "mutability": "mutable", + "name": "requestCID", + "nameLocation": "961:10:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "953:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 201, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "953:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "responseCID", + "nameLocation": "989:11:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "981:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 203, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "981:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "1018:20:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1010:28:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 205, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1010:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "r", + "nameLocation": "1056:1:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1048:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 207, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1048:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "s", + "nameLocation": "1075:1:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1067:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 209, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1067:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "v", + "nameLocation": "1092:1:2", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "1086:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 211, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1086:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "Attestation", + "nameLocation": "931:11:2", + "nodeType": "StructDefinition", + "scope": 314, + "src": "924:176:2", + "visibility": "public" + }, + { + "functionSelector": "b0eefabe", + "id": 218, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setArbitrator", + "nameLocation": "1143:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "_arbitrator", + "nameLocation": "1165:11:2", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1157:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1157:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1156:21:2" + }, + "returnParameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:0:2" + }, + "scope": 314, + "src": "1134:53:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e78ec42e", + "id": 223, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMinimumDeposit", + "nameLocation": "1202:17:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "_minimumDeposit", + "nameLocation": "1228:15:2", + "nodeType": "VariableDeclaration", + "scope": 223, + "src": "1220:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1219:25:2" + }, + "returnParameters": { + "id": 222, + "nodeType": "ParameterList", + "parameters": [], + "src": "1253:0:2" + }, + "scope": 314, + "src": "1193:61:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "991a8355", + "id": 228, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFishermanRewardPercentage", + "nameLocation": "1269:28:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "_percentage", + "nameLocation": "1305:11:2", + "nodeType": "VariableDeclaration", + "scope": 228, + "src": "1298:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 224, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1298:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1297:20:2" + }, + "returnParameters": { + "id": 227, + "nodeType": "ParameterList", + "parameters": [], + "src": "1326:0:2" + }, + "scope": 314, + "src": "1260:67:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "8bbb33b4", + "id": 235, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSlashingPercentage", + "nameLocation": "1342:21:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "_qryPercentage", + "nameLocation": "1371:14:2", + "nodeType": "VariableDeclaration", + "scope": 235, + "src": "1364:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 229, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1364:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "_idxPercentage", + "nameLocation": "1394:14:2", + "nodeType": "VariableDeclaration", + "scope": 235, + "src": "1387:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 231, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1387:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1363:46:2" + }, + "returnParameters": { + "id": 234, + "nodeType": "ParameterList", + "parameters": [], + "src": "1418:0:2" + }, + "scope": 314, + "src": "1333:86:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "be41f384", + "id": 242, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isDisputeCreated", + "nameLocation": "1456:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "_disputeID", + "nameLocation": "1481:10:2", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "1473:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 236, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1473:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1472:20:2" + }, + "returnParameters": { + "id": 241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "1516:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 239, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1516:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1515:6:2" + }, + "scope": 314, + "src": "1447:75:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "460967df", + "id": 250, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "encodeHashReceipt", + "nameLocation": "1537:17:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "_receipt", + "nameLocation": "1570:8:2", + "nodeType": "VariableDeclaration", + "scope": 250, + "src": "1555:23:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$200_memory_ptr", + "typeString": "struct IDisputeManager.Receipt" + }, + "typeName": { + "id": 244, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 243, + "name": "Receipt", + "nameLocations": [ + "1555:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 200, + "src": "1555:7:2" + }, + "referencedDeclaration": 200, + "src": "1555:7:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$200_storage_ptr", + "typeString": "struct IDisputeManager.Receipt" + } + }, + "visibility": "internal" + } + ], + "src": "1554:25:2" + }, + "returnParameters": { + "id": 249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 250, + "src": "1603:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 247, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1603:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1602:9:2" + }, + "scope": 314, + "src": "1528:84:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d36fc9d4", + "id": 261, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "areConflictingAttestations", + "nameLocation": "1627:26:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 253, + "mutability": "mutable", + "name": "_attestation1", + "nameLocation": "1682:13:2", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "1663:32:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_memory_ptr", + "typeString": "struct IDisputeManager.Attestation" + }, + "typeName": { + "id": 252, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 251, + "name": "Attestation", + "nameLocations": [ + "1663:11:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 213, + "src": "1663:11:2" + }, + "referencedDeclaration": 213, + "src": "1663:11:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_storage_ptr", + "typeString": "struct IDisputeManager.Attestation" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "_attestation2", + "nameLocation": "1724:13:2", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "1705:32:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_memory_ptr", + "typeString": "struct IDisputeManager.Attestation" + }, + "typeName": { + "id": 255, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 254, + "name": "Attestation", + "nameLocations": [ + "1705:11:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 213, + "src": "1705:11:2" + }, + "referencedDeclaration": 213, + "src": "1705:11:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_storage_ptr", + "typeString": "struct IDisputeManager.Attestation" + } + }, + "visibility": "internal" + } + ], + "src": "1653:90:2" + }, + "returnParameters": { + "id": 260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "1767:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 258, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1767:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1766:6:2" + }, + "scope": 314, + "src": "1618:155:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c9747f51", + "id": 269, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAttestationIndexer", + "nameLocation": "1788:21:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "_attestation", + "nameLocation": "1829:12:2", + "nodeType": "VariableDeclaration", + "scope": 269, + "src": "1810:31:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_memory_ptr", + "typeString": "struct IDisputeManager.Attestation" + }, + "typeName": { + "id": 263, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 262, + "name": "Attestation", + "nameLocations": [ + "1810:11:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 213, + "src": "1810:11:2" + }, + "referencedDeclaration": 213, + "src": "1810:11:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$213_storage_ptr", + "typeString": "struct IDisputeManager.Attestation" + } + }, + "visibility": "internal" + } + ], + "src": "1809:33:2" + }, + "returnParameters": { + "id": 268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 269, + "src": "1866:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1866:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1865:9:2" + }, + "scope": 314, + "src": "1779:96:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "131610b1", + "id": 278, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createQueryDispute", + "nameLocation": "1912:18:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "_attestationData", + "nameLocation": "1946:16:2", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "1931:31:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 270, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1931:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "_deposit", + "nameLocation": "1972:8:2", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "1964:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1964:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1930:51:2" + }, + "returnParameters": { + "id": 277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 276, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "2000:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2000:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1999:9:2" + }, + "scope": 314, + "src": "1903:106:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c894222e", + "id": 289, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createQueryDisputeConflict", + "nameLocation": "2024:26:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 280, + "mutability": "mutable", + "name": "_attestationData1", + "nameLocation": "2075:17:2", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "2060:32:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2060:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 282, + "mutability": "mutable", + "name": "_attestationData2", + "nameLocation": "2117:17:2", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "2102:32:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 281, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2102:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2050:90:2" + }, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 285, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "2159:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 284, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2159:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "2168:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 286, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2168:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2158:18:2" + }, + "scope": 314, + "src": "2015:162:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c8792217", + "id": 298, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createIndexingDispute", + "nameLocation": "2192:21:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 291, + "mutability": "mutable", + "name": "_allocationID", + "nameLocation": "2222:13:2", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "2214:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2214:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "_deposit", + "nameLocation": "2245:8:2", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "2237:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 292, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2237:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2213:41:2" + }, + "returnParameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "2273:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 295, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2273:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2272:9:2" + }, + "scope": 314, + "src": "2183:99:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "11b42611", + "id": 303, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptDispute", + "nameLocation": "2297:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 300, + "mutability": "mutable", + "name": "_disputeID", + "nameLocation": "2319:10:2", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "2311:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2311:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2310:20:2" + }, + "returnParameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [], + "src": "2339:0:2" + }, + "scope": 314, + "src": "2288:52:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "36167e03", + "id": 308, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "rejectDispute", + "nameLocation": "2355:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "_disputeID", + "nameLocation": "2377:10:2", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "2369:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 304, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2369:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2368:20:2" + }, + "returnParameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "2397:0:2" + }, + "scope": 314, + "src": "2346:52:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "9334ea52", + "id": 313, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "drawDispute", + "nameLocation": "2413:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 310, + "mutability": "mutable", + "name": "_disputeID", + "nameLocation": "2433:10:2", + "nodeType": "VariableDeclaration", + "scope": 313, + "src": "2425:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 309, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2425:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2424:20:2" + }, + "returnParameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [], + "src": "2453:0:2" + }, + "scope": 314, + "src": "2404:50:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 315, + "src": "110:2346:2", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:2411:2" + }, + "id": 2 + }, + "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", + "exportedSymbols": { + "IEpochManager": [ + 369 + ] + }, + "id": 370, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 316, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IEpochManager", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 369, + "linearizedBaseContracts": [ + 369 + ], + "name": "IEpochManager", + "nameLocation": "91:13:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "54eea796", + "id": 321, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setEpochLength", + "nameLocation": "148:14:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "_epochLength", + "nameLocation": "171:12:3", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "163:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "163:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "162:22:3" + }, + "returnParameters": { + "id": 320, + "nodeType": "ParameterList", + "parameters": [], + "src": "193:0:3" + }, + "scope": 369, + "src": "139:55:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c46e58eb", + "id": 324, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "runEpoch", + "nameLocation": "227:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 322, + "nodeType": "ParameterList", + "parameters": [], + "src": "235:2:3" + }, + "returnParameters": { + "id": 323, + "nodeType": "ParameterList", + "parameters": [], + "src": "246:0:3" + }, + "scope": 369, + "src": "218:29:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1ce05d38", + "id": 329, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isCurrentEpochRun", + "nameLocation": "284:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [], + "src": "301:2:3" + }, + "returnParameters": { + "id": 328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "327:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 326, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "327:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "326:6:3" + }, + "scope": 369, + "src": "275:58:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "8ae63d6d", + "id": 334, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "blockNum", + "nameLocation": "348:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 330, + "nodeType": "ParameterList", + "parameters": [], + "src": "356:2:3" + }, + "returnParameters": { + "id": 333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 332, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "382:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "382:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "381:9:3" + }, + "scope": 369, + "src": "339:52:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "85df51fd", + "id": 341, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "blockHash", + "nameLocation": "406:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 336, + "mutability": "mutable", + "name": "_block", + "nameLocation": "424:6:3", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "416:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "416:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "415:16:3" + }, + "returnParameters": { + "id": 340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "455:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 338, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "455:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "454:9:3" + }, + "scope": 369, + "src": "397:67:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "76671808", + "id": 346, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "currentEpoch", + "nameLocation": "479:12:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [], + "src": "491:2:3" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "517:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "517:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "516:9:3" + }, + "scope": 369, + "src": "470:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ab93122c", + "id": 351, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "currentEpochBlock", + "nameLocation": "541:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:3" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 351, + "src": "584:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "584:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "583:9:3" + }, + "scope": 369, + "src": "532:61:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d0cfa46e", + "id": 356, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "currentEpochBlockSinceStart", + "nameLocation": "608:27:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [], + "src": "635:2:3" + }, + "returnParameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 354, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 356, + "src": "661:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "661:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "660:9:3" + }, + "scope": 369, + "src": "599:71:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1b28126d", + "id": 363, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "epochsSince", + "nameLocation": "685:11:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "_epoch", + "nameLocation": "705:6:3", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "697:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "697:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "696:16:3" + }, + "returnParameters": { + "id": 362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 361, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "736:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "735:9:3" + }, + "scope": 369, + "src": "676:69:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "19c3b82d", + "id": 368, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "epochsSinceUpdate", + "nameLocation": "760:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [], + "src": "777:2:3" + }, + "returnParameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 366, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 368, + "src": "803:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "803:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "802:9:3" + }, + "scope": 369, + "src": "751:61:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 370, + "src": "81:733:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:769:3" + }, + "id": 3 + }, + "@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol", + "exportedSymbols": { + "ICallhookReceiver": [ + 382 + ] + }, + "id": 383, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 371, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "397:33:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ICallhookReceiver", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 382, + "linearizedBaseContracts": [ + 382 + ], + "name": "ICallhookReceiver", + "nameLocation": "442:17:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 372, + "nodeType": "StructuredDocumentation", + "src": "466:219:4", + "text": " @notice Receive tokens with a callhook from the bridge\n @param _from Token sender in L1\n @param _amount Amount of tokens that were transferred\n @param _data ABI-encoded callhook data" + }, + "functionSelector": "a4c0ed36", + "id": 381, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onTokenTransfer", + "nameLocation": "699:15:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "_from", + "nameLocation": "723:5:4", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "715:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 376, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "738:7:4", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "730:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "730:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "_data", + "nameLocation": "762:5:4", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "747:20:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 377, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "747:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "714:54:4" + }, + "returnParameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [], + "src": "777:0:4" + }, + "scope": 382, + "src": "690:88:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 383, + "src": "432:348:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "397:384:4" + }, + "id": 4 + }, + "@graphprotocol/contracts/contracts/governance/IController.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/governance/IController.sol", + "exportedSymbols": { + "IController": [ + 441 + ] + }, + "id": 442, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 384, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IController", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 441, + "linearizedBaseContracts": [ + 441 + ], + "name": "IController", + "nameLocation": "91:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4fc07d75", + "id": 389, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getGovernor", + "nameLocation": "118:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [], + "src": "129:2:5" + }, + "returnParameters": { + "id": 388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 387, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "155:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "155:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "154:9:5" + }, + "scope": 441, + "src": "109:55:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e0e99292", + "id": 396, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setContractProxy", + "nameLocation": "202:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 391, + "mutability": "mutable", + "name": "_id", + "nameLocation": "227:3:5", + "nodeType": "VariableDeclaration", + "scope": 396, + "src": "219:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 390, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "219:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "_contractAddress", + "nameLocation": "240:16:5", + "nodeType": "VariableDeclaration", + "scope": 396, + "src": "232:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "232:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "218:39:5" + }, + "returnParameters": { + "id": 395, + "nodeType": "ParameterList", + "parameters": [], + "src": "266:0:5" + }, + "scope": 441, + "src": "193:74:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "9181df9c", + "id": 401, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "unsetContractProxy", + "nameLocation": "282:18:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 398, + "mutability": "mutable", + "name": "_id", + "nameLocation": "309:3:5", + "nodeType": "VariableDeclaration", + "scope": 401, + "src": "301:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 397, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "301:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "300:13:5" + }, + "returnParameters": { + "id": 400, + "nodeType": "ParameterList", + "parameters": [], + "src": "322:0:5" + }, + "scope": 441, + "src": "273:50:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "eb5dd94f", + "id": 408, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateController", + "nameLocation": "338:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "_id", + "nameLocation": "363:3:5", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "355:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 402, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "355:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "_controller", + "nameLocation": "376:11:5", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "368:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "354:34:5" + }, + "returnParameters": { + "id": 407, + "nodeType": "ParameterList", + "parameters": [], + "src": "397:0:5" + }, + "scope": 441, + "src": "329:69:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f7641a5e", + "id": 415, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getContractProxy", + "nameLocation": "413:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "_id", + "nameLocation": "438:3:5", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "430:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 409, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "430:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "429:13:5" + }, + "returnParameters": { + "id": 414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 413, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "466:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "466:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "465:9:5" + }, + "scope": 441, + "src": "404:71:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "56371bd8", + "id": 420, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPartialPaused", + "nameLocation": "512:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "_partialPaused", + "nameLocation": "534:14:5", + "nodeType": "VariableDeclaration", + "scope": 420, + "src": "529:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 416, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "529:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "528:21:5" + }, + "returnParameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:0:5" + }, + "scope": 441, + "src": "503:56:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "16c38b3c", + "id": 425, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPaused", + "nameLocation": "574:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 422, + "mutability": "mutable", + "name": "_paused", + "nameLocation": "589:7:5", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "584:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 421, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "584:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "583:14:5" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [], + "src": "606:0:5" + }, + "scope": 441, + "src": "565:42:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "48bde20c", + "id": 430, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPauseGuardian", + "nameLocation": "622:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 427, + "mutability": "mutable", + "name": "_newPauseGuardian", + "nameLocation": "647:17:5", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "639:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "639:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "638:27:5" + }, + "returnParameters": { + "id": 429, + "nodeType": "ParameterList", + "parameters": [], + "src": "674:0:5" + }, + "scope": 441, + "src": "613:62:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5c975abb", + "id": 435, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "paused", + "nameLocation": "690:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 431, + "nodeType": "ParameterList", + "parameters": [], + "src": "696:2:5" + }, + "returnParameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "722:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 432, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "722:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "721:6:5" + }, + "scope": 441, + "src": "681:47:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e292fc7", + "id": 440, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "partialPaused", + "nameLocation": "743:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 436, + "nodeType": "ParameterList", + "parameters": [], + "src": "756:2:5" + }, + "returnParameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "782:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 437, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "782:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "781:6:5" + }, + "scope": 441, + "src": "734:54:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 442, + "src": "81:709:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:745:5" + }, + "id": 5 + }, + "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol", + "exportedSymbols": { + "IL2Curation": [ + 481 + ] + }, + "id": 482, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 443, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IL2Curation", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 444, + "nodeType": "StructuredDocumentation", + "src": "81:56:6", + "text": " @title Interface of the L2 Curation contract." + }, + "fullyImplemented": false, + "id": 481, + "linearizedBaseContracts": [ + 481 + ], + "name": "IL2Curation", + "nameLocation": "148:11:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 445, + "nodeType": "StructuredDocumentation", + "src": "166:131:6", + "text": " @notice Set the subgraph service address.\n @param _subgraphService Address of the SubgraphService contract" + }, + "functionSelector": "93a90a1e", + "id": 450, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubgraphService", + "nameLocation": "311:18:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "_subgraphService", + "nameLocation": "338:16:6", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "330:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "330:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "329:26:6" + }, + "returnParameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [], + "src": "364:0:6" + }, + "scope": 481, + "src": "302:63:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 451, + "nodeType": "StructuredDocumentation", + "src": "371:424:6", + "text": " @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\n @dev This function charges no tax and can only be called by GNS in specific scenarios (for now\n only during an L1-L2 transfer).\n @param _subgraphDeploymentID Subgraph deployment pool from where to mint signal\n @param _tokensIn Amount of Graph Tokens to deposit\n @return Signal minted" + }, + "functionSelector": "3718896d", + "id": 460, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mintTaxFree", + "nameLocation": "809:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "829:21:6", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "821:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 452, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "821:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "_tokensIn", + "nameLocation": "860:9:6", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "852:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "852:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:50:6" + }, + "returnParameters": { + "id": 459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "889:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "889:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "888:9:6" + }, + "scope": 481, + "src": "800:98:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 461, + "nodeType": "StructuredDocumentation", + "src": "904:341:6", + "text": " @notice Calculate amount of signal that can be bought with tokens in a curation pool,\n without accounting for curation tax.\n @param _subgraphDeploymentID Subgraph deployment for which to mint signal\n @param _tokensIn Amount of tokens used to mint signal\n @return Amount of signal that can be bought" + }, + "functionSelector": "7a2a45b8", + "id": 470, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokensToSignalNoTax", + "nameLocation": "1259:19:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1287:21:6", + "nodeType": "VariableDeclaration", + "scope": 470, + "src": "1279:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 462, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1279:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "_tokensIn", + "nameLocation": "1318:9:6", + "nodeType": "VariableDeclaration", + "scope": 470, + "src": "1310:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1310:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1278:50:6" + }, + "returnParameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 468, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 470, + "src": "1352:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1352:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1351:9:6" + }, + "scope": 481, + "src": "1250:111:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 471, + "nodeType": "StructuredDocumentation", + "src": "1367:480:6", + "text": " @notice Calculate the amount of tokens that would be recovered if minting signal with\n the input tokens and then burning it. This can be used to compute rounding error.\n This function does not account for curation tax.\n @param _subgraphDeploymentID Subgraph deployment for which to mint signal\n @param _tokensIn Amount of tokens used to mint signal\n @return Amount of tokens that would be recovered after minting and burning signal" + }, + "functionSelector": "69db11a1", + "id": 480, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokensToSignalToTokensNoTax", + "nameLocation": "1861:27:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 473, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1906:21:6", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "1898:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 472, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1898:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 475, + "mutability": "mutable", + "name": "_tokensIn", + "nameLocation": "1945:9:6", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "1937:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1937:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1888:72:6" + }, + "returnParameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "1984:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1984:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1983:9:6" + }, + "scope": 481, + "src": "1852:141:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 482, + "src": "138:1857:6", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1950:6" + }, + "id": 6 + }, + "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol", + "exportedSymbols": { + "ICallhookReceiver": [ + 382 + ], + "IL2GNS": [ + 532 + ] + }, + "id": 533, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 483, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:7" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol", + "file": "../../gateway/ICallhookReceiver.sol", + "id": 485, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 533, + "sourceUnit": 383, + "src": "81:72:7", + "symbolAliases": [ + { + "foreign": { + "id": 484, + "name": "ICallhookReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 382, + "src": "90:17:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 487, + "name": "ICallhookReceiver", + "nameLocations": [ + "227:17:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 382, + "src": "227:17:7" + }, + "id": 488, + "nodeType": "InheritanceSpecifier", + "src": "227:17:7" + } + ], + "canonicalName": "IL2GNS", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 486, + "nodeType": "StructuredDocumentation", + "src": "155:51:7", + "text": " @title Interface for the L2GNS contract." + }, + "fullyImplemented": false, + "id": 532, + "linearizedBaseContracts": [ + 532, + 382 + ], + "name": "IL2GNS", + "nameLocation": "217:6:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IL2GNS.L1MessageCodes", + "id": 491, + "members": [ + { + "id": 489, + "name": "RECEIVE_SUBGRAPH_CODE", + "nameLocation": "281:21:7", + "nodeType": "EnumValue", + "src": "281:21:7" + }, + { + "id": 490, + "name": "RECEIVE_CURATOR_BALANCE_CODE", + "nameLocation": "312:28:7", + "nodeType": "EnumValue", + "src": "312:28:7" + } + ], + "name": "L1MessageCodes", + "nameLocation": "256:14:7", + "nodeType": "EnumDefinition", + "src": "251:95:7" + }, + { + "canonicalName": "IL2GNS.SubgraphL2TransferData", + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "352:138:7", + "text": " @dev The SubgraphL2TransferData struct holds information\n about a subgraph related to its transfer from L1 to L2." + }, + "id": 503, + "members": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "543:6:7", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "535:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "535:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 498, + "mutability": "mutable", + "name": "curatorBalanceClaimed", + "nameLocation": "630:21:7", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "605:46:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 497, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "613:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "605:24:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 496, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "624:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "l2Done", + "nameLocation": "724:6:7", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "719:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "subgraphReceivedOnL2BlockNumber", + "nameLocation": "780:31:7", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "772:39:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "772:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "SubgraphL2TransferData", + "nameLocation": "502:22:7", + "nodeType": "StructDefinition", + "scope": 532, + "src": "495:376:7", + "visibility": "public" + }, + { + "documentation": { + "id": 504, + "nodeType": "StructuredDocumentation", + "src": "877:486:7", + "text": " @notice Finish a subgraph transfer from L1.\n The subgraph must have been previously sent through the bridge\n using the sendSubgraphToL2 function on L1GNS.\n @param _l2SubgraphID Subgraph ID in L2 (aliased from the L1 subgraph ID)\n @param _subgraphDeploymentID Latest subgraph deployment to assign to the subgraph\n @param _subgraphMetadata IPFS hash of the subgraph metadata\n @param _versionMetadata IPFS hash of the version metadata" + }, + "functionSelector": "d1a80612", + "id": 515, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "finishSubgraphTransferFromL1", + "nameLocation": "1377:28:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 506, + "mutability": "mutable", + "name": "_l2SubgraphID", + "nameLocation": "1423:13:7", + "nodeType": "VariableDeclaration", + "scope": 515, + "src": "1415:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1454:21:7", + "nodeType": "VariableDeclaration", + "scope": 515, + "src": "1446:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 507, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1446:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 510, + "mutability": "mutable", + "name": "_subgraphMetadata", + "nameLocation": "1493:17:7", + "nodeType": "VariableDeclaration", + "scope": 515, + "src": "1485:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 509, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1485:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "_versionMetadata", + "nameLocation": "1528:16:7", + "nodeType": "VariableDeclaration", + "scope": 515, + "src": "1520:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 511, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1520:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1405:145:7" + }, + "returnParameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1559:0:7" + }, + "scope": 532, + "src": "1368:192:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 516, + "nodeType": "StructuredDocumentation", + "src": "1566:167:7", + "text": " @notice Return the aliased L2 subgraph ID from a transferred L1 subgraph ID\n @param _l1SubgraphID L1 subgraph ID\n @return L2 subgraph ID" + }, + "functionSelector": "ea0f2eba", + "id": 523, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAliasedL2SubgraphID", + "nameLocation": "1747:22:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 518, + "mutability": "mutable", + "name": "_l1SubgraphID", + "nameLocation": "1778:13:7", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "1770:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1770:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1769:23:7" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "1816:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1816:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1815:9:7" + }, + "scope": 532, + "src": "1738:87:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 524, + "nodeType": "StructuredDocumentation", + "src": "1831:168:7", + "text": " @notice Return the unaliased L1 subgraph ID from a transferred L2 subgraph ID\n @param _l2SubgraphID L2 subgraph ID\n @return L1subgraph ID" + }, + "functionSelector": "9c6c022b", + "id": 531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUnaliasedL1SubgraphID", + "nameLocation": "2013:24:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "_l2SubgraphID", + "nameLocation": "2046:13:7", + "nodeType": "VariableDeclaration", + "scope": 531, + "src": "2038:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2038:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2037:23:7" + }, + "returnParameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 531, + "src": "2084:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2084:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2083:9:7" + }, + "scope": 532, + "src": "2004:89:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "scope": 533, + "src": "207:1888:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:2050:7" + }, + "id": 7 + }, + "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", + "exportedSymbols": { + "IRewardsIssuer": [ + 561 + ] + }, + "id": 562, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 534, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:8" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IRewardsIssuer", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 561, + "linearizedBaseContracts": [ + 561 + ], + "name": "IRewardsIssuer", + "nameLocation": "91:14:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 535, + "nodeType": "StructuredDocumentation", + "src": "112:542:8", + "text": " @dev Get allocation data to calculate rewards issuance\n \n @param allocationId The allocation Id\n @return isActive Whether the allocation is active or not\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": 552, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllocationData", + "nameLocation": "668:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 537, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "703:12:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "695:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "685:36:8" + }, + "returnParameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "isActive", + "nameLocation": "787:8:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "782:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "782:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 542, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "817:7:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "809:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "809:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 544, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "846:20:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "838:28:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 543, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "838:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 546, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "888:6:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "880:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "880:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 548, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "916:27:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "908:35:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "mutability": "mutable", + "name": "accRewardsPending", + "nameLocation": "965:17:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "957:25:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "957:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "768:224:8" + }, + "scope": 561, + "src": "659:334:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 553, + "nodeType": "StructuredDocumentation", + "src": "999:200:8", + "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": 560, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSubgraphAllocatedTokens", + "nameLocation": "1213:26:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "mutability": "mutable", + "name": "_subgraphDeploymentId", + "nameLocation": "1248:21:8", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "1240:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 554, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1240:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1239:31:8" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "1294:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1294:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1293:9:8" + }, + "scope": 561, + "src": "1204:99:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 562, + "src": "81:1224:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1260:8" + }, + "id": 8 + }, + "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", + "exportedSymbols": { + "IRewardsManager": [ + 678 + ] + }, + "id": 679, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 563, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IRewardsManager", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 678, + "linearizedBaseContracts": [ + 678 + ], + "name": "IRewardsManager", + "nameLocation": "91:15:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IRewardsManager.Subgraph", + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "113:108:9", + "text": " @dev Stores accumulated rewards and snapshots related to a particular SubgraphDeployment." + }, + "id": 573, + "members": [ + { + "constant": false, + "id": 566, + "mutability": "mutable", + "name": "accRewardsForSubgraph", + "nameLocation": "260:21:9", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "252:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "252:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "accRewardsForSubgraphSnapshot", + "nameLocation": "299:29:9", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "291:37:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "mutability": "mutable", + "name": "accRewardsPerSignalSnapshot", + "nameLocation": "346:27:9", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "338:35:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "338:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 572, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "391:27:9", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "383:35:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "383:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Subgraph", + "nameLocation": "233:8:9", + "nodeType": "StructDefinition", + "scope": 678, + "src": "226:199:9", + "visibility": "public" + }, + { + "functionSelector": "1156bdc1", + "id": 578, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setIssuancePerBlock", + "nameLocation": "461:19:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "_issuancePerBlock", + "nameLocation": "489:17:9", + "nodeType": "VariableDeclaration", + "scope": 578, + "src": "481:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "481:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "480:27:9" + }, + "returnParameters": { + "id": 577, + "nodeType": "ParameterList", + "parameters": [], + "src": "516:0:9" + }, + "scope": 678, + "src": "452:65:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "4bbfc1c5", + "id": 583, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMinimumSubgraphSignal", + "nameLocation": "532:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 580, + "mutability": "mutable", + "name": "_minimumSubgraphSignal", + "nameLocation": "565:22:9", + "nodeType": "VariableDeclaration", + "scope": 583, + "src": "557:30:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "556:32:9" + }, + "returnParameters": { + "id": 582, + "nodeType": "ParameterList", + "parameters": [], + "src": "597:0:9" + }, + "scope": 678, + "src": "523:75:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "93a90a1e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubgraphService", + "nameLocation": "613:18:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 585, + "mutability": "mutable", + "name": "_subgraphService", + "nameLocation": "640:16:9", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "632:24:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "632:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "631:26:9" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [], + "src": "666:0:9" + }, + "scope": 678, + "src": "604:63:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0903c094", + "id": 593, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubgraphAvailabilityOracle", + "nameLocation": "705:29:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "_subgraphAvailabilityOracle", + "nameLocation": "743:27:9", + "nodeType": "VariableDeclaration", + "scope": 593, + "src": "735:35:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "735:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "734:37:9" + }, + "returnParameters": { + "id": 592, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:9" + }, + "scope": 678, + "src": "696:85:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1324a506", + "id": 600, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDenied", + "nameLocation": "796:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "814:21:9", + "nodeType": "VariableDeclaration", + "scope": 600, + "src": "806:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "806:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "_deny", + "nameLocation": "842:5:9", + "nodeType": "VariableDeclaration", + "scope": 600, + "src": "837:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 596, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "837:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "805:43:9" + }, + "returnParameters": { + "id": 599, + "nodeType": "ParameterList", + "parameters": [], + "src": "857:0:9" + }, + "scope": 678, + "src": "787:71:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e820e284", + "id": 607, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isDenied", + "nameLocation": "873:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 602, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "890:21:9", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "882:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 601, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "882:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "881:31:9" + }, + "returnParameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "936:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "936:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "935:6:9" + }, + "scope": 678, + "src": "864:78:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e284f848", + "id": 612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getNewRewardsPerSignal", + "nameLocation": "979:22:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 608, + "nodeType": "ParameterList", + "parameters": [], + "src": "1001:2:9" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 610, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 612, + "src": "1027:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1027:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1026:9:9" + }, + "scope": 678, + "src": "970:66:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a8cc0ee2", + "id": 617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccRewardsPerSignal", + "nameLocation": "1051:22:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:2:9" + }, + "returnParameters": { + "id": 616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 615, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 617, + "src": "1099:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1099:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1098:9:9" + }, + "scope": 678, + "src": "1042:66:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "5c6cbd59", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccRewardsForSubgraph", + "nameLocation": "1123:24:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1156:21:9", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "1148:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 618, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1148:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1147:31:9" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "1202:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1202:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1201:9:9" + }, + "scope": 678, + "src": "1114:97:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "702a280e", + "id": 633, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccRewardsPerAllocatedToken", + "nameLocation": "1226:30:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 626, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1265:21:9", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "1257:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 625, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1257:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1256:31:9" + }, + "returnParameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "1311:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1311:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "1320:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1310:18:9" + }, + "scope": 678, + "src": "1217:112:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "779bcb9b", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRewards", + "nameLocation": "1344:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "_rewardsIssuer", + "nameLocation": "1363:14:9", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "1355:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1355:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "_allocationID", + "nameLocation": "1387:13:9", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "1379:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1379:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1354:47:9" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "1425:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1425:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1424:9:9" + }, + "scope": 678, + "src": "1335:99:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c8a5f81e", + "id": 651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "calcRewards", + "nameLocation": "1449:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "_tokens", + "nameLocation": "1469:7:9", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1461:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1461:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 646, + "mutability": "mutable", + "name": "_accRewardsPerAllocatedToken", + "nameLocation": "1486:28:9", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1478:36:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1478:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1460:55:9" + }, + "returnParameters": { + "id": 650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1539:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1539:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1538:9:9" + }, + "scope": 678, + "src": "1440:108:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c7d1117d", + "id": 656, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateAccRewardsPerSignal", + "nameLocation": "1585:25:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [], + "src": "1610:2:9" + }, + "returnParameters": { + "id": 655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 654, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "1631:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1631:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1630:9:9" + }, + "scope": 678, + "src": "1576:64:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "db750926", + "id": 663, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "takeRewards", + "nameLocation": "1655:11:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "_allocationID", + "nameLocation": "1675:13:9", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "1667:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1667:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1666:23:9" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 661, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "1708:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1708:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1707:9:9" + }, + "scope": 678, + "src": "1646:71:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "1d1c2fec", + "id": 670, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onSubgraphSignalUpdate", + "nameLocation": "1752:22:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1783:21:9", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "1775:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 664, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1775:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1774:31:9" + }, + "returnParameters": { + "id": 669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 668, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "1824:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1824:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1823:9:9" + }, + "scope": 678, + "src": "1743:90:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "eeac3e0e", + "id": 677, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onSubgraphAllocationUpdate", + "nameLocation": "1848:26:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 672, + "mutability": "mutable", + "name": "_subgraphDeploymentID", + "nameLocation": "1883:21:9", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "1875:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1875:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1874:31:9" + }, + "returnParameters": { + "id": 676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "1924:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1924:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1923:9:9" + }, + "scope": 678, + "src": "1839:94:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 679, + "src": "81:1854:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1890:9" + }, + "id": 9 + }, + "@graphprotocol/contracts/contracts/token/IGraphToken.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "exportedSymbols": { + "IERC20": [ + 6147 + ], + "IGraphToken": [ + 758 + ] + }, + "id": 759, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 680, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:10" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 681, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 759, + "sourceUnit": 6148, + "src": "81:56:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 682, + "name": "IERC20", + "nameLocations": [ + "164:6:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6147, + "src": "164:6:10" + }, + "id": 683, + "nodeType": "InheritanceSpecifier", + "src": "164:6:10" + } + ], + "canonicalName": "IGraphToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 758, + "linearizedBaseContracts": [ + 758, + 6147 + ], + "name": "IGraphToken", + "nameLocation": "149:11:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "42966c68", + "id": 688, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "214:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "amount", + "nameLocation": "227:6:10", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "219:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "219:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:16:10" + }, + "returnParameters": { + "id": 687, + "nodeType": "ParameterList", + "parameters": [], + "src": "243:0:10" + }, + "scope": 758, + "src": "205:39:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "79cc6790", + "id": 695, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burnFrom", + "nameLocation": "259:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "_from", + "nameLocation": "276:5:10", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "268:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "268:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 692, + "mutability": "mutable", + "name": "amount", + "nameLocation": "291:6:10", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "283:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "283:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "267:31:10" + }, + "returnParameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [], + "src": "307:0:10" + }, + "scope": 758, + "src": "250:58:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "40c10f19", + "id": 702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "323:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "_to", + "nameLocation": "336:3:10", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "328:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "328:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "349:7:10", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "341:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "341:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "327:30:10" + }, + "returnParameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [], + "src": "366:0:10" + }, + "scope": 758, + "src": "314:53:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "983b2d56", + "id": 707, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addMinter", + "nameLocation": "407:9:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "_account", + "nameLocation": "425:8:10", + "nodeType": "VariableDeclaration", + "scope": 707, + "src": "417:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "417:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "416:18:10" + }, + "returnParameters": { + "id": 706, + "nodeType": "ParameterList", + "parameters": [], + "src": "443:0:10" + }, + "scope": 758, + "src": "398:46:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "3092afd5", + "id": 712, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeMinter", + "nameLocation": "459:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "_account", + "nameLocation": "480:8:10", + "nodeType": "VariableDeclaration", + "scope": 712, + "src": "472:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "472:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "471:18:10" + }, + "returnParameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [], + "src": "498:0:10" + }, + "scope": 758, + "src": "450:49:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "98650275", + "id": 715, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceMinter", + "nameLocation": "514:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 713, + "nodeType": "ParameterList", + "parameters": [], + "src": "528:2:10" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [], + "src": "539:0:10" + }, + "scope": 758, + "src": "505:35:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "aa271e1a", + "id": 722, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isMinter", + "nameLocation": "555:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 717, + "mutability": "mutable", + "name": "_account", + "nameLocation": "572:8:10", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "564:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "564:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "563:18:10" + }, + "returnParameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "605:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 719, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "605:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "604:6:10" + }, + "scope": 758, + "src": "546:65:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d505accf", + "id": 739, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "647:6:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "671:6:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "663:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "663:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "_spender", + "nameLocation": "695:8:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "687:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "687:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "mutability": "mutable", + "name": "_value", + "nameLocation": "721:6:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "713:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "713:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 730, + "mutability": "mutable", + "name": "_deadline", + "nameLocation": "745:9:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "737:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "737:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "_v", + "nameLocation": "770:2:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "764:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 731, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "764:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "_r", + "nameLocation": "790:2:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "782:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 733, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "782:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 736, + "mutability": "mutable", + "name": "_s", + "nameLocation": "810:2:10", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "802:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 735, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "802:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "653:165:10" + }, + "returnParameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "827:0:10" + }, + "scope": 758, + "src": "638:190:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "39509351", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "867:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 741, + "mutability": "mutable", + "name": "spender", + "nameLocation": "893:7:10", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "885:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "910:10:10", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "902:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "884:37:10" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "940:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 745, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "940:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "939:6:10" + }, + "scope": 758, + "src": "858:88:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a457c2d7", + "id": 757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "961:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 750, + "mutability": "mutable", + "name": "spender", + "nameLocation": "987:7:10", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "979:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "979:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "1004:15:10", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "996:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "996:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "978:42:10" + }, + "returnParameters": { + "id": 756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 755, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 757, + "src": "1039:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 754, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1039:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1038:6:10" + }, + "scope": 758, + "src": "952:93:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 759, + "src": "139:908:10", + "usedErrors": [], + "usedEvents": [ + 6081, + 6090 + ] + } + ], + "src": "46:1002:10" + }, + "id": 10 + }, + "@graphprotocol/contracts/contracts/utils/TokenUtils.sol": { + "ast": { + "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "exportedSymbols": { + "IERC20": [ + 6147 + ], + "IGraphToken": [ + 758 + ], + "TokenUtils": [ + 840 + ] + }, + "id": 841, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 760, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:33:11" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "file": "../token/IGraphToken.sol", + "id": 761, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 841, + "sourceUnit": 759, + "src": "81:34:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "TokenUtils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 762, + "nodeType": "StructuredDocumentation", + "src": "117:239:11", + "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": 840, + "linearizedBaseContracts": [ + 840 + ], + "name": "TokenUtils", + "nameLocation": "365:10:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 791, + "nodeType": "Block", + "src": "684:135:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 773, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "698:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "708:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "698:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 790, + "nodeType": "IfStatement", + "src": "694:119:11", + "trueBody": { + "id": 789, + "nodeType": "Block", + "src": "711:102:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 779, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 768, + "src": "758:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 782, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "773:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenUtils_$840", + "typeString": "library TokenUtils" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TokenUtils_$840", + "typeString": "library TokenUtils" + } + ], + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "765:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:11", + "typeDescriptions": {} + } + }, + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "765:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 784, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "780:7:11", + "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": 777, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 766, + "src": "733:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "745:12:11", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 6146, + "src": "733:24:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "733:55:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "217472616e73666572", + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "790:11:11", + "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": 776, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "725:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "725:77:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 788, + "nodeType": "ExpressionStatement", + "src": "725:77:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 763, + "nodeType": "StructuredDocumentation", + "src": "382:211:11", + "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": 792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pullTokens", + "nameLocation": "607:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 766, + "mutability": "mutable", + "name": "_graphToken", + "nameLocation": "630:11:11", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "618:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + }, + "typeName": { + "id": 765, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 764, + "name": "IGraphToken", + "nameLocations": [ + "618:11:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "618:11:11" + }, + "referencedDeclaration": 758, + "src": "618:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 768, + "mutability": "mutable", + "name": "_from", + "nameLocation": "651:5:11", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "643:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "666:7:11", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "658:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "658:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "617:57:11" + }, + "returnParameters": { + "id": 772, + "nodeType": "ParameterList", + "parameters": [], + "src": "684:0:11" + }, + "scope": 840, + "src": "598:221:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 817, + "nodeType": "Block", + "src": "1134:114:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 803, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "1148:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1158:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1148:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 816, + "nodeType": "IfStatement", + "src": "1144:98:11", + "trueBody": { + "id": 815, + "nodeType": "Block", + "src": "1161:81:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 809, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "1204:3:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 810, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "1209:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 807, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "1183:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1195:8:11", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6114, + "src": "1183:20:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1183:34:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "217472616e73666572", + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:11:11", + "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": 806, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1175:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1175:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "1175:56:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 793, + "nodeType": "StructuredDocumentation", + "src": "825:220:11", + "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": 818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pushTokens", + "nameLocation": "1059:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "_graphToken", + "nameLocation": "1082:11:11", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "1070:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + }, + "typeName": { + "id": 795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 794, + "name": "IGraphToken", + "nameLocations": [ + "1070:11:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "1070:11:11" + }, + "referencedDeclaration": 758, + "src": "1070:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 798, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1103:3:11", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "1095:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1095:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "1116:7:11", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "1108:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1108:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1069:55:11" + }, + "returnParameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [], + "src": "1134:0:11" + }, + "scope": 840, + "src": "1050:198:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 838, + "nodeType": "Block", + "src": "1475:83:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 827, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "1489:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1499:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1489:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 837, + "nodeType": "IfStatement", + "src": "1485:67:11", + "trueBody": { + "id": 836, + "nodeType": "Block", + "src": "1502:50:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 833, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "1533:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 830, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "1516:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1528:4:11", + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 688, + "src": "1516:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1516:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "1516:25:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 819, + "nodeType": "StructuredDocumentation", + "src": "1254:145:11", + "text": " @dev Burn tokens held by this contract.\n @param _graphToken Token to burn\n @param _amount Amount of tokens to burn" + }, + "id": 839, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burnTokens", + "nameLocation": "1413:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_graphToken", + "nameLocation": "1436:11:11", + "nodeType": "VariableDeclaration", + "scope": 839, + "src": "1424:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + }, + "typeName": { + "id": 821, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 820, + "name": "IGraphToken", + "nameLocations": [ + "1424:11:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "1424:11:11" + }, + "referencedDeclaration": 758, + "src": "1424:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "1457:7:11", + "nodeType": "VariableDeclaration", + "scope": 839, + "src": "1449:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1449:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1423:42:11" + }, + "returnParameters": { + "id": 826, + "nodeType": "ParameterList", + "parameters": [], + "src": "1475:0:11" + }, + "scope": 840, + "src": "1404:154:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 841, + "src": "357:1203:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1515:11" + }, + "id": 11 + }, + "@graphprotocol/horizon/contracts/data-service/DataService.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", + "exportedSymbols": { + "DataService": [ + 936 + ], + "DataServiceV1Storage": [ + 945 + ], + "GraphDirectory": [ + 4928 + ], + "IDataService": [ + 1557 + ], + "ProvisionManager": [ + 2395 + ] + }, + "id": 937, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 842, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:12" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "file": "./interfaces/IDataService.sol", + "id": 844, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 937, + "sourceUnit": 1558, + "src": "70:61:12", + "symbolAliases": [ + { + "foreign": { + "id": 843, + "name": "IDataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "79:12:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol", + "file": "./DataServiceStorage.sol", + "id": 846, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 937, + "sourceUnit": 946, + "src": "133:64:12", + "symbolAliases": [ + { + "foreign": { + "id": 845, + "name": "DataServiceV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "142:20:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "file": "../utilities/GraphDirectory.sol", + "id": 848, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 937, + "sourceUnit": 4929, + "src": "198:65:12", + "symbolAliases": [ + { + "foreign": { + "id": 847, + "name": "GraphDirectory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "207:14:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol", + "file": "./utilities/ProvisionManager.sol", + "id": 850, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 937, + "sourceUnit": 2396, + "src": "264:68:12", + "symbolAliases": [ + { + "foreign": { + "id": 849, + "name": "ProvisionManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2395, + "src": "273:16:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 852, + "name": "GraphDirectory", + "nameLocations": [ + "1871:14:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "1871:14:12" + }, + "id": 853, + "nodeType": "InheritanceSpecifier", + "src": "1871:14:12" + }, + { + "baseName": { + "id": 854, + "name": "ProvisionManager", + "nameLocations": [ + "1887:16:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2395, + "src": "1887:16:12" + }, + "id": 855, + "nodeType": "InheritanceSpecifier", + "src": "1887:16:12" + }, + { + "baseName": { + "id": 856, + "name": "DataServiceV1Storage", + "nameLocations": [ + "1905:20:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 945, + "src": "1905:20:12" + }, + "id": 857, + "nodeType": "InheritanceSpecifier", + "src": "1905:20:12" + }, + { + "baseName": { + "id": 858, + "name": "IDataService", + "nameLocations": [ + "1927:12:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1557, + "src": "1927:12:12" + }, + "id": 859, + "nodeType": "InheritanceSpecifier", + "src": "1927:12:12" + } + ], + "canonicalName": "DataService", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 851, + "nodeType": "StructuredDocumentation", + "src": "334:1503:12", + "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.\n - Note that in both cases if using {__DataService_init_unchained} variant the corresponding parent\n initializers must be called in the implementation.\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": false, + "id": 936, + "linearizedBaseContracts": [ + 936, + 1557, + 945, + 2395, + 2425, + 4928, + 5391 + ], + "name": "DataService", + "nameLocation": "1856:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 868, + "nodeType": "Block", + "src": "2198:2:12", + "statements": [] + }, + "documentation": { + "id": 860, + "nodeType": "StructuredDocumentation", + "src": "1946:188:12", + "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": 869, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 865, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "2186:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 866, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 864, + "name": "GraphDirectory", + "nameLocations": [ + "2171:14:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "2171:14:12" + }, + "nodeType": "ModifierInvocation", + "src": "2171:26:12" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "controller", + "nameLocation": "2159:10:12", + "nodeType": "VariableDeclaration", + "scope": 869, + "src": "2151:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 861, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2151:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2150:20:12" + }, + "returnParameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [], + "src": "2198:0:12" + }, + "scope": 936, + "src": "2139:61:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1534 + ], + "body": { + "id": 880, + "nodeType": "Block", + "src": "2311:48:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 877, + "name": "_getThawingPeriodRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "2328:22:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$", + "typeString": "function () view returns (uint64,uint64)" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2328:24:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64)" + } + }, + "functionReturnParameters": 876, + "id": 879, + "nodeType": "Return", + "src": "2321:31:12" + } + ] + }, + "documentation": { + "id": 870, + "nodeType": "StructuredDocumentation", + "src": "2206:28:12", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "71ce020a", + "id": 881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getThawingPeriodRange", + "nameLocation": "2248:21:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [], + "src": "2269:2:12" + }, + "returnParameters": { + "id": 876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "2295:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 872, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2295:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "2303:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 874, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2303:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2294:16:12" + }, + "scope": 936, + "src": "2239:120:12", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1542 + ], + "body": { + "id": 892, + "nodeType": "Block", + "src": "2468:46:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 889, + "name": "_getVerifierCutRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "2485:20:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$_t_uint32_$", + "typeString": "function () view returns (uint32,uint32)" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2485:22:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 888, + "id": 891, + "nodeType": "Return", + "src": "2478:29:12" + } + ] + }, + "documentation": { + "id": 882, + "nodeType": "StructuredDocumentation", + "src": "2365:28:12", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "482468b7", + "id": 893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getVerifierCutRange", + "nameLocation": "2407:19:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 883, + "nodeType": "ParameterList", + "parameters": [], + "src": "2426:2:12" + }, + "returnParameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 893, + "src": "2452:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 884, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2452:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 893, + "src": "2460:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 886, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2460:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "2451:16:12" + }, + "scope": 936, + "src": "2398:116:12", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1550 + ], + "body": { + "id": 904, + "nodeType": "Block", + "src": "2629:50:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 901, + "name": "_getProvisionTokensRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2304, + "src": "2646:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2646:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 900, + "id": 903, + "nodeType": "Return", + "src": "2639:33:12" + } + ] + }, + "documentation": { + "id": 894, + "nodeType": "StructuredDocumentation", + "src": "2520:28:12", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "819ba366", + "id": 905, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProvisionTokensRange", + "nameLocation": "2562:23:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 895, + "nodeType": "ParameterList", + "parameters": [], + "src": "2585:2:12" + }, + "returnParameters": { + "id": 900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 897, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 905, + "src": "2611:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2611:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 905, + "src": "2620:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 898, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2620:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2610:18:12" + }, + "scope": 936, + "src": "2553:126:12", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1556 + ], + "body": { + "id": 914, + "nodeType": "Block", + "src": "2779:45:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 911, + "name": "_getDelegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "2796:19:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", + "typeString": "function () view returns (uint32)" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2796:21:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 910, + "id": 913, + "nodeType": "Return", + "src": "2789:28:12" + } + ] + }, + "documentation": { + "id": 906, + "nodeType": "StructuredDocumentation", + "src": "2685:28:12", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "1ebb7c30", + "id": 915, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDelegationRatio", + "nameLocation": "2727:18:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 907, + "nodeType": "ParameterList", + "parameters": [], + "src": "2745:2:12" + }, + "returnParameters": { + "id": 910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 909, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 915, + "src": "2771:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 908, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2771:6:12", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "2770:8:12" + }, + "scope": 936, + "src": "2718:106:12", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 927, + "nodeType": "Block", + "src": "2968:92:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 921, + "name": "__ProvisionManager_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "2978:33:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2978:35:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 923, + "nodeType": "ExpressionStatement", + "src": "2978:35:12" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 924, + "name": "__DataService_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "3023:28:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3023:30:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 926, + "nodeType": "ExpressionStatement", + "src": "3023:30:12" + } + ] + }, + "documentation": { + "id": 916, + "nodeType": "StructuredDocumentation", + "src": "2830:77:12", + "text": " @notice Initializes the contract and any parent contracts." + }, + "id": 928, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 919, + "kind": "modifierInvocation", + "modifierName": { + "id": 918, + "name": "onlyInitializing", + "nameLocations": [ + "2951:16:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "2951:16:12" + }, + "nodeType": "ModifierInvocation", + "src": "2951:16:12" + } + ], + "name": "__DataService_init", + "nameLocation": "2921:18:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 917, + "nodeType": "ParameterList", + "parameters": [], + "src": "2939:2:12" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [], + "src": "2968:0:12" + }, + "scope": 936, + "src": "2912:148:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 934, + "nodeType": "Block", + "src": "3189:2:12", + "statements": [] + }, + "documentation": { + "id": 929, + "nodeType": "StructuredDocumentation", + "src": "3066:52:12", + "text": " @notice Initializes the contract." + }, + "id": 935, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 932, + "kind": "modifierInvocation", + "modifierName": { + "id": 931, + "name": "onlyInitializing", + "nameLocations": [ + "3172:16:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "3172:16:12" + }, + "nodeType": "ModifierInvocation", + "src": "3172:16:12" + } + ], + "name": "__DataService_init_unchained", + "nameLocation": "3132:28:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 930, + "nodeType": "ParameterList", + "parameters": [], + "src": "3160:2:12" + }, + "returnParameters": { + "id": 933, + "nodeType": "ParameterList", + "parameters": [], + "src": "3189:0:12" + }, + "scope": 936, + "src": "3123:68:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 937, + "src": "1838:1355:12", + "usedErrors": [ + 1918, + 1925, + 1932, + 1937, + 4655, + 5140, + 5143 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1888, + 1893, + 1900, + 1907, + 4650, + 5148 + ] + } + ], + "src": "45:3149:12" + }, + "id": 12 + }, + "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol", + "exportedSymbols": { + "DataServiceV1Storage": [ + 945 + ] + }, + "id": 946, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 938, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:13" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "DataServiceV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 939, + "nodeType": "StructuredDocumentation", + "src": "70:256:13", + "text": " @title DataServiceStorage\n @dev This contract holds the storage variables for the DataService 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": 945, + "linearizedBaseContracts": [ + 945 + ], + "name": "DataServiceV1Storage", + "nameLocation": "345:20:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 940, + "nodeType": "StructuredDocumentation", + "src": "372:158:13", + "text": "@dev Gap to allow adding variables in future upgrades\n Note that this contract is not upgradeable but might be inherited by an upgradeable contract" + }, + "id": 944, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "555:5:13", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "535:25:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "535:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 943, + "length": { + "hexValue": "3530", + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "543:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "535:11:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 946, + "src": "327:236:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:519:13" + }, + "id": 13 + }, + "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol", + "exportedSymbols": { + "DataService": [ + 936 + ], + "DataServiceFees": [ + 1278 + ], + "DataServiceFeesV1Storage": [ + 1308 + ], + "IDataServiceFees": [ + 1620 + ], + "LinkedList": [ + 4364 + ], + "ProvisionTracker": [ + 1801 + ] + }, + "id": 1279, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 947, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:14" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", + "file": "../interfaces/IDataServiceFees.sol", + "id": 949, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1279, + "sourceUnit": 1621, + "src": "70:70:14", + "symbolAliases": [ + { + "foreign": { + "id": 948, + "name": "IDataServiceFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "79:16:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", + "file": "../libraries/ProvisionTracker.sol", + "id": 951, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1279, + "sourceUnit": 1802, + "src": "142:69:14", + "symbolAliases": [ + { + "foreign": { + "id": 950, + "name": "ProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "151:16:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", + "file": "../../libraries/LinkedList.sol", + "id": 953, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1279, + "sourceUnit": 4365, + "src": "212:60:14", + "symbolAliases": [ + { + "foreign": { + "id": 952, + "name": "LinkedList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "221:10:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", + "file": "../DataService.sol", + "id": 955, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1279, + "sourceUnit": 937, + "src": "274:49:14", + "symbolAliases": [ + { + "foreign": { + "id": 954, + "name": "DataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "283:11:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol", + "file": "./DataServiceFeesStorage.sol", + "id": 957, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1279, + "sourceUnit": 1309, + "src": "324:72:14", + "symbolAliases": [ + { + "foreign": { + "id": 956, + "name": "DataServiceFeesV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "333:24:14", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 959, + "name": "DataService", + "nameLocations": [ + "974:11:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 936, + "src": "974:11:14" + }, + "id": 960, + "nodeType": "InheritanceSpecifier", + "src": "974:11:14" + }, + { + "baseName": { + "id": 961, + "name": "DataServiceFeesV1Storage", + "nameLocations": [ + "987:24:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1308, + "src": "987:24:14" + }, + "id": 962, + "nodeType": "InheritanceSpecifier", + "src": "987:24:14" + }, + { + "baseName": { + "id": 963, + "name": "IDataServiceFees", + "nameLocations": [ + "1013:16:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1620, + "src": "1013:16:14" + }, + "id": 964, + "nodeType": "InheritanceSpecifier", + "src": "1013:16:14" + } + ], + "canonicalName": "DataServiceFees", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 958, + "nodeType": "StructuredDocumentation", + "src": "398:538:14", + "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.\n @dev This contract inherits from {DataService} which needs to be initialized, please see\n {DataService} for detailed instructions.\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": false, + "id": 1278, + "internalFunctionIDs": { + "1199": 1, + "1211": 2, + "1254": 3 + }, + "linearizedBaseContracts": [ + 1278, + 1620, + 1308, + 936, + 1557, + 945, + 2395, + 2425, + 4928, + 5391 + ], + "name": "DataServiceFees", + "nameLocation": "955:15:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 969, + "libraryName": { + "id": 965, + "name": "ProvisionTracker", + "nameLocations": [ + "1042:16:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "1042:16:14" + }, + "nodeType": "UsingForDirective", + "src": "1036:55:14", + "typeName": { + "id": 968, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 966, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1071:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1063:27:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 967, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1082:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + { + "global": false, + "id": 973, + "libraryName": { + "id": 970, + "name": "LinkedList", + "nameLocations": [ + "1102:10:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4364, + "src": "1102:10:14" + }, + "nodeType": "UsingForDirective", + "src": "1096:37:14", + "typeName": { + "id": 972, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 971, + "name": "LinkedList.List", + "nameLocations": [ + "1117:10:14", + "1128:4:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "1117:15:14" + }, + "referencedDeclaration": 4090, + "src": "1117:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + } + }, + { + "baseFunctions": [ + 1619 + ], + "body": { + "id": 986, + "nodeType": "Block", + "src": "1252:62:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 981, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1276:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1280:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1276:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 983, + "name": "numClaimsToRelease", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "1288:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 980, + "name": "_releaseStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "1262:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:45:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 985, + "nodeType": "ExpressionStatement", + "src": "1262:45:14" + } + ] + }, + "documentation": { + "id": 974, + "nodeType": "StructuredDocumentation", + "src": "1139:32:14", + "text": "@inheritdoc IDataServiceFees" + }, + "functionSelector": "45f54485", + "id": 987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "releaseStake", + "nameLocation": "1185:12:14", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 978, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1243:8:14" + }, + "parameters": { + "id": 977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 976, + "mutability": "mutable", + "name": "numClaimsToRelease", + "nameLocation": "1206:18:14", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "1198:26:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1197:28:14" + }, + "returnParameters": { + "id": 979, + "nodeType": "ParameterList", + "parameters": [], + "src": "1252:0:14" + }, + "scope": 1278, + "src": "1176:138:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 1073, + "nodeType": "Block", + "src": "1963:762:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 998, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "1981:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1992:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1981:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1001, + "name": "DataServiceFeesZeroTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1995:25:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1995:27:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 997, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1973:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1973:50:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1004, + "nodeType": "ExpressionStatement", + "src": "1973:50:14" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1008, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "2059:13:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2059:15:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + { + "id": 1010, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 990, + "src": "2076:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1011, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "2094:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1012, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "2103:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 1005, + "name": "feesProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1290, + "src": "2033:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2054:4:14", + "memberName": "lock", + "nodeType": "MemberAccess", + "referencedDeclaration": 1726, + "src": "2033:25:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2625_$_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": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2033:87:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "2033:87:14" + }, + { + "assignments": [ + 1019 + ], + "declarations": [ + { + "constant": false, + "id": 1019, + "mutability": "mutable", + "name": "claimsList", + "nameLocation": "2155:10:14", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "2131:34:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 1018, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1017, + "name": "LinkedList.List", + "nameLocations": [ + "2131:10:14", + "2142:4:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "2131:15:14" + }, + "referencedDeclaration": 4090, + "src": "2131:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + } + ], + "id": 1023, + "initialValue": { + "baseExpression": { + "id": 1020, + "name": "claimsLists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "2168:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4090_storage_$", + "typeString": "mapping(address => struct LinkedList.List storage ref)" + } + }, + "id": 1022, + "indexExpression": { + "id": 1021, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 990, + "src": "2180:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2168:29:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage", + "typeString": "struct LinkedList.List storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2131:66:14" + }, + { + "assignments": [ + 1025 + ], + "declarations": [ + { + "constant": false, + "id": 1025, + "mutability": "mutable", + "name": "claimId", + "nameLocation": "2253:7:14", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "2245:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1024, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2245:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1031, + "initialValue": { + "arguments": [ + { + "id": 1027, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 990, + "src": "2282:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1028, + "name": "claimsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "2300:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2311:5:14", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 4087, + "src": "2300:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1026, + "name": "_buildStakeClaimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "2263:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256) view returns (bytes32)" + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2263:54:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2245:72:14" + }, + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1032, + "name": "claims", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "2327:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" + } + }, + "id": 1034, + "indexExpression": { + "id": 1033, + "name": "claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2334:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2327:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1036, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "2378:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1037, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2410:5:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2416:9:14", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2410:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1039, + "name": "_unlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2453:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2502:1:14", + "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": 1041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2494:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2494:7:14", + "typeDescriptions": {} + } + }, + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2494:10:14", + "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": 1035, + "name": "StakeClaim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "2345:10:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_StakeClaim_$1574_storage_ptr_$", + "typeString": "type(struct IDataServiceFees.StakeClaim storage pointer)" + } + }, + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2370:6:14", + "2399:9:14", + "2439:12:14", + "2483:9:14" + ], + "names": [ + "tokens", + "createdAt", + "releasableAt", + "nextClaim" + ], + "nodeType": "FunctionCall", + "src": "2345:170:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "src": "2327:188:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "2327:188:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1047, + "name": "claimsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "2529:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2540:5:14", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "2529:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2549:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2529:21:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1059, + "nodeType": "IfStatement", + "src": "2525:70:14", + "trueBody": { + "expression": { + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 1051, + "name": "claims", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "2552:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" + } + }, + "id": 1054, + "indexExpression": { + "expression": { + "id": 1052, + "name": "claimsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "2559:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2570:4:14", + "memberName": "tail", + "nodeType": "MemberAccess", + "referencedDeclaration": 4085, + "src": "2559:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2552:23:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2576:9:14", + "memberName": "nextClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1573, + "src": "2552:33:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1056, + "name": "claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2588:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2552:43:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1058, + "nodeType": "ExpressionStatement", + "src": "2552:43:14" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1063, + "name": "claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2624:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 1060, + "name": "claimsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "2605:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 1062, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2616:7:14", + "memberName": "addTail", + "nodeType": "MemberAccess", + "referencedDeclaration": 4172, + "src": "2605:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4090_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_struct$_List_$4090_storage_ptr_$", + "typeString": "function (struct LinkedList.List storage pointer,bytes32)" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2605:27:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1065, + "nodeType": "ExpressionStatement", + "src": "2605:27:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1067, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 990, + "src": "2665:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1068, + "name": "claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2683:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1069, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "2692:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1070, + "name": "_unlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2701:16:14", + "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": 1066, + "name": "StakeClaimLocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1585, + "src": "2648:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256,uint256)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2648:70:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1072, + "nodeType": "EmitStatement", + "src": "2643:75:14" + } + ] + }, + "documentation": { + "id": 988, + "nodeType": "StructuredDocumentation", + "src": "1320:540:14", + "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": 1074, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_lockStake", + "nameLocation": "1874:10:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 990, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "1893:16:14", + "nodeType": "VariableDeclaration", + "scope": 1074, + "src": "1885:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1885:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "_tokens", + "nameLocation": "1919:7:14", + "nodeType": "VariableDeclaration", + "scope": 1074, + "src": "1911:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1911:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "_unlockTimestamp", + "nameLocation": "1936:16:14", + "nodeType": "VariableDeclaration", + "scope": 1074, + "src": "1928:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1928:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1884:69:14" + }, + "returnParameters": { + "id": 996, + "nodeType": "ParameterList", + "parameters": [], + "src": "1963:0:14" + }, + "scope": 1278, + "src": "1865:860:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1120, + "nodeType": "Block", + "src": "3546:439:14", + "statements": [ + { + "assignments": [ + 1086 + ], + "declarations": [ + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "claimsList", + "nameLocation": "3580:10:14", + "nodeType": "VariableDeclaration", + "scope": 1120, + "src": "3556:34:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 1085, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1084, + "name": "LinkedList.List", + "nameLocations": [ + "3556:10:14", + "3567:4:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "3556:15:14" + }, + "referencedDeclaration": 4090, + "src": "3556:15:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + } + ], + "id": 1090, + "initialValue": { + "baseExpression": { + "id": 1087, + "name": "claimsLists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "3593:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4090_storage_$", + "typeString": "mapping(address => struct LinkedList.List storage ref)" + } + }, + "id": 1089, + "indexExpression": { + "id": 1088, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1077, + "src": "3605:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3593:29:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage", + "typeString": "struct LinkedList.List storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3556:66:14" + }, + { + "assignments": [ + 1092, + 1094 + ], + "declarations": [ + { + "constant": false, + "id": 1092, + "mutability": "mutable", + "name": "claimsReleased", + "nameLocation": "3641:14:14", + "nodeType": "VariableDeclaration", + "scope": 1120, + "src": "3633:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1091, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3633:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1094, + "mutability": "mutable", + "name": "data", + "nameLocation": "3670:4:14", + "nodeType": "VariableDeclaration", + "scope": 1120, + "src": "3657:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1093, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3657:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [ + { + "id": 1097, + "name": "_getNextStakeClaim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "3711:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + { + "id": 1098, + "name": "_processStakeClaim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "3743:18:14", + "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": 1099, + "name": "_deleteStakeClaim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "3775:17:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3817:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1103, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1077, + "src": "3820:16:14", + "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": 1100, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3806:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3810:6:14", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "3806:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3806:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1105, + "name": "_numClaimsToRelease", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1079, + "src": "3851:19:14", + "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": 1095, + "name": "claimsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1086, + "src": "3678:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 1096, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3689:8:14", + "memberName": "traverse", + "nodeType": "MemberAccess", + "referencedDeclaration": 4363, + "src": "3678:19:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4090_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_$4090_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": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3678:202:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint256,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3632:248:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1109, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1077, + "src": "3916:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1110, + "name": "claimsReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1092, + "src": "3934:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1113, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1094, + "src": "3961:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3968:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3968:7:14", + "typeDescriptions": {} + } + } + ], + "id": 1116, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3967:9:14", + "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": 1111, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3950:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3954:6:14", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "3950:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3950:27:14", + "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": 1108, + "name": "StakeClaimsReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1605, + "src": "3896:19:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3896:82:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1119, + "nodeType": "EmitStatement", + "src": "3891:87:14" + } + ] + }, + "documentation": { + "id": 1075, + "nodeType": "StructuredDocumentation", + "src": "2731:723:14", + "text": " @notice Releases expired stake claims for a service provider.\n @dev This function can be overriden and/or disabled.\n @dev Note that the list is traversed by creation date not by releasableAt date. Traversing will stop\n when the first stake claim that is not yet expired is found even if later stake claims have expired. This\n could happen if stake claims are genereted with different unlock periods.\n @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n @param _serviceProvider The address of the service provider\n @param _numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed." + }, + "id": 1121, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_releaseStake", + "nameLocation": "3468:13:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1077, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "3490:16:14", + "nodeType": "VariableDeclaration", + "scope": 1121, + "src": "3482:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3482:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1079, + "mutability": "mutable", + "name": "_numClaimsToRelease", + "nameLocation": "3516:19:14", + "nodeType": "VariableDeclaration", + "scope": 1121, + "src": "3508:27:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1078, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3508:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3481:55:14" + }, + "returnParameters": { + "id": 1081, + "nodeType": "ParameterList", + "parameters": [], + "src": "3546:0:14" + }, + "scope": 1278, + "src": "3459:526:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1198, + "nodeType": "Block", + "src": "4563:624:14", + "statements": [ + { + "assignments": [ + 1135 + ], + "declarations": [ + { + "constant": false, + "id": 1135, + "mutability": "mutable", + "name": "claim", + "nameLocation": "4591:5:14", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "4573:23:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + }, + "typeName": { + "id": 1134, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1133, + "name": "StakeClaim", + "nameLocations": [ + "4573:10:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1574, + "src": "4573:10:14" + }, + "referencedDeclaration": 1574, + "src": "4573:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + } + }, + "visibility": "internal" + } + ], + "id": 1139, + "initialValue": { + "arguments": [ + { + "id": 1137, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1124, + "src": "4614:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1136, + "name": "_getStakeClaim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "4599:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_StakeClaim_$1574_memory_ptr_$", + "typeString": "function (bytes32) view returns (struct IDataServiceFees.StakeClaim memory)" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4599:24:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4573:50:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1140, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "4660:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4666:12:14", + "memberName": "releasableAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "4660:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 1142, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4681:5:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4687:9:14", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4681:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4660:36:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1151, + "nodeType": "IfStatement", + "src": "4656:103:14", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "4698:61:14", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4720:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "id": 1146, + "name": "LinkedList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "4726:10:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LinkedList_$4364_$", + "typeString": "type(library LinkedList)" + } + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4737:10:14", + "memberName": "NULL_BYTES", + "nodeType": "MemberAccess", + "referencedDeclaration": 4097, + "src": "4726:21:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 1148, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4719:29:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "functionReturnParameters": 1132, + "id": 1149, + "nodeType": "Return", + "src": "4712:36:14" + } + ] + } + }, + { + "assignments": [ + 1153, + 1155 + ], + "declarations": [ + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "tokensClaimed", + "nameLocation": "4796:13:14", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "4788:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4788:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1155, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4819:15:14", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "4811:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4811:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1165, + "initialValue": { + "arguments": [ + { + "id": 1158, + "name": "_acc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "4849:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4856:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4856:7:14", + "typeDescriptions": {} + } + }, + { + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4865:7:14", + "typeDescriptions": {} + } + } + ], + "id": 1163, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4855:18:14", + "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": 1156, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4838:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4842:6:14", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4838:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4838:36:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4787:87:14" + }, + { + "expression": { + "arguments": [ + { + "id": 1169, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "4933:15:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1170, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "4950:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4956:6:14", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 1567, + "src": "4950:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1166, + "name": "feesProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1290, + "src": "4904:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4925:7:14", + "memberName": "release", + "nodeType": "MemberAccess", + "referencedDeclaration": 1764, + "src": "4904:28:14", + "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": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4904:59:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1173, + "nodeType": "ExpressionStatement", + "src": "4904:59:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1175, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "4997:15:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1176, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1124, + "src": "5014:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 1177, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "5024:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5030:6:14", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 1567, + "src": "5024:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1179, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "5038:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5044:12:14", + "memberName": "releasableAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "5038:18:14", + "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": 1174, + "name": "StakeClaimReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "4978:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256,uint256)" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4978:79:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1182, + "nodeType": "EmitStatement", + "src": "4973:84:14" + }, + { + "expression": { + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1183, + "name": "_acc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "5086:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1186, + "name": "tokensClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "5104:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 1187, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "5120:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5126:6:14", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 1567, + "src": "5120:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5104:28:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1190, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "5134:15:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1184, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "5093:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5097:6:14", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "5093:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5093:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "5086:64:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1193, + "nodeType": "ExpressionStatement", + "src": "5086:64:14" + }, + { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5168:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "id": 1195, + "name": "_acc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "5175:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 1196, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5167:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "functionReturnParameters": 1132, + "id": 1197, + "nodeType": "Return", + "src": "5160:20:14" + } + ] + }, + "documentation": { + "id": 1122, + "nodeType": "StructuredDocumentation", + "src": "3991:465:14", + "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 Whether the stake claim is still locked, indicating that the traversal should continue or stop.\n @return The updated accumulator data" + }, + "id": 1199, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_processStakeClaim", + "nameLocation": "4470:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1124, + "mutability": "mutable", + "name": "_claimId", + "nameLocation": "4497:8:14", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "4489:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1123, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4489:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "_acc", + "nameLocation": "4520:4:14", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "4507:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1125, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4507:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4488:37:14" + }, + "returnParameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "4543:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4543:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1199, + "src": "4549:12:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1130, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4549:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4542:20:14" + }, + "scope": 1278, + "src": "4461:726:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1210, + "nodeType": "Block", + "src": "5450:40:14", + "statements": [ + { + "expression": { + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5460:23:14", + "subExpression": { + "baseExpression": { + "id": 1205, + "name": "claims", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "5467:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" + } + }, + "id": 1207, + "indexExpression": { + "id": 1206, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "5474:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5467:16:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1209, + "nodeType": "ExpressionStatement", + "src": "5460:23:14" + } + ] + }, + "documentation": { + "id": 1200, + "nodeType": "StructuredDocumentation", + "src": "5193:199:14", + "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": 1211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_deleteStakeClaim", + "nameLocation": "5406:17:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "_claimId", + "nameLocation": "5432:8:14", + "nodeType": "VariableDeclaration", + "scope": 1211, + "src": "5424:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1201, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5424:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5423:18:14" + }, + "returnParameters": { + "id": 1204, + "nodeType": "ParameterList", + "parameters": [], + "src": "5450:0:14" + }, + "scope": 1278, + "src": "5397:93:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1239, + "nodeType": "Block", + "src": "5732:160:14", + "statements": [ + { + "assignments": [ + 1222 + ], + "declarations": [ + { + "constant": false, + "id": 1222, + "mutability": "mutable", + "name": "claim", + "nameLocation": "5760:5:14", + "nodeType": "VariableDeclaration", + "scope": 1239, + "src": "5742:23:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + }, + "typeName": { + "id": 1221, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1220, + "name": "StakeClaim", + "nameLocations": [ + "5742:10:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1574, + "src": "5742:10:14" + }, + "referencedDeclaration": 1574, + "src": "5742:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + } + }, + "visibility": "internal" + } + ], + "id": 1226, + "initialValue": { + "baseExpression": { + "id": 1223, + "name": "claims", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "5768:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" + } + }, + "id": 1225, + "indexExpression": { + "id": 1224, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "5775:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5768:16:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5742:42:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1228, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "5802:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5808:9:14", + "memberName": "createdAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1569, + "src": "5802:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5821:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5802:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 1233, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "5853:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1232, + "name": "DataServiceFeesClaimNotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1610, + "src": "5824:28:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5824:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1227, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5794:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5794:69:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1236, + "nodeType": "ExpressionStatement", + "src": "5794:69:14" + }, + { + "expression": { + "id": 1237, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "5880:5:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim memory" + } + }, + "functionReturnParameters": 1219, + "id": 1238, + "nodeType": "Return", + "src": "5873:12:14" + } + ] + }, + "documentation": { + "id": 1212, + "nodeType": "StructuredDocumentation", + "src": "5496:148:14", + "text": " @notice Gets the details of a stake claim\n @param _claimId The ID of the stake claim\n @return The stake claim details" + }, + "id": 1240, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getStakeClaim", + "nameLocation": "5658:14:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1214, + "mutability": "mutable", + "name": "_claimId", + "nameLocation": "5681:8:14", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "5673:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1213, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5673:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5672:18:14" + }, + "returnParameters": { + "id": 1219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1218, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "5713:17:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_memory_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + }, + "typeName": { + "id": 1217, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1216, + "name": "StakeClaim", + "nameLocations": [ + "5713:10:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1574, + "src": "5713:10:14" + }, + "referencedDeclaration": 1574, + "src": "5713:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + } + }, + "visibility": "internal" + } + ], + "src": "5712:19:14" + }, + "scope": 1278, + "src": "5649:243:14", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1253, + "nodeType": "Block", + "src": "6230:50:14", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 1248, + "name": "claims", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "6247:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" + } + }, + "id": 1250, + "indexExpression": { + "id": 1249, + "name": "_claimId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "6254:8:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6247:16:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage", + "typeString": "struct IDataServiceFees.StakeClaim storage ref" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6264:9:14", + "memberName": "nextClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1573, + "src": "6247:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1247, + "id": 1252, + "nodeType": "Return", + "src": "6240:33:14" + } + ] + }, + "documentation": { + "id": 1241, + "nodeType": "StructuredDocumentation", + "src": "5898:250:14", + "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\n @return The next stake claim ID" + }, + "id": 1254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getNextStakeClaim", + "nameLocation": "6162:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1243, + "mutability": "mutable", + "name": "_claimId", + "nameLocation": "6189:8:14", + "nodeType": "VariableDeclaration", + "scope": 1254, + "src": "6181:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1242, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6181:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6180:18:14" + }, + "returnParameters": { + "id": 1247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1246, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1254, + "src": "6221:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1245, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6221:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6220:9:14" + }, + "scope": 1278, + "src": "6153:127:14", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1276, + "nodeType": "Block", + "src": "6591:92:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1269, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6643:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataServiceFees_$1278", + "typeString": "contract DataServiceFees" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DataServiceFees_$1278", + "typeString": "contract DataServiceFees" + } + ], + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6635:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6635:7:14", + "typeDescriptions": {} + } + }, + "id": 1270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6635:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1271, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1257, + "src": "6650:16:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1272, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "6668:6:14", + "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": 1265, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "6618:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6622:12:14", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "6618:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6618:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1264, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "6608:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6608:68:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1263, + "id": 1275, + "nodeType": "Return", + "src": "6601:75:14" + } + ] + }, + "documentation": { + "id": 1255, + "nodeType": "StructuredDocumentation", + "src": "6286:199:14", + "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\n @return The stake claim ID" + }, + "id": 1277, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_buildStakeClaimId", + "nameLocation": "6499:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "6526:16:14", + "nodeType": "VariableDeclaration", + "scope": 1277, + "src": "6518:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6518:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1259, + "mutability": "mutable", + "name": "_nonce", + "nameLocation": "6552:6:14", + "nodeType": "VariableDeclaration", + "scope": 1277, + "src": "6544:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6544:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6517:42:14" + }, + "returnParameters": { + "id": 1263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1277, + "src": "6582:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1261, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6582:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6581:9:14" + }, + "scope": 1278, + "src": "6490:193:14", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1279, + "src": "937:5748:14", + "usedErrors": [ + 1610, + 1613, + 1667, + 1918, + 1925, + 1932, + 1937, + 4104, + 4110, + 4655, + 5140, + 5143 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1585, + 1596, + 1605, + 1888, + 1893, + 1900, + 1907, + 4650, + 5148 + ] + } + ], + "src": "45:6641:14" + }, + "id": 14 + }, + "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol", + "exportedSymbols": { + "DataServiceFeesV1Storage": [ + 1308 + ], + "IDataServiceFees": [ + 1620 + ], + "LinkedList": [ + 4364 + ] + }, + "id": 1309, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1280, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:15" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", + "file": "../interfaces/IDataServiceFees.sol", + "id": 1282, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1309, + "sourceUnit": 1621, + "src": "70:70:15", + "symbolAliases": [ + { + "foreign": { + "id": 1281, + "name": "IDataServiceFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "79:16:15", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", + "file": "../../libraries/LinkedList.sol", + "id": 1284, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1309, + "sourceUnit": 4365, + "src": "142:60:15", + "symbolAliases": [ + { + "foreign": { + "id": 1283, + "name": "LinkedList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "151:10:15", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "DataServiceFeesV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1285, + "nodeType": "StructuredDocumentation", + "src": "204:218:15", + "text": " @title Storage layout for the {DataServiceFees} extension 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": 1308, + "linearizedBaseContracts": [ + 1308 + ], + "name": "DataServiceFeesV1Storage", + "nameLocation": "441:24:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 1286, + "nodeType": "StructuredDocumentation", + "src": "472:81:15", + "text": "@notice The amount of tokens locked in stake claims for each service provider" + }, + "functionSelector": "cbe5f3f2", + "id": 1290, + "mutability": "mutable", + "name": "feesProvisionTracker", + "nameLocation": "616:20:15", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "558:78:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1289, + "keyName": "serviceProvider", + "keyNameLocation": "574:15:15", + "keyType": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "566:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "558:50:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "tokens", + "valueNameLocation": "601:6:15", + "valueType": { + "id": 1288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "593:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 1291, + "nodeType": "StructuredDocumentation", + "src": "643:79:15", + "text": "@notice List of all locked stake claims to be released to service providers" + }, + "functionSelector": "eff0f592", + "id": 1296, + "mutability": "mutable", + "name": "claims", + "nameLocation": "796:6:15", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "727:75:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)" + }, + "typeName": { + "id": 1295, + "keyName": "claimId", + "keyNameLocation": "743:7:15", + "keyType": { + "id": 1292, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "735:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "727:61:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1574_storage_$", + "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)" + }, + "valueName": "claim", + "valueNameLocation": "782:5:15", + "valueType": { + "id": 1294, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1293, + "name": "IDataServiceFees.StakeClaim", + "nameLocations": [ + "754:16:15", + "771:10:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1574, + "src": "754:27:15" + }, + "referencedDeclaration": 1574, + "src": "754:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StakeClaim_$1574_storage_ptr", + "typeString": "struct IDataServiceFees.StakeClaim" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 1297, + "nodeType": "StructuredDocumentation", + "src": "809:60:15", + "text": "@notice Service providers registered in the data service" + }, + "functionSelector": "13c474c9", + "id": 1302, + "mutability": "mutable", + "name": "claimsLists", + "nameLocation": "938:11:15", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "874:75:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4090_storage_$", + "typeString": "mapping(address => struct LinkedList.List)" + }, + "typeName": { + "id": 1301, + "keyName": "serviceProvider", + "keyNameLocation": "890:15:15", + "keyType": { + "id": 1298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "882:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "874:56:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4090_storage_$", + "typeString": "mapping(address => struct LinkedList.List)" + }, + "valueName": "list", + "valueNameLocation": "925:4:15", + "valueType": { + "id": 1300, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1299, + "name": "LinkedList.List", + "nameLocations": [ + "909:10:15", + "920:4:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "909:15:15" + }, + "referencedDeclaration": 4090, + "src": "909:15:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 1303, + "nodeType": "StructuredDocumentation", + "src": "956:158:15", + "text": "@dev Gap to allow adding variables in future upgrades\n Note that this contract is not upgradeable but might be inherited by an upgradeable contract" + }, + "id": 1307, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1139:5:15", + "nodeType": "VariableDeclaration", + "scope": 1308, + "src": "1119:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1119:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1306, + "length": { + "hexValue": "3530", + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1127:2:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1119:11:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 1309, + "src": "423:724:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:1103:15" + }, + "id": 15 + }, + "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol", + "exportedSymbols": { + "DataService": [ + 936 + ], + "DataServicePausableUpgradeable": [ + 1425 + ], + "IDataServicePausable": [ + 1655 + ], + "PausableUpgradeable": [ + 5700 + ] + }, + "id": 1426, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1310, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:16" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol", + "file": "../interfaces/IDataServicePausable.sol", + "id": 1312, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1426, + "sourceUnit": 1656, + "src": "70:78:16", + "symbolAliases": [ + { + "foreign": { + "id": 1311, + "name": "IDataServicePausable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1655, + "src": "79:20:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", + "id": 1314, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1426, + "sourceUnit": 5701, + "src": "150:104:16", + "symbolAliases": [ + { + "foreign": { + "id": 1313, + "name": "PausableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5700, + "src": "159:19:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", + "file": "../DataService.sol", + "id": 1316, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1426, + "sourceUnit": 937, + "src": "255:49:16", + "symbolAliases": [ + { + "foreign": { + "id": 1315, + "name": "DataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "264:11:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1318, + "name": "PausableUpgradeable", + "nameLocations": [ + "823:19:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5700, + "src": "823:19:16" + }, + "id": 1319, + "nodeType": "InheritanceSpecifier", + "src": "823:19:16" + }, + { + "baseName": { + "id": 1320, + "name": "DataService", + "nameLocations": [ + "844:11:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 936, + "src": "844:11:16" + }, + "id": 1321, + "nodeType": "InheritanceSpecifier", + "src": "844:11:16" + }, + { + "baseName": { + "id": 1322, + "name": "IDataServicePausable", + "nameLocations": [ + "857:20:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1655, + "src": "857:20:16" + }, + "id": 1323, + "nodeType": "InheritanceSpecifier", + "src": "857:20:16" + } + ], + "canonicalName": "DataServicePausableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1317, + "nodeType": "StructuredDocumentation", + "src": "306:464:16", + "text": " @title DataServicePausableUpgradeable contract\n @dev Implementation of the {IDataServicePausable} interface.\n @dev Upgradeable version of the {DataServicePausable} contract.\n @dev This contract inherits from {DataService} which needs to be initialized, please see\n {DataService} for detailed instructions.\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": false, + "id": 1425, + "linearizedBaseContracts": [ + 1425, + 1655, + 936, + 1557, + 945, + 2395, + 2425, + 4928, + 5700, + 5437, + 5391 + ], + "name": "DataServicePausableUpgradeable", + "nameLocation": "789:30:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 1324, + "nodeType": "StructuredDocumentation", + "src": "884:60:16", + "text": "@notice List of pause guardians and their allowed status" + }, + "functionSelector": "9384e078", + "id": 1328, + "mutability": "mutable", + "name": "pauseGuardians", + "nameLocation": "1003:14:16", + "nodeType": "VariableDeclaration", + "scope": 1425, + "src": "949:68:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 1327, + "keyName": "pauseGuardian", + "keyNameLocation": "965:13:16", + "keyType": { + "id": 1325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "957:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "949:46:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "allowed", + "valueNameLocation": "987:7:16", + "valueType": { + "id": 1326, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "982:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 1329, + "nodeType": "StructuredDocumentation", + "src": "1024:57:16", + "text": "@dev Gap to allow adding variables in future upgrades" + }, + "id": 1333, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1106:5:16", + "nodeType": "VariableDeclaration", + "scope": 1425, + "src": "1086:25:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1086:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1332, + "length": { + "hexValue": "3530", + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1094:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1086:11:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1348, + "nodeType": "Block", + "src": "1220:112:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1337, + "name": "pauseGuardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "1238:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1340, + "indexExpression": { + "expression": { + "id": 1338, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1253:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1257:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1253:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1238:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1342, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1302:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1306:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1302:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1341, + "name": "DataServicePausableNotPauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1639, + "src": "1266:35:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1266:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1336, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1230:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1230:84:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "1230:84:16" + }, + { + "id": 1347, + "nodeType": "PlaceholderStatement", + "src": "1324:1:16" + } + ] + }, + "documentation": { + "id": 1334, + "nodeType": "StructuredDocumentation", + "src": "1118:68:16", + "text": " @notice Checks if the caller is a pause guardian." + }, + "id": 1349, + "name": "onlyPauseGuardian", + "nameLocation": "1200:17:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1335, + "nodeType": "ParameterList", + "parameters": [], + "src": "1217:2:16" + }, + "src": "1191:141:16", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1650 + ], + "body": { + "id": 1359, + "nodeType": "Block", + "src": "1432:25:16", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1356, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5675, + "src": "1442:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1442:8:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1358, + "nodeType": "ExpressionStatement", + "src": "1442:8:16" + } + ] + }, + "documentation": { + "id": 1350, + "nodeType": "StructuredDocumentation", + "src": "1338:36:16", + "text": "@inheritdoc IDataServicePausable" + }, + "functionSelector": "8456cb59", + "id": 1360, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1354, + "kind": "modifierInvocation", + "modifierName": { + "id": 1353, + "name": "onlyPauseGuardian", + "nameLocations": [ + "1414:17:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1349, + "src": "1414:17:16" + }, + "nodeType": "ModifierInvocation", + "src": "1414:17:16" + } + ], + "name": "pause", + "nameLocation": "1388:5:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1352, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1405:8:16" + }, + "parameters": { + "id": 1351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1393:2:16" + }, + "returnParameters": { + "id": 1355, + "nodeType": "ParameterList", + "parameters": [], + "src": "1432:0:16" + }, + "scope": 1425, + "src": "1379:78:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1654 + ], + "body": { + "id": 1370, + "nodeType": "Block", + "src": "1559:27:16", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1367, + "name": "_unpause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5699, + "src": "1569:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1569:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "1569:10:16" + } + ] + }, + "documentation": { + "id": 1361, + "nodeType": "StructuredDocumentation", + "src": "1463:36:16", + "text": "@inheritdoc IDataServicePausable" + }, + "functionSelector": "3f4ba83a", + "id": 1371, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1365, + "kind": "modifierInvocation", + "modifierName": { + "id": 1364, + "name": "onlyPauseGuardian", + "nameLocations": [ + "1541:17:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1349, + "src": "1541:17:16" + }, + "nodeType": "ModifierInvocation", + "src": "1541:17:16" + } + ], + "name": "unpause", + "nameLocation": "1513:7:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1363, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1532:8:16" + }, + "parameters": { + "id": 1362, + "nodeType": "ParameterList", + "parameters": [], + "src": "1520:2:16" + }, + "returnParameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [], + "src": "1559:0:16" + }, + "scope": 1425, + "src": "1504:82:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1383, + "nodeType": "Block", + "src": "1733:92:16", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1377, + "name": "__Pausable_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5610, + "src": "1743:25:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1743:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1379, + "nodeType": "ExpressionStatement", + "src": "1743:27:16" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1380, + "name": "__DataServicePausable_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1391, + "src": "1780:36:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1780:38:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "1780:38:16" + } + ] + }, + "documentation": { + "id": 1372, + "nodeType": "StructuredDocumentation", + "src": "1592:72:16", + "text": " @notice Initializes the contract and parent contracts" + }, + "id": 1384, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1375, + "kind": "modifierInvocation", + "modifierName": { + "id": 1374, + "name": "onlyInitializing", + "nameLocations": [ + "1716:16:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1716:16:16" + }, + "nodeType": "ModifierInvocation", + "src": "1716:16:16" + } + ], + "name": "__DataServicePausable_init", + "nameLocation": "1678:26:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1373, + "nodeType": "ParameterList", + "parameters": [], + "src": "1704:2:16" + }, + "returnParameters": { + "id": 1376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1733:0:16" + }, + "scope": 1425, + "src": "1669:156:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1390, + "nodeType": "Block", + "src": "1961:2:16", + "statements": [] + }, + "documentation": { + "id": 1385, + "nodeType": "StructuredDocumentation", + "src": "1831:51:16", + "text": " @notice Initializes the contract" + }, + "id": 1391, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1388, + "kind": "modifierInvocation", + "modifierName": { + "id": 1387, + "name": "onlyInitializing", + "nameLocations": [ + "1944:16:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1944:16:16" + }, + "nodeType": "ModifierInvocation", + "src": "1944:16:16" + } + ], + "name": "__DataServicePausable_init_unchained", + "nameLocation": "1896:36:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1386, + "nodeType": "ParameterList", + "parameters": [], + "src": "1932:2:16" + }, + "returnParameters": { + "id": 1389, + "nodeType": "ParameterList", + "parameters": [], + "src": "1961:0:16" + }, + "scope": 1425, + "src": "1887:76:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1423, + "nodeType": "Block", + "src": "2369:279:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1400, + "name": "pauseGuardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "2400:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1402, + "indexExpression": { + "id": 1401, + "name": "_pauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2415:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2400:30:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2434:9:16", + "subExpression": { + "id": 1403, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "2435:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2400:43:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 1407, + "name": "_pauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2498:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1408, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "2514:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1406, + "name": "DataServicePausablePauseGuardianNoChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "2457:40:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bool_$returns$_t_error_$", + "typeString": "function (address,bool) pure returns (error)" + } + }, + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2457:66:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1399, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2379:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2379:154:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "2379:154:16" + }, + { + "expression": { + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1412, + "name": "pauseGuardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "2543:14:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1414, + "indexExpression": { + "id": 1413, + "name": "_pauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2558:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2543:30:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1415, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "2576:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2543:41:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1417, + "nodeType": "ExpressionStatement", + "src": "2543:41:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1419, + "name": "_pauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2616:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1420, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "2632:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1418, + "name": "PauseGuardianSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1634, + "src": "2599:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2599:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1422, + "nodeType": "EmitStatement", + "src": "2594:47:16" + } + ] + }, + "documentation": { + "id": 1392, + "nodeType": "StructuredDocumentation", + "src": "1969:320:16", + "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": 1424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setPauseGuardian", + "nameLocation": "2303:17:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "_pauseGuardian", + "nameLocation": "2329:14:16", + "nodeType": "VariableDeclaration", + "scope": 1424, + "src": "2321:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2321:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "mutability": "mutable", + "name": "_allowed", + "nameLocation": "2350:8:16", + "nodeType": "VariableDeclaration", + "scope": 1424, + "src": "2345:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1395, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2345:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2320:39:16" + }, + "returnParameters": { + "id": 1398, + "nodeType": "ParameterList", + "parameters": [], + "src": "2369:0:16" + }, + "scope": 1425, + "src": "2294:354:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1426, + "src": "771:1879:16", + "usedErrors": [ + 1639, + 1646, + 1918, + 1925, + 1932, + 1937, + 4655, + 5140, + 5143, + 5579, + 5582 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1634, + 1888, + 1893, + 1900, + 1907, + 4650, + 5148, + 5571, + 5576 + ] + } + ], + "src": "45:2606:16" + }, + "id": 16 + }, + "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "exportedSymbols": { + "IDataService": [ + 1557 + ], + "IGraphPayments": [ + 2489 + ] + }, + "id": 1558, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1427, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:17" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "../../interfaces/IGraphPayments.sol", + "id": 1429, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1558, + "sourceUnit": 2490, + "src": "70:69:17", + "symbolAliases": [ + { + "foreign": { + "id": 1428, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "79:14:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataService", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1430, + "nodeType": "StructuredDocumentation", + "src": "141:895:17", + "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.\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": false, + "id": 1557, + "linearizedBaseContracts": [ + 1557 + ], + "name": "IDataService", + "nameLocation": "1047:12:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1431, + "nodeType": "StructuredDocumentation", + "src": "1066:229:17", + "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": 1437, + "name": "ServiceProviderRegistered", + "nameLocation": "1306:25:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1433, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1348:15:17", + "nodeType": "VariableDeclaration", + "scope": 1437, + "src": "1332:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1435, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "1371:4:17", + "nodeType": "VariableDeclaration", + "scope": 1437, + "src": "1365:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1434, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1365:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1331:45:17" + }, + "src": "1300:77:17" + }, + { + "anonymous": false, + "documentation": { + "id": 1438, + "nodeType": "StructuredDocumentation", + "src": "1383:182:17", + "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": 1442, + "name": "ProvisionPendingParametersAccepted", + "nameLocation": "1576:34:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1440, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1627:15:17", + "nodeType": "VariableDeclaration", + "scope": 1442, + "src": "1611:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1611:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1610:33:17" + }, + "src": "1570:74:17" + }, + { + "anonymous": false, + "documentation": { + "id": 1443, + "nodeType": "StructuredDocumentation", + "src": "1650:222:17", + "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": 1449, + "name": "ServiceStarted", + "nameLocation": "1883:14:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1445, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1914:15:17", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "1898:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1898:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1447, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "1937:4:17", + "nodeType": "VariableDeclaration", + "scope": 1449, + "src": "1931:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1446, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1931:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1897:45:17" + }, + "src": "1877:66:17" + }, + { + "anonymous": false, + "documentation": { + "id": 1450, + "nodeType": "StructuredDocumentation", + "src": "1949:221:17", + "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": 1456, + "name": "ServiceStopped", + "nameLocation": "2181:14:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1452, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2212:15:17", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "2196:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1451, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2196:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "2235:4:17", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "2229:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1453, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2229:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2195:45:17" + }, + "src": "2175:66:17" + }, + { + "anonymous": false, + "documentation": { + "id": 1457, + "nodeType": "StructuredDocumentation", + "src": "2247:276:17", + "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": 1466, + "name": "ServicePaymentCollected", + "nameLocation": "2534:23:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2583:15:17", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2567:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2567:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "indexed": true, + "mutability": "mutable", + "name": "feeType", + "nameLocation": "2644:7:17", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2608:43:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 1461, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1460, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "2608:14:17", + "2623:12:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "2608:27:17" + }, + "referencedDeclaration": 2433, + "src": "2608:27:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2669:6:17", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2661:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2661:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2557:124:17" + }, + "src": "2528:154:17" + }, + { + "anonymous": false, + "documentation": { + "id": 1467, + "nodeType": "StructuredDocumentation", + "src": "2688:188:17", + "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": 1473, + "name": "ServiceProviderSlashed", + "nameLocation": "2887:22:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1469, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2926:15:17", + "nodeType": "VariableDeclaration", + "scope": 1473, + "src": "2910:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2910:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1471, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2951:6:17", + "nodeType": "VariableDeclaration", + "scope": 1473, + "src": "2943:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2943:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2909:49:17" + }, + "src": "2881:78:17" + }, + { + "documentation": { + "id": 1474, + "nodeType": "StructuredDocumentation", + "src": "2965:903:17", + "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": 1481, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "register", + "nameLocation": "3882:8:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1476, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3899:15:17", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "3891:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3891:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1478, + "mutability": "mutable", + "name": "data", + "nameLocation": "3931:4:17", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "3916:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1477, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3916:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3890:46:17" + }, + "returnParameters": { + "id": 1480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3945:0:17" + }, + "scope": 1557, + "src": "3873:73:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "3952:472:17", + "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": 1489, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptProvisionPendingParameters", + "nameLocation": "4438:32:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4479:15:17", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "4471:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4471:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "data", + "nameLocation": "4511:4:17", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "4496:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1485, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4496:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4470:46:17" + }, + "returnParameters": { + "id": 1488, + "nodeType": "ParameterList", + "parameters": [], + "src": "4525:0:17" + }, + "scope": 1557, + "src": "4429:97:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1490, + "nodeType": "StructuredDocumentation", + "src": "4532:251:17", + "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": 1497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "startService", + "nameLocation": "4797:12:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4818:15:17", + "nodeType": "VariableDeclaration", + "scope": 1497, + "src": "4810:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4810:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "data", + "nameLocation": "4850:4:17", + "nodeType": "VariableDeclaration", + "scope": 1497, + "src": "4835:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4835:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4809:46:17" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "4864:0:17" + }, + "scope": 1557, + "src": "4788:77:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1498, + "nodeType": "StructuredDocumentation", + "src": "4871:250:17", + "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": 1505, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "stopService", + "nameLocation": "5135:11:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5155:15:17", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5147:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5147:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "data", + "nameLocation": "5187:4:17", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5172:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5172:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5146:46:17" + }, + "returnParameters": { + "id": 1504, + "nodeType": "ParameterList", + "parameters": [], + "src": "5201:0:17" + }, + "scope": 1557, + "src": "5126:76:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1506, + "nodeType": "StructuredDocumentation", + "src": "5208:864:17", + "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 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": 1518, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "6086:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "6111:15:17", + "nodeType": "VariableDeclaration", + "scope": 1518, + "src": "6103:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6103:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "feeType", + "nameLocation": "6164:7:17", + "nodeType": "VariableDeclaration", + "scope": 1518, + "src": "6136:35:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 1510, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1509, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "6136:14:17", + "6151:12:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "6136:27:17" + }, + "referencedDeclaration": 2433, + "src": "6136:27:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1513, + "mutability": "mutable", + "name": "data", + "nameLocation": "6196:4:17", + "nodeType": "VariableDeclaration", + "scope": 1518, + "src": "6181:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6181:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6093:113:17" + }, + "returnParameters": { + "id": 1517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1518, + "src": "6225:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6225:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6224:9:17" + }, + "scope": 1557, + "src": "6077:157:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1519, + "nodeType": "StructuredDocumentation", + "src": "6240:367:17", + "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": 1526, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "slash", + "nameLocation": "6621:5:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1521, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "6635:15:17", + "nodeType": "VariableDeclaration", + "scope": 1526, + "src": "6627:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1520, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6627:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1523, + "mutability": "mutable", + "name": "data", + "nameLocation": "6667:4:17", + "nodeType": "VariableDeclaration", + "scope": 1526, + "src": "6652:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1522, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6652:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6626:46:17" + }, + "returnParameters": { + "id": 1525, + "nodeType": "ParameterList", + "parameters": [], + "src": "6681:0:17" + }, + "scope": 1557, + "src": "6612:70:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1527, + "nodeType": "StructuredDocumentation", + "src": "6688:163:17", + "text": " @notice External getter for the thawing period range\n @return Minimum thawing period allowed\n @return Maximum thawing period allowed" + }, + "functionSelector": "71ce020a", + "id": 1534, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getThawingPeriodRange", + "nameLocation": "6865:21:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1528, + "nodeType": "ParameterList", + "parameters": [], + "src": "6886:2:17" + }, + "returnParameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1530, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6912:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1529, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6912:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6920:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1531, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6920:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6911:16:17" + }, + "scope": 1557, + "src": "6856:72:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1535, + "nodeType": "StructuredDocumentation", + "src": "6934:157:17", + "text": " @notice External getter for the verifier cut range\n @return Minimum verifier cut allowed\n @return Maximum verifier cut allowed" + }, + "functionSelector": "482468b7", + "id": 1542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getVerifierCutRange", + "nameLocation": "7105:19:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1536, + "nodeType": "ParameterList", + "parameters": [], + "src": "7124:2:17" + }, + "returnParameters": { + "id": 1541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1538, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "7150:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1537, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7150:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1540, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "7158:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1539, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7158:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "7149:16:17" + }, + "scope": 1557, + "src": "7096:70:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1543, + "nodeType": "StructuredDocumentation", + "src": "7172:169:17", + "text": " @notice External getter for the provision tokens range\n @return Minimum provision tokens allowed\n @return Maximum provision tokens allowed" + }, + "functionSelector": "819ba366", + "id": 1550, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProvisionTokensRange", + "nameLocation": "7355:23:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [], + "src": "7378:2:17" + }, + "returnParameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1550, + "src": "7404:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7404:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1550, + "src": "7413:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7413:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7403:18:17" + }, + "scope": 1557, + "src": "7346:76:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1551, + "nodeType": "StructuredDocumentation", + "src": "7428:103:17", + "text": " @notice External getter for the delegation ratio\n @return The delegation ratio" + }, + "functionSelector": "1ebb7c30", + "id": 1556, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDelegationRatio", + "nameLocation": "7545:18:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1552, + "nodeType": "ParameterList", + "parameters": [], + "src": "7563:2:17" + }, + "returnParameters": { + "id": 1555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1556, + "src": "7589:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1553, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7589:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "7588:8:17" + }, + "scope": 1557, + "src": "7536:61:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1558, + "src": "1037:6562:17", + "usedErrors": [], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473 + ] + } + ], + "src": "45:7555:17" + }, + "id": 17 + }, + "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", + "exportedSymbols": { + "IDataService": [ + 1557 + ], + "IDataServiceFees": [ + 1620 + ] + }, + "id": 1621, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1559, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:18" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "file": "./IDataService.sol", + "id": 1561, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1621, + "sourceUnit": 1558, + "src": "70:50:18", + "symbolAliases": [ + { + "foreign": { + "id": 1560, + "name": "IDataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "79:12:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1563, + "name": "IDataService", + "nameLocations": [ + "1207:12:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1557, + "src": "1207:12:18" + }, + "id": 1564, + "nodeType": "InheritanceSpecifier", + "src": "1207:12:18" + } + ], + "canonicalName": "IDataServiceFees", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "122:1054:18", + "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.\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": false, + "id": 1620, + "linearizedBaseContracts": [ + 1620, + 1557 + ], + "name": "IDataServiceFees", + "nameLocation": "1187:16:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IDataServiceFees.StakeClaim", + "documentation": { + "id": 1565, + "nodeType": "StructuredDocumentation", + "src": "1226:508:18", + "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.\n @param tokens The amount of tokens to be locked in the claim\n @param createdAt The timestamp when the claim was created\n @param releasableAt The timestamp when the tokens can be released\n @param nextClaim The next claim in the linked list" + }, + "id": 1574, + "members": [ + { + "constant": false, + "id": 1567, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1775:6:18", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "1767:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1767:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "createdAt", + "nameLocation": "1799:9:18", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "1791:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1571, + "mutability": "mutable", + "name": "releasableAt", + "nameLocation": "1826:12:18", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "1818:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1818:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "nextClaim", + "nameLocation": "1856:9:18", + "nodeType": "VariableDeclaration", + "scope": 1574, + "src": "1848:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1572, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1848:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "StakeClaim", + "nameLocation": "1746:10:18", + "nodeType": "StructDefinition", + "scope": 1620, + "src": "1739:133:18", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 1575, + "nodeType": "StructuredDocumentation", + "src": "1878:338:18", + "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": 1585, + "name": "StakeClaimLocked", + "nameLocation": "2227:16:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1577, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2269:15:18", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "2253:31:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2253:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1579, + "indexed": true, + "mutability": "mutable", + "name": "claimId", + "nameLocation": "2310:7:18", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "2294:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1578, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2294:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1581, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2335:6:18", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "2327:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2327:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1583, + "indexed": false, + "mutability": "mutable", + "name": "unlockTimestamp", + "nameLocation": "2359:15:18", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "2351:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2243:137:18" + }, + "src": "2221:160:18" + }, + { + "anonymous": false, + "documentation": { + "id": 1586, + "nodeType": "StructuredDocumentation", + "src": "2387:324:18", + "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": 1596, + "name": "StakeClaimReleased", + "nameLocation": "2722:18:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1588, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2766:15:18", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "2750:31:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2750:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1590, + "indexed": true, + "mutability": "mutable", + "name": "claimId", + "nameLocation": "2807:7:18", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "2791:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1589, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2791:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1592, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2832:6:18", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "2824:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1591, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2824:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1594, + "indexed": false, + "mutability": "mutable", + "name": "releasableAt", + "nameLocation": "2856:12:18", + "nodeType": "VariableDeclaration", + "scope": 1596, + "src": "2848:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2848:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2740:134:18" + }, + "src": "2716:159:18" + }, + { + "anonymous": false, + "documentation": { + "id": 1597, + "nodeType": "StructuredDocumentation", + "src": "2881:283:18", + "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": 1605, + "name": "StakeClaimsReleased", + "nameLocation": "3175:19:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 1604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1599, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3211:15:18", + "nodeType": "VariableDeclaration", + "scope": 1605, + "src": "3195:31:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3195:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1601, + "indexed": false, + "mutability": "mutable", + "name": "claimsCount", + "nameLocation": "3236:11:18", + "nodeType": "VariableDeclaration", + "scope": 1605, + "src": "3228:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3228:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1603, + "indexed": false, + "mutability": "mutable", + "name": "tokensReleased", + "nameLocation": "3257:14:18", + "nodeType": "VariableDeclaration", + "scope": 1605, + "src": "3249:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3249:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3194:78:18" + }, + "src": "3169:104:18" + }, + { + "documentation": { + "id": 1606, + "nodeType": "StructuredDocumentation", + "src": "3279:139:18", + "text": " @notice Thrown when attempting to get a stake claim that does not exist.\n @param claimId The id of the stake claim" + }, + "errorSelector": "41cd26a4", + "id": 1610, + "name": "DataServiceFeesClaimNotFound", + "nameLocation": "3429:28:18", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1608, + "mutability": "mutable", + "name": "claimId", + "nameLocation": "3466:7:18", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "3458:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1607, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3458:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3457:17:18" + }, + "src": "3423:52:18" + }, + { + "documentation": { + "id": 1611, + "nodeType": "StructuredDocumentation", + "src": "3481:83:18", + "text": " @notice Emitted when trying to lock zero tokens in a stake claim" + }, + "errorSelector": "8f4c63d9", + "id": 1613, + "name": "DataServiceFeesZeroTokens", + "nameLocation": "3575:25:18", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1612, + "nodeType": "ParameterList", + "parameters": [], + "src": "3600:2:18" + }, + "src": "3569:34:18" + }, + { + "documentation": { + "id": 1614, + "nodeType": "StructuredDocumentation", + "src": "3609:519:18", + "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": 1619, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "releaseStake", + "nameLocation": "4142:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1616, + "mutability": "mutable", + "name": "numClaimsToRelease", + "nameLocation": "4163:18:18", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "4155:26:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4155:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4154:28:18" + }, + "returnParameters": { + "id": 1618, + "nodeType": "ParameterList", + "parameters": [], + "src": "4191:0:18" + }, + "scope": 1620, + "src": "4133:59:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1621, + "src": "1177:3017:18", + "usedErrors": [ + 1610, + 1613 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1585, + 1596, + 1605 + ] + } + ], + "src": "45:4150:18" + }, + "id": 18 + }, + "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol", + "exportedSymbols": { + "IDataService": [ + 1557 + ], + "IDataServicePausable": [ + 1655 + ] + }, + "id": 1656, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1622, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:19" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "file": "./IDataService.sol", + "id": 1624, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1656, + "sourceUnit": 1558, + "src": "70:50:19", + "symbolAliases": [ + { + "foreign": { + "id": 1623, + "name": "IDataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "79:12:19", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1626, + "name": "IDataService", + "nameLocations": [ + "541:12:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1557, + "src": "541:12:19" + }, + "id": 1627, + "nodeType": "InheritanceSpecifier", + "src": "541:12:19" + } + ], + "canonicalName": "IDataServicePausable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1625, + "nodeType": "StructuredDocumentation", + "src": "122:384:19", + "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.\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": false, + "id": 1655, + "linearizedBaseContracts": [ + 1655, + 1557 + ], + "name": "IDataServicePausable", + "nameLocation": "517:20:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1628, + "nodeType": "StructuredDocumentation", + "src": "560:183:19", + "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": 1634, + "name": "PauseGuardianSet", + "nameLocation": "754:16:19", + "nodeType": "EventDefinition", + "parameters": { + "id": 1633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1630, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "787:7:19", + "nodeType": "VariableDeclaration", + "scope": 1634, + "src": "771:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "771:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1632, + "indexed": false, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "801:7:19", + "nodeType": "VariableDeclaration", + "scope": 1634, + "src": "796:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1631, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "796:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "770:39:19" + }, + "src": "748:62:19" + }, + { + "documentation": { + "id": 1635, + "nodeType": "StructuredDocumentation", + "src": "816:132:19", + "text": " @notice Emitted when a the caller is not a pause guardian\n @param account The address of the pause guardian" + }, + "errorSelector": "72e3ef97", + "id": 1639, + "name": "DataServicePausableNotPauseGuardian", + "nameLocation": "959:35:19", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1637, + "mutability": "mutable", + "name": "account", + "nameLocation": "1003:7:19", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "995:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "995:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "994:17:19" + }, + "src": "953:59:19" + }, + { + "documentation": { + "id": 1640, + "nodeType": "StructuredDocumentation", + "src": "1018:209:19", + "text": " @notice Emitted when a pause guardian is set to the same allowed status\n @param account The address of the pause guardian\n @param allowed The allowed status of the pause guardian" + }, + "errorSelector": "5e67e54b", + "id": 1646, + "name": "DataServicePausablePauseGuardianNoChange", + "nameLocation": "1238:40:19", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "account", + "nameLocation": "1287:7:19", + "nodeType": "VariableDeclaration", + "scope": 1646, + "src": "1279:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1279:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "1301:7:19", + "nodeType": "VariableDeclaration", + "scope": 1646, + "src": "1296:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1643, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1296:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1278:31:19" + }, + "src": "1232:78:19" + }, + { + "documentation": { + "id": 1647, + "nodeType": "StructuredDocumentation", + "src": "1316:256:19", + "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": 1650, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pause", + "nameLocation": "1586:5:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1648, + "nodeType": "ParameterList", + "parameters": [], + "src": "1591:2:19" + }, + "returnParameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [], + "src": "1602:0:19" + }, + "scope": 1655, + "src": "1577:26:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1651, + "nodeType": "StructuredDocumentation", + "src": "1609:246:19", + "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": 1654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "unpause", + "nameLocation": "1869:7:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "1876:2:19" + }, + "returnParameters": { + "id": 1653, + "nodeType": "ParameterList", + "parameters": [], + "src": "1887:0:19" + }, + "scope": 1655, + "src": "1860:28:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1656, + "src": "507:1383:19", + "usedErrors": [ + 1639, + 1646 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1634 + ] + } + ], + "src": "45:1846:19" + }, + "id": 19 + }, + "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", + "exportedSymbols": { + "IHorizonStaking": [ + 2625 + ], + "ProvisionTracker": [ + 1801 + ] + }, + "id": 1802, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1657, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:20" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "file": "../../interfaces/IHorizonStaking.sol", + "id": 1659, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1802, + "sourceUnit": 2626, + "src": "70:71:20", + "symbolAliases": [ + { + "foreign": { + "id": 1658, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "79:15:20", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ProvisionTracker", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1660, + "nodeType": "StructuredDocumentation", + "src": "143:635:20", + "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.\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": 1801, + "linearizedBaseContracts": [ + 1801 + ], + "name": "ProvisionTracker", + "nameLocation": "787:16:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1661, + "nodeType": "StructuredDocumentation", + "src": "810:200:20", + "text": " @notice Thrown when trying to lock more tokens than available\n @param tokensAvailable The amount of tokens available\n @param tokensRequired The amount of tokens required" + }, + "errorSelector": "5f8ec709", + "id": 1667, + "name": "ProvisionTrackerInsufficientTokens", + "nameLocation": "1021:34:20", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "tokensAvailable", + "nameLocation": "1064:15:20", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "1056:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1056:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "tokensRequired", + "nameLocation": "1089:14:20", + "nodeType": "VariableDeclaration", + "scope": 1667, + "src": "1081:22:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1081:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1055:49:20" + }, + "src": "1015:90:20" + }, + { + "body": { + "id": 1725, + "nodeType": "Block", + "src": "1843:384:20", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1684, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1857:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1867:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1857:11:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1688, + "nodeType": "IfStatement", + "src": "1853:24:20", + "trueBody": { + "functionReturnParameters": 1683, + "id": 1687, + "nodeType": "Return", + "src": "1870:7:20" + } + }, + { + "assignments": [ + 1690 + ], + "declarations": [ + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "tokensRequired", + "nameLocation": "1895:14:20", + "nodeType": "VariableDeclaration", + "scope": 1725, + "src": "1887:22:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1887:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1696, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1691, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1672, + "src": "1912:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1693, + "indexExpression": { + "id": 1692, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "1917:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1912:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1694, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "1936:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1912:30:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1887:55:20" + }, + { + "assignments": [ + 1698 + ], + "declarations": [ + { + "constant": false, + "id": 1698, + "mutability": "mutable", + "name": "tokensAvailable", + "nameLocation": "1960:15:20", + "nodeType": "VariableDeclaration", + "scope": 1725, + "src": "1952:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1952:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1708, + "initialValue": { + "arguments": [ + { + "id": 1701, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "2010:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1704, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2035:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProvisionTracker_$1801", + "typeString": "library ProvisionTracker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProvisionTracker_$1801", + "typeString": "library ProvisionTracker" + } + ], + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2027:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1702, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2027:7:20", + "typeDescriptions": {} + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2027:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1706, + "name": "delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1681, + "src": "2042:15:20", + "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": 1699, + "name": "graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1675, + "src": "1978:12:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1991:18:20", + "memberName": "getTokensAvailable", + "nodeType": "MemberAccess", + "referencedDeclaration": 2962, + "src": "1978:31:20", + "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": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1978:80:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1952:106:20" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1710, + "name": "tokensRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "2076:14:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1711, + "name": "tokensAvailable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "2094:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2076:33:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 1714, + "name": "tokensAvailable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "2146:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1715, + "name": "tokensRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "2163:14:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1713, + "name": "ProvisionTrackerInsufficientTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "2111:34:20", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2111:67:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1709, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2068:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2068:111:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1718, + "nodeType": "ExpressionStatement", + "src": "2068:111:20" + }, + { + "expression": { + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1719, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1672, + "src": "2189:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1721, + "indexExpression": { + "id": 1720, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "2194:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2189:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1679, + "src": "2214:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2189:31:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1724, + "nodeType": "ExpressionStatement", + "src": "2189:31:20" + } + ] + }, + "documentation": { + "id": 1668, + "nodeType": "StructuredDocumentation", + "src": "1111:521:20", + "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": 1726, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lock", + "nameLocation": "1646:4:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1672, + "mutability": "mutable", + "name": "self", + "nameLocation": "1696:4:20", + "nodeType": "VariableDeclaration", + "scope": 1726, + "src": "1660:40:20", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1671, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 1669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1668:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1660:27:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1679:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1675, + "mutability": "mutable", + "name": "graphStaking", + "nameLocation": "1726:12:20", + "nodeType": "VariableDeclaration", + "scope": 1726, + "src": "1710:28:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + "typeName": { + "id": 1674, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1673, + "name": "IHorizonStaking", + "nameLocations": [ + "1710:15:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2625, + "src": "1710:15:20" + }, + "referencedDeclaration": 2625, + "src": "1710:15:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1756:15:20", + "nodeType": "VariableDeclaration", + "scope": 1726, + "src": "1748:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1789:6:20", + "nodeType": "VariableDeclaration", + "scope": 1726, + "src": "1781:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1781:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "delegationRatio", + "nameLocation": "1812:15:20", + "nodeType": "VariableDeclaration", + "scope": 1726, + "src": "1805:22:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1680, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1805:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1650:183:20" + }, + "returnParameters": { + "id": 1683, + "nodeType": "ParameterList", + "parameters": [], + "src": "1843:0:20" + }, + "scope": 1801, + "src": "1637:590:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1763, + "nodeType": "Block", + "src": "2700:198:20", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1738, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "2714:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2724:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2714:11:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1742, + "nodeType": "IfStatement", + "src": "2710:24:20", + "trueBody": { + "functionReturnParameters": 1737, + "id": 1741, + "nodeType": "Return", + "src": "2727:7:20" + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1744, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "2751:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1746, + "indexExpression": { + "id": 1745, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "2756:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2751:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1747, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "2776:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2751:31:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "baseExpression": { + "id": 1750, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "2819:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1752, + "indexExpression": { + "id": 1751, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "2824:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2819:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1753, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "2842:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1749, + "name": "ProvisionTrackerInsufficientTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "2784:34:20", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2784:65:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2743:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2743:107:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1756, + "nodeType": "ExpressionStatement", + "src": "2743:107:20" + }, + { + "expression": { + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1757, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "2860:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1759, + "indexExpression": { + "id": 1758, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "2865:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2860:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1760, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "2885:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2860:31:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1762, + "nodeType": "ExpressionStatement", + "src": "2860:31:20" + } + ] + }, + "documentation": { + "id": 1727, + "nodeType": "StructuredDocumentation", + "src": "2233:353:20", + "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": 1764, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "release", + "nameLocation": "2600:7:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1731, + "mutability": "mutable", + "name": "self", + "nameLocation": "2644:4:20", + "nodeType": "VariableDeclaration", + "scope": 1764, + "src": "2608:40:20", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1730, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 1728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2616:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2608:27:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2627:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1733, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2658:15:20", + "nodeType": "VariableDeclaration", + "scope": 1764, + "src": "2650:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2650:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1735, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2683:6:20", + "nodeType": "VariableDeclaration", + "scope": 1764, + "src": "2675:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2675:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2607:83:20" + }, + "returnParameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [], + "src": "2700:0:20" + }, + "scope": 1801, + "src": "2591:307:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1799, + "nodeType": "Block", + "src": "3560:180:20", + "statements": [ + { + "assignments": [ + 1782 + ], + "declarations": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "tokensAvailable", + "nameLocation": "3578:15:20", + "nodeType": "VariableDeclaration", + "scope": 1799, + "src": "3570:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3570:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1792, + "initialValue": { + "arguments": [ + { + "id": 1785, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1774, + "src": "3628:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1788, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3653:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProvisionTracker_$1801", + "typeString": "library ProvisionTracker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProvisionTracker_$1801", + "typeString": "library ProvisionTracker" + } + ], + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3645:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3645:7:20", + "typeDescriptions": {} + } + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3645:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1790, + "name": "delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "3660:15:20", + "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": 1783, + "name": "graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1772, + "src": "3596:12:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3609:18:20", + "memberName": "getTokensAvailable", + "nodeType": "MemberAccess", + "referencedDeclaration": 2962, + "src": "3596:31:20", + "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": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3596:80:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3570:106:20" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1793, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "3693:4:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1795, + "indexExpression": { + "id": 1794, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1774, + "src": "3698:15:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3693:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1796, + "name": "tokensAvailable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "3718:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3693:40:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1780, + "id": 1798, + "nodeType": "Return", + "src": "3686:47:20" + } + ] + }, + "documentation": { + "id": 1765, + "nodeType": "StructuredDocumentation", + "src": "2904:448:20", + "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\n @return true if the service provider has enough tokens available to lock, false otherwise" + }, + "id": 1800, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "check", + "nameLocation": "3366:5:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "self", + "nameLocation": "3417:4:20", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "3381:40:20", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1768, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 1766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3389:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3381:27:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3400:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1772, + "mutability": "mutable", + "name": "graphStaking", + "nameLocation": "3447:12:20", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "3431:28:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + "typeName": { + "id": 1771, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1770, + "name": "IHorizonStaking", + "nameLocations": [ + "3431:15:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2625, + "src": "3431:15:20" + }, + "referencedDeclaration": 2625, + "src": "3431:15:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1774, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3477:15:20", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "3469:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3469:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "delegationRatio", + "nameLocation": "3509:15:20", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "3502:22:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1775, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3502:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "3371:159:20" + }, + "returnParameters": { + "id": 1780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "3554:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1778, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3554:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3553:6:20" + }, + "scope": 1801, + "src": "3357:383:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1802, + "src": "779:2963:20", + "usedErrors": [ + 1667 + ], + "usedEvents": [] + } + ], + "src": "45:3698:20" + }, + "id": 20 + }, + "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol", + "exportedSymbols": { + "GraphDirectory": [ + 4928 + ], + "IHorizonStaking": [ + 2625 + ], + "Initializable": [ + 5391 + ], + "PPMMath": [ + 4539 + ], + "ProvisionManager": [ + 2395 + ], + "ProvisionManagerV1Storage": [ + 2425 + ], + "UintRange": [ + 4564 + ] + }, + "id": 2396, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1803, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:21" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "file": "../../interfaces/IHorizonStaking.sol", + "id": 1805, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 2626, + "src": "70:71:21", + "symbolAliases": [ + { + "foreign": { + "id": 1804, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "79:15:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/UintRange.sol", + "file": "../../libraries/UintRange.sol", + "id": 1807, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 4565, + "src": "143:58:21", + "symbolAliases": [ + { + "foreign": { + "id": 1806, + "name": "UintRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "152:9:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "file": "../../libraries/PPMMath.sol", + "id": 1809, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 4540, + "src": "202:54:21", + "symbolAliases": [ + { + "foreign": { + "id": 1808, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "211:7:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 1811, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 5392, + "src": "258:98:21", + "symbolAliases": [ + { + "foreign": { + "id": 1810, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "267:13:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "file": "../../utilities/GraphDirectory.sol", + "id": 1813, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 4929, + "src": "357:68:21", + "symbolAliases": [ + { + "foreign": { + "id": 1812, + "name": "GraphDirectory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "366:14:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol", + "file": "./ProvisionManagerStorage.sol", + "id": 1815, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2396, + "sourceUnit": 2426, + "src": "426:74:21", + "symbolAliases": [ + { + "foreign": { + "id": 1814, + "name": "ProvisionManagerV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "435:25:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1817, + "name": "Initializable", + "nameLocations": [ + "1324:13:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "1324:13:21" + }, + "id": 1818, + "nodeType": "InheritanceSpecifier", + "src": "1324:13:21" + }, + { + "baseName": { + "id": 1819, + "name": "GraphDirectory", + "nameLocations": [ + "1339:14:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "1339:14:21" + }, + "id": 1820, + "nodeType": "InheritanceSpecifier", + "src": "1339:14:21" + }, + { + "baseName": { + "id": 1821, + "name": "ProvisionManagerV1Storage", + "nameLocations": [ + "1355:25:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2425, + "src": "1355:25:21" + }, + "id": 1822, + "nodeType": "InheritanceSpecifier", + "src": "1355:25:21" + } + ], + "canonicalName": "ProvisionManager", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1816, + "nodeType": "StructuredDocumentation", + "src": "502:783:21", + "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\n Note that default values for all provision parameters provide the most permissive configuration, it's\n highly recommended to override them at the data service level.\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": 2395, + "linearizedBaseContracts": [ + 2395, + 2425, + 4928, + 5391 + ], + "name": "ProvisionManager", + "nameLocation": "1304:16:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1825, + "libraryName": { + "id": 1823, + "name": "UintRange", + "nameLocations": [ + "1393:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4564, + "src": "1393:9:21" + }, + "nodeType": "UsingForDirective", + "src": "1387:28:21", + "typeName": { + "id": 1824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1407:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "documentation": { + "id": 1826, + "nodeType": "StructuredDocumentation", + "src": "1421:45:21", + "text": "@notice The default minimum verifier cut." + }, + "id": 1833, + "mutability": "constant", + "name": "DEFAULT_MIN_VERIFIER_CUT", + "nameLocation": "1496:24:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "1471:68:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1827, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1471:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 1829, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1528:6:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 1828, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1523:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1523:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1536:3:21", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "1523:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1834, + "nodeType": "StructuredDocumentation", + "src": "1546:45:21", + "text": "@notice The default maximum verifier cut." + }, + "id": 1841, + "mutability": "constant", + "name": "DEFAULT_MAX_VERIFIER_CUT", + "nameLocation": "1621:24:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "1596:75:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1835, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1596:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "arguments": [ + { + "expression": { + "id": 1838, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "1655:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PPMMath_$4539_$", + "typeString": "type(library PPMMath)" + } + }, + "id": 1839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1663:7:21", + "memberName": "MAX_PPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4452, + "src": "1655:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1648:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 1836, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1648:6:21", + "typeDescriptions": {} + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1648:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1842, + "nodeType": "StructuredDocumentation", + "src": "1678:47:21", + "text": "@notice The default minimum thawing period." + }, + "id": 1849, + "mutability": "constant", + "name": "DEFAULT_MIN_THAWING_PERIOD", + "nameLocation": "1755:26:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "1730:70:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1843, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1730:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1789:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1845, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1789:6:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 1844, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1784:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1784:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1797:3:21", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "1784:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1850, + "nodeType": "StructuredDocumentation", + "src": "1807:47:21", + "text": "@notice The default maximum thawing period." + }, + "id": 1857, + "mutability": "constant", + "name": "DEFAULT_MAX_THAWING_PERIOD", + "nameLocation": "1884:26:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "1859:70:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1851, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1859:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1918:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1853, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1918:6:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 1852, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1913:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1913:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1926:3:21", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "1913:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1858, + "nodeType": "StructuredDocumentation", + "src": "1936:49:21", + "text": "@notice The default minimum provision tokens." + }, + "id": 1865, + "mutability": "constant", + "name": "DEFAULT_MIN_PROVISION_TOKENS", + "nameLocation": "2016:28:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "1990:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1859, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1990:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2052:7:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 1860, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2047:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2047:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2061:3:21", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "2047:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1866, + "nodeType": "StructuredDocumentation", + "src": "2071:49:21", + "text": "@notice The default maximum provision tokens." + }, + "id": 1873, + "mutability": "constant", + "name": "DEFAULT_MAX_PROVISION_TOKENS", + "nameLocation": "2151:28:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "2125:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1867, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2187:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2187:7:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 1868, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2182:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2182:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2196:3:21", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2182:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 1874, + "nodeType": "StructuredDocumentation", + "src": "2206:41:21", + "text": "@notice The default delegation ratio." + }, + "id": 1881, + "mutability": "constant", + "name": "DEFAULT_DELEGATION_RATIO", + "nameLocation": "2277:24:21", + "nodeType": "VariableDeclaration", + "scope": 2395, + "src": "2252:68:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1875, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2252:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "expression": { + "arguments": [ + { + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 1877, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2309:6:21", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 1876, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2304:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2317:3:21", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2304:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": { + "id": 1882, + "nodeType": "StructuredDocumentation", + "src": "2327:214:21", + "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": 1888, + "name": "ProvisionTokensRangeSet", + "nameLocation": "2552:23:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 1887, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1884, + "indexed": false, + "mutability": "mutable", + "name": "min", + "nameLocation": "2584:3:21", + "nodeType": "VariableDeclaration", + "scope": 1888, + "src": "2576:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1886, + "indexed": false, + "mutability": "mutable", + "name": "max", + "nameLocation": "2597:3:21", + "nodeType": "VariableDeclaration", + "scope": 1888, + "src": "2589:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2589:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2575:26:21" + }, + "src": "2546:56:21" + }, + { + "anonymous": false, + "documentation": { + "id": 1889, + "nodeType": "StructuredDocumentation", + "src": "2608:109:21", + "text": " @notice Emitted when the delegation ratio is set.\n @param ratio The delegation ratio" + }, + "eventSelector": "472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f", + "id": 1893, + "name": "DelegationRatioSet", + "nameLocation": "2728:18:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 1892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1891, + "indexed": false, + "mutability": "mutable", + "name": "ratio", + "nameLocation": "2754:5:21", + "nodeType": "VariableDeclaration", + "scope": 1893, + "src": "2747:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1890, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "2746:14:21" + }, + "src": "2722:39:21" + }, + { + "anonymous": false, + "documentation": { + "id": 1894, + "nodeType": "StructuredDocumentation", + "src": "2767:210:21", + "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": 1900, + "name": "VerifierCutRangeSet", + "nameLocation": "2988:19:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 1899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1896, + "indexed": false, + "mutability": "mutable", + "name": "min", + "nameLocation": "3015:3:21", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "3008:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1895, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3008:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1898, + "indexed": false, + "mutability": "mutable", + "name": "max", + "nameLocation": "3027:3:21", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "3020:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1897, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3020:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "3007:24:21" + }, + "src": "2982:50:21" + }, + { + "anonymous": false, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "3038:208:21", + "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": 1907, + "name": "ThawingPeriodRangeSet", + "nameLocation": "3257:21:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "indexed": false, + "mutability": "mutable", + "name": "min", + "nameLocation": "3286:3:21", + "nodeType": "VariableDeclaration", + "scope": 1907, + "src": "3279:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1902, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3279:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "indexed": false, + "mutability": "mutable", + "name": "max", + "nameLocation": "3298:3:21", + "nodeType": "VariableDeclaration", + "scope": 1907, + "src": "3291:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1904, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3291:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3278:24:21" + }, + "src": "3251:52:21" + }, + { + "documentation": { + "id": 1908, + "nodeType": "StructuredDocumentation", + "src": "3309:260:21", + "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": 1918, + "name": "ProvisionManagerInvalidValue", + "nameLocation": "3580:28:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1917, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1910, + "mutability": "mutable", + "name": "message", + "nameLocation": "3615:7:21", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "3609:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1909, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3609:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1912, + "mutability": "mutable", + "name": "value", + "nameLocation": "3632:5:21", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "3624:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3624:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1914, + "mutability": "mutable", + "name": "min", + "nameLocation": "3647:3:21", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "3639:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3639:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1916, + "mutability": "mutable", + "name": "max", + "nameLocation": "3660:3:21", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "3652:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1915, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3608:56:21" + }, + "src": "3574:91:21" + }, + { + "documentation": { + "id": 1919, + "nodeType": "StructuredDocumentation", + "src": "3671:169:21", + "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": 1925, + "name": "ProvisionManagerInvalidRange", + "nameLocation": "3851:28:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1921, + "mutability": "mutable", + "name": "min", + "nameLocation": "3888:3:21", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "3880:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3880:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1923, + "mutability": "mutable", + "name": "max", + "nameLocation": "3901:3:21", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "3893:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3893:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3879:26:21" + }, + "src": "3845:61:21" + }, + { + "documentation": { + "id": 1926, + "nodeType": "StructuredDocumentation", + "src": "3912:228:21", + "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": 1932, + "name": "ProvisionManagerNotAuthorized", + "nameLocation": "4151:29:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1928, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4189:15:21", + "nodeType": "VariableDeclaration", + "scope": 1932, + "src": "4181:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4181:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "caller", + "nameLocation": "4214:6:21", + "nodeType": "VariableDeclaration", + "scope": 1932, + "src": "4206:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4206:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4180:41:21" + }, + "src": "4145:77:21" + }, + { + "documentation": { + "id": 1933, + "nodeType": "StructuredDocumentation", + "src": "4228:131:21", + "text": " @notice Thrown when a provision is not found.\n @param serviceProvider The address of the service provider." + }, + "errorSelector": "7b3c09bf", + "id": 1937, + "name": "ProvisionManagerProvisionNotFound", + "nameLocation": "4370:33:21", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4412:15:21", + "nodeType": "VariableDeclaration", + "scope": 1937, + "src": "4404:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4404:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4403:25:21" + }, + "src": "4364:65:21" + }, + { + "body": { + "id": 1962, + "nodeType": "Block", + "src": "4676:203:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1946, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "4736:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1949, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4761:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProvisionManager_$2395", + "typeString": "contract ProvisionManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProvisionManager_$2395", + "typeString": "contract ProvisionManager" + } + ], + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1947, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4753:7:21", + "typeDescriptions": {} + } + }, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4753:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1951, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4768:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4772:6:21", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4768:10:21", + "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": 1943, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "4707:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4707:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 1945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4723:12:21", + "memberName": "isAuthorized", + "nodeType": "MemberAccess", + "referencedDeclaration": 3930, + "src": "4707:28:21", + "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": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4707:72:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 1955, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "4823:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1956, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4840:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4844:6:21", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4840:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1954, + "name": "ProvisionManagerNotAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1932, + "src": "4793:29:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4793:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 1942, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4686:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:175:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1960, + "nodeType": "ExpressionStatement", + "src": "4686:175:21" + }, + { + "id": 1961, + "nodeType": "PlaceholderStatement", + "src": "4871:1:21" + } + ] + }, + "documentation": { + "id": 1938, + "nodeType": "StructuredDocumentation", + "src": "4435:175:21", + "text": " @notice Checks if the caller is authorized to manage the provision of a service provider.\n @param serviceProvider The address of the service provider." + }, + "id": 1963, + "name": "onlyAuthorizedForProvision", + "nameLocation": "4624:26:21", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1940, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4659:15:21", + "nodeType": "VariableDeclaration", + "scope": 1963, + "src": "4651:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1939, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4651:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4650:25:21" + }, + "src": "4615:264:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1987, + "nodeType": "Block", + "src": "5151:198:21", + "statements": [ + { + "assignments": [ + 1972 + ], + "declarations": [ + { + "constant": false, + "id": 1972, + "mutability": "mutable", + "name": "provision", + "nameLocation": "5194:9:21", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "5161:42:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 1971, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1970, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "5161:15:21", + "5177:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "5161:25:21" + }, + "referencedDeclaration": 3962, + "src": "5161:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 1976, + "initialValue": { + "arguments": [ + { + "id": 1974, + "name": "serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1966, + "src": "5220:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1973, + "name": "_getProvision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "5206:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5206:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5161:75:21" + }, + { + "expression": { + "arguments": [ + { + "id": 1978, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1972, + "src": "5268:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + ], + "id": 1977, + "name": "_checkProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2203 + ], + "referencedDeclaration": 2203, + "src": "5246:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3962_memory_ptr_$returns$__$", + "typeString": "function (struct IHorizonStakingTypes.Provision memory) view" + } + }, + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5246:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1980, + "nodeType": "ExpressionStatement", + "src": "5246:32:21" + }, + { + "expression": { + "arguments": [ + { + "id": 1982, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1972, + "src": "5314:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + { + "hexValue": "66616c7365", + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5325:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1981, + "name": "_checkProvisionParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2226, + 2282 + ], + "referencedDeclaration": 2282, + "src": "5288:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3962_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (struct IHorizonStakingTypes.Provision memory,bool) view" + } + }, + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5288:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1985, + "nodeType": "ExpressionStatement", + "src": "5288:43:21" + }, + { + "id": 1986, + "nodeType": "PlaceholderStatement", + "src": "5341:1:21" + } + ] + }, + "documentation": { + "id": 1964, + "nodeType": "StructuredDocumentation", + "src": "4885:200:21", + "text": " @notice Checks if a provision of a service provider is valid according\n to the parameter ranges established.\n @param serviceProvider The address of the service provider." + }, + "id": 1988, + "name": "onlyValidProvision", + "nameLocation": "5099:18:21", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1966, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5126:15:21", + "nodeType": "VariableDeclaration", + "scope": 1988, + "src": "5118:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5118:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5117:25:21" + }, + "src": "5090:259:21", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "5498:52:21", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1994, + "name": "__ProvisionManager_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "5508:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5508:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1996, + "nodeType": "ExpressionStatement", + "src": "5508:35:21" + } + ] + }, + "documentation": { + "id": 1989, + "nodeType": "StructuredDocumentation", + "src": "5355:77:21", + "text": " @notice Initializes the contract and any parent contracts." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1992, + "kind": "modifierInvocation", + "modifierName": { + "id": 1991, + "name": "onlyInitializing", + "nameLocations": [ + "5481:16:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "5481:16:21" + }, + "nodeType": "ModifierInvocation", + "src": "5481:16:21" + } + ], + "name": "__ProvisionManager_init", + "nameLocation": "5446:23:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1990, + "nodeType": "ParameterList", + "parameters": [], + "src": "5469:2:21" + }, + "returnParameters": { + "id": 1993, + "nodeType": "ParameterList", + "parameters": [], + "src": "5498:0:21" + }, + "scope": 2395, + "src": "5437:113:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2023, + "nodeType": "Block", + "src": "5747:326:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2005, + "name": "DEFAULT_MIN_PROVISION_TOKENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "5782:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2006, + "name": "DEFAULT_MAX_PROVISION_TOKENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5812:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2004, + "name": "_setProvisionTokensRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2089, + "src": "5757:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5757:84:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2008, + "nodeType": "ExpressionStatement", + "src": "5757:84:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2010, + "name": "DEFAULT_MIN_VERIFIER_CUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "5872:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2011, + "name": "DEFAULT_MAX_VERIFIER_CUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "5898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2009, + "name": "_setVerifierCutRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "5851:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (uint32,uint32)" + } + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5851:72:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2013, + "nodeType": "ExpressionStatement", + "src": "5851:72:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2015, + "name": "DEFAULT_MIN_THAWING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "5956:26:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2016, + "name": "DEFAULT_MAX_THAWING_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1857, + "src": "5984:26:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2014, + "name": "_setThawingPeriodRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2164, + "src": "5933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint64_$returns$__$", + "typeString": "function (uint64,uint64)" + } + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5933:78:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2018, + "nodeType": "ExpressionStatement", + "src": "5933:78:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2020, + "name": "DEFAULT_DELEGATION_RATIO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1881, + "src": "6041:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2019, + "name": "_setDelegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2057, + "src": "6021:19:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6021:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2022, + "nodeType": "ExpressionStatement", + "src": "6021:45:21" + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "5556:115:21", + "text": " @notice Initializes the contract.\n @dev All parameters set to their entire range as valid." + }, + "id": 2024, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2002, + "kind": "modifierInvocation", + "modifierName": { + "id": 2001, + "name": "onlyInitializing", + "nameLocations": [ + "5730:16:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "5730:16:21" + }, + "nodeType": "ModifierInvocation", + "src": "5730:16:21" + } + ], + "name": "__ProvisionManager_init_unchained", + "nameLocation": "5685:33:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2000, + "nodeType": "ParameterList", + "parameters": [], + "src": "5718:2:21" + }, + "returnParameters": { + "id": 2003, + "nodeType": "ParameterList", + "parameters": [], + "src": "5747:0:21" + }, + "scope": 2395, + "src": "5676:397:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2041, + "nodeType": "Block", + "src": "6440:135:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2031, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "6476:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 2032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6494:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2030, + "name": "_checkProvisionParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2226, + 2282 + ], + "referencedDeclaration": 2226, + "src": "6450:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool) view" + } + }, + "id": 2033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6450:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2034, + "nodeType": "ExpressionStatement", + "src": "6450:49:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2038, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "6551:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2035, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "6509:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6509:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6525:25:21", + "memberName": "acceptProvisionParameters", + "nodeType": "MemberAccess", + "referencedDeclaration": 3751, + "src": "6509:41:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 2039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6509:59:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2040, + "nodeType": "ExpressionStatement", + "src": "6509:59:21" + } + ] + }, + "documentation": { + "id": 2025, + "nodeType": "StructuredDocumentation", + "src": "6079:285:21", + "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 @param _serviceProvider The address of the service provider." + }, + "id": 2042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_acceptProvisionParameters", + "nameLocation": "6378:26:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2027, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "6413:16:21", + "nodeType": "VariableDeclaration", + "scope": 2042, + "src": "6405:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6405:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6404:26:21" + }, + "returnParameters": { + "id": 2029, + "nodeType": "ParameterList", + "parameters": [], + "src": "6440:0:21" + }, + "scope": 2395, + "src": "6369:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2056, + "nodeType": "Block", + "src": "6765:83:21", + "statements": [ + { + "expression": { + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2048, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "6775:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2049, + "name": "_ratio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2045, + "src": "6794:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "6775:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2051, + "nodeType": "ExpressionStatement", + "src": "6775:25:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2053, + "name": "_ratio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2045, + "src": "6834:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2052, + "name": "DelegationRatioSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "6815:18:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6815:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2055, + "nodeType": "EmitStatement", + "src": "6810:31:21" + } + ] + }, + "documentation": { + "id": 2043, + "nodeType": "StructuredDocumentation", + "src": "6602:105:21", + "text": " @notice Sets the delegation ratio.\n @param _ratio The delegation ratio to be set" + }, + "id": 2057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setDelegationRatio", + "nameLocation": "6721:19:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2045, + "mutability": "mutable", + "name": "_ratio", + "nameLocation": "6748:6:21", + "nodeType": "VariableDeclaration", + "scope": 2057, + "src": "6741:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2044, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6741:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "6740:15:21" + }, + "returnParameters": { + "id": 2047, + "nodeType": "ParameterList", + "parameters": [], + "src": "6765:0:21" + }, + "scope": 2395, + "src": "6712:136:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2088, + "nodeType": "Block", + "src": "7139:210:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2066, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "7157:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2067, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2062, + "src": "7165:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7157:12:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2070, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "7200:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2071, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2062, + "src": "7206:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2069, + "name": "ProvisionManagerInvalidRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "7171:28:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7171:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2065, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7149:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2074, + "nodeType": "ExpressionStatement", + "src": "7149:63:21" + }, + { + "expression": { + "id": 2077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2075, + "name": "_minimumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "7222:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2076, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "7248:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7222:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2078, + "nodeType": "ExpressionStatement", + "src": "7222:30:21" + }, + { + "expression": { + "id": 2081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2079, + "name": "_maximumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "7262:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2080, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2062, + "src": "7288:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7262:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2082, + "nodeType": "ExpressionStatement", + "src": "7262:30:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2084, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "7331:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2085, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2062, + "src": "7337:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2083, + "name": "ProvisionTokensRangeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1888, + "src": "7307:23:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7307:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2087, + "nodeType": "EmitStatement", + "src": "7302:40:21" + } + ] + }, + "documentation": { + "id": 2058, + "nodeType": "StructuredDocumentation", + "src": "6854:209:21", + "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": 2089, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setProvisionTokensRange", + "nameLocation": "7077:24:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2060, + "mutability": "mutable", + "name": "_min", + "nameLocation": "7110:4:21", + "nodeType": "VariableDeclaration", + "scope": 2089, + "src": "7102:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7102:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2062, + "mutability": "mutable", + "name": "_max", + "nameLocation": "7124:4:21", + "nodeType": "VariableDeclaration", + "scope": 2089, + "src": "7116:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7116:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7101:28:21" + }, + "returnParameters": { + "id": 2064, + "nodeType": "ParameterList", + "parameters": [], + "src": "7139:0:21" + }, + "scope": 2395, + "src": "7068:281:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2131, + "nodeType": "Block", + "src": "7630:283:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2098, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "7648:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2099, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7656:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "7648:12:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2102, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "7691:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2103, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7697:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2101, + "name": "ProvisionManagerInvalidRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "7662:28:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7662:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2097, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7640:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7640:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2106, + "nodeType": "ExpressionStatement", + "src": "7640:63:21" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2110, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7740:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 2108, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "7721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PPMMath_$4539_$", + "typeString": "type(library PPMMath)" + } + }, + "id": 2109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7729:10:21", + "memberName": "isValidPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4538, + "src": "7721:18:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 2111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7721:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2113, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "7776:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2114, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2112, + "name": "ProvisionManagerInvalidRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "7747:28:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7747:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2107, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7713:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7713:75:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2117, + "nodeType": "ExpressionStatement", + "src": "7713:75:21" + }, + { + "expression": { + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2118, + "name": "_minimumVerifierCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2413, + "src": "7798:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2119, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "7820:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "7798:26:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2121, + "nodeType": "ExpressionStatement", + "src": "7798:26:21" + }, + { + "expression": { + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2122, + "name": "_maximumVerifierCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "7834:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2123, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7856:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "7834:26:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2125, + "nodeType": "ExpressionStatement", + "src": "7834:26:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2127, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "7895:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2128, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2094, + "src": "7901:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2126, + "name": "VerifierCutRangeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1900, + "src": "7875:19:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (uint32,uint32)" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7875:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "EmitStatement", + "src": "7870:36:21" + } + ] + }, + "documentation": { + "id": 2090, + "nodeType": "StructuredDocumentation", + "src": "7355:205:21", + "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": 2132, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setVerifierCutRange", + "nameLocation": "7574:20:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2092, + "mutability": "mutable", + "name": "_min", + "nameLocation": "7602:4:21", + "nodeType": "VariableDeclaration", + "scope": 2132, + "src": "7595:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2091, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7595:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2094, + "mutability": "mutable", + "name": "_max", + "nameLocation": "7615:4:21", + "nodeType": "VariableDeclaration", + "scope": 2132, + "src": "7608:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2093, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7608:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "7594:26:21" + }, + "returnParameters": { + "id": 2096, + "nodeType": "ParameterList", + "parameters": [], + "src": "7630:0:21" + }, + "scope": 2395, + "src": "7565:348:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2163, + "nodeType": "Block", + "src": "8194:204:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2141, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2135, + "src": "8212:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2142, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "8220:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8212:12:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2145, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2135, + "src": "8255:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2146, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "8261:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2144, + "name": "ProvisionManagerInvalidRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "8226:28:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8226:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8204:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2149, + "nodeType": "ExpressionStatement", + "src": "8204:63:21" + }, + { + "expression": { + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2150, + "name": "_minimumThawingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "8277:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2151, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2135, + "src": "8301:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8277:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2153, + "nodeType": "ExpressionStatement", + "src": "8277:28:21" + }, + { + "expression": { + "id": 2156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2154, + "name": "_maximumThawingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2410, + "src": "8315:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2155, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "8339:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8315:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2157, + "nodeType": "ExpressionStatement", + "src": "8315:28:21" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2159, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2135, + "src": "8380:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2160, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "8386:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2158, + "name": "ThawingPeriodRangeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1907, + "src": "8358:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", + "typeString": "function (uint64,uint64)" + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8358:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2162, + "nodeType": "EmitStatement", + "src": "8353:38:21" + } + ] + }, + "documentation": { + "id": 2133, + "nodeType": "StructuredDocumentation", + "src": "7919:203:21", + "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": 2164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setThawingPeriodRange", + "nameLocation": "8136:22:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_min", + "nameLocation": "8166:4:21", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "8159:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2134, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8159:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2137, + "mutability": "mutable", + "name": "_max", + "nameLocation": "8179:4:21", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "8172:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2136, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8172:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8158:26:21" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [], + "src": "8194:0:21" + }, + "scope": 2395, + "src": "8127:271:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2183, + "nodeType": "Block", + "src": "8684:135:21", + "statements": [ + { + "assignments": [ + 2174 + ], + "declarations": [ + { + "constant": false, + "id": 2174, + "mutability": "mutable", + "name": "provision", + "nameLocation": "8727:9:21", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "8694:42:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2173, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2172, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "8694:15:21", + "8710:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "8694:25:21" + }, + "referencedDeclaration": 3962, + "src": "8694:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 2178, + "initialValue": { + "arguments": [ + { + "id": 2176, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2167, + "src": "8753:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2175, + "name": "_getProvision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "8739:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8739:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8694:76:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2180, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "8802:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + ], + "id": 2179, + "name": "_checkProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2203 + ], + "referencedDeclaration": 2203, + "src": "8780:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3962_memory_ptr_$returns$__$", + "typeString": "function (struct IHorizonStakingTypes.Provision memory) view" + } + }, + "id": 2181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8780:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2182, + "nodeType": "ExpressionStatement", + "src": "8780:32:21" + } + ] + }, + "documentation": { + "id": 2165, + "nodeType": "StructuredDocumentation", + "src": "8425:175:21", + "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": 2184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProvisionTokens", + "nameLocation": "8614:21:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2167, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "8644:16:21", + "nodeType": "VariableDeclaration", + "scope": 2184, + "src": "8636:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8636:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8635:26:21" + }, + "returnParameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "8684:0:21" + }, + "scope": 2395, + "src": "8605:214:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2202, + "nodeType": "Block", + "src": "9150:199:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2192, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "9192:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9203:6:21", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "9192:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 2194, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "9212:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9223:13:21", + "memberName": "tokensThawing", + "nodeType": "MemberAccess", + "referencedDeclaration": 3945, + "src": "9212:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9192:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2197, + "name": "_minimumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "9250:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2198, + "name": "_maximumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "9287:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "746f6b656e73", + "id": 2199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9324:8:21", + "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": 2191, + "name": "_checkValueInRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "9160:18:21", + "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": 2200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9160:182:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2201, + "nodeType": "ExpressionStatement", + "src": "9160:182:21" + } + ] + }, + "documentation": { + "id": 2185, + "nodeType": "StructuredDocumentation", + "src": "8825:222:21", + "text": " @notice Checks if the provision tokens of a service provider are within the valid range.\n Note that thawing tokens are not considered in this check.\n @param _provision The provision to check." + }, + "id": 2203, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProvisionTokens", + "nameLocation": "9061:21:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "_provision", + "nameLocation": "9116:10:21", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "9083:43:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2187, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2186, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "9083:15:21", + "9099:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "9083:25:21" + }, + "referencedDeclaration": 3962, + "src": "9083:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "src": "9082:45:21" + }, + "returnParameters": { + "id": 2190, + "nodeType": "ParameterList", + "parameters": [], + "src": "9150:0:21" + }, + "scope": 2395, + "src": "9052:297:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2225, + "nodeType": "Block", + "src": "9720:154:21", + "statements": [ + { + "assignments": [ + 2215 + ], + "declarations": [ + { + "constant": false, + "id": 2215, + "mutability": "mutable", + "name": "provision", + "nameLocation": "9763:9:21", + "nodeType": "VariableDeclaration", + "scope": 2225, + "src": "9730:42:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2213, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "9730:15:21", + "9746:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "9730:25:21" + }, + "referencedDeclaration": 3962, + "src": "9730:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 2219, + "initialValue": { + "arguments": [ + { + "id": 2217, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2206, + "src": "9789:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2216, + "name": "_getProvision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "9775:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9775:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9730:76:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2221, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2215, + "src": "9842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + { + "id": 2222, + "name": "_checkPending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2208, + "src": "9853:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2220, + "name": "_checkProvisionParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2226, + 2282 + ], + "referencedDeclaration": 2282, + "src": "9816:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3962_memory_ptr_$_t_bool_$returns$__$", + "typeString": "function (struct IHorizonStakingTypes.Provision memory,bool) view" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9816:51:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "9816:51:21" + } + ] + }, + "documentation": { + "id": 2204, + "nodeType": "StructuredDocumentation", + "src": "9355:257:21", + "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": 2226, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProvisionParameters", + "nameLocation": "9626:25:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2206, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "9660:16:21", + "nodeType": "VariableDeclaration", + "scope": 2226, + "src": "9652:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9652:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2208, + "mutability": "mutable", + "name": "_checkPending", + "nameLocation": "9683:13:21", + "nodeType": "VariableDeclaration", + "scope": 2226, + "src": "9678:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2207, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9678:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9651:46:21" + }, + "returnParameters": { + "id": 2210, + "nodeType": "ParameterList", + "parameters": [], + "src": "9720:0:21" + }, + "scope": 2395, + "src": "9617:257:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2281, + "nodeType": "Block", + "src": "10295:611:21", + "statements": [ + { + "assignments": [ + 2236, + 2238 + ], + "declarations": [ + { + "constant": false, + "id": 2236, + "mutability": "mutable", + "name": "thawingPeriodMin", + "nameLocation": "10313:16:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10306:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2235, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10306:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "thawingPeriodMax", + "nameLocation": "10338:16:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10331:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2237, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 2241, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2239, + "name": "_getThawingPeriodRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "10358:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$", + "typeString": "function () view returns (uint64,uint64)" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10358:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10305:77:21" + }, + { + "assignments": [ + 2243 + ], + "declarations": [ + { + "constant": false, + "id": 2243, + "mutability": "mutable", + "name": "thawingPeriodToCheck", + "nameLocation": "10399:20:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10392:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2242, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10392:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 2250, + "initialValue": { + "condition": { + "id": 2244, + "name": "_checkPending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2232, + "src": "10422:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "expression": { + "id": 2247, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "10472:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10483:13:21", + "memberName": "thawingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 3951, + "src": "10472:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10422:74:21", + "trueExpression": { + "expression": { + "id": 2245, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "10438:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10449:20:21", + "memberName": "thawingPeriodPending", + "nodeType": "MemberAccess", + "referencedDeclaration": 3957, + "src": "10438:31:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10392:104:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2252, + "name": "thawingPeriodToCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "10525:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2253, + "name": "thawingPeriodMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2236, + "src": "10547:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2254, + "name": "thawingPeriodMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "10565:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "hexValue": "74686177696e67506572696f64", + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10583:15:21", + "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": 2251, + "name": "_checkValueInRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "10506:18:21", + "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": 2256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10506:93:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2257, + "nodeType": "ExpressionStatement", + "src": "10506:93:21" + }, + { + "assignments": [ + 2259, + 2261 + ], + "declarations": [ + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "verifierCutMin", + "nameLocation": "10618:14:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10611:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2258, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10611:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "verifierCutMax", + "nameLocation": "10641:14:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10634:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2260, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10634:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2264, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2262, + "name": "_getVerifierCutRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "10659:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$_t_uint32_$", + "typeString": "function () view returns (uint32,uint32)" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10659:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10610:71:21" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "maxVerifierCutToCheck", + "nameLocation": "10698:21:21", + "nodeType": "VariableDeclaration", + "scope": 2281, + "src": "10691:28:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2265, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10691:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2273, + "initialValue": { + "condition": { + "id": 2267, + "name": "_checkPending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2232, + "src": "10722:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "expression": { + "id": 2270, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "10773:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10784:14:21", + "memberName": "maxVerifierCut", + "nodeType": "MemberAccess", + "referencedDeclaration": 3949, + "src": "10773:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10722:76:21", + "trueExpression": { + "expression": { + "id": 2268, + "name": "_provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "10738:10:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10749:21:21", + "memberName": "maxVerifierCutPending", + "nodeType": "MemberAccess", + "referencedDeclaration": 3955, + "src": "10738:32:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10691:107:21" + }, + { + "expression": { + "arguments": [ + { + "id": 2275, + "name": "maxVerifierCutToCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "10827:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2276, + "name": "verifierCutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "10850:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2277, + "name": "verifierCutMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "10866:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "hexValue": "6d61785665726966696572437574", + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10882:16:21", + "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": 2274, + "name": "_checkValueInRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "10808:18:21", + "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": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10808:91:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2280, + "nodeType": "ExpressionStatement", + "src": "10808:91:21" + } + ] + }, + "documentation": { + "id": 2227, + "nodeType": "StructuredDocumentation", + "src": "9880:266:21", + "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": 2282, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProvisionParameters", + "nameLocation": "10160:25:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2230, + "mutability": "mutable", + "name": "_provision", + "nameLocation": "10228:10:21", + "nodeType": "VariableDeclaration", + "scope": 2282, + "src": "10195:43:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2229, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2228, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "10195:15:21", + "10211:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "10195:25:21" + }, + "referencedDeclaration": 3962, + "src": "10195:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2232, + "mutability": "mutable", + "name": "_checkPending", + "nameLocation": "10253:13:21", + "nodeType": "VariableDeclaration", + "scope": 2282, + "src": "10248:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2231, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10248:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10185:87:21" + }, + "returnParameters": { + "id": 2234, + "nodeType": "ParameterList", + "parameters": [], + "src": "10295:0:21" + }, + "scope": 2395, + "src": "10151:755:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2290, + "nodeType": "Block", + "src": "11090:40:21", + "statements": [ + { + "expression": { + "id": 2288, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "11107:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2287, + "id": 2289, + "nodeType": "Return", + "src": "11100:23:21" + } + ] + }, + "documentation": { + "id": 2283, + "nodeType": "StructuredDocumentation", + "src": "10934:89:21", + "text": " @notice Gets the delegation ratio.\n @return The delegation ratio" + }, + "id": 2291, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getDelegationRatio", + "nameLocation": "11037:19:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2284, + "nodeType": "ParameterList", + "parameters": [], + "src": "11056:2:21" + }, + "returnParameters": { + "id": 2287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2291, + "src": "11082:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2285, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11082:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "11081:8:21" + }, + "scope": 2395, + "src": "11028:102:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2303, + "nodeType": "Block", + "src": "11427:74:21", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2299, + "name": "_minimumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "11445:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2300, + "name": "_maximumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "11470:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2301, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11444:50:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2298, + "id": 2302, + "nodeType": "Return", + "src": "11437:57:21" + } + ] + }, + "documentation": { + "id": 2292, + "nodeType": "StructuredDocumentation", + "src": "11136:201:21", + "text": " @notice Gets the range for the provision tokens.\n @return The minimum allowed value for the provision tokens.\n @return The maximum allowed value for the provision tokens." + }, + "id": 2304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getProvisionTokensRange", + "nameLocation": "11351:24:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2293, + "nodeType": "ParameterList", + "parameters": [], + "src": "11375:2:21" + }, + "returnParameters": { + "id": 2298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2304, + "src": "11409:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11409:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2297, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2304, + "src": "11418:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11418:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11408:18:21" + }, + "scope": 2395, + "src": "11342:159:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2316, + "nodeType": "Block", + "src": "11789:70:21", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2312, + "name": "_minimumThawingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "11807:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 2313, + "name": "_maximumThawingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2410, + "src": "11830:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "id": 2314, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11806:46:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64)" + } + }, + "functionReturnParameters": 2311, + "id": 2315, + "nodeType": "Return", + "src": "11799:53:21" + } + ] + }, + "documentation": { + "id": 2305, + "nodeType": "StructuredDocumentation", + "src": "11507:196:21", + "text": " @notice Gets the range for the thawing period.\n @return The minimum allowed value for the thawing period.\n @return The maximum allowed value for the thawing period." + }, + "id": 2317, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getThawingPeriodRange", + "nameLocation": "11717:22:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "11739:2:21" + }, + "returnParameters": { + "id": 2311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2308, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "11773:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2307, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11773:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "11781:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2309, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11781:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "11772:16:21" + }, + "scope": 2395, + "src": "11708:151:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2329, + "nodeType": "Block", + "src": "12146:66:21", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2325, + "name": "_minimumVerifierCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2413, + "src": "12164:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 2326, + "name": "_maximumVerifierCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "12185:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12163:42:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 2324, + "id": 2328, + "nodeType": "Return", + "src": "12156:49:21" + } + ] + }, + "documentation": { + "id": 2318, + "nodeType": "StructuredDocumentation", + "src": "11865:197:21", + "text": " @notice Gets the range for the verifier cut.\n @return The minimum allowed value for the max verifier cut.\n @return The maximum allowed value for the max verifier cut." + }, + "id": 2330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getVerifierCutRange", + "nameLocation": "12076:20:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2319, + "nodeType": "ParameterList", + "parameters": [], + "src": "12096:2:21" + }, + "returnParameters": { + "id": 2324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2321, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2330, + "src": "12130:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2320, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12130:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2323, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2330, + "src": "12138:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2322, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12138:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "12129:16:21" + }, + "scope": 2395, + "src": "12067:145:21", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2366, + "nodeType": "Block", + "src": "12567:245:21", + "statements": [ + { + "assignments": [ + 2343 + ], + "declarations": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "provision", + "nameLocation": "12610:9:21", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "12577:42:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2342, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2341, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "12577:15:21", + "12593:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "12577:25:21" + }, + "referencedDeclaration": 3962, + "src": "12577:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 2353, + "initialValue": { + "arguments": [ + { + "id": 2347, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "12651:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 2350, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "12677:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProvisionManager_$2395", + "typeString": "contract ProvisionManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProvisionManager_$2395", + "typeString": "contract ProvisionManager" + } + ], + "id": 2349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12669:7:21", + "typeDescriptions": {} + } + }, + "id": 2351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12669:13:21", + "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": 2344, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "12622:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12622:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 2346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12638:12:21", + "memberName": "getProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 2950, + "src": "12622:28:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12622:61:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12577:106:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2355, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "12701:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 2356, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12711:9:21", + "memberName": "createdAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 3953, + "src": "12701:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12724:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12701:24:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2360, + "name": "_serviceProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "12761:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2359, + "name": "ProvisionManagerProvisionNotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1937, + "src": "12727:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 2361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12727:51:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2354, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12693:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12693:86:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2363, + "nodeType": "ExpressionStatement", + "src": "12693:86:21" + }, + { + "expression": { + "id": 2364, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "12796:9:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "functionReturnParameters": 2338, + "id": 2365, + "nodeType": "Return", + "src": "12789:16:21" + } + ] + }, + "documentation": { + "id": 2331, + "nodeType": "StructuredDocumentation", + "src": "12218:238:21", + "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.\n @return The provision." + }, + "id": 2367, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getProvision", + "nameLocation": "12470:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2333, + "mutability": "mutable", + "name": "_serviceProvider", + "nameLocation": "12492:16:21", + "nodeType": "VariableDeclaration", + "scope": 2367, + "src": "12484:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12484:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12483:26:21" + }, + "returnParameters": { + "id": 2338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2337, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2367, + "src": "12533:32:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2336, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2335, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "12533:15:21", + "12549:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "12533:25:21" + }, + "referencedDeclaration": 3962, + "src": "12533:25:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "src": "12532:34:21" + }, + "scope": 2395, + "src": "12461:351:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2393, + "nodeType": "Block", + "src": "13228:120:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2382, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2372, + "src": "13263:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2383, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "13269:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2380, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2370, + "src": "13246:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13253:9:21", + "memberName": "isInRange", + "nodeType": "MemberAccess", + "referencedDeclaration": 4563, + "src": "13246:16:21", + "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": 2384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13246:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 2386, + "name": "_revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2376, + "src": "13305:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2387, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2370, + "src": "13321:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2388, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2372, + "src": "13329:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2389, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "13335:4:21", + "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": 2385, + "name": "ProvisionManagerInvalidValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1918, + "src": "13276:28:21", + "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": 2390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13276:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 2379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 2391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13238:103:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2392, + "nodeType": "ExpressionStatement", + "src": "13238:103:21" + } + ] + }, + "documentation": { + "id": 2368, + "nodeType": "StructuredDocumentation", + "src": "12818:291:21", + "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": 2394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkValueInRange", + "nameLocation": "13123:18:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2370, + "mutability": "mutable", + "name": "_value", + "nameLocation": "13150:6:21", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "13142:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13142:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2372, + "mutability": "mutable", + "name": "_min", + "nameLocation": "13166:4:21", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "13158:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2374, + "mutability": "mutable", + "name": "_max", + "nameLocation": "13180:4:21", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "13172:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13172:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2376, + "mutability": "mutable", + "name": "_revertMessage", + "nameLocation": "13199:14:21", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "13186:27:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2375, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13186:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13141:73:21" + }, + "returnParameters": { + "id": 2378, + "nodeType": "ParameterList", + "parameters": [], + "src": "13228:0:21" + }, + "scope": 2395, + "src": "13114:234:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2396, + "src": "1286:12064:21", + "usedErrors": [ + 1918, + 1925, + 1932, + 1937, + 4655, + 5140, + 5143 + ], + "usedEvents": [ + 1888, + 1893, + 1900, + 1907, + 4650, + 5148 + ] + } + ], + "src": "45:13306:21" + }, + "id": 21 + }, + "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol", + "exportedSymbols": { + "ProvisionManagerV1Storage": [ + 2425 + ] + }, + "id": 2426, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2397, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:22" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "ProvisionManagerV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2398, + "nodeType": "StructuredDocumentation", + "src": "70:216:22", + "text": " @title Storage layout for the {ProvisionManager} helper 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": 2425, + "linearizedBaseContracts": [ + 2425 + ], + "name": "ProvisionManagerV1Storage", + "nameLocation": "305:25:22", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 2399, + "nodeType": "StructuredDocumentation", + "src": "337:93:22", + "text": "@notice The minimum amount of tokens required to register a provision in the data service" + }, + "id": 2401, + "mutability": "mutable", + "name": "_minimumProvisionTokens", + "nameLocation": "452:23:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "435:40:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2402, + "nodeType": "StructuredDocumentation", + "src": "482:92:22", + "text": "@notice The maximum amount of tokens allowed to register a provision in the data service" + }, + "id": 2404, + "mutability": "mutable", + "name": "_maximumProvisionTokens", + "nameLocation": "596:23:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "579:40:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "579:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2405, + "nodeType": "StructuredDocumentation", + "src": "626:91:22", + "text": "@notice The minimum thawing period required to register a provision in the data service" + }, + "id": 2407, + "mutability": "mutable", + "name": "_minimumThawingPeriod", + "nameLocation": "738:21:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "722:37:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2406, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "722:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2408, + "nodeType": "StructuredDocumentation", + "src": "766:90:22", + "text": "@notice The maximum thawing period allowed to register a provision in the data service" + }, + "id": 2410, + "mutability": "mutable", + "name": "_maximumThawingPeriod", + "nameLocation": "877:21:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "861:37:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2409, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "861:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2411, + "nodeType": "StructuredDocumentation", + "src": "905:98:22", + "text": "@notice The minimum verifier cut required to register a provision in the data service (in PPM)" + }, + "id": 2413, + "mutability": "mutable", + "name": "_minimumVerifierCut", + "nameLocation": "1024:19:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "1008:35:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2412, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1008:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2414, + "nodeType": "StructuredDocumentation", + "src": "1050:97:22", + "text": "@notice The maximum verifier cut allowed to register a provision in the data service (in PPM)" + }, + "id": 2416, + "mutability": "mutable", + "name": "_maximumVerifierCut", + "nameLocation": "1168:19:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "1152:35:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2415, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1152:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2417, + "nodeType": "StructuredDocumentation", + "src": "1194:146:22", + "text": "@notice How much delegation the service provider can effectively use\n @dev Max calculated as service provider's stake * delegationRatio" + }, + "id": 2419, + "mutability": "mutable", + "name": "_delegationRatio", + "nameLocation": "1361:16:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "1345:32:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2418, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1345:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 2420, + "nodeType": "StructuredDocumentation", + "src": "1384:158:22", + "text": "@dev Gap to allow adding variables in future upgrades\n Note that this contract is not upgradeable but might be inherited by an upgradeable contract" + }, + "id": 2424, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1567:5:22", + "nodeType": "VariableDeclaration", + "scope": 2425, + "src": "1547:25:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 2421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2423, + "length": { + "hexValue": "3530", + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1555:2:22", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1547:11:22", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 2426, + "src": "287:1288:22", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:1531:22" + }, + "id": 22 + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ] + }, + "id": 2490, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2427, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:23" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IGraphPayments", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2428, + "nodeType": "StructuredDocumentation", + "src": "70:404:23", + "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.\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": false, + "id": 2489, + "linearizedBaseContracts": [ + 2489 + ], + "name": "IGraphPayments", + "nameLocation": "485:14:23", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IGraphPayments.PaymentTypes", + "documentation": { + "id": 2429, + "nodeType": "StructuredDocumentation", + "src": "506:100:23", + "text": " @notice Types of payments that are supported by the payments protocol\n @dev" + }, + "id": 2433, + "members": [ + { + "id": 2430, + "name": "QueryFee", + "nameLocation": "639:8:23", + "nodeType": "EnumValue", + "src": "639:8:23" + }, + { + "id": 2431, + "name": "IndexingFee", + "nameLocation": "657:11:23", + "nodeType": "EnumValue", + "src": "657:11:23" + }, + { + "id": 2432, + "name": "IndexingRewards", + "nameLocation": "678:15:23", + "nodeType": "EnumValue", + "src": "678:15:23" + } + ], + "name": "PaymentTypes", + "nameLocation": "616:12:23", + "nodeType": "EnumDefinition", + "src": "611:88:23" + }, + { + "anonymous": false, + "documentation": { + "id": 2434, + "nodeType": "StructuredDocumentation", + "src": "705:715:23", + "text": " @notice Emitted when a payment is collected\n @param paymentType The type of payment as defined in {IGraphPayments}\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 tokens The total amount of tokens being collected\n @param tokensProtocol Amount of tokens charged as protocol tax\n @param tokensDataService Amount of tokens for the data service\n @param tokensDelegationPool Amount of tokens for delegators\n @param tokensReceiver Amount of tokens for the receiver\n @param receiverDestination The address where the receiver's payment cut is sent." + }, + "eventSelector": "b1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f", + "id": 2457, + "name": "GraphPaymentCollected", + "nameLocation": "1431:21:23", + "nodeType": "EventDefinition", + "parameters": { + "id": 2456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2437, + "indexed": true, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "1483:11:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1462:32:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2436, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2435, + "name": "PaymentTypes", + "nameLocations": [ + "1462:12:23" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "1462:12:23" + }, + "referencedDeclaration": 2433, + "src": "1462:12:23", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "1520:5:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1504:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1504:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2441, + "indexed": false, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1543:8:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1535:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1535:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2443, + "indexed": true, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "1577:11:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1561:27:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1561:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2445, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1606:6:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1598:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1598:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2447, + "indexed": false, + "mutability": "mutable", + "name": "tokensProtocol", + "nameLocation": "1630:14:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1622:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2449, + "indexed": false, + "mutability": "mutable", + "name": "tokensDataService", + "nameLocation": "1662:17:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1654:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2448, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1654:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2451, + "indexed": false, + "mutability": "mutable", + "name": "tokensDelegationPool", + "nameLocation": "1697:20:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1689:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1689:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2453, + "indexed": false, + "mutability": "mutable", + "name": "tokensReceiver", + "nameLocation": "1735:14:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1727:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1727:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2455, + "indexed": false, + "mutability": "mutable", + "name": "receiverDestination", + "nameLocation": "1767:19:23", + "nodeType": "VariableDeclaration", + "scope": 2457, + "src": "1759:27:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1759:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1452:340:23" + }, + "src": "1425:368:23" + }, + { + "documentation": { + "id": 2458, + "nodeType": "StructuredDocumentation", + "src": "1799:132:23", + "text": " @notice Thrown when the protocol payment cut is invalid\n @param protocolPaymentCut The protocol payment cut" + }, + "errorSelector": "d3097bcb", + "id": 2462, + "name": "GraphPaymentsInvalidProtocolPaymentCut", + "nameLocation": "1942:38:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2460, + "mutability": "mutable", + "name": "protocolPaymentCut", + "nameLocation": "1989:18:23", + "nodeType": "VariableDeclaration", + "scope": 2462, + "src": "1981:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1981:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1980:28:23" + }, + "src": "1936:73:23" + }, + { + "documentation": { + "id": 2463, + "nodeType": "StructuredDocumentation", + "src": "2015:113:23", + "text": " @notice Thrown when trying to use a cut that is not expressed in PPM\n @param cut The cut" + }, + "errorSelector": "e6dd8b94", + "id": 2467, + "name": "GraphPaymentsInvalidCut", + "nameLocation": "2139:23:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2465, + "mutability": "mutable", + "name": "cut", + "nameLocation": "2171:3:23", + "nodeType": "VariableDeclaration", + "scope": 2467, + "src": "2163:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2163:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2162:13:23" + }, + "src": "2133:43:23" + }, + { + "documentation": { + "id": 2468, + "nodeType": "StructuredDocumentation", + "src": "2182:50:23", + "text": " @notice Initialize the contract" + }, + "functionSelector": "8129fc1c", + "id": 2471, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2246:10:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2469, + "nodeType": "ParameterList", + "parameters": [], + "src": "2256:2:23" + }, + "returnParameters": { + "id": 2470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2267:0:23" + }, + "scope": 2489, + "src": "2237:31:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2472, + "nodeType": "StructuredDocumentation", + "src": "2274:849:23", + "text": " @notice Collects funds from a payer.\n It will pay cuts to all relevant parties and forward the rest to the receiver destination address. If the\n destination address is zero the funds are automatically staked to the receiver. Note that the receiver \n destination address can be set to the receiver address to collect funds on the receiver without re-staking.\n Note that the collected amount can be zero.\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 dataServiceCut The data service cut in PPM\n @param receiverDestination The address where the receiver's payment cut is sent." + }, + "functionSelector": "81cd11a0", + "id": 2488, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "3137:7:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "3167:11:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3154:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2474, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2473, + "name": "PaymentTypes", + "nameLocations": [ + "3154:12:23" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "3154:12:23" + }, + "referencedDeclaration": 2433, + "src": "3154:12:23", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2477, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3196:8:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3188:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3188:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2479, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3222:6:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3214:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3214:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2481, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "3246:11:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3238:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3238:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2483, + "mutability": "mutable", + "name": "dataServiceCut", + "nameLocation": "3275:14:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3267:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3267:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "receiverDestination", + "nameLocation": "3307:19:23", + "nodeType": "VariableDeclaration", + "scope": 2488, + "src": "3299:27:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3299:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3144:188:23" + }, + "returnParameters": { + "id": 2487, + "nodeType": "ParameterList", + "parameters": [], + "src": "3341:0:23" + }, + "scope": 2489, + "src": "3128:214:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2490, + "src": "475:2869:23", + "usedErrors": [ + 2462, + 2467 + ], + "usedEvents": [ + 2457 + ] + } + ], + "src": "45:3300:23" + }, + "id": 23 + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol", + "exportedSymbols": { + "IGraphProxyAdmin": [ + 2493 + ] + }, + "id": 2494, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2491, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:24" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IGraphProxyAdmin", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2492, + "nodeType": "StructuredDocumentation", + "src": "71:282:24", + "text": " @title IGraphProxyAdmin\n @dev Empty interface to allow the GraphProxyAdmin contract to be used\n in the GraphDirectory 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": 2493, + "linearizedBaseContracts": [ + 2493 + ], + "name": "IGraphProxyAdmin", + "nameLocation": "364:16:24", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 2494, + "src": "354:29:24", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:338:24" + }, + "id": 24 + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ], + "IGraphTallyCollector": [ + 2605 + ], + "IPaymentsCollector": [ + 2658 + ] + }, + "id": 2606, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2495, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:25" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol", + "file": "./IPaymentsCollector.sol", + "id": 2497, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2606, + "sourceUnit": 2659, + "src": "70:62:25", + "symbolAliases": [ + { + "foreign": { + "id": 2496, + "name": "IPaymentsCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2658, + "src": "79:18:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "./IGraphPayments.sol", + "id": 2499, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2606, + "sourceUnit": 2490, + "src": "133:54:25", + "symbolAliases": [ + { + "foreign": { + "id": 2498, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "142:14:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2501, + "name": "IPaymentsCollector", + "nameLocations": [ + "681:18:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2658, + "src": "681:18:25" + }, + "id": 2502, + "nodeType": "InheritanceSpecifier", + "src": "681:18:25" + } + ], + "canonicalName": "IGraphTallyCollector", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2500, + "nodeType": "StructuredDocumentation", + "src": "189:457:25", + "text": " @title Interface for the {GraphTallyCollector} 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 GraphTally RAV (Receipt Aggregate Voucher).\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": false, + "id": 2605, + "linearizedBaseContracts": [ + 2605, + 2658 + ], + "name": "IGraphTallyCollector", + "nameLocation": "657:20:25", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IGraphTallyCollector.ReceiptAggregateVoucher", + "documentation": { + "id": 2503, + "nodeType": "StructuredDocumentation", + "src": "706:831:25", + "text": " @notice The Receipt Aggregate Voucher (RAV) struct\n @param collectionId The ID of the collection \"bucket\" the RAV belongs to. Note that multiple RAVs can be collected for the same collection id.\n @param payer The address of the payer the RAV was issued by\n @param serviceProvider The address of the service provider the RAV was issued to\n @param dataService The address of the data service the RAV was issued to\n @param timestampNs The RAV timestamp, indicating the latest GraphTally Receipt in the RAV\n @param valueAggregate The total amount owed to the service provider since the beginning of the payer-service provider relationship, including all debt that is already paid for.\n @param metadata Arbitrary metadata to extend functionality if a data service requires it" + }, + "id": 2518, + "members": [ + { + "constant": false, + "id": 2505, + "mutability": "mutable", + "name": "collectionId", + "nameLocation": "1591:12:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1583:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2504, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1583:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "payer", + "nameLocation": "1621:5:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1613:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1613:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2509, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1644:15:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1636:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1636:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2511, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "1677:11:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1669:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1669:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "timestampNs", + "nameLocation": "1705:11:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1698:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2512, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1698:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2515, + "mutability": "mutable", + "name": "valueAggregate", + "nameLocation": "1734:14:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1726:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 2514, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1726:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "metadata", + "nameLocation": "1764:8:25", + "nodeType": "VariableDeclaration", + "scope": 2518, + "src": "1758:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1758:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "ReceiptAggregateVoucher", + "nameLocation": "1549:23:25", + "nodeType": "StructDefinition", + "scope": 2605, + "src": "1542:237:25", + "visibility": "public" + }, + { + "canonicalName": "IGraphTallyCollector.SignedRAV", + "documentation": { + "id": 2519, + "nodeType": "StructuredDocumentation", + "src": "1785:191:25", + "text": " @notice A struct representing a signed RAV\n @param rav The RAV\n @param signature The signature of the RAV - 65 bytes: r (32 Bytes) || s (32 Bytes) || v (1 Byte)" + }, + "id": 2525, + "members": [ + { + "constant": false, + "id": 2522, + "mutability": "mutable", + "name": "rav", + "nameLocation": "2032:3:25", + "nodeType": "VariableDeclaration", + "scope": 2525, + "src": "2008:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_storage_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher" + }, + "typeName": { + "id": 2521, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2520, + "name": "ReceiptAggregateVoucher", + "nameLocations": [ + "2008:23:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2518, + "src": "2008:23:25" + }, + "referencedDeclaration": 2518, + "src": "2008:23:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_storage_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "signature", + "nameLocation": "2051:9:25", + "nodeType": "VariableDeclaration", + "scope": 2525, + "src": "2045:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2523, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2045:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "SignedRAV", + "nameLocation": "1988:9:25", + "nodeType": "StructDefinition", + "scope": 2605, + "src": "1981:86:25", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 2526, + "nodeType": "StructuredDocumentation", + "src": "2073:525:25", + "text": " @notice Emitted when a RAV is collected\n @param collectionId The ID of the collection \"bucket\" the RAV belongs to.\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": "3943fc3b19ec289c87b57de7a8bf1448d81ced03d1806144ecaca4ba9e976056", + "id": 2544, + "name": "RAVCollected", + "nameLocation": "2609:12:25", + "nodeType": "EventDefinition", + "parameters": { + "id": 2543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2528, + "indexed": true, + "mutability": "mutable", + "name": "collectionId", + "nameLocation": "2647:12:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2631:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2527, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2631:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2530, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "2685:5:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2669:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2669:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "indexed": false, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2708:15:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2700:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2700:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2534, + "indexed": true, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "2749:11:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2733:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2733:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "indexed": false, + "mutability": "mutable", + "name": "timestampNs", + "nameLocation": "2777:11:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2770:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2535, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2770:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "indexed": false, + "mutability": "mutable", + "name": "valueAggregate", + "nameLocation": "2806:14:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2798:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 2537, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "2798:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "indexed": false, + "mutability": "mutable", + "name": "metadata", + "nameLocation": "2836:8:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2830:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2539, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2830:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2542, + "indexed": false, + "mutability": "mutable", + "name": "signature", + "nameLocation": "2860:9:25", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "2854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2541, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2854:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2621:254:25" + }, + "src": "2603:273:25" + }, + { + "documentation": { + "id": 2545, + "nodeType": "StructuredDocumentation", + "src": "2882:64:25", + "text": " @notice Thrown when the RAV signer is invalid" + }, + "errorSelector": "aa415c33", + "id": 2547, + "name": "GraphTallyCollectorInvalidRAVSigner", + "nameLocation": "2957:35:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2546, + "nodeType": "ParameterList", + "parameters": [], + "src": "2992:2:25" + }, + "src": "2951:44:25" + }, + { + "documentation": { + "id": 2548, + "nodeType": "StructuredDocumentation", + "src": "3001:168:25", + "text": " @notice Thrown when the RAV is for a data service the service provider has no provision for\n @param dataService The address of the data service" + }, + "errorSelector": "de8b47c0", + "id": 2552, + "name": "GraphTallyCollectorUnauthorizedDataService", + "nameLocation": "3180:42:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2550, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "3231:11:25", + "nodeType": "VariableDeclaration", + "scope": 2552, + "src": "3223:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3223:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3222:21:25" + }, + "src": "3174:70:25" + }, + { + "documentation": { + "id": 2553, + "nodeType": "StructuredDocumentation", + "src": "3250:200:25", + "text": " @notice 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": "56cbc92e", + "id": 2559, + "name": "GraphTallyCollectorCallerNotDataService", + "nameLocation": "3461:39:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2555, + "mutability": "mutable", + "name": "caller", + "nameLocation": "3509:6:25", + "nodeType": "VariableDeclaration", + "scope": 2559, + "src": "3501:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3501:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2557, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "3525:11:25", + "nodeType": "VariableDeclaration", + "scope": 2559, + "src": "3517:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3517:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3500:37:25" + }, + "src": "3455:83:25" + }, + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "3544:292:25", + "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": "7007d4a1", + "id": 2566, + "name": "GraphTallyCollectorInconsistentRAVTokens", + "nameLocation": "3847:40:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2562, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3896:6:25", + "nodeType": "VariableDeclaration", + "scope": 2566, + "src": "3888:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3888:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2564, + "mutability": "mutable", + "name": "tokensCollected", + "nameLocation": "3912:15:25", + "nodeType": "VariableDeclaration", + "scope": 2566, + "src": "3904:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3904:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3887:41:25" + }, + "src": "3841:88:25" + }, + { + "documentation": { + "id": 2567, + "nodeType": "StructuredDocumentation", + "src": "3935:231:25", + "text": " @notice Thrown when the attempting to collect more tokens than what it's owed\n @param tokensToCollect The amount of tokens to collect\n @param maxTokensToCollect The maximum amount of tokens to collect" + }, + "errorSelector": "c5602bb1", + "id": 2573, + "name": "GraphTallyCollectorInvalidTokensToCollectAmount", + "nameLocation": "4177:47:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2569, + "mutability": "mutable", + "name": "tokensToCollect", + "nameLocation": "4233:15:25", + "nodeType": "VariableDeclaration", + "scope": 2573, + "src": "4225:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4225:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2571, + "mutability": "mutable", + "name": "maxTokensToCollect", + "nameLocation": "4258:18:25", + "nodeType": "VariableDeclaration", + "scope": 2573, + "src": "4250:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4250:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4224:53:25" + }, + "src": "4171:107:25" + }, + { + "documentation": { + "id": 2574, + "nodeType": "StructuredDocumentation", + "src": "4284:813:25", + "text": " @notice See {IPaymentsCollector.collect}\n This variant adds the ability to partially collect a RAV by specifying the amount of tokens to collect.\n Requirements:\n - The amount of tokens to collect must be less than or equal to the total amount of tokens in the RAV minus\n the tokens already collected.\n @param paymentType The payment type to collect\n @param data Additional data required for the payment collection. Encoded as follows:\n - SignedRAV `signedRAV`: The signed RAV\n - uint256 `dataServiceCut`: The data service cut in PPM\n - address `receiverDestination`: The address where the receiver's payment should be sent.\n @param tokensToCollect The amount of tokens to collect\n @return The amount of tokens collected" + }, + "functionSelector": "692209ce", + "id": 2586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "5111:7:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "5156:11:25", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "5128:39:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2576, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2575, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "5128:14:25", + "5143:12:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "5128:27:25" + }, + "referencedDeclaration": 2433, + "src": "5128:27:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2579, + "mutability": "mutable", + "name": "data", + "nameLocation": "5192:4:25", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "5177:19:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2578, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5177:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2581, + "mutability": "mutable", + "name": "tokensToCollect", + "nameLocation": "5214:15:25", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "5206:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5206:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5118:117:25" + }, + "returnParameters": { + "id": 2585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2584, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2586, + "src": "5254:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5254:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5253:9:25" + }, + "scope": 2605, + "src": "5102:161:25", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2587, + "nodeType": "StructuredDocumentation", + "src": "5269:212:25", + "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": "63648817", + "id": 2595, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "recoverRAVSigner", + "nameLocation": "5495:16:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "mutability": "mutable", + "name": "signedRAV", + "nameLocation": "5531:9:25", + "nodeType": "VariableDeclaration", + "scope": 2595, + "src": "5512:28:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_calldata_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + }, + "typeName": { + "id": 2589, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2588, + "name": "SignedRAV", + "nameLocations": [ + "5512:9:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2525, + "src": "5512:9:25" + }, + "referencedDeclaration": 2525, + "src": "5512:9:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_storage_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + } + }, + "visibility": "internal" + } + ], + "src": "5511:30:25" + }, + "returnParameters": { + "id": 2594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2593, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2595, + "src": "5565:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5565:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5564:9:25" + }, + "scope": 2605, + "src": "5486:88:25", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2596, + "nodeType": "StructuredDocumentation", + "src": "5580:170:25", + "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": "26969c4c", + "id": 2604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "encodeRAV", + "nameLocation": "5764:9:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2599, + "mutability": "mutable", + "name": "rav", + "nameLocation": "5807:3:25", + "nodeType": "VariableDeclaration", + "scope": 2604, + "src": "5774:36:25", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_calldata_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher" + }, + "typeName": { + "id": 2598, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2597, + "name": "ReceiptAggregateVoucher", + "nameLocations": [ + "5774:23:25" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2518, + "src": "5774:23:25" + }, + "referencedDeclaration": 2518, + "src": "5774:23:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_storage_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher" + } + }, + "visibility": "internal" + } + ], + "src": "5773:38:25" + }, + "returnParameters": { + "id": 2603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2604, + "src": "5835:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2601, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5835:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5834:9:25" + }, + "scope": 2605, + "src": "5755:89:25", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2606, + "src": "647:5199:25", + "usedErrors": [ + 2547, + 2552, + 2559, + 2566, + 2573 + ], + "usedEvents": [ + 2544, + 2646 + ] + } + ], + "src": "45:5802:25" + }, + "id": 25 + }, + "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "exportedSymbols": { + "IHorizonStaking": [ + 2625 + ], + "IHorizonStakingBase": [ + 3046 + ], + "IHorizonStakingExtension": [ + 3226 + ], + "IHorizonStakingMain": [ + 3937 + ], + "IHorizonStakingTypes": [ + 4073 + ] + }, + "id": 2626, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2607, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:26" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "file": "./internal/IHorizonStakingTypes.sol", + "id": 2609, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2626, + "sourceUnit": 4074, + "src": "71:75:26", + "symbolAliases": [ + { + "foreign": { + "id": 2608, + "name": "IHorizonStakingTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "80:20:26", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol", + "file": "./internal/IHorizonStakingMain.sol", + "id": 2611, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2626, + "sourceUnit": 3938, + "src": "147:73:26", + "symbolAliases": [ + { + "foreign": { + "id": 2610, + "name": "IHorizonStakingMain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3937, + "src": "156:19:26", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol", + "file": "./internal/IHorizonStakingBase.sol", + "id": 2613, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2626, + "sourceUnit": 3047, + "src": "221:73:26", + "symbolAliases": [ + { + "foreign": { + "id": 2612, + "name": "IHorizonStakingBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3046, + "src": "230:19:26", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol", + "file": "./internal/IHorizonStakingExtension.sol", + "id": 2615, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2626, + "sourceUnit": 3227, + "src": "295:83:26", + "symbolAliases": [ + { + "foreign": { + "id": 2614, + "name": "IHorizonStakingExtension", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "304:24:26", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2617, + "name": "IHorizonStakingTypes", + "nameLocations": [ + "888:20:26" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4073, + "src": "888:20:26" + }, + "id": 2618, + "nodeType": "InheritanceSpecifier", + "src": "888:20:26" + }, + { + "baseName": { + "id": 2619, + "name": "IHorizonStakingBase", + "nameLocations": [ + "910:19:26" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3046, + "src": "910:19:26" + }, + "id": 2620, + "nodeType": "InheritanceSpecifier", + "src": "910:19:26" + }, + { + "baseName": { + "id": 2621, + "name": "IHorizonStakingMain", + "nameLocations": [ + "931:19:26" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3937, + "src": "931:19:26" + }, + "id": 2622, + "nodeType": "InheritanceSpecifier", + "src": "931:19:26" + }, + { + "baseName": { + "id": 2623, + "name": "IHorizonStakingExtension", + "nameLocations": [ + "952:24:26" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3226, + "src": "952:24:26" + }, + "id": 2624, + "nodeType": "InheritanceSpecifier", + "src": "952:24:26" + } + ], + "canonicalName": "IHorizonStaking", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2616, + "nodeType": "StructuredDocumentation", + "src": "380:478:26", + "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.\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": false, + "id": 2625, + "linearizedBaseContracts": [ + 2625, + 3226, + 561, + 3937, + 3046, + 4073 + ], + "name": "IHorizonStaking", + "nameLocation": "869:15:26", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 2626, + "src": "859:120:26", + "usedErrors": [ + 2877, + 3500, + 3507, + 3514, + 3521, + 3530, + 3535, + 3540, + 3547, + 3550, + 3557, + 3564, + 3571, + 3574, + 3581, + 3588, + 3595, + 3602, + 3605, + 3608, + 3611, + 3614, + 3617, + 3622, + 3627, + 3630, + 3635, + 3638, + 3641 + ], + "usedEvents": [ + 2874, + 3097, + 3122, + 3133, + 3242, + 3249, + 3262, + 3271, + 3280, + 3289, + 3300, + 3311, + 3322, + 3331, + 3340, + 3349, + 3360, + 3373, + 3386, + 3397, + 3406, + 3415, + 3427, + 3447, + 3463, + 3479, + 3484, + 3491, + 3494, + 3497 + ] + } + ], + "src": "46:934:26" + }, + "id": 26 + }, + "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ], + "IPaymentsCollector": [ + 2658 + ] + }, + "id": 2659, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2627, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:27" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "./IGraphPayments.sol", + "id": 2629, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2659, + "sourceUnit": 2490, + "src": "71:54:27", + "symbolAliases": [ + { + "foreign": { + "id": 2628, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "80:14:27", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPaymentsCollector", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2630, + "nodeType": "StructuredDocumentation", + "src": "127:631:27", + "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.\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": false, + "id": 2658, + "linearizedBaseContracts": [ + 2658 + ], + "name": "IPaymentsCollector", + "nameLocation": "769:18:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2631, + "nodeType": "StructuredDocumentation", + "src": "794:487:27", + "text": " @notice Emitted when a payment is collected\n @param paymentType The payment type collected as defined by {IGraphPayments}\n @param collectionId The id for the collection. Can be used at the discretion of the collector to group multiple payments.\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 tokens The amount of tokens being collected" + }, + "eventSelector": "481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb4", + "id": 2646, + "name": "PaymentCollected", + "nameLocation": "1292:16:27", + "nodeType": "EventDefinition", + "parameters": { + "id": 2645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "indexed": false, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "1346:11:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1318:39:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2633, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2632, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "1318:14:27", + "1333:12:27" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "1318:27:27" + }, + "referencedDeclaration": 2433, + "src": "1318:27:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "indexed": true, + "mutability": "mutable", + "name": "collectionId", + "nameLocation": "1383:12:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1367:28:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2635, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1367:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2638, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "1421:5:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1405:21:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2640, + "indexed": false, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1444:8:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1436:16:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1436:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2642, + "indexed": true, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "1478:11:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1462:27:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1462:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2644, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1507:6:27", + "nodeType": "VariableDeclaration", + "scope": 2646, + "src": "1499:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1499:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1308:211:27" + }, + "src": "1286:234:27" + }, + { + "documentation": { + "id": 2647, + "nodeType": "StructuredDocumentation", + "src": "1526:613:27", + "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 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.\n @return The amount of tokens collected" + }, + "functionSelector": "7f07d283", + "id": 2657, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "2153:7:27", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2650, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "2189:11:27", + "nodeType": "VariableDeclaration", + "scope": 2657, + "src": "2161:39:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2649, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2648, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "2161:14:27", + "2176:12:27" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "2161:27:27" + }, + "referencedDeclaration": 2433, + "src": "2161:27:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2652, + "mutability": "mutable", + "name": "data", + "nameLocation": "2215:4:27", + "nodeType": "VariableDeclaration", + "scope": 2657, + "src": "2202:17:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2651, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2202:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2160:60:27" + }, + "returnParameters": { + "id": 2656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2655, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2657, + "src": "2239:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2654, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2239:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2238:9:27" + }, + "scope": 2658, + "src": "2144:104:27", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2659, + "src": "759:1491:27", + "usedErrors": [], + "usedEvents": [ + 2646 + ] + } + ], + "src": "46:2205:27" + }, + "id": 27 + }, + "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ], + "IPaymentsEscrow": [ + 2858 + ] + }, + "id": 2859, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2660, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:28" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "./IGraphPayments.sol", + "id": 2662, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2859, + "sourceUnit": 2490, + "src": "70:54:28", + "symbolAliases": [ + { + "foreign": { + "id": 2661, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "79:14:28", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPaymentsEscrow", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2663, + "nodeType": "StructuredDocumentation", + "src": "126:771:28", + "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.\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": false, + "id": 2858, + "linearizedBaseContracts": [ + 2858 + ], + "name": "IPaymentsEscrow", + "nameLocation": "908:15:28", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IPaymentsEscrow.EscrowAccount", + "documentation": { + "id": 2664, + "nodeType": "StructuredDocumentation", + "src": "930:331:28", + "text": " @notice Escrow account for a payer-collector-receiver tuple\n @param balance The total token balance for the payer-collector-receiver tuple\n @param tokensThawing The amount of tokens currently being thawed\n @param thawEndTimestamp The timestamp at which thawing period ends (zero if not thawing)" + }, + "id": 2671, + "members": [ + { + "constant": false, + "id": 2666, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1305:7:28", + "nodeType": "VariableDeclaration", + "scope": 2671, + "src": "1297:15:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1297:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "1330:13:28", + "nodeType": "VariableDeclaration", + "scope": 2671, + "src": "1322:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1322:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2670, + "mutability": "mutable", + "name": "thawEndTimestamp", + "nameLocation": "1361:16:28", + "nodeType": "VariableDeclaration", + "scope": 2671, + "src": "1353:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1353:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "EscrowAccount", + "nameLocation": "1273:13:28", + "nodeType": "StructDefinition", + "scope": 2858, + "src": "1266:118:28", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 2672, + "nodeType": "StructuredDocumentation", + "src": "1390:316:28", + "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": 2682, + "name": "Deposit", + "nameLocation": "1717:7:28", + "nodeType": "EventDefinition", + "parameters": { + "id": 2681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2674, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "1741:5:28", + "nodeType": "VariableDeclaration", + "scope": 2682, + "src": "1725:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1725:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2676, + "indexed": true, + "mutability": "mutable", + "name": "collector", + "nameLocation": "1764:9:28", + "nodeType": "VariableDeclaration", + "scope": 2682, + "src": "1748:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2678, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1791:8:28", + "nodeType": "VariableDeclaration", + "scope": 2682, + "src": "1775:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2680, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1809:6:28", + "nodeType": "VariableDeclaration", + "scope": 2682, + "src": "1801:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1801:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1724:92:28" + }, + "src": "1711:106:28" + }, + { + "anonymous": false, + "documentation": { + "id": 2683, + "nodeType": "StructuredDocumentation", + "src": "1823:378:28", + "text": " @notice Emitted when a payer cancels an escrow thawing\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 tokensThawing The amount of tokens that were being thawed\n @param thawEndTimestamp The timestamp at which the thawing period was ending" + }, + "eventSelector": "6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535", + "id": 2695, + "name": "CancelThaw", + "nameLocation": "2212:10:28", + "nodeType": "EventDefinition", + "parameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2685, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "2248:5:28", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "2232:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2232:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2687, + "indexed": true, + "mutability": "mutable", + "name": "collector", + "nameLocation": "2279:9:28", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "2263:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2263:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2689, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2314:8:28", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "2298:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2691, + "indexed": false, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "2340:13:28", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "2332:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2332:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2693, + "indexed": false, + "mutability": "mutable", + "name": "thawEndTimestamp", + "nameLocation": "2371:16:28", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "2363:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2363:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2222:171:28" + }, + "src": "2206:188:28" + }, + { + "anonymous": false, + "documentation": { + "id": 2696, + "nodeType": "StructuredDocumentation", + "src": "2400:394:28", + "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": 2708, + "name": "Thaw", + "nameLocation": "2805:4:28", + "nodeType": "EventDefinition", + "parameters": { + "id": 2707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "2835:5:28", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "2819:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2819:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2700, + "indexed": true, + "mutability": "mutable", + "name": "collector", + "nameLocation": "2866:9:28", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "2850:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2850:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2702, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2901:8:28", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "2885:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2701, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2704, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2927:6:28", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "2919:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2919:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2706, + "indexed": false, + "mutability": "mutable", + "name": "thawEndTimestamp", + "nameLocation": "2951:16:28", + "nodeType": "VariableDeclaration", + "scope": 2708, + "src": "2943:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2943:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2809:164:28" + }, + "src": "2799:175:28" + }, + { + "anonymous": false, + "documentation": { + "id": 2709, + "nodeType": "StructuredDocumentation", + "src": "2980:317:28", + "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": 2719, + "name": "Withdraw", + "nameLocation": "3308:8:28", + "nodeType": "EventDefinition", + "parameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2711, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "3333:5:28", + "nodeType": "VariableDeclaration", + "scope": 2719, + "src": "3317:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3317:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2713, + "indexed": true, + "mutability": "mutable", + "name": "collector", + "nameLocation": "3356:9:28", + "nodeType": "VariableDeclaration", + "scope": 2719, + "src": "3340:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3340:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2715, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3383:8:28", + "nodeType": "VariableDeclaration", + "scope": 2719, + "src": "3367:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3367:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2717, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3401:6:28", + "nodeType": "VariableDeclaration", + "scope": 2719, + "src": "3393:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3393:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3316:92:28" + }, + "src": "3302:107:28" + }, + { + "anonymous": false, + "documentation": { + "id": 2720, + "nodeType": "StructuredDocumentation", + "src": "3415:518:28", + "text": " @notice Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\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 collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens collected\n @param receiverDestination The address where the receiver's payment should be sent." + }, + "eventSelector": "399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c913", + "id": 2735, + "name": "EscrowCollected", + "nameLocation": "3944:15:28", + "nodeType": "EventDefinition", + "parameters": { + "id": 2734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2723, + "indexed": true, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "4005:11:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "3969:47:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2722, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2721, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "3969:14:28", + "3984:12:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "3969:27:28" + }, + "referencedDeclaration": 2433, + "src": "3969:27:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2725, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "4042:5:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "4026:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4026:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2727, + "indexed": true, + "mutability": "mutable", + "name": "collector", + "nameLocation": "4073:9:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "4057:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2729, + "indexed": false, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "4100:8:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "4092:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4092:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2731, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "4126:6:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "4118:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4118:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2733, + "indexed": false, + "mutability": "mutable", + "name": "receiverDestination", + "nameLocation": "4150:19:28", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "4142:27:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4142:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3959:216:28" + }, + "src": "3938:238:28" + }, + { + "documentation": { + "id": 2736, + "nodeType": "StructuredDocumentation", + "src": "4203:97:28", + "text": " @notice Thrown when a protected function is called and the contract is paused." + }, + "errorSelector": "9e68cf0b", + "id": 2738, + "name": "PaymentsEscrowIsPaused", + "nameLocation": "4311:22:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2737, + "nodeType": "ParameterList", + "parameters": [], + "src": "4333:2:28" + }, + "src": "4305:31:28" + }, + { + "documentation": { + "id": 2739, + "nodeType": "StructuredDocumentation", + "src": "4342:196:28", + "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": 2745, + "name": "PaymentsEscrowInsufficientBalance", + "nameLocation": "4549:33:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2741, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4591:7:28", + "nodeType": "VariableDeclaration", + "scope": 2745, + "src": "4583:15:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4583:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2743, + "mutability": "mutable", + "name": "minBalance", + "nameLocation": "4608:10:28", + "nodeType": "VariableDeclaration", + "scope": 2745, + "src": "4600:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4600:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4582:37:28" + }, + "src": "4543:77:28" + }, + { + "documentation": { + "id": 2746, + "nodeType": "StructuredDocumentation", + "src": "4626:92:28", + "text": " @notice Thrown when a thawing is expected to be in progress but it is not" + }, + "errorSelector": "8cbd172f", + "id": 2748, + "name": "PaymentsEscrowNotThawing", + "nameLocation": "4729:24:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2747, + "nodeType": "ParameterList", + "parameters": [], + "src": "4753:2:28" + }, + "src": "4723:33:28" + }, + { + "documentation": { + "id": 2749, + "nodeType": "StructuredDocumentation", + "src": "4762:200:28", + "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": 2755, + "name": "PaymentsEscrowStillThawing", + "nameLocation": "4973:26:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2751, + "mutability": "mutable", + "name": "currentTimestamp", + "nameLocation": "5008:16:28", + "nodeType": "VariableDeclaration", + "scope": 2755, + "src": "5000:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5000:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2753, + "mutability": "mutable", + "name": "thawEndTimestamp", + "nameLocation": "5034:16:28", + "nodeType": "VariableDeclaration", + "scope": 2755, + "src": "5026:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5026:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4999:52:28" + }, + "src": "4967:85:28" + }, + { + "documentation": { + "id": 2756, + "nodeType": "StructuredDocumentation", + "src": "5058:200:28", + "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": 2762, + "name": "PaymentsEscrowThawingPeriodTooLong", + "nameLocation": "5269:34:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2758, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "5312:13:28", + "nodeType": "VariableDeclaration", + "scope": 2762, + "src": "5304:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5304:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2760, + "mutability": "mutable", + "name": "maxWaitPeriod", + "nameLocation": "5335:13:28", + "nodeType": "VariableDeclaration", + "scope": 2762, + "src": "5327:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5327:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5303:46:28" + }, + "src": "5263:87:28" + }, + { + "documentation": { + "id": 2763, + "nodeType": "StructuredDocumentation", + "src": "5356:278:28", + "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": 2771, + "name": "PaymentsEscrowInconsistentCollection", + "nameLocation": "5645:36:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "balanceBefore", + "nameLocation": "5690:13:28", + "nodeType": "VariableDeclaration", + "scope": 2771, + "src": "5682:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2764, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5682:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2767, + "mutability": "mutable", + "name": "balanceAfter", + "nameLocation": "5713:12:28", + "nodeType": "VariableDeclaration", + "scope": 2771, + "src": "5705:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5705:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "5735:6:28", + "nodeType": "VariableDeclaration", + "scope": 2771, + "src": "5727:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5727:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5681:61:28" + }, + "src": "5639:104:28" + }, + { + "documentation": { + "id": 2772, + "nodeType": "StructuredDocumentation", + "src": "5749:84:28", + "text": " @notice Thrown when operating a zero token amount is not allowed." + }, + "errorSelector": "ebfc7cdc", + "id": 2774, + "name": "PaymentsEscrowInvalidZeroTokens", + "nameLocation": "5844:31:28", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [], + "src": "5875:2:28" + }, + "src": "5838:40:28" + }, + { + "documentation": { + "id": 2775, + "nodeType": "StructuredDocumentation", + "src": "5884:50:28", + "text": " @notice Initialize the contract" + }, + "functionSelector": "8129fc1c", + "id": 2778, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "5948:10:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2776, + "nodeType": "ParameterList", + "parameters": [], + "src": "5958:2:28" + }, + "returnParameters": { + "id": 2777, + "nodeType": "ParameterList", + "parameters": [], + "src": "5969:0:28" + }, + "scope": 2858, + "src": "5939:31:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2779, + "nodeType": "StructuredDocumentation", + "src": "5976:338:28", + "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": 2788, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "6328:7:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2781, + "mutability": "mutable", + "name": "collector", + "nameLocation": "6344:9:28", + "nodeType": "VariableDeclaration", + "scope": 2788, + "src": "6336:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6336:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2783, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "6363:8:28", + "nodeType": "VariableDeclaration", + "scope": 2788, + "src": "6355:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6355:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2785, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6381:6:28", + "nodeType": "VariableDeclaration", + "scope": 2788, + "src": "6373:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6373:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6335:53:28" + }, + "returnParameters": { + "id": 2787, + "nodeType": "ParameterList", + "parameters": [], + "src": "6397:0:28" + }, + "scope": 2858, + "src": "6319:79:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2789, + "nodeType": "StructuredDocumentation", + "src": "6404:374:28", + "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": 2800, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "depositTo", + "nameLocation": "6792:9:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2791, + "mutability": "mutable", + "name": "payer", + "nameLocation": "6810:5:28", + "nodeType": "VariableDeclaration", + "scope": 2800, + "src": "6802:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6802:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2793, + "mutability": "mutable", + "name": "collector", + "nameLocation": "6825:9:28", + "nodeType": "VariableDeclaration", + "scope": 2800, + "src": "6817:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6817:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2795, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "6844:8:28", + "nodeType": "VariableDeclaration", + "scope": 2800, + "src": "6836:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6836:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2797, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6862:6:28", + "nodeType": "VariableDeclaration", + "scope": 2800, + "src": "6854:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6854:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6801:68:28" + }, + "returnParameters": { + "id": 2799, + "nodeType": "ParameterList", + "parameters": [], + "src": "6878:0:28" + }, + "scope": 2858, + "src": "6783:96:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2801, + "nodeType": "StructuredDocumentation", + "src": "6885:575:28", + "text": " @notice Thaw a specific amount of escrow from a payer-collector-receiver's escrow account.\n The payer is the transaction caller.\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.\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": 2810, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "thaw", + "nameLocation": "7474:4:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2803, + "mutability": "mutable", + "name": "collector", + "nameLocation": "7487:9:28", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "7479:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7479:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2805, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "7506:8:28", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "7498:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7498:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2807, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7524:6:28", + "nodeType": "VariableDeclaration", + "scope": 2810, + "src": "7516:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7516:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7478:53:28" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [], + "src": "7540:0:28" + }, + "scope": 2858, + "src": "7465:76:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2811, + "nodeType": "StructuredDocumentation", + "src": "7547:312:28", + "text": " @notice Cancels the thawing of escrow from a payer-collector-receiver's escrow account.\n @param collector The address of the collector\n @param receiver The address of the receiver\n @dev Requirements:\n - The payer must be thawing funds\n Emits a {CancelThaw} event." + }, + "functionSelector": "b1d07de4", + "id": 2818, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelThaw", + "nameLocation": "7873:10:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2813, + "mutability": "mutable", + "name": "collector", + "nameLocation": "7892:9:28", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "7884:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7884:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2815, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "7911:8:28", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "7903:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7903:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7883:37:28" + }, + "returnParameters": { + "id": 2817, + "nodeType": "ParameterList", + "parameters": [], + "src": "7929:0:28" + }, + "scope": 2858, + "src": "7864:66:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "7936:486:28", + "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": 2826, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "8436:8:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "collector", + "nameLocation": "8453:9:28", + "nodeType": "VariableDeclaration", + "scope": 2826, + "src": "8445:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8445:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "8472:8:28", + "nodeType": "VariableDeclaration", + "scope": 2826, + "src": "8464:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2822, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8464:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8444:37:28" + }, + "returnParameters": { + "id": 2825, + "nodeType": "ParameterList", + "parameters": [], + "src": "8490:0:28" + }, + "scope": 2858, + "src": "8427:64:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2827, + "nodeType": "StructuredDocumentation", + "src": "8497:811:28", + "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 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 dataServiceCut The data service cut in PPM that {GraphPayments} should send\n @param receiverDestination The address where the receiver's payment should be sent." + }, + "functionSelector": "1230fa3e", + "id": 2845, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "9322:7:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2830, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "9367:11:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9339:39:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2829, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2828, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "9339:14:28", + "9354:12:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "9339:27:28" + }, + "referencedDeclaration": 2433, + "src": "9339:27:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2832, + "mutability": "mutable", + "name": "payer", + "nameLocation": "9396:5:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9388:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9388:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2834, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "9419:8:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9411:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9411:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2836, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9445:6:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9437:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2835, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9437:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2838, + "mutability": "mutable", + "name": "dataService", + "nameLocation": "9469:11:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9461:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2837, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9461:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "dataServiceCut", + "nameLocation": "9498:14:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9490:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9490:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2842, + "mutability": "mutable", + "name": "receiverDestination", + "nameLocation": "9530:19:28", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "9522:27:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2841, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9522:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9329:226:28" + }, + "returnParameters": { + "id": 2844, + "nodeType": "ParameterList", + "parameters": [], + "src": "9564:0:28" + }, + "scope": 2858, + "src": "9313:252:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2846, + "nodeType": "StructuredDocumentation", + "src": "9571:397:28", + "text": " @notice Get the balance of a payer-collector-receiver tuple\n This function will return 0 if the current balance is less than the amount of funds being thawed.\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 @return The balance of the payer-collector-receiver tuple" + }, + "functionSelector": "d6bd603c", + "id": 2857, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getBalance", + "nameLocation": "9982:10:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2848, + "mutability": "mutable", + "name": "payer", + "nameLocation": "10001:5:28", + "nodeType": "VariableDeclaration", + "scope": 2857, + "src": "9993:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9993:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2850, + "mutability": "mutable", + "name": "collector", + "nameLocation": "10016:9:28", + "nodeType": "VariableDeclaration", + "scope": 2857, + "src": "10008:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10008:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "10035:8:28", + "nodeType": "VariableDeclaration", + "scope": 2857, + "src": "10027:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10027:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9992:52:28" + }, + "returnParameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2855, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2857, + "src": "10068:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10068:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10067:9:28" + }, + "scope": 2858, + "src": "9973:104:28", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2859, + "src": "898:9181:28", + "usedErrors": [ + 2738, + 2745, + 2748, + 2755, + 2762, + 2771, + 2774 + ], + "usedEvents": [ + 2682, + 2695, + 2708, + 2719, + 2735 + ] + } + ], + "src": "45:10035:28" + }, + "id": 28 + }, + "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ], + "IHorizonStakingBase": [ + 3046 + ], + "IHorizonStakingTypes": [ + 4073 + ], + "LinkedList": [ + 4364 + ] + }, + "id": 3047, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2860, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:29" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "file": "./IHorizonStakingTypes.sol", + "id": 2862, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3047, + "sourceUnit": 4074, + "src": "71:66:29", + "symbolAliases": [ + { + "foreign": { + "id": 2861, + "name": "IHorizonStakingTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "80:20:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "../IGraphPayments.sol", + "id": 2864, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3047, + "sourceUnit": 2490, + "src": "138:55:29", + "symbolAliases": [ + { + "foreign": { + "id": 2863, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "147:14:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", + "file": "../../libraries/LinkedList.sol", + "id": 2866, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3047, + "sourceUnit": 4365, + "src": "195:60:29", + "symbolAliases": [ + { + "foreign": { + "id": 2865, + "name": "LinkedList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "204:10:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IHorizonStakingBase", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2867, + "nodeType": "StructuredDocumentation", + "src": "257:464:29", + "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.\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": false, + "id": 3046, + "linearizedBaseContracts": [ + 3046 + ], + "name": "IHorizonStakingBase", + "nameLocation": "732:19:29", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2868, + "nodeType": "StructuredDocumentation", + "src": "758:421:29", + "text": " @notice Emitted when a service provider stakes tokens.\n @dev TRANSITION PERIOD: 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": "48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b", + "id": 2874, + "name": "HorizonStakeDeposited", + "nameLocation": "1190:21:29", + "nodeType": "EventDefinition", + "parameters": { + "id": 2873, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2870, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1228:15:29", + "nodeType": "VariableDeclaration", + "scope": 2874, + "src": "1212:31:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1212:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2872, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1253:6:29", + "nodeType": "VariableDeclaration", + "scope": 2874, + "src": "1245:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1245:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1211:49:29" + }, + "src": "1184:77:29" + }, + { + "documentation": { + "id": 2875, + "nodeType": "StructuredDocumentation", + "src": "1267:74:29", + "text": " @notice Thrown when using an invalid thaw request type." + }, + "errorSelector": "d7a3f74e", + "id": 2877, + "name": "HorizonStakingInvalidThawRequestType", + "nameLocation": "1352:36:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2876, + "nodeType": "ParameterList", + "parameters": [], + "src": "1388:2:29" + }, + "src": "1346:45:29" + }, + { + "documentation": { + "id": 2878, + "nodeType": "StructuredDocumentation", + "src": "1397:178:29", + "text": " @notice Gets the details of a service provider.\n @param serviceProvider The address of the service provider.\n @return The service provider details." + }, + "functionSelector": "8cc01c86", + "id": 2886, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getServiceProvider", + "nameLocation": "1589:18:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2880, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1625:15:29", + "nodeType": "VariableDeclaration", + "scope": 2886, + "src": "1617:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2879, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1617:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1607:39:29" + }, + "returnParameters": { + "id": 2885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2884, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2886, + "src": "1670:43:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProvider_$3968_memory_ptr", + "typeString": "struct IHorizonStakingTypes.ServiceProvider" + }, + "typeName": { + "id": 2883, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2882, + "name": "IHorizonStakingTypes.ServiceProvider", + "nameLocations": [ + "1670:20:29", + "1691:15:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3968, + "src": "1670:36:29" + }, + "referencedDeclaration": 3968, + "src": "1670:36:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ServiceProvider_$3968_storage_ptr", + "typeString": "struct IHorizonStakingTypes.ServiceProvider" + } + }, + "visibility": "internal" + } + ], + "src": "1669:45:29" + }, + "scope": 3046, + "src": "1580:135:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2887, + "nodeType": "StructuredDocumentation", + "src": "1721:175:29", + "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": 2894, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStake", + "nameLocation": "1910:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2889, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1927:15:29", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1919:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1919:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1918:25:29" + }, + "returnParameters": { + "id": 2893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2892, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1967:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1967:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1966:9:29" + }, + "scope": 3046, + "src": "1901:75:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2895, + "nodeType": "StructuredDocumentation", + "src": "1982:311:29", + "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": 2902, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getIdleStake", + "nameLocation": "2307:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2897, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2328:15:29", + "nodeType": "VariableDeclaration", + "scope": 2902, + "src": "2320:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2896, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2320:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2319:25:29" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2902, + "src": "2368:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2899, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2368:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2367:9:29" + }, + "scope": 3046, + "src": "2298:79:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2903, + "nodeType": "StructuredDocumentation", + "src": "2383:226:29", + "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": 2913, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDelegationPool", + "nameLocation": "2623:17:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2905, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2658:15:29", + "nodeType": "VariableDeclaration", + "scope": 2913, + "src": "2650:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2904, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2650:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2907, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2691:8:29", + "nodeType": "VariableDeclaration", + "scope": 2913, + "src": "2683:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2683:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2640:65:29" + }, + "returnParameters": { + "id": 2912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2911, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2913, + "src": "2729:42:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_memory_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool" + }, + "typeName": { + "id": 2910, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2909, + "name": "IHorizonStakingTypes.DelegationPool", + "nameLocations": [ + "2729:20:29", + "2750:14:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3992, + "src": "2729:35:29" + }, + "referencedDeclaration": 3992, + "src": "2729:35:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_storage_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool" + } + }, + "visibility": "internal" + } + ], + "src": "2728:44:29" + }, + "scope": 3046, + "src": "2614:159:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2914, + "nodeType": "StructuredDocumentation", + "src": "2779:272:29", + "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": 2926, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDelegation", + "nameLocation": "3065:13:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2916, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3096:15:29", + "nodeType": "VariableDeclaration", + "scope": 2926, + "src": "3088:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3088:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2918, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3129:8:29", + "nodeType": "VariableDeclaration", + "scope": 2926, + "src": "3121:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3121:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2920, + "mutability": "mutable", + "name": "delegator", + "nameLocation": "3155:9:29", + "nodeType": "VariableDeclaration", + "scope": 2926, + "src": "3147:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2919, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3147:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3078:92:29" + }, + "returnParameters": { + "id": 2925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2924, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2926, + "src": "3194:38:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Delegation_$4021_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Delegation" + }, + "typeName": { + "id": 2923, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2922, + "name": "IHorizonStakingTypes.Delegation", + "nameLocations": [ + "3194:20:29", + "3215:10:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4021, + "src": "3194:31:29" + }, + "referencedDeclaration": 4021, + "src": "3194:31:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Delegation_$4021_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Delegation" + } + }, + "visibility": "internal" + } + ], + "src": "3193:40:29" + }, + "scope": 3046, + "src": "3056:178:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2927, + "nodeType": "StructuredDocumentation", + "src": "3240:327:29", + "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": 2939, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDelegationFeeCut", + "nameLocation": "3581:19:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2929, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3618:15:29", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "3610:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3610:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2931, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3651:8:29", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "3643:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3643:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2934, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "3697:11:29", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "3669:39:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 2933, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2932, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "3669:14:29", + "3684:12:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "3669:27:29" + }, + "referencedDeclaration": 2433, + "src": "3669:27:29", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + } + ], + "src": "3600:114:29" + }, + "returnParameters": { + "id": 2938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2937, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "3738:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3738:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3737:9:29" + }, + "scope": 3046, + "src": "3572:175:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2940, + "nodeType": "StructuredDocumentation", + "src": "3753:216:29", + "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": 2950, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProvision", + "nameLocation": "3983:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2942, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4013:15:29", + "nodeType": "VariableDeclaration", + "scope": 2950, + "src": "4005:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4005:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "4046:8:29", + "nodeType": "VariableDeclaration", + "scope": 2950, + "src": "4038:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4038:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3995:65:29" + }, + "returnParameters": { + "id": 2949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2948, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2950, + "src": "4084:37:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 2947, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2946, + "name": "IHorizonStakingTypes.Provision", + "nameLocations": [ + "4084:20:29", + "4105:9:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "4084:30:29" + }, + "referencedDeclaration": 3962, + "src": "4084:30:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "src": "4083:39:29" + }, + "scope": 3046, + "src": "3974:149:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2951, + "nodeType": "StructuredDocumentation", + "src": "4129:559:29", + "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": 2962, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokensAvailable", + "nameLocation": "4702:18:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4738:15:29", + "nodeType": "VariableDeclaration", + "scope": 2962, + "src": "4730:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4730:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2955, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "4771:8:29", + "nodeType": "VariableDeclaration", + "scope": 2962, + "src": "4763:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4763:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "delegationRatio", + "nameLocation": "4796:15:29", + "nodeType": "VariableDeclaration", + "scope": 2962, + "src": "4789:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2956, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4789:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "4720:97:29" + }, + "returnParameters": { + "id": 2961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2960, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2962, + "src": "4841:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4841:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4840:9:29" + }, + "scope": 3046, + "src": "4693:157:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2963, + "nodeType": "StructuredDocumentation", + "src": "4856:326:29", + "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": 2972, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProviderTokensAvailable", + "nameLocation": "5196:26:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2965, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5231:15:29", + "nodeType": "VariableDeclaration", + "scope": 2972, + "src": "5223:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5223:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2967, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "5256:8:29", + "nodeType": "VariableDeclaration", + "scope": 2972, + "src": "5248:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2966, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5248:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5222:43:29" + }, + "returnParameters": { + "id": 2971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2970, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2972, + "src": "5289:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5289:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5288:9:29" + }, + "scope": 3046, + "src": "5187:111:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2973, + "nodeType": "StructuredDocumentation", + "src": "5304:319:29", + "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": 2982, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDelegatedTokensAvailable", + "nameLocation": "5637:27:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2975, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5673:15:29", + "nodeType": "VariableDeclaration", + "scope": 2982, + "src": "5665:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2974, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5665:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2977, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "5698:8:29", + "nodeType": "VariableDeclaration", + "scope": 2982, + "src": "5690:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2976, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5690:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5664:43:29" + }, + "returnParameters": { + "id": 2981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2980, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2982, + "src": "5731:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5731:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5730:9:29" + }, + "scope": 3046, + "src": "5628:112:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2983, + "nodeType": "StructuredDocumentation", + "src": "5746:200:29", + "text": " @notice Gets a thaw request.\n @param thawRequestType The type of thaw request.\n @param thawRequestId The id of the thaw request.\n @return The thaw request details." + }, + "functionSelector": "d48de845", + "id": 2994, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getThawRequest", + "nameLocation": "5960:14:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2986, + "mutability": "mutable", + "name": "thawRequestType", + "nameLocation": "6021:15:29", + "nodeType": "VariableDeclaration", + "scope": 2994, + "src": "5984:52:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 2985, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2984, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "5984:20:29", + "6005:15:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "5984:36:29" + }, + "referencedDeclaration": 4033, + "src": "5984:36:29", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2988, + "mutability": "mutable", + "name": "thawRequestId", + "nameLocation": "6054:13:29", + "nodeType": "VariableDeclaration", + "scope": 2994, + "src": "6046:21:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2987, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6046:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5974:99:29" + }, + "returnParameters": { + "id": 2993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2992, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2994, + "src": "6097:39:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ThawRequest_$4043_memory_ptr", + "typeString": "struct IHorizonStakingTypes.ThawRequest" + }, + "typeName": { + "id": 2991, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2990, + "name": "IHorizonStakingTypes.ThawRequest", + "nameLocations": [ + "6097:20:29", + "6118:11:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4043, + "src": "6097:32:29" + }, + "referencedDeclaration": 4043, + "src": "6097:32:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ThawRequest_$4043_storage_ptr", + "typeString": "struct IHorizonStakingTypes.ThawRequest" + } + }, + "visibility": "internal" + } + ], + "src": "6096:41:29" + }, + "scope": 3046, + "src": "5951:187:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2995, + "nodeType": "StructuredDocumentation", + "src": "6144:585:29", + "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 thawRequestType The type of thaw request.\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": "e56f8a1d", + "id": 3010, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getThawRequestList", + "nameLocation": "6743:18:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "thawRequestType", + "nameLocation": "6808:15:29", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "6771:52:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 2997, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2996, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "6771:20:29", + "6792:15:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "6771:36:29" + }, + "referencedDeclaration": 4033, + "src": "6771:36:29", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "6841:15:29", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "6833:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2999, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6833:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3002, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "6874:8:29", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "6866:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3001, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6866:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3004, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6900:5:29", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "6892:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6892:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6761:150:29" + }, + "returnParameters": { + "id": 3009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3008, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "6935:22:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_memory_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 3007, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3006, + "name": "LinkedList.List", + "nameLocations": [ + "6935:10:29", + "6946:4:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "6935:15:29" + }, + "referencedDeclaration": 4090, + "src": "6935:15:29", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + } + ], + "src": "6934:24:29" + }, + "scope": 3046, + "src": "6734:225:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3011, + "nodeType": "StructuredDocumentation", + "src": "6965:870:29", + "text": " @notice Gets the amount of thawed tokens that can be releasedfor a given provision.\n @dev Note that the value returned by this function does not return the total amount of thawed tokens\n but only those that can be released. If thaw requests are created with different thawing periods it's\n possible that an unexpired thaw request temporarily blocks the release of other ones that have already\n expired. This function will stop counting when it encounters the first thaw request that is not yet expired.\n @param thawRequestType The type of thaw request.\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": "2f7cc501", + "id": 3025, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getThawedTokens", + "nameLocation": "7849:15:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3014, + "mutability": "mutable", + "name": "thawRequestType", + "nameLocation": "7911:15:29", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "7874:52:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 3013, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3012, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "7874:20:29", + "7895:15:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "7874:36:29" + }, + "referencedDeclaration": 4033, + "src": "7874:36:29", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3016, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "7944:15:29", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "7936:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7936:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "7977:8:29", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "7969:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7969:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3020, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8003:5:29", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "7995:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3019, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7995:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7864:150:29" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3023, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "8038:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8038:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8037:9:29" + }, + "scope": 3046, + "src": "7840:207:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3026, + "nodeType": "StructuredDocumentation", + "src": "8053:145:29", + "text": " @notice Gets the maximum allowed thawing period for a provision.\n @return The maximum allowed thawing period in seconds." + }, + "functionSelector": "39514ad2", + "id": 3031, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getMaxThawingPeriod", + "nameLocation": "8212:19:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3027, + "nodeType": "ParameterList", + "parameters": [], + "src": "8231:2:29" + }, + "returnParameters": { + "id": 3030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3029, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3031, + "src": "8257:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3028, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8257:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8256:8:29" + }, + "scope": 3046, + "src": "8203:62:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3032, + "nodeType": "StructuredDocumentation", + "src": "8271:208:29", + "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": 3039, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isAllowedLockedVerifier", + "nameLocation": "8493:23:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3034, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "8525:8:29", + "nodeType": "VariableDeclaration", + "scope": 3039, + "src": "8517:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8517:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8516:18:29" + }, + "returnParameters": { + "id": 3038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3037, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3039, + "src": "8558:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3036, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8558:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8557:6:29" + }, + "scope": 3046, + "src": "8484:80:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3040, + "nodeType": "StructuredDocumentation", + "src": "8570:161:29", + "text": " @notice Return true if delegation slashing is enabled, false otherwise.\n @return True if delegation slashing is enabled, false otherwise" + }, + "functionSelector": "fc54fb27", + "id": 3045, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isDelegationSlashingEnabled", + "nameLocation": "8745:27:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3041, + "nodeType": "ParameterList", + "parameters": [], + "src": "8772:2:29" + }, + "returnParameters": { + "id": 3044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3043, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3045, + "src": "8798:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3042, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8798:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8797:6:29" + }, + "scope": 3046, + "src": "8736:68:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3047, + "src": "722:8084:29", + "usedErrors": [ + 2877 + ], + "usedEvents": [ + 2874 + ] + } + ], + "src": "46:8761:29" + }, + "id": 29 + }, + "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol", + "exportedSymbols": { + "IHorizonStakingExtension": [ + 3226 + ], + "IRewardsIssuer": [ + 561 + ] + }, + "id": 3227, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3048, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:30" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", + "file": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", + "id": 3050, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3227, + "sourceUnit": 562, + "src": "71:95:30", + "symbolAliases": [ + { + "foreign": { + "id": 3049, + "name": "IRewardsIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "80:14:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3052, + "name": "IRewardsIssuer", + "nameLocations": [ + "477:14:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 561, + "src": "477:14:30" + }, + "id": 3053, + "nodeType": "InheritanceSpecifier", + "src": "477:14:30" + } + ], + "canonicalName": "IHorizonStakingExtension", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3051, + "nodeType": "StructuredDocumentation", + "src": "168:270:30", + "text": " @title Interface for {HorizonStakingExtension} contract.\n @notice Provides functions for managing legacy allocations.\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": false, + "id": 3226, + "linearizedBaseContracts": [ + 3226, + 561 + ], + "name": "IHorizonStakingExtension", + "nameLocation": "449:24:30", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IHorizonStakingExtension.Allocation", + "documentation": { + "id": 3054, + "nodeType": "StructuredDocumentation", + "src": "498:825:30", + "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()\n @param indexer The indexer address\n @param subgraphDeploymentID The subgraph deployment ID\n @param tokens The amount of tokens allocated to the subgraph deployment\n @param createdAtEpoch The epoch when the allocation was created\n @param closedAtEpoch The epoch when the allocation was closed\n @param collectedFees The amount of collected fees for the allocation\n @param __DEPRECATED_effectiveAllocation Deprecated field.\n @param accRewardsPerAllocatedToken Snapshot used for reward calculation\n @param distributedRebates The amount of collected rebates that have been rebated" + }, + "id": 3073, + "members": [ + { + "constant": false, + "id": 3056, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "1364:7:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1356:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1356:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3058, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "1389:20:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1381:28:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3057, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1381:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3060, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1427:6:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1419:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1419:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3062, + "mutability": "mutable", + "name": "createdAtEpoch", + "nameLocation": "1451:14:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1443:22:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1443:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3064, + "mutability": "mutable", + "name": "closedAtEpoch", + "nameLocation": "1483:13:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1475:21:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3066, + "mutability": "mutable", + "name": "collectedFees", + "nameLocation": "1514:13:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1506:21:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1506:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3068, + "mutability": "mutable", + "name": "__DEPRECATED_effectiveAllocation", + "nameLocation": "1545:32:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1537:40:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1537:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3070, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "1595:27:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1587:35:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1587:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3072, + "mutability": "mutable", + "name": "distributedRebates", + "nameLocation": "1640:18:30", + "nodeType": "VariableDeclaration", + "scope": 3073, + "src": "1632:26:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1632:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Allocation", + "nameLocation": "1335:10:30", + "nodeType": "StructDefinition", + "scope": 3226, + "src": "1328:337:30", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingExtension.AllocationState", + "documentation": { + "id": 3074, + "nodeType": "StructuredDocumentation", + "src": "1671:202:30", + "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": 3078, + "members": [ + { + "id": 3075, + "name": "Null", + "nameLocation": "1909:4:30", + "nodeType": "EnumValue", + "src": "1909:4:30" + }, + { + "id": 3076, + "name": "Active", + "nameLocation": "1923:6:30", + "nodeType": "EnumValue", + "src": "1923:6:30" + }, + { + "id": 3077, + "name": "Closed", + "nameLocation": "1939:6:30", + "nodeType": "EnumValue", + "src": "1939:6:30" + } + ], + "name": "AllocationState", + "nameLocation": "1883:15:30", + "nodeType": "EnumDefinition", + "src": "1878:73:30" + }, + { + "anonymous": false, + "documentation": { + "id": 3079, + "nodeType": "StructuredDocumentation", + "src": "1957:855:30", + "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.\n @param indexer The indexer address\n @param subgraphDeploymentID The subgraph deployment ID\n @param epoch The protocol epoch the allocation was closed on\n @param tokens The amount of tokens unallocated from the allocation\n @param allocationID The allocation identifier\n @param sender The address closing the allocation\n @param poi The proof of indexing submitted by the sender\n @param isPublic True if the allocation was force closed by someone other than the indexer/operator" + }, + "eventSelector": "f6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce1403", + "id": 3097, + "name": "AllocationClosed", + "nameLocation": "2823:16:30", + "nodeType": "EventDefinition", + "parameters": { + "id": 3096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3081, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "2865:7:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "2849:23:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2849:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3083, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "2898:20:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "2882:36:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3082, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2882:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3085, + "indexed": false, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "2936:5:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "2928:13:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2928:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3087, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2959:6:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "2951:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2951:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3089, + "indexed": true, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "2991:12:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "2975:28:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2975:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3091, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3021:6:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "3013:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3090, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3013:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3093, + "indexed": false, + "mutability": "mutable", + "name": "poi", + "nameLocation": "3045:3:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "3037:11:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3092, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3037:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3095, + "indexed": false, + "mutability": "mutable", + "name": "isPublic", + "nameLocation": "3063:8:30", + "nodeType": "VariableDeclaration", + "scope": 3097, + "src": "3058:13:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3094, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3058:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2839:238:30" + }, + "src": "2817:261:30" + }, + { + "anonymous": false, + "documentation": { + "id": 3098, + "nodeType": "StructuredDocumentation", + "src": "3084:1258:30", + "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.\n @param assetHolder The address of the asset holder, the entity paying the query fees\n @param indexer The indexer address\n @param subgraphDeploymentID The subgraph deployment ID\n @param allocationID The allocation identifier\n @param epoch The protocol epoch the rebate was collected on\n @param tokens The amount of tokens collected\n @param protocolTax The amount of tokens burnt as protocol tax\n @param curationFees The amount of tokens distributed to the curation pool\n @param queryFees The amount of tokens collected as query fees\n @param queryRebates The amount of tokens distributed to the indexer\n @param delegationRewards The amount of tokens collected from the delegation pool" + }, + "eventSelector": "f5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b", + "id": 3122, + "name": "RebateCollected", + "nameLocation": "4353:15:30", + "nodeType": "EventDefinition", + "parameters": { + "id": 3121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3100, + "indexed": false, + "mutability": "mutable", + "name": "assetHolder", + "nameLocation": "4386:11:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4378:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4378:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3102, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "4423:7:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4407:23:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4407:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3104, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "4456:20:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4440:36:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3103, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4440:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3106, + "indexed": true, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "4502:12:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4486:28:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4486:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3108, + "indexed": false, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "4532:5:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4524:13:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3110, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "4555:6:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4547:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3112, + "indexed": false, + "mutability": "mutable", + "name": "protocolTax", + "nameLocation": "4579:11:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4571:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4571:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3114, + "indexed": false, + "mutability": "mutable", + "name": "curationFees", + "nameLocation": "4608:12:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4600:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4600:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3116, + "indexed": false, + "mutability": "mutable", + "name": "queryFees", + "nameLocation": "4638:9:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4630:17:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4630:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3118, + "indexed": false, + "mutability": "mutable", + "name": "queryRebates", + "nameLocation": "4665:12:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4657:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4657:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3120, + "indexed": false, + "mutability": "mutable", + "name": "delegationRewards", + "nameLocation": "4695:17:30", + "nodeType": "VariableDeclaration", + "scope": 3122, + "src": "4687:25:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4687:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4368:350:30" + }, + "src": "4347:372:30" + }, + { + "anonymous": false, + "documentation": { + "id": 3123, + "nodeType": "StructuredDocumentation", + "src": "4725:412:30", + "text": " @dev Emitted when `indexer` was slashed for a total of `tokens` amount.\n Tracks `reward` amount of tokens given to `beneficiary`.\n @param indexer The indexer address\n @param tokens The amount of tokens slashed\n @param reward The amount of reward tokens to send to a beneficiary\n @param beneficiary The address of a beneficiary to receive a reward for the slashing" + }, + "eventSelector": "f2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f3", + "id": 3133, + "name": "StakeSlashed", + "nameLocation": "5148:12:30", + "nodeType": "EventDefinition", + "parameters": { + "id": 3132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3125, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "5177:7:30", + "nodeType": "VariableDeclaration", + "scope": 3133, + "src": "5161:23:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5161:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3127, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "5194:6:30", + "nodeType": "VariableDeclaration", + "scope": 3133, + "src": "5186:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5186:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3129, + "indexed": false, + "mutability": "mutable", + "name": "reward", + "nameLocation": "5210:6:30", + "nodeType": "VariableDeclaration", + "scope": 3133, + "src": "5202:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5202:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3131, + "indexed": false, + "mutability": "mutable", + "name": "beneficiary", + "nameLocation": "5226:11:30", + "nodeType": "VariableDeclaration", + "scope": 3133, + "src": "5218:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5218:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5160:78:30" + }, + "src": "5142:97:30" + }, + { + "documentation": { + "id": 3134, + "nodeType": "StructuredDocumentation", + "src": "5245:381:30", + "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": 3141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "closeAllocation", + "nameLocation": "5640:15:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3136, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "5664:12:30", + "nodeType": "VariableDeclaration", + "scope": 3141, + "src": "5656:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3135, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5656:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3138, + "mutability": "mutable", + "name": "poi", + "nameLocation": "5686:3:30", + "nodeType": "VariableDeclaration", + "scope": 3141, + "src": "5678:11:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3137, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5678:7:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5655:35:30" + }, + "returnParameters": { + "id": 3140, + "nodeType": "ParameterList", + "parameters": [], + "src": "5699:0:30" + }, + "scope": 3226, + "src": "5631:69:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3142, + "nodeType": "StructuredDocumentation", + "src": "5706:560:30", + "text": " @dev Collect and rebate query fees to the indexer\n This function will accept calls with zero tokens.\n We use an exponential rebate formula to calculate the amount of tokens to rebate to the indexer.\n This implementation allows collecting multiple times on the same allocation, keeping track of the\n total amount rebated, the total amount collected and compensating the indexer for the difference.\n @param tokens Amount of tokens to collect\n @param allocationID Allocation where the tokens will be assigned" + }, + "functionSelector": "8d3c100a", + "id": 3149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collect", + "nameLocation": "6280:7:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3144, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6296:6:30", + "nodeType": "VariableDeclaration", + "scope": 3149, + "src": "6288:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6288:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3146, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "6312:12:30", + "nodeType": "VariableDeclaration", + "scope": 3149, + "src": "6304:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6304:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6287:38:30" + }, + "returnParameters": { + "id": 3148, + "nodeType": "ParameterList", + "parameters": [], + "src": "6334:0:30" + }, + "scope": 3226, + "src": "6271:64:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3150, + "nodeType": "StructuredDocumentation", + "src": "6341:778:30", + "text": " @notice Slash the indexer stake. Delegated tokens are not subject to slashing.\n Note that depending on the state of the indexer's stake, the slashed amount might be smaller than the\n requested slash amount. This can happen if the indexer has moved a significant part of their stake to\n a provision. Any outstanding slashing amount should be settled using Horizon's slash function\n {IHorizonStaking.slash}.\n @dev Can only be called by the slasher role.\n @param indexer Address of indexer to slash\n @param tokens Amount of tokens to slash from the indexer stake\n @param reward Amount of reward tokens to send to a beneficiary\n @param beneficiary Address of a beneficiary to receive a reward for the slashing" + }, + "functionSelector": "4488a382", + "id": 3161, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "legacySlash", + "nameLocation": "7133:11:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3152, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7153:7:30", + "nodeType": "VariableDeclaration", + "scope": 3161, + "src": "7145:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7145:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3154, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7170:6:30", + "nodeType": "VariableDeclaration", + "scope": 3161, + "src": "7162:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7162:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3156, + "mutability": "mutable", + "name": "reward", + "nameLocation": "7186:6:30", + "nodeType": "VariableDeclaration", + "scope": 3161, + "src": "7178:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7178:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3158, + "mutability": "mutable", + "name": "beneficiary", + "nameLocation": "7202:11:30", + "nodeType": "VariableDeclaration", + "scope": 3161, + "src": "7194:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7144:70:30" + }, + "returnParameters": { + "id": 3160, + "nodeType": "ParameterList", + "parameters": [], + "src": "7223:0:30" + }, + "scope": 3226, + "src": "7124:100:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3162, + "nodeType": "StructuredDocumentation", + "src": "7230:298:30", + "text": " @notice (Legacy) Return true if operator is allowed for the service provider on the subgraph data service.\n @param operator Address of the operator\n @param indexer Address of the service provider\n @return True if operator is allowed for indexer, false otherwise" + }, + "functionSelector": "b6363cf2", + "id": 3171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isOperator", + "nameLocation": "7542:10:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3164, + "mutability": "mutable", + "name": "operator", + "nameLocation": "7561:8:30", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "7553:16:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7553:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3166, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7579:7:30", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "7571:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7571:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7552:35:30" + }, + "returnParameters": { + "id": 3170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3169, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "7611:4:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3168, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7611:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7610:6:30" + }, + "scope": 3226, + "src": "7533:84:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "7623:169:30", + "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": 3179, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasStake", + "nameLocation": "7806:8:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7823:7:30", + "nodeType": "VariableDeclaration", + "scope": 3179, + "src": "7815:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7815:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7814:17:30" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3177, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3179, + "src": "7855:4:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7855:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7854:6:30" + }, + "scope": 3226, + "src": "7797:64:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3180, + "nodeType": "StructuredDocumentation", + "src": "7867:179:30", + "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": 3187, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getIndexerStakedTokens", + "nameLocation": "8060:22:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3182, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "8091:7:30", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "8083:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8083:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8082:17:30" + }, + "returnParameters": { + "id": 3186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3185, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "8123:7:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8123:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8122:9:30" + }, + "scope": 3226, + "src": "8051:81:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3188, + "nodeType": "StructuredDocumentation", + "src": "8138:151:30", + "text": " @notice Return the allocation by ID.\n @param allocationID Address used as allocation identifier\n @return Allocation data" + }, + "functionSelector": "0e022923", + "id": 3196, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllocation", + "nameLocation": "8303:13:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3190, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "8325:12:30", + "nodeType": "VariableDeclaration", + "scope": 3196, + "src": "8317:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3189, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8317:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8316:22:30" + }, + "returnParameters": { + "id": 3195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3194, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3196, + "src": "8362:17:30", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Allocation_$3073_memory_ptr", + "typeString": "struct IHorizonStakingExtension.Allocation" + }, + "typeName": { + "id": 3193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3192, + "name": "Allocation", + "nameLocations": [ + "8362:10:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3073, + "src": "8362:10:30" + }, + "referencedDeclaration": 3073, + "src": "8362:10:30", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Allocation_$3073_storage_ptr", + "typeString": "struct IHorizonStakingExtension.Allocation" + } + }, + "visibility": "internal" + } + ], + "src": "8361:19:30" + }, + "scope": 3226, + "src": "8294:87:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3197, + "nodeType": "StructuredDocumentation", + "src": "8387:186:30", + "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": 3205, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllocationState", + "nameLocation": "8587:18:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3199, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "8614:12:30", + "nodeType": "VariableDeclaration", + "scope": 3205, + "src": "8606:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8606:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8605:22:30" + }, + "returnParameters": { + "id": 3204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3203, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3205, + "src": "8651:15:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_AllocationState_$3078", + "typeString": "enum IHorizonStakingExtension.AllocationState" + }, + "typeName": { + "id": 3202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3201, + "name": "AllocationState", + "nameLocations": [ + "8651:15:30" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3078, + "src": "8651:15:30" + }, + "referencedDeclaration": 3078, + "src": "8651:15:30", + "typeDescriptions": { + "typeIdentifier": "t_enum$_AllocationState_$3078", + "typeString": "enum IHorizonStakingExtension.AllocationState" + } + }, + "visibility": "internal" + } + ], + "src": "8650:17:30" + }, + "scope": 3226, + "src": "8578:90:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3206, + "nodeType": "StructuredDocumentation", + "src": "8674:190:30", + "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": 3213, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isAllocation", + "nameLocation": "8878:12:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3208, + "mutability": "mutable", + "name": "allocationID", + "nameLocation": "8899:12:30", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "8891:20:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8891:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8890:22:30" + }, + "returnParameters": { + "id": 3212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "8936:4:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3210, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8936:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8935:6:30" + }, + "scope": 3226, + "src": "8869:73:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3214, + "nodeType": "StructuredDocumentation", + "src": "8948:167:30", + "text": " @notice Return the time in blocks to unstake\n Deprecated, now enforced by each data service (verifier)\n @return Thawing period in blocks" + }, + "functionSelector": "c0641994", + "id": 3219, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "__DEPRECATED_getThawingPeriod", + "nameLocation": "9129:29:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3215, + "nodeType": "ParameterList", + "parameters": [], + "src": "9158:2:30" + }, + "returnParameters": { + "id": 3218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3217, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3219, + "src": "9184:6:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3216, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9184:6:30", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "9183:8:30" + }, + "scope": 3226, + "src": "9120:72:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3220, + "nodeType": "StructuredDocumentation", + "src": "9198:219:30", + "text": " @notice Return the address of the subgraph data service.\n @dev TRANSITION PERIOD: After transition period move to main HorizonStaking contract\n @return Address of the subgraph data service" + }, + "functionSelector": "9363c522", + "id": 3225, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSubgraphService", + "nameLocation": "9431:18:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3221, + "nodeType": "ParameterList", + "parameters": [], + "src": "9449:2:30" + }, + "returnParameters": { + "id": 3224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3223, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3225, + "src": "9475:7:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9475:7:30", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9474:9:30" + }, + "scope": 3226, + "src": "9422:62:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3227, + "src": "439:9047:30", + "usedErrors": [], + "usedEvents": [ + 3097, + 3122, + 3133 + ] + } + ], + "src": "46:9441:30" + }, + "id": 30 + }, + "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol", + "exportedSymbols": { + "IGraphPayments": [ + 2489 + ], + "IHorizonStakingMain": [ + 3937 + ], + "IHorizonStakingTypes": [ + 4073 + ] + }, + "id": 3938, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3228, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:31" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "../../interfaces/IGraphPayments.sol", + "id": 3230, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3938, + "sourceUnit": 2490, + "src": "71:69:31", + "symbolAliases": [ + { + "foreign": { + "id": 3229, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "80:14:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "file": "./IHorizonStakingTypes.sol", + "id": 3232, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3938, + "sourceUnit": 4074, + "src": "141:66:31", + "symbolAliases": [ + { + "foreign": { + "id": 3231, + "name": "IHorizonStakingTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "150:20:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IHorizonStakingMain", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3233, + "nodeType": "StructuredDocumentation", + "src": "209:822:31", + "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.\n @dev TRANSITION PERIOD: After transition period rename to IHorizonStaking.\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": false, + "id": 3937, + "linearizedBaseContracts": [ + 3937 + ], + "name": "IHorizonStakingMain", + "nameLocation": "1042:19:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 3234, + "nodeType": "StructuredDocumentation", + "src": "1096:323:31", + "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 now locked (including previously locked tokens)\n @param until The block number until the stake is locked" + }, + "eventSelector": "91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e980", + "id": 3242, + "name": "HorizonStakeLocked", + "nameLocation": "1430:18:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3236, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1465:15:31", + "nodeType": "VariableDeclaration", + "scope": 3242, + "src": "1449:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1449:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3238, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1490:6:31", + "nodeType": "VariableDeclaration", + "scope": 3242, + "src": "1482:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3237, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1482:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3240, + "indexed": false, + "mutability": "mutable", + "name": "until", + "nameLocation": "1506:5:31", + "nodeType": "VariableDeclaration", + "scope": 3242, + "src": "1498:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1498:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1448:64:31" + }, + "src": "1424:89:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3243, + "nodeType": "StructuredDocumentation", + "src": "1519:223:31", + "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": "32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be83", + "id": 3249, + "name": "HorizonStakeWithdrawn", + "nameLocation": "1753:21:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3245, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "1791:15:31", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "1775:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3247, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1816:6:31", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "1808:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1808:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1774:49:31" + }, + "src": "1747:77:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3250, + "nodeType": "StructuredDocumentation", + "src": "1862:537:31", + "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": 3262, + "name": "ProvisionCreated", + "nameLocation": "2410:16:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3252, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2452:15:31", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "2436:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3251, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2436:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3254, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2493:8:31", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "2477:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2477:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3256, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2519:6:31", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "2511:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2511:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3258, + "indexed": false, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "2542:14:31", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "2535:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3257, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2535:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3260, + "indexed": false, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "2573:13:31", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "2566:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3259, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2566:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2426:166:31" + }, + "src": "2404:189:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3263, + "nodeType": "StructuredDocumentation", + "src": "2599:274:31", + "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": 3271, + "name": "ProvisionIncreased", + "nameLocation": "2884:18:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2919:15:31", + "nodeType": "VariableDeclaration", + "scope": 3271, + "src": "2903:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2903:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "2952:8:31", + "nodeType": "VariableDeclaration", + "scope": 3271, + "src": "2936:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2936:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3269, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2970:6:31", + "nodeType": "VariableDeclaration", + "scope": 3271, + "src": "2962:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2962:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2902:75:31" + }, + "src": "2878:100:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3272, + "nodeType": "StructuredDocumentation", + "src": "2984:255:31", + "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": 3280, + "name": "ProvisionThawed", + "nameLocation": "3250:15:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3274, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3282:15:31", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "3266:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3266:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3276, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3315:8:31", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "3299:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3299:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3278, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3333:6:31", + "nodeType": "VariableDeclaration", + "scope": 3280, + "src": "3325:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3325:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3265:75:31" + }, + "src": "3244:97:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3281, + "nodeType": "StructuredDocumentation", + "src": "3347:258:31", + "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": 3289, + "name": "TokensDeprovisioned", + "nameLocation": "3616:19:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3283, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "3652:15:31", + "nodeType": "VariableDeclaration", + "scope": 3289, + "src": "3636:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3636:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3285, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "3685:8:31", + "nodeType": "VariableDeclaration", + "scope": 3289, + "src": "3669:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3669:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3287, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3703:6:31", + "nodeType": "VariableDeclaration", + "scope": 3289, + "src": "3695:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3695:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3635:75:31" + }, + "src": "3610:101:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3290, + "nodeType": "StructuredDocumentation", + "src": "3717:512:31", + "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": 3300, + "name": "ProvisionParametersStaged", + "nameLocation": "4240:25:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4291:15:31", + "nodeType": "VariableDeclaration", + "scope": 3300, + "src": "4275:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4275:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3294, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "4332:8:31", + "nodeType": "VariableDeclaration", + "scope": 3300, + "src": "4316:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4316:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3296, + "indexed": false, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "4357:14:31", + "nodeType": "VariableDeclaration", + "scope": 3300, + "src": "4350:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3295, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4350:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3298, + "indexed": false, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "4388:13:31", + "nodeType": "VariableDeclaration", + "scope": 3300, + "src": "4381:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3297, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4381:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "4265:142:31" + }, + "src": "4234:174:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3301, + "nodeType": "StructuredDocumentation", + "src": "4414:503:31", + "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": 3311, + "name": "ProvisionParametersSet", + "nameLocation": "4928:22:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3303, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "4976:15:31", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "4960:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4960:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3305, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "5017:8:31", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "5001:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5001:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3307, + "indexed": false, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "5042:14:31", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "5035:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3306, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5035:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3309, + "indexed": false, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "5073:13:31", + "nodeType": "VariableDeclaration", + "scope": 3311, + "src": "5066:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3308, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5066:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "4950:142:31" + }, + "src": "4922:171:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3312, + "nodeType": "StructuredDocumentation", + "src": "5099:349:31", + "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": 3322, + "name": "OperatorSet", + "nameLocation": "5459:11:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5496:15:31", + "nodeType": "VariableDeclaration", + "scope": 3322, + "src": "5480:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3313, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5480:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3316, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "5537:8:31", + "nodeType": "VariableDeclaration", + "scope": 3322, + "src": "5521:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5521:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3318, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5571:8:31", + "nodeType": "VariableDeclaration", + "scope": 3322, + "src": "5555:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5555:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3320, + "indexed": false, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "5594:7:31", + "nodeType": "VariableDeclaration", + "scope": 3322, + "src": "5589:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3319, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5589:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5470:137:31" + }, + "src": "5453:155:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3323, + "nodeType": "StructuredDocumentation", + "src": "5645:305:31", + "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": 3331, + "name": "ProvisionSlashed", + "nameLocation": "5961:16:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3325, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "5994:15:31", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "5978:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5978:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3327, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "6027:8:31", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "6011:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6011:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3329, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6045:6:31", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "6037:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6037:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5977:75:31" + }, + "src": "5955:98:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3332, + "nodeType": "StructuredDocumentation", + "src": "6059:310:31", + "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": 3340, + "name": "DelegationSlashed", + "nameLocation": "6380:17:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3334, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "6414:15:31", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "6398:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6398:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3336, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "6447:8:31", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "6431:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6431:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3338, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6465:6:31", + "nodeType": "VariableDeclaration", + "scope": 3340, + "src": "6457:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6457:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6397:75:31" + }, + "src": "6374:99:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3341, + "nodeType": "StructuredDocumentation", + "src": "6479:441:31", + "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": 3349, + "name": "DelegationSlashingSkipped", + "nameLocation": "6931:25:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3343, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "6973:15:31", + "nodeType": "VariableDeclaration", + "scope": 3349, + "src": "6957:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6957:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3345, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "7006:8:31", + "nodeType": "VariableDeclaration", + "scope": 3349, + "src": "6990:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6990:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3347, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7024:6:31", + "nodeType": "VariableDeclaration", + "scope": 3349, + "src": "7016:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7016:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6956:75:31" + }, + "src": "6925:107:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3350, + "nodeType": "StructuredDocumentation", + "src": "7038:357:31", + "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": 3360, + "name": "VerifierTokensSent", + "nameLocation": "7406:18:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3352, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "7450:15:31", + "nodeType": "VariableDeclaration", + "scope": 3360, + "src": "7434:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7434:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3354, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "7491:8:31", + "nodeType": "VariableDeclaration", + "scope": 3360, + "src": "7475:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7475:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3356, + "indexed": true, + "mutability": "mutable", + "name": "destination", + "nameLocation": "7525:11:31", + "nodeType": "VariableDeclaration", + "scope": 3360, + "src": "7509:27:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7509:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3358, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7554:6:31", + "nodeType": "VariableDeclaration", + "scope": 3360, + "src": "7546:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7546:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7424:142:31" + }, + "src": "7400:167:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3361, + "nodeType": "StructuredDocumentation", + "src": "7606:350:31", + "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\n @param shares The amount of shares delegated" + }, + "eventSelector": "237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e", + "id": 3373, + "name": "TokensDelegated", + "nameLocation": "7967:15:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3363, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "8008:15:31", + "nodeType": "VariableDeclaration", + "scope": 3373, + "src": "7992:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7992:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3365, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "8049:8:31", + "nodeType": "VariableDeclaration", + "scope": 3373, + "src": "8033:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8033:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3367, + "indexed": true, + "mutability": "mutable", + "name": "delegator", + "nameLocation": "8083:9:31", + "nodeType": "VariableDeclaration", + "scope": 3373, + "src": "8067:25:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8067:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3369, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "8110:6:31", + "nodeType": "VariableDeclaration", + "scope": 3373, + "src": "8102:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8102:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3371, + "indexed": false, + "mutability": "mutable", + "name": "shares", + "nameLocation": "8134:6:31", + "nodeType": "VariableDeclaration", + "scope": 3373, + "src": "8126:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8126:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7982:164:31" + }, + "src": "7961:186:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3374, + "nodeType": "StructuredDocumentation", + "src": "8153:397:31", + "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\n @param shares The amount of shares undelegated" + }, + "eventSelector": "0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1", + "id": 3386, + "name": "TokensUndelegated", + "nameLocation": "8561:17:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3376, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "8604:15:31", + "nodeType": "VariableDeclaration", + "scope": 3386, + "src": "8588:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8588:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3378, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "8645:8:31", + "nodeType": "VariableDeclaration", + "scope": 3386, + "src": "8629:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8629:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3380, + "indexed": true, + "mutability": "mutable", + "name": "delegator", + "nameLocation": "8679:9:31", + "nodeType": "VariableDeclaration", + "scope": 3386, + "src": "8663:25:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8663:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3382, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "8706:6:31", + "nodeType": "VariableDeclaration", + "scope": 3386, + "src": "8698:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8698:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3384, + "indexed": false, + "mutability": "mutable", + "name": "shares", + "nameLocation": "8730:6:31", + "nodeType": "VariableDeclaration", + "scope": 3386, + "src": "8722:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8722:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8578:164:31" + }, + "src": "8555:188:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3387, + "nodeType": "StructuredDocumentation", + "src": "8749:322:31", + "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": 3397, + "name": "DelegatedTokensWithdrawn", + "nameLocation": "9082:24:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3389, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "9132:15:31", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "9116:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9116:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3391, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "9173:8:31", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "9157:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9157:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3393, + "indexed": true, + "mutability": "mutable", + "name": "delegator", + "nameLocation": "9207:9:31", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "9191:25:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9191:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3395, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9234:6:31", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "9226:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9106:140:31" + }, + "src": "9076:171:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3398, + "nodeType": "StructuredDocumentation", + "src": "9253:346:31", + "text": " @notice Emitted when `delegator` withdrew delegated `tokens` from `indexer` using `withdrawDelegated`.\n @dev This event is for the legacy `withdrawDelegated` function.\n @param indexer The address of the indexer\n @param delegator The address of the delegator\n @param tokens The amount of tokens withdrawn" + }, + "eventSelector": "1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f141952", + "id": 3406, + "name": "StakeDelegatedWithdrawn", + "nameLocation": "9610:23:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3400, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "9650:7:31", + "nodeType": "VariableDeclaration", + "scope": 3406, + "src": "9634:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9634:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3402, + "indexed": true, + "mutability": "mutable", + "name": "delegator", + "nameLocation": "9675:9:31", + "nodeType": "VariableDeclaration", + "scope": 3406, + "src": "9659:25:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9659:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3404, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9694:6:31", + "nodeType": "VariableDeclaration", + "scope": 3406, + "src": "9686:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9686:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9633:68:31" + }, + "src": "9604:98:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3407, + "nodeType": "StructuredDocumentation", + "src": "9708:257:31", + "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": 3415, + "name": "TokensToDelegationPoolAdded", + "nameLocation": "9976:27:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3409, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "10020:15:31", + "nodeType": "VariableDeclaration", + "scope": 3415, + "src": "10004:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10004:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "10053:8:31", + "nodeType": "VariableDeclaration", + "scope": 3415, + "src": "10037:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10037:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "10071:6:31", + "nodeType": "VariableDeclaration", + "scope": 3415, + "src": "10063:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10063:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10003:75:31" + }, + "src": "9970:109:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3416, + "nodeType": "StructuredDocumentation", + "src": "10085:365:31", + "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": 3427, + "name": "DelegationFeeCutSet", + "nameLocation": "10461:19:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "10506:15:31", + "nodeType": "VariableDeclaration", + "scope": 3427, + "src": "10490:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10490:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "10547:8:31", + "nodeType": "VariableDeclaration", + "scope": 3427, + "src": "10531:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10531:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3423, + "indexed": true, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "10601:11:31", + "nodeType": "VariableDeclaration", + "scope": 3427, + "src": "10565:47:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 3422, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3421, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "10565:14:31", + "10580:12:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "10565:27:31" + }, + "referencedDeclaration": 2433, + "src": "10565:27:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3425, + "indexed": false, + "mutability": "mutable", + "name": "feeCut", + "nameLocation": "10630:6:31", + "nodeType": "VariableDeclaration", + "scope": 3427, + "src": "10622:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10622:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10480:162:31" + }, + "src": "10455:188:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3428, + "nodeType": "StructuredDocumentation", + "src": "10679:636:31", + "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 requestType The type of thaw request\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 @param nonce The nonce of the thaw request" + }, + "eventSelector": "036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e82046178", + "id": 3447, + "name": "ThawRequestCreated", + "nameLocation": "11326:18:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3431, + "indexed": true, + "mutability": "mutable", + "name": "requestType", + "nameLocation": "11399:11:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11354:56:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 3430, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3429, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "11354:20:31", + "11375:15:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "11354:36:31" + }, + "referencedDeclaration": 4033, + "src": "11354:36:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "11436:15:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11420:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11420:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3435, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "11477:8:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11461:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11461:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3437, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "11503:5:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11495:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11495:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3439, + "indexed": false, + "mutability": "mutable", + "name": "shares", + "nameLocation": "11526:6:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11518:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11518:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3441, + "indexed": false, + "mutability": "mutable", + "name": "thawingUntil", + "nameLocation": "11549:12:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11542:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3440, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11542:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3443, + "indexed": false, + "mutability": "mutable", + "name": "thawRequestId", + "nameLocation": "11579:13:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11571:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3442, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11571:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": false, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "11610:5:31", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "11602:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11602:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11344:277:31" + }, + "src": "11320:302:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3448, + "nodeType": "StructuredDocumentation", + "src": "11628:469:31", + "text": " @notice Emitted when a thaw request is fulfilled, meaning the stake is released.\n @param requestType The type of thaw request\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": "469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab2", + "id": 3463, + "name": "ThawRequestFulfilled", + "nameLocation": "12108:20:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3451, + "indexed": true, + "mutability": "mutable", + "name": "requestType", + "nameLocation": "12183:11:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12138:56:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 3450, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3449, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "12138:20:31", + "12159:15:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "12138:36:31" + }, + "referencedDeclaration": 4033, + "src": "12138:36:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3453, + "indexed": true, + "mutability": "mutable", + "name": "thawRequestId", + "nameLocation": "12220:13:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12204:29:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3452, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12204:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3455, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "12251:6:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12243:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12243:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3457, + "indexed": false, + "mutability": "mutable", + "name": "shares", + "nameLocation": "12275:6:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12267:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3459, + "indexed": false, + "mutability": "mutable", + "name": "thawingUntil", + "nameLocation": "12298:12:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12291:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3458, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12291:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3461, + "indexed": false, + "mutability": "mutable", + "name": "valid", + "nameLocation": "12325:5:31", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "12320:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3460, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12320:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12128:208:31" + }, + "src": "12102:235:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3464, + "nodeType": "StructuredDocumentation", + "src": "12343:451:31", + "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\n @param requestType The type of thaw request" + }, + "eventSelector": "86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b", + "id": 3479, + "name": "ThawRequestsFulfilled", + "nameLocation": "12805:21:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3467, + "indexed": true, + "mutability": "mutable", + "name": "requestType", + "nameLocation": "12881:11:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "12836:56:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 3466, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3465, + "name": "IHorizonStakingTypes.ThawRequestType", + "nameLocations": [ + "12836:20:31", + "12857:15:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "12836:36:31" + }, + "referencedDeclaration": 4033, + "src": "12836:36:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3469, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "12918:15:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "12902:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12902:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3471, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "12959:8:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "12943:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12943:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3473, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "12985:5:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "12977:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12977:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3475, + "indexed": false, + "mutability": "mutable", + "name": "thawRequestsFulfilled", + "nameLocation": "13008:21:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "13000:29:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3477, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "13047:6:31", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "13039:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13039:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12826:233:31" + }, + "src": "12799:261:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3480, + "nodeType": "StructuredDocumentation", + "src": "13099:166:31", + "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": 3484, + "name": "MaxThawingPeriodSet", + "nameLocation": "13276:19:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3482, + "indexed": false, + "mutability": "mutable", + "name": "maxThawingPeriod", + "nameLocation": "13303:16:31", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "13296:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3481, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13296:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13295:25:31" + }, + "src": "13270:51:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3485, + "nodeType": "StructuredDocumentation", + "src": "13327:228:31", + "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": 3491, + "name": "AllowedLockedVerifierSet", + "nameLocation": "13566:24:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3487, + "indexed": true, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "13607:8:31", + "nodeType": "VariableDeclaration", + "scope": 3491, + "src": "13591:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13591:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3489, + "indexed": false, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "13622:7:31", + "nodeType": "VariableDeclaration", + "scope": 3491, + "src": "13617:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13617:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13590:40:31" + }, + "src": "13560:71:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3492, + "nodeType": "StructuredDocumentation", + "src": "13637:145:31", + "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": 3494, + "name": "ThawingPeriodCleared", + "nameLocation": "13793:20:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3493, + "nodeType": "ParameterList", + "parameters": [], + "src": "13813:2:31" + }, + "src": "13787:29:31" + }, + { + "anonymous": false, + "documentation": { + "id": 3495, + "nodeType": "StructuredDocumentation", + "src": "13822:83:31", + "text": " @notice Emitted when the delegation slashing global flag is set." + }, + "eventSelector": "2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b35", + "id": 3497, + "name": "DelegationSlashingEnabled", + "nameLocation": "13916:25:31", + "nodeType": "EventDefinition", + "parameters": { + "id": 3496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13941:2:31" + }, + "src": "13910:34:31" + }, + { + "documentation": { + "id": 3498, + "nodeType": "StructuredDocumentation", + "src": "13976:84:31", + "text": " @notice Thrown when operating a zero token amount is not allowed." + }, + "errorSelector": "14549cb6", + "id": 3500, + "name": "HorizonStakingInvalidZeroTokens", + "nameLocation": "14071:31:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3499, + "nodeType": "ParameterList", + "parameters": [], + "src": "14102:2:31" + }, + "src": "14065:40:31" + }, + { + "documentation": { + "id": 3501, + "nodeType": "StructuredDocumentation", + "src": "14111:207:31", + "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": 3507, + "name": "HorizonStakingInsufficientTokens", + "nameLocation": "14329:32:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3503, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "14370:6:31", + "nodeType": "VariableDeclaration", + "scope": 3507, + "src": "14362:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14362:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3505, + "mutability": "mutable", + "name": "minRequired", + "nameLocation": "14386:11:31", + "nodeType": "VariableDeclaration", + "scope": 3507, + "src": "14378:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3504, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14378:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14361:37:31" + }, + "src": "14323:76:31" + }, + { + "documentation": { + "id": 3508, + "nodeType": "StructuredDocumentation", + "src": "14405:201:31", + "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": 3514, + "name": "HorizonStakingTooManyTokens", + "nameLocation": "14617:27:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3510, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "14653:6:31", + "nodeType": "VariableDeclaration", + "scope": 3514, + "src": "14645:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14645:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3512, + "mutability": "mutable", + "name": "maxTokens", + "nameLocation": "14669:9:31", + "nodeType": "VariableDeclaration", + "scope": 3514, + "src": "14661:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14661:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14644:35:31" + }, + "src": "14611:69:31" + }, + { + "documentation": { + "id": 3515, + "nodeType": "StructuredDocumentation", + "src": "14718:201:31", + "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": 3521, + "name": "HorizonStakingInvalidProvision", + "nameLocation": "14930:30:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3517, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "14969:15:31", + "nodeType": "VariableDeclaration", + "scope": 3521, + "src": "14961:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14961:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3519, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "14994:8:31", + "nodeType": "VariableDeclaration", + "scope": 3521, + "src": "14986:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14986:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14960:43:31" + }, + "src": "14924:80:31" + }, + { + "documentation": { + "id": 3522, + "nodeType": "StructuredDocumentation", + "src": "15010:237:31", + "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": 3530, + "name": "HorizonStakingNotAuthorized", + "nameLocation": "15258:27:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3524, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "15294:15:31", + "nodeType": "VariableDeclaration", + "scope": 3530, + "src": "15286:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15286:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3526, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "15319:8:31", + "nodeType": "VariableDeclaration", + "scope": 3530, + "src": "15311:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15311:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3528, + "mutability": "mutable", + "name": "caller", + "nameLocation": "15337:6:31", + "nodeType": "VariableDeclaration", + "scope": 3530, + "src": "15329:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15329:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15285:59:31" + }, + "src": "15252:93:31" + }, + { + "documentation": { + "id": 3531, + "nodeType": "StructuredDocumentation", + "src": "15351:236:31", + "text": " @notice Thrown when attempting to create a provision with a verifier other than the\n subgraph data service. This restriction only applies during the transition period.\n @param verifier The verifier address" + }, + "errorSelector": "353666ff", + "id": 3535, + "name": "HorizonStakingInvalidVerifier", + "nameLocation": "15598:29:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3533, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "15636:8:31", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "15628:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15628:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15627:18:31" + }, + "src": "15592:54:31" + }, + { + "documentation": { + "id": 3536, + "nodeType": "StructuredDocumentation", + "src": "15652:163:31", + "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": 3540, + "name": "HorizonStakingInvalidMaxVerifierCut", + "nameLocation": "15826:35:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3538, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "15869:14:31", + "nodeType": "VariableDeclaration", + "scope": 3540, + "src": "15862:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3537, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15862:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "15861:23:31" + }, + "src": "15820:65:31" + }, + { + "documentation": { + "id": 3541, + "nodeType": "StructuredDocumentation", + "src": "15891:217:31", + "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": 3547, + "name": "HorizonStakingInvalidThawingPeriod", + "nameLocation": "16119:34:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3543, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "16161:13:31", + "nodeType": "VariableDeclaration", + "scope": 3547, + "src": "16154:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3542, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "16154:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3545, + "mutability": "mutable", + "name": "maxThawingPeriod", + "nameLocation": "16183:16:31", + "nodeType": "VariableDeclaration", + "scope": 3547, + "src": "16176:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3544, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "16176:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "16153:47:31" + }, + "src": "16113:88:31" + }, + { + "documentation": { + "id": 3548, + "nodeType": "StructuredDocumentation", + "src": "16207:120:31", + "text": " @notice Thrown when attempting to create a provision for a data service that already has a provision." + }, + "errorSelector": "56a8581a", + "id": 3550, + "name": "HorizonStakingProvisionAlreadyExists", + "nameLocation": "16338:36:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3549, + "nodeType": "ParameterList", + "parameters": [], + "src": "16374:2:31" + }, + "src": "16332:45:31" + }, + { + "documentation": { + "id": 3551, + "nodeType": "StructuredDocumentation", + "src": "16411:202:31", + "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": 3557, + "name": "HorizonStakingInsufficientIdleStake", + "nameLocation": "16624:35:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3553, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "16668:6:31", + "nodeType": "VariableDeclaration", + "scope": 3557, + "src": "16660:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16660:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3555, + "mutability": "mutable", + "name": "minTokens", + "nameLocation": "16684:9:31", + "nodeType": "VariableDeclaration", + "scope": 3557, + "src": "16676:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16676:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16659:35:31" + }, + "src": "16618:77:31" + }, + { + "documentation": { + "id": 3558, + "nodeType": "StructuredDocumentation", + "src": "16701:265:31", + "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": 3564, + "name": "HorizonStakingInsufficientStakeForLegacyAllocations", + "nameLocation": "16977:51:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3560, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "17037:6:31", + "nodeType": "VariableDeclaration", + "scope": 3564, + "src": "17029:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17029:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3562, + "mutability": "mutable", + "name": "minTokens", + "nameLocation": "17053:9:31", + "nodeType": "VariableDeclaration", + "scope": 3564, + "src": "17045:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17045:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17028:35:31" + }, + "src": "16971:93:31" + }, + { + "documentation": { + "id": 3565, + "nodeType": "StructuredDocumentation", + "src": "17103:199:31", + "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": 3571, + "name": "HorizonStakingSlippageProtection", + "nameLocation": "17313:32:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3567, + "mutability": "mutable", + "name": "shares", + "nameLocation": "17354:6:31", + "nodeType": "VariableDeclaration", + "scope": 3571, + "src": "17346:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17346:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3569, + "mutability": "mutable", + "name": "minShares", + "nameLocation": "17370:9:31", + "nodeType": "VariableDeclaration", + "scope": 3571, + "src": "17362:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17362:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17345:35:31" + }, + "src": "17307:74:31" + }, + { + "documentation": { + "id": 3572, + "nodeType": "StructuredDocumentation", + "src": "17387:84:31", + "text": " @notice Thrown when operating a zero share amount is not allowed." + }, + "errorSelector": "7318ad99", + "id": 3574, + "name": "HorizonStakingInvalidZeroShares", + "nameLocation": "17482:31:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3573, + "nodeType": "ParameterList", + "parameters": [], + "src": "17513:2:31" + }, + "src": "17476:40:31" + }, + { + "documentation": { + "id": 3575, + "nodeType": "StructuredDocumentation", + "src": "17522:205:31", + "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": 3581, + "name": "HorizonStakingInsufficientShares", + "nameLocation": "17738:32:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3577, + "mutability": "mutable", + "name": "shares", + "nameLocation": "17779:6:31", + "nodeType": "VariableDeclaration", + "scope": 3581, + "src": "17771:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17771:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "mutability": "mutable", + "name": "minShares", + "nameLocation": "17795:9:31", + "nodeType": "VariableDeclaration", + "scope": 3581, + "src": "17787:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17787:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17770:35:31" + }, + "src": "17732:74:31" + }, + { + "documentation": { + "id": 3582, + "nodeType": "StructuredDocumentation", + "src": "17812:211:31", + "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": 3588, + "name": "HorizonStakingInvalidDelegationPoolState", + "nameLocation": "18034:40:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3584, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "18083:15:31", + "nodeType": "VariableDeclaration", + "scope": 3588, + "src": "18075:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18075:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3586, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "18108:8:31", + "nodeType": "VariableDeclaration", + "scope": 3588, + "src": "18100:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18100:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18074:43:31" + }, + "src": "18028:90:31" + }, + { + "documentation": { + "id": 3589, + "nodeType": "StructuredDocumentation", + "src": "18124:207:31", + "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": 3595, + "name": "HorizonStakingInvalidDelegationPool", + "nameLocation": "18342:35:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "18386:15:31", + "nodeType": "VariableDeclaration", + "scope": 3595, + "src": "18378:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18378:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3593, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "18411:8:31", + "nodeType": "VariableDeclaration", + "scope": 3595, + "src": "18403:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18403:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18377:43:31" + }, + "src": "18336:85:31" + }, + { + "documentation": { + "id": 3596, + "nodeType": "StructuredDocumentation", + "src": "18427:202:31", + "text": " @notice Thrown when the minimum token amount required for delegation is not met.\n @param tokens The actual token amount\n @param minTokens The minimum required token amount" + }, + "errorSelector": "b86d8857", + "id": 3602, + "name": "HorizonStakingInsufficientDelegationTokens", + "nameLocation": "18640:42:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3598, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "18691:6:31", + "nodeType": "VariableDeclaration", + "scope": 3602, + "src": "18683:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18683:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3600, + "mutability": "mutable", + "name": "minTokens", + "nameLocation": "18707:9:31", + "nodeType": "VariableDeclaration", + "scope": 3602, + "src": "18699:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18699:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18682:35:31" + }, + "src": "18634:84:31" + }, + { + "documentation": { + "id": 3603, + "nodeType": "StructuredDocumentation", + "src": "18724:113:31", + "text": " @notice Thrown when attempting to redelegate with a serivce provider that is the zero address." + }, + "errorSelector": "88d1f59c", + "id": 3605, + "name": "HorizonStakingInvalidServiceProviderZeroAddress", + "nameLocation": "18848:47:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3604, + "nodeType": "ParameterList", + "parameters": [], + "src": "18895:2:31" + }, + "src": "18842:56:31" + }, + { + "documentation": { + "id": 3606, + "nodeType": "StructuredDocumentation", + "src": "18904:105:31", + "text": " @notice Thrown when attempting to redelegate with a verifier that is the zero address." + }, + "errorSelector": "a9626059", + "id": 3608, + "name": "HorizonStakingInvalidVerifierZeroAddress", + "nameLocation": "19020:40:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3607, + "nodeType": "ParameterList", + "parameters": [], + "src": "19060:2:31" + }, + "src": "19014:49:31" + }, + { + "documentation": { + "id": 3609, + "nodeType": "StructuredDocumentation", + "src": "19105:105:31", + "text": " @notice Thrown when attempting to fulfill a thaw request but there is nothing thawing." + }, + "errorSelector": "3f199628", + "id": 3611, + "name": "HorizonStakingNothingThawing", + "nameLocation": "19221:28:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3610, + "nodeType": "ParameterList", + "parameters": [], + "src": "19249:2:31" + }, + "src": "19215:37:31" + }, + { + "documentation": { + "id": 3612, + "nodeType": "StructuredDocumentation", + "src": "19258:85:31", + "text": " @notice Thrown when a service provider has too many thaw requests." + }, + "errorSelector": "66570a56", + "id": 3614, + "name": "HorizonStakingTooManyThawRequests", + "nameLocation": "19354:33:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3613, + "nodeType": "ParameterList", + "parameters": [], + "src": "19387:2:31" + }, + "src": "19348:42:31" + }, + { + "documentation": { + "id": 3615, + "nodeType": "StructuredDocumentation", + "src": "19396:110:31", + "text": " @notice Thrown when attempting to withdraw tokens that have not thawed (legacy undelegate)." + }, + "errorSelector": "19e9a8e0", + "id": 3617, + "name": "HorizonStakingNothingToWithdraw", + "nameLocation": "19517:31:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3616, + "nodeType": "ParameterList", + "parameters": [], + "src": "19548:2:31" + }, + "src": "19511:40:31" + }, + { + "documentation": { + "id": 3618, + "nodeType": "StructuredDocumentation", + "src": "19583:329:31", + "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": 3622, + "name": "HorizonStakingStillThawing", + "nameLocation": "19923:26:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "mutability": "mutable", + "name": "until", + "nameLocation": "19958:5:31", + "nodeType": "VariableDeclaration", + "scope": 3622, + "src": "19950:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19950:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19949:15:31" + }, + "src": "19917:48:31" + }, + { + "documentation": { + "id": 3623, + "nodeType": "StructuredDocumentation", + "src": "19971:211:31", + "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.\n @param verifier The verifier address" + }, + "errorSelector": "00a483dc", + "id": 3627, + "name": "HorizonStakingVerifierNotAllowed", + "nameLocation": "20193:32:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3625, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "20234:8:31", + "nodeType": "VariableDeclaration", + "scope": 3627, + "src": "20226:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20226:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "20225:18:31" + }, + "src": "20187:57:31" + }, + { + "documentation": { + "id": 3628, + "nodeType": "StructuredDocumentation", + "src": "20250:103:31", + "text": " @notice Thrown when a service provider attempts to change their own operator access." + }, + "errorSelector": "01230653", + "id": 3630, + "name": "HorizonStakingCallerIsServiceProvider", + "nameLocation": "20364:37:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3629, + "nodeType": "ParameterList", + "parameters": [], + "src": "20401:2:31" + }, + "src": "20358:46:31" + }, + { + "documentation": { + "id": 3631, + "nodeType": "StructuredDocumentation", + "src": "20410:125:31", + "text": " @notice Thrown when trying to set a delegation fee cut that is not valid.\n @param feeCut The fee cut" + }, + "errorSelector": "54125404", + "id": 3635, + "name": "HorizonStakingInvalidDelegationFeeCut", + "nameLocation": "20546:37:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3633, + "mutability": "mutable", + "name": "feeCut", + "nameLocation": "20592:6:31", + "nodeType": "VariableDeclaration", + "scope": 3635, + "src": "20584:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20584:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20583:16:31" + }, + "src": "20540:60:31" + }, + { + "documentation": { + "id": 3636, + "nodeType": "StructuredDocumentation", + "src": "20606:60:31", + "text": " @notice Thrown when a legacy slash fails." + }, + "errorSelector": "ef370f51", + "id": 3638, + "name": "HorizonStakingLegacySlashFailed", + "nameLocation": "20677:31:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3637, + "nodeType": "ParameterList", + "parameters": [], + "src": "20708:2:31" + }, + "src": "20671:40:31" + }, + { + "documentation": { + "id": 3639, + "nodeType": "StructuredDocumentation", + "src": "20717:101:31", + "text": " @notice Thrown when there attempting to slash a provision with no tokens to slash." + }, + "errorSelector": "5452ae48", + "id": 3641, + "name": "HorizonStakingNoTokensToSlash", + "nameLocation": "20829:29:31", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3640, + "nodeType": "ParameterList", + "parameters": [], + "src": "20858:2:31" + }, + "src": "20823:38:31" + }, + { + "documentation": { + "id": 3642, + "nodeType": "StructuredDocumentation", + "src": "20891:373:31", + "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 {HorizonStakeDeposited} event.\n @param tokens Amount of tokens to stake" + }, + "functionSelector": "a694fc3a", + "id": 3647, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "stake", + "nameLocation": "21278:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3644, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "21292:6:31", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "21284:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21284:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21283:16:31" + }, + "returnParameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [], + "src": "21308:0:31" + }, + "scope": 3937, + "src": "21269:40:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3648, + "nodeType": "StructuredDocumentation", + "src": "21315:476:31", + "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 {HorizonStakeDeposited} event.\n @param serviceProvider Address of the service provider\n @param tokens Amount of tokens to stake" + }, + "functionSelector": "a2a31722", + "id": 3655, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "stakeTo", + "nameLocation": "21805:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3650, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "21821:15:31", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "21813:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21813:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3652, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "21846:6:31", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "21838:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21838:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21812:41:31" + }, + "returnParameters": { + "id": 3654, + "nodeType": "ParameterList", + "parameters": [], + "src": "21862:0:31" + }, + "scope": 3937, + "src": "21796:67:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3656, + "nodeType": "StructuredDocumentation", + "src": "21869:749:31", + "text": " @notice Deposit tokens on the service provider stake, on behalf of the service provider,\n provisioned to a specific verifier.\n @dev This function can be called by the service provider, by an authorized operator or by the verifier itself.\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 {HorizonStakeDeposited} 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": 3665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "stakeToProvision", + "nameLocation": "22632:16:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3658, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "22657:15:31", + "nodeType": "VariableDeclaration", + "scope": 3665, + "src": "22649:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22649:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3660, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "22682:8:31", + "nodeType": "VariableDeclaration", + "scope": 3665, + "src": "22674:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22674:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3662, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "22700:6:31", + "nodeType": "VariableDeclaration", + "scope": 3665, + "src": "22692:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22692:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22648:59:31" + }, + "returnParameters": { + "id": 3664, + "nodeType": "ParameterList", + "parameters": [], + "src": "22716:0:31" + }, + "scope": 3937, + "src": "22623:94:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3666, + "nodeType": "StructuredDocumentation", + "src": "22723:838:31", + "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 Note that after the transition period if there are tokens still locked they will have to be\n withdrawn by calling {withdraw}.\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 {HorizonStakeLocked} event during the transition period.\n Emits a {HorizonStakeWithdrawn} event after the transition period.\n @param tokens Amount of tokens to unstake" + }, + "functionSelector": "2e17de78", + "id": 3671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "unstake", + "nameLocation": "23575:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3668, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "23591:6:31", + "nodeType": "VariableDeclaration", + "scope": 3671, + "src": "23583:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23583:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23582:16:31" + }, + "returnParameters": { + "id": 3670, + "nodeType": "ParameterList", + "parameters": [], + "src": "23607:0:31" + }, + "scope": 3937, + "src": "23566:42:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3672, + "nodeType": "StructuredDocumentation", + "src": "23614:314:31", + "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": 3675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "23942:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3673, + "nodeType": "ParameterList", + "parameters": [], + "src": "23950:2:31" + }, + "returnParameters": { + "id": 3674, + "nodeType": "ParameterList", + "parameters": [], + "src": "23961:0:31" + }, + "scope": 3937, + "src": "23933:29:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3676, + "nodeType": "StructuredDocumentation", + "src": "23968:1408:31", + "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 During the transition period, only the subgraph data service can be used as a verifier. This\n prevents an escape hatch for legacy allocation stake.\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": 3689, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "provision", + "nameLocation": "25390:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "25417:15:31", + "nodeType": "VariableDeclaration", + "scope": 3689, + "src": "25409:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25409:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3680, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "25450:8:31", + "nodeType": "VariableDeclaration", + "scope": 3689, + "src": "25442:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25442:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3682, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "25476:6:31", + "nodeType": "VariableDeclaration", + "scope": 3689, + "src": "25468:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25468:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3684, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "25499:14:31", + "nodeType": "VariableDeclaration", + "scope": 3689, + "src": "25492:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3683, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "25492:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3686, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "25530:13:31", + "nodeType": "VariableDeclaration", + "scope": 3689, + "src": "25523:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3685, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "25523:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "25399:150:31" + }, + "returnParameters": { + "id": 3688, + "nodeType": "ParameterList", + "parameters": [], + "src": "25558:0:31" + }, + "scope": 3937, + "src": "25381:178:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3690, + "nodeType": "StructuredDocumentation", + "src": "25565:564:31", + "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": 3699, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addToProvision", + "nameLocation": "26143:14:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3692, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "26166:15:31", + "nodeType": "VariableDeclaration", + "scope": 3699, + "src": "26158:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26158:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3694, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "26191:8:31", + "nodeType": "VariableDeclaration", + "scope": 3699, + "src": "26183:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3693, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26183:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3696, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "26209:6:31", + "nodeType": "VariableDeclaration", + "scope": 3699, + "src": "26201:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26201:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26157:59:31" + }, + "returnParameters": { + "id": 3698, + "nodeType": "ParameterList", + "parameters": [], + "src": "26225:0:31" + }, + "scope": 3937, + "src": "26134:92:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3700, + "nodeType": "StructuredDocumentation", + "src": "26232:929:31", + "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": 3711, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "thaw", + "nameLocation": "27175:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3702, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "27188:15:31", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "27180:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3701, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27180:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3704, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "27213:8:31", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "27205:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27205:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3706, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "27231:6:31", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "27223:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27223:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "27179:59:31" + }, + "returnParameters": { + "id": 3710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3709, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "27257:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3708, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27257:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27256:9:31" + }, + "scope": 3937, + "src": "27166:100:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3712, + "nodeType": "StructuredDocumentation", + "src": "27272:854:31", + "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. Otherwise, the function\n will attempt to fulfill all thaw requests until the first one that is not yet expired is found.\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": 3721, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deprovision", + "nameLocation": "28140:11:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3714, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "28160:15:31", + "nodeType": "VariableDeclaration", + "scope": 3721, + "src": "28152:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28152:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3716, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "28185:8:31", + "nodeType": "VariableDeclaration", + "scope": 3721, + "src": "28177:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28177:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3718, + "mutability": "mutable", + "name": "nThawRequests", + "nameLocation": "28203:13:31", + "nodeType": "VariableDeclaration", + "scope": 3721, + "src": "28195:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28195:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "28151:66:31" + }, + "returnParameters": { + "id": 3720, + "nodeType": "ParameterList", + "parameters": [], + "src": "28226:0:31" + }, + "scope": 3937, + "src": "28131:96:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3722, + "nodeType": "StructuredDocumentation", + "src": "28233:1032:31", + "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": 3733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "reprovision", + "nameLocation": "29279:11:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3724, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "29308:15:31", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "29300:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29300:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3726, + "mutability": "mutable", + "name": "oldVerifier", + "nameLocation": "29341:11:31", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "29333:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29333:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3728, + "mutability": "mutable", + "name": "newVerifier", + "nameLocation": "29370:11:31", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "29362:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29362:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3730, + "mutability": "mutable", + "name": "nThawRequests", + "nameLocation": "29399:13:31", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "29391:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29391:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29290:128:31" + }, + "returnParameters": { + "id": 3732, + "nodeType": "ParameterList", + "parameters": [], + "src": "29427:0:31" + }, + "scope": 3937, + "src": "29270:158:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3734, + "nodeType": "StructuredDocumentation", + "src": "29434:1146:31", + "text": " @notice Stages a provision parameter update. Note that the change is not effective until the verifier calls\n {acceptProvisionParameters}. Calling this function is a no-op if the new parameters are the same as the current\n ones.\n @dev This two step update process prevents the service provider from changing the parameters\n without the verifier's consent.\n Requirements:\n - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Note that if `_maxThawingPeriod` changes the\n function will not revert if called with the same thawing period as the current one.\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": 3745, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setProvisionParameters", + "nameLocation": "30594:22:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3736, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "30634:15:31", + "nodeType": "VariableDeclaration", + "scope": 3745, + "src": "30626:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "30626:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3738, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "30667:8:31", + "nodeType": "VariableDeclaration", + "scope": 3745, + "src": "30659:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3737, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "30659:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3740, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "30692:14:31", + "nodeType": "VariableDeclaration", + "scope": 3745, + "src": "30685:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "30685:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3742, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "30723:13:31", + "nodeType": "VariableDeclaration", + "scope": 3745, + "src": "30716:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3741, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "30716:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "30616:126:31" + }, + "returnParameters": { + "id": 3744, + "nodeType": "ParameterList", + "parameters": [], + "src": "30751:0:31" + }, + "scope": 3937, + "src": "30585:167:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3746, + "nodeType": "StructuredDocumentation", + "src": "30758:257:31", + "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": 3751, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptProvisionParameters", + "nameLocation": "31029:25:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3748, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "31063:15:31", + "nodeType": "VariableDeclaration", + "scope": 3751, + "src": "31055:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31055:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "31054:25:31" + }, + "returnParameters": { + "id": 3750, + "nodeType": "ParameterList", + "parameters": [], + "src": "31088:0:31" + }, + "scope": 3937, + "src": "31020:69:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3752, + "nodeType": "StructuredDocumentation", + "src": "31095:547:31", + "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": 3763, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delegate", + "nameLocation": "31656:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3754, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "31673:15:31", + "nodeType": "VariableDeclaration", + "scope": 3763, + "src": "31665:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31665:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3756, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "31698:8:31", + "nodeType": "VariableDeclaration", + "scope": 3763, + "src": "31690:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31690:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3758, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "31716:6:31", + "nodeType": "VariableDeclaration", + "scope": 3763, + "src": "31708:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31708:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3760, + "mutability": "mutable", + "name": "minSharesOut", + "nameLocation": "31732:12:31", + "nodeType": "VariableDeclaration", + "scope": 3763, + "src": "31724:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31724:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31664:81:31" + }, + "returnParameters": { + "id": 3762, + "nodeType": "ParameterList", + "parameters": [], + "src": "31754:0:31" + }, + "scope": 3937, + "src": "31647:108:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3764, + "nodeType": "StructuredDocumentation", + "src": "31761:632:31", + "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": 3773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addToDelegationPool", + "nameLocation": "32407:19:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3766, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "32435:15:31", + "nodeType": "VariableDeclaration", + "scope": 3773, + "src": "32427:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32427:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3768, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "32460:8:31", + "nodeType": "VariableDeclaration", + "scope": 3773, + "src": "32452:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32452:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3770, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "32478:6:31", + "nodeType": "VariableDeclaration", + "scope": 3773, + "src": "32470:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32470:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "32426:59:31" + }, + "returnParameters": { + "id": 3772, + "nodeType": "ParameterList", + "parameters": [], + "src": "32494:0:31" + }, + "scope": 3937, + "src": "32398:97:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3774, + "nodeType": "StructuredDocumentation", + "src": "32501:673:31", + "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": 3785, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "undelegate", + "nameLocation": "33188:10:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3776, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "33207:15:31", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "33199:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33199:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3778, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "33232:8:31", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "33224:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33224:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3780, + "mutability": "mutable", + "name": "shares", + "nameLocation": "33250:6:31", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "33242:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3779, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33242:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33198:59:31" + }, + "returnParameters": { + "id": 3784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3783, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "33276:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3782, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33276:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "33275:9:31" + }, + "scope": 3937, + "src": "33179:106:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3786, + "nodeType": "StructuredDocumentation", + "src": "33291:1005:31", + "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. Otherwise, the function\n will attempt to fulfill all thaw requests until the first one that is not yet expired is found.\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": 3795, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawDelegated", + "nameLocation": "34310:17:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3788, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "34336:15:31", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "34328:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34328:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3790, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "34361:8:31", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "34353:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34353:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3792, + "mutability": "mutable", + "name": "nThawRequests", + "nameLocation": "34379:13:31", + "nodeType": "VariableDeclaration", + "scope": 3795, + "src": "34371:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34371:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34327:66:31" + }, + "returnParameters": { + "id": 3794, + "nodeType": "ParameterList", + "parameters": [], + "src": "34402:0:31" + }, + "scope": 3937, + "src": "34301:102:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3796, + "nodeType": "StructuredDocumentation", + "src": "34409:1169:31", + "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": 3811, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "redelegate", + "nameLocation": "35592:10:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3798, + "mutability": "mutable", + "name": "oldServiceProvider", + "nameLocation": "35620:18:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35612:26:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35612:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3800, + "mutability": "mutable", + "name": "oldVerifier", + "nameLocation": "35656:11:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35648:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35648:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3802, + "mutability": "mutable", + "name": "newServiceProvider", + "nameLocation": "35685:18:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35677:26:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35677:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3804, + "mutability": "mutable", + "name": "newVerifier", + "nameLocation": "35721:11:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35713:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35713:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "minSharesForNewProvider", + "nameLocation": "35750:23:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35742:31:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35742:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3808, + "mutability": "mutable", + "name": "nThawRequests", + "nameLocation": "35791:13:31", + "nodeType": "VariableDeclaration", + "scope": 3811, + "src": "35783:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35783:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35602:208:31" + }, + "returnParameters": { + "id": 3810, + "nodeType": "ParameterList", + "parameters": [], + "src": "35819:0:31" + }, + "scope": 3937, + "src": "35583:237:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3812, + "nodeType": "StructuredDocumentation", + "src": "35826:389:31", + "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": 3824, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDelegationFeeCut", + "nameLocation": "36229:19:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3814, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "36266:15:31", + "nodeType": "VariableDeclaration", + "scope": 3824, + "src": "36258:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "36258:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3816, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "36299:8:31", + "nodeType": "VariableDeclaration", + "scope": 3824, + "src": "36291:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "36291:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3819, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "36345:11:31", + "nodeType": "VariableDeclaration", + "scope": 3824, + "src": "36317:39:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 3818, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3817, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "36317:14:31", + "36332:12:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "36317:27:31" + }, + "referencedDeclaration": 2433, + "src": "36317:27:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3821, + "mutability": "mutable", + "name": "feeCut", + "nameLocation": "36374:6:31", + "nodeType": "VariableDeclaration", + "scope": 3824, + "src": "36366:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36366:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "36248:138:31" + }, + "returnParameters": { + "id": 3823, + "nodeType": "ParameterList", + "parameters": [], + "src": "36395:0:31" + }, + "scope": 3937, + "src": "36220:176:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3825, + "nodeType": "StructuredDocumentation", + "src": "36402:410:31", + "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": 3832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delegate", + "nameLocation": "36826:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3827, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "36843:15:31", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "36835:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "36835:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3829, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "36868:6:31", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "36860:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36860:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "36834:41:31" + }, + "returnParameters": { + "id": 3831, + "nodeType": "ParameterList", + "parameters": [], + "src": "36884:0:31" + }, + "scope": 3937, + "src": "36817:68:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3833, + "nodeType": "StructuredDocumentation", + "src": "36891:407:31", + "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": 3840, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "undelegate", + "nameLocation": "37312:10:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3835, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "37331:15:31", + "nodeType": "VariableDeclaration", + "scope": 3840, + "src": "37323:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "37323:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3837, + "mutability": "mutable", + "name": "shares", + "nameLocation": "37356:6:31", + "nodeType": "VariableDeclaration", + "scope": 3840, + "src": "37348:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37348:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "37322:41:31" + }, + "returnParameters": { + "id": 3839, + "nodeType": "ParameterList", + "parameters": [], + "src": "37372:0:31" + }, + "scope": 3937, + "src": "37303:70:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3841, + "nodeType": "StructuredDocumentation", + "src": "37379:485:31", + "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 tokens undelegated before horizon upgrade.\n @dev See {delegate}.\n @param serviceProvider The service provider address\n @param deprecated Deprecated parameter kept for backwards compatibility\n @return The amount of tokens withdrawn" + }, + "functionSelector": "51a60b02", + "id": 3850, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawDelegated", + "nameLocation": "37878:17:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "37913:15:31", + "nodeType": "VariableDeclaration", + "scope": 3850, + "src": "37905:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "37905:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3845, + "mutability": "mutable", + "name": "deprecated", + "nameLocation": "37946:10:31", + "nodeType": "VariableDeclaration", + "scope": 3850, + "src": "37938:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3844, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "37938:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "37895:103:31" + }, + "returnParameters": { + "id": 3849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3848, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3850, + "src": "38017:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3847, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38017:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "38016:9:31" + }, + "scope": 3937, + "src": "37869:157:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3851, + "nodeType": "StructuredDocumentation", + "src": "38032:1190:31", + "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": 3862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "slash", + "nameLocation": "39236:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3853, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "39259:15:31", + "nodeType": "VariableDeclaration", + "scope": 3862, + "src": "39251:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "39251:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3855, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "39292:6:31", + "nodeType": "VariableDeclaration", + "scope": 3862, + "src": "39284:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39284:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "tokensVerifier", + "nameLocation": "39316:14:31", + "nodeType": "VariableDeclaration", + "scope": 3862, + "src": "39308:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39308:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3859, + "mutability": "mutable", + "name": "verifierDestination", + "nameLocation": "39348:19:31", + "nodeType": "VariableDeclaration", + "scope": 3862, + "src": "39340:27:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "39340:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "39241:132:31" + }, + "returnParameters": { + "id": 3861, + "nodeType": "ParameterList", + "parameters": [], + "src": "39382:0:31" + }, + "scope": 3937, + "src": "39227:156:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3863, + "nodeType": "StructuredDocumentation", + "src": "39389:769:31", + "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": 3876, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "provisionLocked", + "nameLocation": "40172:15:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3865, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "40205:15:31", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "40197:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "40197:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3867, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "40238:8:31", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "40230:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "40230:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3869, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "40264:6:31", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "40256:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3868, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40256:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3871, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "40287:14:31", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "40280:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3870, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "40280:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3873, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "40318:13:31", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "40311:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3872, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "40311:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "40187:150:31" + }, + "returnParameters": { + "id": 3875, + "nodeType": "ParameterList", + "parameters": [], + "src": "40346:0:31" + }, + "scope": 3937, + "src": "40163:184:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3877, + "nodeType": "StructuredDocumentation", + "src": "40353:474:31", + "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": 3886, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setOperatorLocked", + "nameLocation": "40841:17:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3879, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "40867:8:31", + "nodeType": "VariableDeclaration", + "scope": 3886, + "src": "40859:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "40859:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3881, + "mutability": "mutable", + "name": "operator", + "nameLocation": "40885:8:31", + "nodeType": "VariableDeclaration", + "scope": 3886, + "src": "40877:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3880, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "40877:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3883, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "40900:7:31", + "nodeType": "VariableDeclaration", + "scope": 3886, + "src": "40895:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3882, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40895:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "40858:50:31" + }, + "returnParameters": { + "id": 3885, + "nodeType": "ParameterList", + "parameters": [], + "src": "40917:0:31" + }, + "scope": 3937, + "src": "40832:86:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3887, + "nodeType": "StructuredDocumentation", + "src": "40924:449:31", + "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": 3894, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setAllowedLockedVerifier", + "nameLocation": "41387:24:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3889, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "41420:8:31", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "41412:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "41412:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3891, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "41435:7:31", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "41430:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3890, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "41430:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "41411:32:31" + }, + "returnParameters": { + "id": 3893, + "nodeType": "ParameterList", + "parameters": [], + "src": "41452:0:31" + }, + "scope": 3937, + "src": "41378:75:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3895, + "nodeType": "StructuredDocumentation", + "src": "41459:146:31", + "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": 3898, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDelegationSlashingEnabled", + "nameLocation": "41619:28:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3896, + "nodeType": "ParameterList", + "parameters": [], + "src": "41647:2:31" + }, + "returnParameters": { + "id": 3897, + "nodeType": "ParameterList", + "parameters": [], + "src": "41658:0:31" + }, + "scope": 3937, + "src": "41610:49:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3899, + "nodeType": "StructuredDocumentation", + "src": "41665:293:31", + "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": 3902, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clearThawingPeriod", + "nameLocation": "41972:18:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3900, + "nodeType": "ParameterList", + "parameters": [], + "src": "41990:2:31" + }, + "returnParameters": { + "id": 3901, + "nodeType": "ParameterList", + "parameters": [], + "src": "42001:0:31" + }, + "scope": 3937, + "src": "41963:39:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3903, + "nodeType": "StructuredDocumentation", + "src": "42008:163:31", + "text": " @notice Sets the global maximum thawing period allowed for provisions.\n @param maxThawingPeriod The new maximum thawing period, in seconds" + }, + "functionSelector": "259bc435", + "id": 3908, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMaxThawingPeriod", + "nameLocation": "42185:19:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3905, + "mutability": "mutable", + "name": "maxThawingPeriod", + "nameLocation": "42212:16:31", + "nodeType": "VariableDeclaration", + "scope": 3908, + "src": "42205:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3904, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "42205:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "42204:25:31" + }, + "returnParameters": { + "id": 3907, + "nodeType": "ParameterList", + "parameters": [], + "src": "42238:0:31" + }, + "scope": 3937, + "src": "42176:63:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3909, + "nodeType": "StructuredDocumentation", + "src": "42245:368:31", + "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": 3918, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setOperator", + "nameLocation": "42627:11:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3911, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "42647:8:31", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "42639:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42639:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3913, + "mutability": "mutable", + "name": "operator", + "nameLocation": "42665:8:31", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "42657:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42657:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3915, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "42680:7:31", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "42675:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3914, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42675:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42638:50:31" + }, + "returnParameters": { + "id": 3917, + "nodeType": "ParameterList", + "parameters": [], + "src": "42697:0:31" + }, + "scope": 3937, + "src": "42618:80:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3919, + "nodeType": "StructuredDocumentation", + "src": "42704:402:31", + "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": 3930, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isAuthorized", + "nameLocation": "43120:12:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3921, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "43141:15:31", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "43133:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3920, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43133:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3923, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "43166:8:31", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "43158:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3922, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43158:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3925, + "mutability": "mutable", + "name": "operator", + "nameLocation": "43184:8:31", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "43176:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43176:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43132:61:31" + }, + "returnParameters": { + "id": 3929, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3928, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "43217:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3927, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43217:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "43216:6:31" + }, + "scope": 3937, + "src": "43111:112:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3931, + "nodeType": "StructuredDocumentation", + "src": "43229:120:31", + "text": " @notice Get the address of the staking extension.\n @return The address of the staking extension" + }, + "functionSelector": "66ee1b28", + "id": 3936, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStakingExtension", + "nameLocation": "43363:19:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3932, + "nodeType": "ParameterList", + "parameters": [], + "src": "43382:2:31" + }, + "returnParameters": { + "id": 3935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3934, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3936, + "src": "43408:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43408:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43407:9:31" + }, + "scope": 3937, + "src": "43354:63:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3938, + "src": "1032:42387:31", + "usedErrors": [ + 3500, + 3507, + 3514, + 3521, + 3530, + 3535, + 3540, + 3547, + 3550, + 3557, + 3564, + 3571, + 3574, + 3581, + 3588, + 3595, + 3602, + 3605, + 3608, + 3611, + 3614, + 3617, + 3622, + 3627, + 3630, + 3635, + 3638, + 3641 + ], + "usedEvents": [ + 3242, + 3249, + 3262, + 3271, + 3280, + 3289, + 3300, + 3311, + 3322, + 3331, + 3340, + 3349, + 3360, + 3373, + 3386, + 3397, + 3406, + 3415, + 3427, + 3447, + 3463, + 3479, + 3484, + 3491, + 3494, + 3497 + ] + } + ], + "src": "46:43374:31" + }, + "id": 31 + }, + "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "exportedSymbols": { + "IHorizonStakingTypes": [ + 4073 + ] + }, + "id": 4074, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3939, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:32" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IHorizonStakingTypes", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3940, + "nodeType": "StructuredDocumentation", + "src": "71:552:32", + "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.\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": 4073, + "linearizedBaseContracts": [ + 4073 + ], + "name": "IHorizonStakingTypes", + "nameLocation": "634:20:32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IHorizonStakingTypes.Provision", + "documentation": { + "id": 3941, + "nodeType": "StructuredDocumentation", + "src": "661:1299:32", + "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.\n @param tokens Service provider tokens in the provision (does not include delegated tokens)\n @param tokensThawing Service provider tokens that are being thawed (and will stop being slashable soon)\n @param sharesThawing Shares representing the thawing tokens\n @param maxVerifierCut Max amount that can be taken by the verifier when slashing, expressed in parts-per-million of the amount slashed\n @param thawingPeriod Time, in seconds, tokens must thaw before being withdrawn\n @param createdAt Timestamp when the provision was created\n @param maxVerifierCutPending Pending value for `maxVerifierCut`. Verifier needs to accept it before it becomes active.\n @param thawingPeriodPending Pending value for `thawingPeriod`. Verifier needs to accept it before it becomes active.\n @param lastParametersStagedAt Timestamp when the provision parameters were last staged. Can be used by data service implementation to\n implement arbitrary parameter update logic.\n @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid." + }, + "id": 3962, + "members": [ + { + "constant": false, + "id": 3943, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2000:6:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "1992:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1992:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3945, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "2024:13:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2016:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2016:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3947, + "mutability": "mutable", + "name": "sharesThawing", + "nameLocation": "2055:13:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2047:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2047:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3949, + "mutability": "mutable", + "name": "maxVerifierCut", + "nameLocation": "2085:14:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2078:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3948, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2078:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3951, + "mutability": "mutable", + "name": "thawingPeriod", + "nameLocation": "2116:13:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2109:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3950, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2109:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3953, + "mutability": "mutable", + "name": "createdAt", + "nameLocation": "2146:9:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2139:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3952, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2139:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3955, + "mutability": "mutable", + "name": "maxVerifierCutPending", + "nameLocation": "2172:21:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2165:28:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3954, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2165:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3957, + "mutability": "mutable", + "name": "thawingPeriodPending", + "nameLocation": "2210:20:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2203:27:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3956, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2203:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3959, + "mutability": "mutable", + "name": "lastParametersStagedAt", + "nameLocation": "2248:22:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2240:30:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2240:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3961, + "mutability": "mutable", + "name": "thawingNonce", + "nameLocation": "2288:12:32", + "nodeType": "VariableDeclaration", + "scope": 3962, + "src": "2280:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2280:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Provision", + "nameLocation": "1972:9:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "1965:342:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.ServiceProvider", + "documentation": { + "id": 3963, + "nodeType": "StructuredDocumentation", + "src": "2313:384:32", + "text": " @notice Public representation of a service provider.\n @dev See {ServiceProviderInternal} for the actual storage representation\n @param tokensStaked Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n @param tokensProvisioned Total amount of tokens locked in provisions (only staked by the provider)" + }, + "id": 3968, + "members": [ + { + "constant": false, + "id": 3965, + "mutability": "mutable", + "name": "tokensStaked", + "nameLocation": "2743:12:32", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "2735:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3967, + "mutability": "mutable", + "name": "tokensProvisioned", + "nameLocation": "2773:17:32", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "2765:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2765:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ServiceProvider", + "nameLocation": "2709:15:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "2702:95:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.ServiceProviderInternal", + "documentation": { + "id": 3969, + "nodeType": "StructuredDocumentation", + "src": "2803:700:32", + "text": " @notice Internal representation of a service provider.\n @dev It contains deprecated fields from the `Indexer` struct to maintain storage compatibility.\n @param tokensStaked Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n @param __DEPRECATED_tokensAllocated (Deprecated) Tokens used in allocations\n @param __DEPRECATED_tokensLocked (Deprecated) Tokens locked for withdrawal subject to thawing period\n @param __DEPRECATED_tokensLockedUntil (Deprecated) Block when locked tokens can be withdrawn\n @param tokensProvisioned Total amount of tokens locked in provisions (only staked by the provider)" + }, + "id": 3980, + "members": [ + { + "constant": false, + "id": 3971, + "mutability": "mutable", + "name": "tokensStaked", + "nameLocation": "3557:12:32", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "3549:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3549:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3973, + "mutability": "mutable", + "name": "__DEPRECATED_tokensAllocated", + "nameLocation": "3587:28:32", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "3579:36:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3579:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3975, + "mutability": "mutable", + "name": "__DEPRECATED_tokensLocked", + "nameLocation": "3633:25:32", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "3625:33:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3974, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3625:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3977, + "mutability": "mutable", + "name": "__DEPRECATED_tokensLockedUntil", + "nameLocation": "3676:30:32", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "3668:38:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3668:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3979, + "mutability": "mutable", + "name": "tokensProvisioned", + "nameLocation": "3724:17:32", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "3716:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3716:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ServiceProviderInternal", + "nameLocation": "3515:23:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "3508:240:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.DelegationPool", + "documentation": { + "id": 3981, + "nodeType": "StructuredDocumentation", + "src": "3754:483:32", + "text": " @notice Public representation of a delegation pool.\n @dev See {DelegationPoolInternal} for the actual storage representation\n @param tokens Total tokens as pool reserves\n @param shares Total shares minted in the pool\n @param tokensThawing Tokens thawing in the pool\n @param sharesThawing Shares representing the thawing tokens\n @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid." + }, + "id": 3992, + "members": [ + { + "constant": false, + "id": 3983, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "4282:6:32", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4274:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4274:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3985, + "mutability": "mutable", + "name": "shares", + "nameLocation": "4306:6:32", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4298:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4298:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3987, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "4330:13:32", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4322:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4322:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3989, + "mutability": "mutable", + "name": "sharesThawing", + "nameLocation": "4361:13:32", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4353:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4353:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3991, + "mutability": "mutable", + "name": "thawingNonce", + "nameLocation": "4392:12:32", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4384:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4384:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "DelegationPool", + "nameLocation": "4249:14:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "4242:169:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.DelegationPoolInternal", + "documentation": { + "id": 3993, + "nodeType": "StructuredDocumentation", + "src": "4417:1077:32", + "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.\n @param __DEPRECATED_cooldownBlocks (Deprecated) Time, in blocks, an indexer must wait before updating delegation parameters\n @param __DEPRECATED_indexingRewardCut (Deprecated) Percentage of indexing rewards for the service provider, in PPM\n @param __DEPRECATED_queryFeeCut (Deprecated) Percentage of query fees for the service provider, in PPM\n @param __DEPRECATED_updatedAtBlock (Deprecated) Block when the delegation parameters were last updated\n @param tokens Total tokens as pool reserves\n @param shares Total shares minted in the pool\n @param delegators Delegation details by delegator\n @param tokensThawing Tokens thawing in the pool\n @param sharesThawing Shares representing the thawing tokens\n @param thawingNonce Value of the current thawing nonce. Thaw requests with older nonces are invalid." + }, + "id": 4017, + "members": [ + { + "constant": false, + "id": 3995, + "mutability": "mutable", + "name": "__DEPRECATED_cooldownBlocks", + "nameLocation": "5546:27:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5539:34:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3994, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5539:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3997, + "mutability": "mutable", + "name": "__DEPRECATED_indexingRewardCut", + "nameLocation": "5590:30:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5583:37:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3996, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5583:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3999, + "mutability": "mutable", + "name": "__DEPRECATED_queryFeeCut", + "nameLocation": "5637:24:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5630:31:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3998, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5630:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4001, + "mutability": "mutable", + "name": "__DEPRECATED_updatedAtBlock", + "nameLocation": "5679:27:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5671:35:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5671:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4003, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "5724:6:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5716:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5716:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4005, + "mutability": "mutable", + "name": "shares", + "nameLocation": "5748:6:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5740:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5740:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4010, + "mutability": "mutable", + "name": "delegators", + "nameLocation": "5824:10:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5764:70:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DelegationInternal_$4029_storage_$", + "typeString": "mapping(address => struct IHorizonStakingTypes.DelegationInternal)" + }, + "typeName": { + "id": 4009, + "keyName": "delegator", + "keyNameLocation": "5780:9:32", + "keyType": { + "id": 4006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5772:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5764:59:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DelegationInternal_$4029_storage_$", + "typeString": "mapping(address => struct IHorizonStakingTypes.DelegationInternal)" + }, + "valueName": "delegation", + "valueNameLocation": "5812:10:32", + "valueType": { + "id": 4008, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4007, + "name": "DelegationInternal", + "nameLocations": [ + "5793:18:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4029, + "src": "5793:18:32" + }, + "referencedDeclaration": 4029, + "src": "5793:18:32", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationInternal_$4029_storage_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationInternal" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4012, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "5852:13:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5844:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5844:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4014, + "mutability": "mutable", + "name": "sharesThawing", + "nameLocation": "5883:13:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5875:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5875:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4016, + "mutability": "mutable", + "name": "thawingNonce", + "nameLocation": "5914:12:32", + "nodeType": "VariableDeclaration", + "scope": 4017, + "src": "5906:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5906:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "DelegationPoolInternal", + "nameLocation": "5506:22:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "5499:434:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.Delegation", + "documentation": { + "id": 4018, + "nodeType": "StructuredDocumentation", + "src": "5939:207:32", + "text": " @notice Public representation of delegation details.\n @dev See {DelegationInternal} for the actual storage representation\n @param shares Shares owned by a delegator in the pool" + }, + "id": 4021, + "members": [ + { + "constant": false, + "id": 4020, + "mutability": "mutable", + "name": "shares", + "nameLocation": "6187:6:32", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "6179:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6179:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Delegation", + "nameLocation": "6158:10:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "6151:49:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.DelegationInternal", + "documentation": { + "id": 4022, + "nodeType": "StructuredDocumentation", + "src": "6206:431:32", + "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.\n @param shares Shares owned by the delegator in the pool\n @param __DEPRECATED_tokensLocked Tokens locked for undelegation\n @param __DEPRECATED_tokensLockedUntil Epoch when locked tokens can be withdrawn" + }, + "id": 4029, + "members": [ + { + "constant": false, + "id": 4024, + "mutability": "mutable", + "name": "shares", + "nameLocation": "6686:6:32", + "nodeType": "VariableDeclaration", + "scope": 4029, + "src": "6678:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6678:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4026, + "mutability": "mutable", + "name": "__DEPRECATED_tokensLocked", + "nameLocation": "6710:25:32", + "nodeType": "VariableDeclaration", + "scope": 4029, + "src": "6702:33:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6702:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4028, + "mutability": "mutable", + "name": "__DEPRECATED_tokensLockedUntil", + "nameLocation": "6753:30:32", + "nodeType": "VariableDeclaration", + "scope": 4029, + "src": "6745:38:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6745:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "DelegationInternal", + "nameLocation": "6649:18:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "6642:148:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.ThawRequestType", + "documentation": { + "id": 4030, + "nodeType": "StructuredDocumentation", + "src": "6796:201:32", + "text": " @dev Enum to specify the type of thaw request.\n @param Provision Represents a thaw request for a provision.\n @param Delegation Represents a thaw request for a delegation." + }, + "id": 4033, + "members": [ + { + "id": 4031, + "name": "Provision", + "nameLocation": "7033:9:32", + "nodeType": "EnumValue", + "src": "7033:9:32" + }, + { + "id": 4032, + "name": "Delegation", + "nameLocation": "7052:10:32", + "nodeType": "EnumValue", + "src": "7052:10:32" + } + ], + "name": "ThawRequestType", + "nameLocation": "7007:15:32", + "nodeType": "EnumDefinition", + "src": "7002:66:32" + }, + { + "canonicalName": "IHorizonStakingTypes.ThawRequest", + "documentation": { + "id": 4034, + "nodeType": "StructuredDocumentation", + "src": "7074:494:32", + "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.\n @param shares Shares that represent the tokens being thawed\n @param thawingUntil The timestamp when the thawed funds can be removed from the provision\n @param nextRequest Id of the next thaw request in the linked list\n @param thawingNonce Used to invalidate unfulfilled thaw requests" + }, + "id": 4043, + "members": [ + { + "constant": false, + "id": 4036, + "mutability": "mutable", + "name": "shares", + "nameLocation": "7610:6:32", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "7602:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7602:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4038, + "mutability": "mutable", + "name": "thawingUntil", + "nameLocation": "7633:12:32", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "7626:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 4037, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7626:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4040, + "mutability": "mutable", + "name": "nextRequest", + "nameLocation": "7663:11:32", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "7655:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4039, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7655:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4042, + "mutability": "mutable", + "name": "thawingNonce", + "nameLocation": "7692:12:32", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "7684:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4041, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7684:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ThawRequest", + "nameLocation": "7580:11:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "7573:138:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.FulfillThawRequestsParams", + "documentation": { + "id": 4044, + "nodeType": "StructuredDocumentation", + "src": "7717:817:32", + "text": " @notice Parameters to fulfill thaw requests.\n @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function.\n @param requestType The type of thaw request (Provision or Delegation)\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 tokensThawing The current amount of tokens already thawing\n @param sharesThawing The current amount of shares already thawing\n @param nThawRequests The number of thaw requests to fulfill. If set to 0, all thaw requests are fulfilled.\n @param thawingNonce The current valid thawing nonce. Any thaw request with a different nonce is invalid and should be ignored." + }, + "id": 4062, + "members": [ + { + "constant": false, + "id": 4047, + "mutability": "mutable", + "name": "requestType", + "nameLocation": "8598:11:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8582:27:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + }, + "typeName": { + "id": 4046, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4045, + "name": "ThawRequestType", + "nameLocations": [ + "8582:15:32" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "8582:15:32" + }, + "referencedDeclaration": 4033, + "src": "8582:15:32", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ThawRequestType_$4033", + "typeString": "enum IHorizonStakingTypes.ThawRequestType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4049, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "8627:15:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8619:23:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8619:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "8660:8:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8652:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8652:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8686:5:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8678:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8678:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4055, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "8709:13:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8701:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8701:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4057, + "mutability": "mutable", + "name": "sharesThawing", + "nameLocation": "8740:13:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8732:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8732:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4059, + "mutability": "mutable", + "name": "nThawRequests", + "nameLocation": "8771:13:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8763:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8763:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4061, + "mutability": "mutable", + "name": "thawingNonce", + "nameLocation": "8802:12:32", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "8794:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "FulfillThawRequestsParams", + "nameLocation": "8546:25:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "8539:282:32", + "visibility": "public" + }, + { + "canonicalName": "IHorizonStakingTypes.TraverseThawRequestsResults", + "documentation": { + "id": 4063, + "nodeType": "StructuredDocumentation", + "src": "8827:427:32", + "text": " @notice Results of the traversal of thaw requests.\n @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function.\n @param requestsFulfilled The number of thaw requests fulfilled\n @param tokensThawed The total amount of tokens thawed\n @param tokensThawing The total amount of tokens thawing\n @param sharesThawing The total amount of shares thawing" + }, + "id": 4072, + "members": [ + { + "constant": false, + "id": 4065, + "mutability": "mutable", + "name": "requestsFulfilled", + "nameLocation": "9312:17:32", + "nodeType": "VariableDeclaration", + "scope": 4072, + "src": "9304:25:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9304:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4067, + "mutability": "mutable", + "name": "tokensThawed", + "nameLocation": "9347:12:32", + "nodeType": "VariableDeclaration", + "scope": 4072, + "src": "9339:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9339:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4069, + "mutability": "mutable", + "name": "tokensThawing", + "nameLocation": "9377:13:32", + "nodeType": "VariableDeclaration", + "scope": 4072, + "src": "9369:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9369:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4071, + "mutability": "mutable", + "name": "sharesThawing", + "nameLocation": "9408:13:32", + "nodeType": "VariableDeclaration", + "scope": 4072, + "src": "9400:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9400:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "TraverseThawRequestsResults", + "nameLocation": "9266:27:32", + "nodeType": "StructDefinition", + "scope": 4073, + "src": "9259:169:32", + "visibility": "public" + } + ], + "scope": 4074, + "src": "624:8806:32", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:9385:32" + }, + "id": 32 + }, + "@graphprotocol/horizon/contracts/libraries/LinkedList.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", + "exportedSymbols": { + "LinkedList": [ + 4364 + ] + }, + "id": 4365, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4075, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:33" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LinkedList", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4076, + "nodeType": "StructuredDocumentation", + "src": "71:714:33", + "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\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": 4364, + "linearizedBaseContracts": [ + 4364 + ], + "name": "LinkedList", + "nameLocation": "794:10:33", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4080, + "libraryName": { + "id": 4077, + "name": "LinkedList", + "nameLocations": [ + "817:10:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4364, + "src": "817:10:33" + }, + "nodeType": "UsingForDirective", + "src": "811:26:33", + "typeName": { + "id": 4079, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4078, + "name": "List", + "nameLocations": [ + "832:4:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "832:4:33" + }, + "referencedDeclaration": 4090, + "src": "832:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + } + }, + { + "canonicalName": "LinkedList.List", + "documentation": { + "id": 4081, + "nodeType": "StructuredDocumentation", + "src": "843:264:33", + "text": " @notice Represents a linked list\n @param head The head of the list\n @param tail The tail of the list\n @param nonce A nonce, which can optionally be used to generate unique ids\n @param count The number of items in the list" + }, + "id": 4090, + "members": [ + { + "constant": false, + "id": 4083, + "mutability": "mutable", + "name": "head", + "nameLocation": "1142:4:33", + "nodeType": "VariableDeclaration", + "scope": 4090, + "src": "1134:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4082, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1134:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4085, + "mutability": "mutable", + "name": "tail", + "nameLocation": "1164:4:33", + "nodeType": "VariableDeclaration", + "scope": 4090, + "src": "1156:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4084, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1156:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4087, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "1186:5:33", + "nodeType": "VariableDeclaration", + "scope": 4090, + "src": "1178:13:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1178:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4089, + "mutability": "mutable", + "name": "count", + "nameLocation": "1209:5:33", + "nodeType": "VariableDeclaration", + "scope": 4090, + "src": "1201:13:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1201:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "List", + "nameLocation": "1119:4:33", + "nodeType": "StructDefinition", + "scope": 4364, + "src": "1112:109:33", + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 4091, + "nodeType": "StructuredDocumentation", + "src": "1227:32:33", + "text": "@notice Empty bytes constant" + }, + "id": 4097, + "mutability": "constant", + "name": "NULL_BYTES", + "nameLocation": "1288:10:33", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "1264:46:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4092, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1264:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": { + "arguments": [ + { + "hexValue": "", + "id": 4095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1307:2:33", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 4094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1301:5:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4093, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1301:5:33", + "typeDescriptions": {} + } + }, + "id": 4096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1301:9:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 4098, + "nodeType": "StructuredDocumentation", + "src": "1317:55:33", + "text": "@notice Maximum amount of items allowed in the list" + }, + "id": 4101, + "mutability": "constant", + "name": "MAX_ITEMS", + "nameLocation": "1403:9:33", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "1377:44:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4099, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1377:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31305f303030", + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:6:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10_000" + }, + "visibility": "internal" + }, + { + "documentation": { + "id": 4102, + "nodeType": "StructuredDocumentation", + "src": "1428:82:33", + "text": " @notice Thrown when trying to remove an item from an empty list" + }, + "errorSelector": "ddaf8f21", + "id": 4104, + "name": "LinkedListEmptyList", + "nameLocation": "1521:19:33", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4103, + "nodeType": "ParameterList", + "parameters": [], + "src": "1540:2:33" + }, + "src": "1515:28:33" + }, + { + "documentation": { + "id": 4105, + "nodeType": "StructuredDocumentation", + "src": "1549:118:33", + "text": " @notice Thrown when trying to add an item to a list that has reached the maximum number of elements" + }, + "errorSelector": "ea315ac0", + "id": 4107, + "name": "LinkedListMaxElementsExceeded", + "nameLocation": "1678:29:33", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4106, + "nodeType": "ParameterList", + "parameters": [], + "src": "1707:2:33" + }, + "src": "1672:38:33" + }, + { + "documentation": { + "id": 4108, + "nodeType": "StructuredDocumentation", + "src": "1716:99:33", + "text": " @notice Thrown when trying to traverse a list with more iterations than elements" + }, + "errorSelector": "9482373a", + "id": 4110, + "name": "LinkedListInvalidIterations", + "nameLocation": "1826:27:33", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4109, + "nodeType": "ParameterList", + "parameters": [], + "src": "1853:2:33" + }, + "src": "1820:36:33" + }, + { + "documentation": { + "id": 4111, + "nodeType": "StructuredDocumentation", + "src": "1862:88:33", + "text": " @notice Thrown when trying to add an item with id equal to bytes32(0)" + }, + "errorSelector": "8f4a893d", + "id": 4113, + "name": "LinkedListInvalidZeroId", + "nameLocation": "1961:23:33", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4112, + "nodeType": "ParameterList", + "parameters": [], + "src": "1984:2:33" + }, + "src": "1955:32:33" + }, + { + "body": { + "id": 4171, + "nodeType": "Block", + "src": "2503:262:33", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4123, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2521:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2526:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "2521:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4125, + "name": "MAX_ITEMS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4101, + "src": "2534:9:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2521:22:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4127, + "name": "LinkedListMaxElementsExceeded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4107, + "src": "2545:29:33", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 4128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2545:31:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2513:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2513:64:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4130, + "nodeType": "ExpressionStatement", + "src": "2513:64:33" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4132, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4119, + "src": "2595:2:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2609: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": 4134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2601:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 4133, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2601:7:33", + "typeDescriptions": {} + } + }, + "id": 4136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2601:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2595:16:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4138, + "name": "LinkedListInvalidZeroId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4113, + "src": "2613:23:33", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2613:25:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4131, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2587:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2587:52:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4141, + "nodeType": "ExpressionStatement", + "src": "2587:52:33" + }, + { + "expression": { + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4142, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2649:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4144, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2654:4:33", + "memberName": "tail", + "nodeType": "MemberAccess", + "referencedDeclaration": 4085, + "src": "2649:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4145, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4119, + "src": "2661:2:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2649:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4147, + "nodeType": "ExpressionStatement", + "src": "2649:14:33" + }, + { + "expression": { + "id": 4152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4148, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2673:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2678:5:33", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 4087, + "src": "2673:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2687:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2673:15:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4153, + "nodeType": "ExpressionStatement", + "src": "2673:15:33" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4154, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2702:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2707:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "2702:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2716:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2702:15:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4164, + "nodeType": "IfStatement", + "src": "2698:35:33", + "trueBody": { + "expression": { + "id": 4162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4158, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2719:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2724:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "2719:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4161, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4119, + "src": "2731:2:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2719:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4163, + "nodeType": "ExpressionStatement", + "src": "2719:14:33" + } + }, + { + "expression": { + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4165, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "2743:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2748:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "2743:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 4168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2757:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2743:15:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4170, + "nodeType": "ExpressionStatement", + "src": "2743:15:33" + } + ] + }, + "documentation": { + "id": 4114, + "nodeType": "StructuredDocumentation", + "src": "1993:448:33", + "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": 4172, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTail", + "nameLocation": "2455:7:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4117, + "mutability": "mutable", + "name": "self", + "nameLocation": "2476:4:33", + "nodeType": "VariableDeclaration", + "scope": 4172, + "src": "2463:17:33", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 4116, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4115, + "name": "List", + "nameLocations": [ + "2463:4:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "2463:4:33" + }, + "referencedDeclaration": 4090, + "src": "2463:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4119, + "mutability": "mutable", + "name": "id", + "nameLocation": "2490:2:33", + "nodeType": "VariableDeclaration", + "scope": 4172, + "src": "2482:10:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4118, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2482:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2462:31:33" + }, + "returnParameters": { + "id": 4121, + "nodeType": "ParameterList", + "parameters": [], + "src": "2503:0:33" + }, + "scope": 4364, + "src": "2446:319:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4245, + "nodeType": "Block", + "src": "3468:279:33", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4196, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3486:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3491:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "3486:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3486:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4200, + "name": "LinkedListEmptyList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4104, + "src": "3502:19:33", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 4201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3502:21:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4195, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3478:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3478:46:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4203, + "nodeType": "ExpressionStatement", + "src": "3478:46:33" + }, + { + "assignments": [ + 4205 + ], + "declarations": [ + { + "constant": false, + "id": 4205, + "mutability": "mutable", + "name": "nextItem", + "nameLocation": "3542:8:33", + "nodeType": "VariableDeclaration", + "scope": 4245, + "src": "3534:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4204, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3534:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 4210, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 4207, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3565:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3570:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "3565:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4206, + "name": "getNextItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "3553:11:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 4209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3553:22:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3534:41:33" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4212, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3596:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3601:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "3596:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4211, + "name": "deleteItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "3585:10:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 4214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3585:21:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4215, + "nodeType": "ExpressionStatement", + "src": "3585:21:33" + }, + { + "expression": { + "id": 4220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4216, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3616:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4218, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3621:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "3616:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 4219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3630:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3616:15:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4221, + "nodeType": "ExpressionStatement", + "src": "3616:15:33" + }, + { + "expression": { + "id": 4226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4222, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3641:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4224, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3646:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "3641:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4225, + "name": "nextItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4205, + "src": "3653:8:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3641:20:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4227, + "nodeType": "ExpressionStatement", + "src": "3641:20:33" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4228, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3675:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3680:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "3675:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3689:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3675:15:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4241, + "nodeType": "IfStatement", + "src": "3671:43:33", + "trueBody": { + "expression": { + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4232, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3692:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3697:4:33", + "memberName": "tail", + "nodeType": "MemberAccess", + "referencedDeclaration": 4085, + "src": "3692:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "30", + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3712: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": 4236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3704:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 4235, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3704:7:33", + "typeDescriptions": {} + } + }, + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3704:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3692:22:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4240, + "nodeType": "ExpressionStatement", + "src": "3692:22:33" + } + }, + { + "expression": { + "expression": { + "id": 4242, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "3731:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3736:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "3731:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 4194, + "id": 4244, + "nodeType": "Return", + "src": "3724:16:33" + } + ] + }, + "documentation": { + "id": 4173, + "nodeType": "StructuredDocumentation", + "src": "2771:512:33", + "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.\n @return The id of the head of the list." + }, + "id": 4246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeHead", + "nameLocation": "3297:10:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4176, + "mutability": "mutable", + "name": "self", + "nameLocation": "3330:4:33", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "3317:17:33", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 4175, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4174, + "name": "List", + "nameLocations": [ + "3317:4:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "3317:4:33" + }, + "referencedDeclaration": 4090, + "src": "3317:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4184, + "mutability": "mutable", + "name": "getNextItem", + "nameLocation": "3385:11:33", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "3344:52:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + }, + "typeName": { + "id": 4183, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 4179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "3353:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4177, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3353:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3352:9:33" + }, + "returnParameterTypes": { + "id": 4182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "3376:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4180, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3376:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3375:9:33" + }, + "src": "3344:52:33", + "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": 4190, + "mutability": "mutable", + "name": "deleteItem", + "nameLocation": "3424:10:33", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "3406:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + }, + "typeName": { + "id": 4189, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 4187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4186, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4189, + "src": "3415:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4185, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3415:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3414:9:33" + }, + "returnParameterTypes": { + "id": 4188, + "nodeType": "ParameterList", + "parameters": [], + "src": "3424:0:33" + }, + "src": "3406:28:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "3307:133:33" + }, + "returnParameters": { + "id": 4194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4193, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "3459:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3459:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3458:9:33" + }, + "scope": 4364, + "src": "3288:459:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4362, + "nodeType": "Block", + "src": "5142:606:33", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4288, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5160:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 4289, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4250, + "src": "5174:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5179:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "5174:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5160:24:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4292, + "name": "LinkedListInvalidIterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "5186:27:33", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 4293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5186:29:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4287, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5152:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5152:64:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4295, + "nodeType": "ExpressionStatement", + "src": "5152:64:33" + }, + { + "assignments": [ + 4297 + ], + "declarations": [ + { + "constant": false, + "id": 4297, + "mutability": "mutable", + "name": "itemCount", + "nameLocation": "5235:9:33", + "nodeType": "VariableDeclaration", + "scope": 4362, + "src": "5227:17:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5227:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4299, + "initialValue": { + "hexValue": "30", + "id": 4298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5247:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5227:21:33" + }, + { + "expression": { + "id": 4309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4300, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5258:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4301, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5272:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5286:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5272:15:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 4304, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5271:17:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 4307, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5304:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5271:43:33", + "trueExpression": { + "expression": { + "id": 4305, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4250, + "src": "5291:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4306, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5296:5:33", + "memberName": "count", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "5291:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5258:56:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4310, + "nodeType": "ExpressionStatement", + "src": "5258:56:33" + }, + { + "assignments": [ + 4312 + ], + "declarations": [ + { + "constant": false, + "id": 4312, + "mutability": "mutable", + "name": "cursor", + "nameLocation": "5333:6:33", + "nodeType": "VariableDeclaration", + "scope": 4362, + "src": "5325:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4311, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5325:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 4315, + "initialValue": { + "expression": { + "id": 4313, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4250, + "src": "5342:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5347:4:33", + "memberName": "head", + "nodeType": "MemberAccess", + "referencedDeclaration": 4083, + "src": "5342:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5325:26:33" + }, + { + "body": { + "id": 4356, + "nodeType": "Block", + "src": "5409:288:33", + "statements": [ + { + "assignments": [ + 4327, + 4329 + ], + "declarations": [ + { + "constant": false, + "id": 4327, + "mutability": "mutable", + "name": "shouldBreak", + "nameLocation": "5429:11:33", + "nodeType": "VariableDeclaration", + "scope": 4356, + "src": "5424:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4326, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5424:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4329, + "mutability": "mutable", + "name": "acc_", + "nameLocation": "5455:4:33", + "nodeType": "VariableDeclaration", + "scope": 4356, + "src": "5442:17:33", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4328, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5442:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 4334, + "initialValue": { + "arguments": [ + { + "id": 4331, + "name": "cursor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "5475:6:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 4332, + "name": "processInitAcc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "5483:14:33", + "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": 4330, + "name": "processItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "5463:11:33", + "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": 4333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5463:35:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5423:75:33" + }, + { + "condition": { + "id": 4335, + "name": "shouldBreak", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4327, + "src": "5517:11:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4337, + "nodeType": "IfStatement", + "src": "5513:22:33", + "trueBody": { + "id": 4336, + "nodeType": "Break", + "src": "5530:5:33" + } + }, + { + "expression": { + "id": 4340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4338, + "name": "processInitAcc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "5550:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4339, + "name": "acc_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4329, + "src": "5567:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "5550:21:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4341, + "nodeType": "ExpressionStatement", + "src": "5550:21:33" + }, + { + "expression": { + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4342, + "name": "cursor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "5585:6:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4345, + "name": "getNextItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4258, + "src": "5610:11:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + { + "id": 4346, + "name": "deleteItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4276, + "src": "5623:10:33", + "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": 4343, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4250, + "src": "5594:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List storage pointer" + } + }, + "id": 4344, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5599:10:33", + "memberName": "removeHead", + "nodeType": "MemberAccess", + "referencedDeclaration": 4246, + "src": "5594:15:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4090_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_$4090_storage_ptr_$", + "typeString": "function (struct LinkedList.List storage pointer,function (bytes32) view returns (bytes32),function (bytes32)) returns (bytes32)" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5594:40:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5585:49:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4349, + "nodeType": "ExpressionStatement", + "src": "5585:49:33" + }, + { + "expression": { + "id": 4351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "5649:12:33", + "subExpression": { + "id": 4350, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5649:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4352, + "nodeType": "ExpressionStatement", + "src": "5649:12:33" + }, + { + "expression": { + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5675:11:33", + "subExpression": { + "id": 4353, + "name": "itemCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4297, + "src": "5675:9:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4355, + "nodeType": "ExpressionStatement", + "src": "5675:11:33" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4316, + "name": "cursor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "5369:6:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5387: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": 4318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5379:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 4317, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5379:7:33", + "typeDescriptions": {} + } + }, + "id": 4320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5379:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5369:20:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4322, + "name": "iterations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "5393:10:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5406:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5393:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5369:38:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4357, + "nodeType": "WhileStatement", + "src": "5362:335:33" + }, + { + "expression": { + "components": [ + { + "id": 4358, + "name": "itemCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4297, + "src": "5715:9:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4359, + "name": "processInitAcc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "5726:14:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 4360, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5714:27:33", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bytes_memory_ptr_$", + "typeString": "tuple(uint256,bytes memory)" + } + }, + "functionReturnParameters": 4286, + "id": 4361, + "nodeType": "Return", + "src": "5707:34:33" + } + ] + }, + "documentation": { + "id": 4247, + "nodeType": "StructuredDocumentation", + "src": "3753:1045:33", + "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.\n @return The number of items processed\n @return The final accumulator data." + }, + "id": 4363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "traverse", + "nameLocation": "4812:8:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4250, + "mutability": "mutable", + "name": "self", + "nameLocation": "4843:4:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "4830:17:33", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + }, + "typeName": { + "id": 4249, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4248, + "name": "List", + "nameLocations": [ + "4830:4:33" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4090, + "src": "4830:4:33" + }, + "referencedDeclaration": 4090, + "src": "4830:4:33", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4090_storage_ptr", + "typeString": "struct LinkedList.List" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4258, + "mutability": "mutable", + "name": "getNextItem", + "nameLocation": "4898:11:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "4857:52:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + }, + "typeName": { + "id": 4257, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 4253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4252, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4257, + "src": "4866:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4251, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4866:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4865:9:33" + }, + "returnParameterTypes": { + "id": 4256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4255, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4257, + "src": "4889:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4254, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4889:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4888:9:33" + }, + "src": "4857:52:33", + "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": 4270, + "mutability": "mutable", + "name": "processItem", + "nameLocation": "4980:11:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "4919:72:33", + "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": 4269, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 4263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4260, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4269, + "src": "4928:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4259, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4928:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4269, + "src": "4937:12:33", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4261, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4937:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4927:23:33" + }, + "returnParameterTypes": { + "id": 4268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4265, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4269, + "src": "4960:4:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4264, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4960:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4269, + "src": "4966:12:33", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4266, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4966:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4959:20:33" + }, + "src": "4919:72:33", + "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": 4276, + "mutability": "mutable", + "name": "deleteItem", + "nameLocation": "5019:10:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "5001:28:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + }, + "typeName": { + "id": 4275, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 4273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4272, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4275, + "src": "5010:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4271, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5010:7:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5009:9:33" + }, + "returnParameterTypes": { + "id": 4274, + "nodeType": "ParameterList", + "parameters": [], + "src": "5019:0:33" + }, + "src": "5001:28:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + }, + "visibility": "internal" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4278, + "mutability": "mutable", + "name": "processInitAcc", + "nameLocation": "5052:14:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "5039:27:33", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4277, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5039:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4280, + "mutability": "mutable", + "name": "iterations", + "nameLocation": "5084:10:33", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "5076:18:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5076:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4820:280:33" + }, + "returnParameters": { + "id": 4286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4283, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "5119:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5119:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4285, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4363, + "src": "5128:12:33", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4284, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5128:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5118:23:33" + }, + "scope": 4364, + "src": "4803:945:33", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4365, + "src": "786:4964:33", + "usedErrors": [ + 4104, + 4107, + 4110, + 4113 + ], + "usedEvents": [] + } + ], + "src": "46:5705:33" + }, + "id": 33 + }, + "@graphprotocol/horizon/contracts/libraries/MathUtils.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", + "exportedSymbols": { + "MathUtils": [ + 4445 + ] + }, + "id": 4446, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4366, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:34" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "MathUtils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4367, + "nodeType": "StructuredDocumentation", + "src": "71:239:34", + "text": " @title MathUtils Library\n @notice A collection of functions to perform math operations\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": 4445, + "linearizedBaseContracts": [ + 4445 + ], + "name": "MathUtils", + "nameLocation": "319:9:34", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4404, + "nodeType": "Block", + "src": "1029:113:34", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4381, + "name": "valueA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4370, + "src": "1048:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4382, + "name": "weightA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4372, + "src": "1057:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1048:16:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4384, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1047:18:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4385, + "name": "valueB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4374, + "src": "1069:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4386, + "name": "weightB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "1078:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1069:16:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4388, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1068:18:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1047:39:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4390, + "name": "weightA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4372, + "src": "1090:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4391, + "name": "weightB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "1100:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1090:17:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1090:21:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4395, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1089:23:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1047:65:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1046:67:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4398, + "name": "weightA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4372, + "src": "1117:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4399, + "name": "weightB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "1127:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1117:17:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4401, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1116:19:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1046:89:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4380, + "id": 4403, + "nodeType": "Return", + "src": "1039:96:34" + } + ] + }, + "documentation": { + "id": 4368, + "nodeType": "StructuredDocumentation", + "src": "335:518:34", + "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 equal or 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": 4405, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "weightedAverageRoundingUp", + "nameLocation": "867:25:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4370, + "mutability": "mutable", + "name": "valueA", + "nameLocation": "910:6:34", + "nodeType": "VariableDeclaration", + "scope": 4405, + "src": "902:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4372, + "mutability": "mutable", + "name": "weightA", + "nameLocation": "934:7:34", + "nodeType": "VariableDeclaration", + "scope": 4405, + "src": "926:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4374, + "mutability": "mutable", + "name": "valueB", + "nameLocation": "959:6:34", + "nodeType": "VariableDeclaration", + "scope": 4405, + "src": "951:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4376, + "mutability": "mutable", + "name": "weightB", + "nameLocation": "983:7:34", + "nodeType": "VariableDeclaration", + "scope": 4405, + "src": "975:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "892:104:34" + }, + "returnParameters": { + "id": 4380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4379, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4405, + "src": "1020:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1020:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1019:9:34" + }, + "scope": 4445, + "src": "858:284:34", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4422, + "nodeType": "Block", + "src": "1392:38:34", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4415, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "1409:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4416, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "1414:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1409:6:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 4419, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "1422:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1409:14:34", + "trueExpression": { + "id": 4418, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "1418:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4414, + "id": 4421, + "nodeType": "Return", + "src": "1402:21:34" + } + ] + }, + "documentation": { + "id": 4406, + "nodeType": "StructuredDocumentation", + "src": "1148:172:34", + "text": " @dev Returns the minimum of two numbers.\n @param x The first number\n @param y The second number\n @return The minimum of the two numbers" + }, + "id": 4423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "1334:3:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4408, + "mutability": "mutable", + "name": "x", + "nameLocation": "1346:1:34", + "nodeType": "VariableDeclaration", + "scope": 4423, + "src": "1338:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1338:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4410, + "mutability": "mutable", + "name": "y", + "nameLocation": "1357:1:34", + "nodeType": "VariableDeclaration", + "scope": 4423, + "src": "1349:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1349:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1337:22:34" + }, + "returnParameters": { + "id": 4414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4413, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4423, + "src": "1383:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1383:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1382:9:34" + }, + "scope": 4445, + "src": "1325:105:34", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4443, + "nodeType": "Block", + "src": "1743:43:34", + "statements": [ + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4433, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4426, + "src": "1761:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 4434, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1765:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1761:5:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 4436, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1760:7:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 4440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 4441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1760:19:34", + "trueExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4437, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4426, + "src": "1770:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 4438, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1774:1:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1770:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4432, + "id": 4442, + "nodeType": "Return", + "src": "1753:26:34" + } + ] + }, + "documentation": { + "id": 4424, + "nodeType": "StructuredDocumentation", + "src": "1436:228:34", + "text": " @dev Returns the difference between two numbers or zero if negative.\n @param x The first number\n @param y The second number\n @return The difference between the two numbers or zero if negative" + }, + "id": 4444, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffOrZero", + "nameLocation": "1678:10:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4426, + "mutability": "mutable", + "name": "x", + "nameLocation": "1697:1:34", + "nodeType": "VariableDeclaration", + "scope": 4444, + "src": "1689:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1689:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4428, + "mutability": "mutable", + "name": "y", + "nameLocation": "1708:1:34", + "nodeType": "VariableDeclaration", + "scope": 4444, + "src": "1700:9:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1700:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1688:22:34" + }, + "returnParameters": { + "id": 4432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4431, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4444, + "src": "1734:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1734:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1733:9:34" + }, + "scope": 4445, + "src": "1669:117:34", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4446, + "src": "311:1477:34", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1743:34" + }, + "id": 34 + }, + "@graphprotocol/horizon/contracts/libraries/PPMMath.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "exportedSymbols": { + "PPMMath": [ + 4539 + ] + }, + "id": 4540, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4447, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:35" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PPMMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4448, + "nodeType": "StructuredDocumentation", + "src": "70:258:35", + "text": " @title PPMMath library\n @notice A library for handling calculations with parts per million (PPM) amounts.\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": 4539, + "linearizedBaseContracts": [ + 4539 + ], + "name": "PPMMath", + "nameLocation": "337:7:35", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 4449, + "nodeType": "StructuredDocumentation", + "src": "351:60:35", + "text": "@notice Maximum value (100%) in parts per million (PPM)." + }, + "id": 4452, + "mutability": "constant", + "name": "MAX_PPM", + "nameLocation": "442:7:35", + "nodeType": "VariableDeclaration", + "scope": 4539, + "src": "416:45:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "416:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "315f3030305f303030", + "id": 4451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "452:9:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1_000_000" + }, + "visibility": "internal" + }, + { + "documentation": { + "id": 4453, + "nodeType": "StructuredDocumentation", + "src": "468:133:35", + "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": 4457, + "name": "PPMMathInvalidPPM", + "nameLocation": "612:17:35", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4455, + "mutability": "mutable", + "name": "value", + "nameLocation": "638:5:35", + "nodeType": "VariableDeclaration", + "scope": 4457, + "src": "630:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "629:15:35" + }, + "src": "606:39:35" + }, + { + "documentation": { + "id": 4458, + "nodeType": "StructuredDocumentation", + "src": "651:189:35", + "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": 4464, + "name": "PPMMathInvalidMulPPM", + "nameLocation": "851:20:35", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4460, + "mutability": "mutable", + "name": "a", + "nameLocation": "880:1:35", + "nodeType": "VariableDeclaration", + "scope": 4464, + "src": "872:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "872:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4462, + "mutability": "mutable", + "name": "b", + "nameLocation": "891:1:35", + "nodeType": "VariableDeclaration", + "scope": 4464, + "src": "883:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "883:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "871:22:35" + }, + "src": "845:49:35" + }, + { + "body": { + "id": 4495, + "nodeType": "Block", + "src": "1169:118:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4476, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4467, + "src": "1198:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4475, + "name": "isValidPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4538, + "src": "1187:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 4479, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4469, + "src": "1215:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4478, + "name": "isValidPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4538, + "src": "1204:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1204:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1187:30:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 4483, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4467, + "src": "1240:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4484, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4469, + "src": "1243:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4482, + "name": "PPMMathInvalidMulPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4464, + "src": "1219:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:26:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4474, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1179:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1179:67:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4487, + "nodeType": "ExpressionStatement", + "src": "1179:67:35" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4488, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4467, + "src": "1264:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4489, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4469, + "src": "1268:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1264:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4491, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1263:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 4492, + "name": "MAX_PPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4452, + "src": "1273:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1263:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4473, + "id": 4494, + "nodeType": "Return", + "src": "1256:24:35" + } + ] + }, + "documentation": { + "id": 4465, + "nodeType": "StructuredDocumentation", + "src": "900:194:35", + "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": 4496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulPPM", + "nameLocation": "1108:6:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4467, + "mutability": "mutable", + "name": "a", + "nameLocation": "1123:1:35", + "nodeType": "VariableDeclaration", + "scope": 4496, + "src": "1115:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1115:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4469, + "mutability": "mutable", + "name": "b", + "nameLocation": "1134:1:35", + "nodeType": "VariableDeclaration", + "scope": 4496, + "src": "1126:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1114:22:35" + }, + "returnParameters": { + "id": 4473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4472, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4496, + "src": "1160:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4471, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1160:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1159:9:35" + }, + "scope": 4539, + "src": "1099:188:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4524, + "nodeType": "Block", + "src": "1665:104:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4508, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4501, + "src": "1694:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4507, + "name": "isValidPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4538, + "src": "1683:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1683:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 4511, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4501, + "src": "1716:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4510, + "name": "PPMMathInvalidPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4457, + "src": "1698:17:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1698:20:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4506, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1675:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1675:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4514, + "nodeType": "ExpressionStatement", + "src": "1675:44:35" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4515, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4499, + "src": "1736:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 4517, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4499, + "src": "1747:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4518, + "name": "MAX_PPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4452, + "src": "1750:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 4519, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4501, + "src": "1760:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1750:11:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4516, + "name": "mulPPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4496, + "src": "1740:6:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1740:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1736:26:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4505, + "id": 4523, + "nodeType": "Return", + "src": "1729:33:35" + } + ] + }, + "documentation": { + "id": 4497, + "nodeType": "StructuredDocumentation", + "src": "1293:290:35", + "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.\n @return The result of the multiplication." + }, + "id": 4525, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulPPMRoundUp", + "nameLocation": "1597:13:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4499, + "mutability": "mutable", + "name": "a", + "nameLocation": "1619:1:35", + "nodeType": "VariableDeclaration", + "scope": 4525, + "src": "1611:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4498, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1611:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4501, + "mutability": "mutable", + "name": "b", + "nameLocation": "1630:1:35", + "nodeType": "VariableDeclaration", + "scope": 4525, + "src": "1622:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1610:22:35" + }, + "returnParameters": { + "id": 4505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4504, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4525, + "src": "1656:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1656:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1655:9:35" + }, + "scope": 4539, + "src": "1588:181:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4537, + "nodeType": "Block", + "src": "2056:40:35", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4533, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4528, + "src": "2073:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4534, + "name": "MAX_PPM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4452, + "src": "2082:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2073:16:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4532, + "id": 4536, + "nodeType": "Return", + "src": "2066:23:35" + } + ] + }, + "documentation": { + "id": 4526, + "nodeType": "StructuredDocumentation", + "src": "1775:212:35", + "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.\n @return true if the value is in PPM, false otherwise." + }, + "id": 4538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValidPPM", + "nameLocation": "2001:10:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4528, + "mutability": "mutable", + "name": "value", + "nameLocation": "2020:5:35", + "nodeType": "VariableDeclaration", + "scope": 4538, + "src": "2012:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2012:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2011:15:35" + }, + "returnParameters": { + "id": 4532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4531, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4538, + "src": "2050:4:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4530, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2050:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2049:6:35" + }, + "scope": 4539, + "src": "1992:104:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4540, + "src": "329:1769:35", + "usedErrors": [ + 4457, + 4464 + ], + "usedEvents": [] + } + ], + "src": "45:2054:35" + }, + "id": 35 + }, + "@graphprotocol/horizon/contracts/libraries/UintRange.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/UintRange.sol", + "exportedSymbols": { + "UintRange": [ + 4564 + ] + }, + "id": 4565, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4541, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:36" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "UintRange", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4542, + "nodeType": "StructuredDocumentation", + "src": "70:241:36", + "text": " @title UintRange library\n @notice A library for handling range checks on uint256 values.\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": 4564, + "linearizedBaseContracts": [ + 4564 + ], + "name": "UintRange", + "nameLocation": "320:9:36", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4562, + "nodeType": "Block", + "src": "713:52:36", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4554, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4545, + "src": "730:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 4555, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4547, + "src": "739:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:12:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4557, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4545, + "src": "746:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4558, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4549, + "src": "755:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "746:12:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "730:28:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4553, + "id": 4561, + "nodeType": "Return", + "src": "723:35:36" + } + ] + }, + "documentation": { + "id": 4543, + "nodeType": "StructuredDocumentation", + "src": "336:283:36", + "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.\n @return true if the value is in the range, false otherwise." + }, + "id": 4563, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isInRange", + "nameLocation": "633:9:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4545, + "mutability": "mutable", + "name": "value", + "nameLocation": "651:5:36", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "643:13:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "643:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4547, + "mutability": "mutable", + "name": "min", + "nameLocation": "666:3:36", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "658:11:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "658:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4549, + "mutability": "mutable", + "name": "max", + "nameLocation": "679:3:36", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "671:11:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "671:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "642:41:36" + }, + "returnParameters": { + "id": 4553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4552, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "707:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4551, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "707:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "706:6:36" + }, + "scope": 4564, + "src": "624:141:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4565, + "src": "312:455:36", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:723:36" + }, + "id": 36 + }, + "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol": { + "ast": { + "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "exportedSymbols": { + "GraphDirectory": [ + 4928 + ], + "IController": [ + 441 + ], + "ICuration": [ + 165 + ], + "IEpochManager": [ + 369 + ], + "IGraphPayments": [ + 2489 + ], + "IGraphProxyAdmin": [ + 2493 + ], + "IGraphToken": [ + 758 + ], + "IHorizonStaking": [ + 2625 + ], + "IPaymentsEscrow": [ + 2858 + ], + "IRewardsManager": [ + 678 + ], + "ITokenGateway": [ + 41 + ] + }, + "id": 4929, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4566, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:37" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "id": 4568, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 759, + "src": "71:87:37", + "symbolAliases": [ + { + "foreign": { + "id": 4567, + "name": "IGraphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "80:11:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "file": "../interfaces/IHorizonStaking.sol", + "id": 4570, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 2626, + "src": "159:68:37", + "symbolAliases": [ + { + "foreign": { + "id": 4569, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "168:15:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "../interfaces/IGraphPayments.sol", + "id": 4572, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 2490, + "src": "228:66:37", + "symbolAliases": [ + { + "foreign": { + "id": 4571, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "237:14:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol", + "file": "../interfaces/IPaymentsEscrow.sol", + "id": 4574, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 2859, + "src": "295:68:37", + "symbolAliases": [ + { + "foreign": { + "id": 4573, + "name": "IPaymentsEscrow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2858, + "src": "304:15:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/governance/IController.sol", + "file": "@graphprotocol/contracts/contracts/governance/IController.sol", + "id": 4576, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 442, + "src": "365:92:37", + "symbolAliases": [ + { + "foreign": { + "id": 4575, + "name": "IController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "374:11:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", + "file": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", + "id": 4578, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 370, + "src": "458:92:37", + "symbolAliases": [ + { + "foreign": { + "id": 4577, + "name": "IEpochManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "467:13:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", + "file": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", + "id": 4580, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 679, + "src": "551:97:37", + "symbolAliases": [ + { + "foreign": { + "id": 4579, + "name": "IRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 678, + "src": "560:15:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", + "file": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", + "id": 4582, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 42, + "src": "649:94:37", + "symbolAliases": [ + { + "foreign": { + "id": 4581, + "name": "ITokenGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "658:13:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol", + "file": "../interfaces/IGraphProxyAdmin.sol", + "id": 4584, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 2494, + "src": "744:70:37", + "symbolAliases": [ + { + "foreign": { + "id": 4583, + "name": "IGraphProxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2493, + "src": "753:16:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", + "file": "@graphprotocol/contracts/contracts/curation/ICuration.sol", + "id": 4586, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4929, + "sourceUnit": 166, + "src": "816:86:37", + "symbolAliases": [ + { + "foreign": { + "id": 4585, + "name": "ICuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "825:9:37", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "GraphDirectory", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4587, + "nodeType": "StructuredDocumentation", + "src": "904:315:37", + "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": 4928, + "linearizedBaseContracts": [ + 4928 + ], + "name": "GraphDirectory", + "nameLocation": "1238:14:37", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 4588, + "nodeType": "StructuredDocumentation", + "src": "1297:44:37", + "text": "@notice The Graph Token contract address" + }, + "id": 4591, + "mutability": "immutable", + "name": "GRAPH_TOKEN", + "nameLocation": "1376:11:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1346:41:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + }, + "typeName": { + "id": 4590, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4589, + "name": "IGraphToken", + "nameLocations": [ + "1346:11:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "1346:11:37" + }, + "referencedDeclaration": 758, + "src": "1346:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4592, + "nodeType": "StructuredDocumentation", + "src": "1394:48:37", + "text": "@notice The Horizon Staking contract address" + }, + "id": 4595, + "mutability": "immutable", + "name": "GRAPH_STAKING", + "nameLocation": "1481:13:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1447:47:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + "typeName": { + "id": 4594, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4593, + "name": "IHorizonStaking", + "nameLocations": [ + "1447:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2625, + "src": "1447:15:37" + }, + "referencedDeclaration": 2625, + "src": "1447:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4596, + "nodeType": "StructuredDocumentation", + "src": "1501:47:37", + "text": "@notice The Graph Payments contract address" + }, + "id": 4599, + "mutability": "immutable", + "name": "GRAPH_PAYMENTS", + "nameLocation": "1586:14:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1553:47:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + }, + "typeName": { + "id": 4598, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4597, + "name": "IGraphPayments", + "nameLocations": [ + "1553:14:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2489, + "src": "1553:14:37" + }, + "referencedDeclaration": 2489, + "src": "1553:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4600, + "nodeType": "StructuredDocumentation", + "src": "1607:48:37", + "text": "@notice The Payments Escrow contract address" + }, + "id": 4603, + "mutability": "immutable", + "name": "GRAPH_PAYMENTS_ESCROW", + "nameLocation": "1694:21:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1660:55:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + }, + "typeName": { + "id": 4602, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4601, + "name": "IPaymentsEscrow", + "nameLocations": [ + "1660:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2858, + "src": "1660:15:37" + }, + "referencedDeclaration": 2858, + "src": "1660:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4604, + "nodeType": "StructuredDocumentation", + "src": "1762:49:37", + "text": "@notice The Graph Controller contract address" + }, + "id": 4607, + "mutability": "immutable", + "name": "GRAPH_CONTROLLER", + "nameLocation": "1846:16:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1816:46:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + }, + "typeName": { + "id": 4606, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4605, + "name": "IController", + "nameLocations": [ + "1816:11:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 441, + "src": "1816:11:37" + }, + "referencedDeclaration": 441, + "src": "1816:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4608, + "nodeType": "StructuredDocumentation", + "src": "1869:46:37", + "text": "@notice The Epoch Manager contract address" + }, + "id": 4611, + "mutability": "immutable", + "name": "GRAPH_EPOCH_MANAGER", + "nameLocation": "1952:19:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "1920:51:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + }, + "typeName": { + "id": 4610, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4609, + "name": "IEpochManager", + "nameLocations": [ + "1920:13:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 369, + "src": "1920:13:37" + }, + "referencedDeclaration": 369, + "src": "1920:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4612, + "nodeType": "StructuredDocumentation", + "src": "1978:48:37", + "text": "@notice The Rewards Manager contract address" + }, + "id": 4615, + "mutability": "immutable", + "name": "GRAPH_REWARDS_MANAGER", + "nameLocation": "2065:21:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "2031:55:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + }, + "typeName": { + "id": 4614, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4613, + "name": "IRewardsManager", + "nameLocations": [ + "2031:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 678, + "src": "2031:15:37" + }, + "referencedDeclaration": 678, + "src": "2031:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4616, + "nodeType": "StructuredDocumentation", + "src": "2093:46:37", + "text": "@notice The Token Gateway contract address" + }, + "id": 4619, + "mutability": "immutable", + "name": "GRAPH_TOKEN_GATEWAY", + "nameLocation": "2176:19:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "2144:51:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + }, + "typeName": { + "id": 4618, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4617, + "name": "ITokenGateway", + "nameLocations": [ + "2144:13:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "2144:13:37" + }, + "referencedDeclaration": 41, + "src": "2144:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4620, + "nodeType": "StructuredDocumentation", + "src": "2202:50:37", + "text": "@notice The Graph Proxy Admin contract address" + }, + "id": 4623, + "mutability": "immutable", + "name": "GRAPH_PROXY_ADMIN", + "nameLocation": "2292:17:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "2257:52:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + }, + "typeName": { + "id": 4622, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4621, + "name": "IGraphProxyAdmin", + "nameLocations": [ + "2257:16:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2493, + "src": "2257:16:37" + }, + "referencedDeclaration": 2493, + "src": "2257:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 4624, + "nodeType": "StructuredDocumentation", + "src": "2513:41:37", + "text": "@notice The Curation contract address" + }, + "id": 4627, + "mutability": "immutable", + "name": "GRAPH_CURATION", + "nameLocation": "2587:14:37", + "nodeType": "VariableDeclaration", + "scope": 4928, + "src": "2559:42:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + }, + "typeName": { + "id": 4626, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4625, + "name": "ICuration", + "nameLocations": [ + "2559:9:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 165, + "src": "2559:9:37" + }, + "referencedDeclaration": 165, + "src": "2559:9:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 4628, + "nodeType": "StructuredDocumentation", + "src": "2608:722:37", + "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": 4650, + "name": "GraphDirectoryInitialized", + "nameLocation": "3341:25:37", + "nodeType": "EventDefinition", + "parameters": { + "id": 4649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4630, + "indexed": true, + "mutability": "mutable", + "name": "graphToken", + "nameLocation": "3392:10:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3376:26:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3376:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4632, + "indexed": true, + "mutability": "mutable", + "name": "graphStaking", + "nameLocation": "3428:12:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3412:28:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3412:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "indexed": false, + "mutability": "mutable", + "name": "graphPayments", + "nameLocation": "3458:13:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3450:21:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3450:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "indexed": false, + "mutability": "mutable", + "name": "graphEscrow", + "nameLocation": "3489:11:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3481:19:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3481:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4638, + "indexed": true, + "mutability": "mutable", + "name": "graphController", + "nameLocation": "3526:15:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3510:31:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3510:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4640, + "indexed": false, + "mutability": "mutable", + "name": "graphEpochManager", + "nameLocation": "3559:17:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3551:25:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3551:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4642, + "indexed": false, + "mutability": "mutable", + "name": "graphRewardsManager", + "nameLocation": "3594:19:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3586:27:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3586:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4644, + "indexed": false, + "mutability": "mutable", + "name": "graphTokenGateway", + "nameLocation": "3631:17:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3623:25:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3623:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4646, + "indexed": false, + "mutability": "mutable", + "name": "graphProxyAdmin", + "nameLocation": "3666:15:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3658:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3658:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4648, + "indexed": false, + "mutability": "mutable", + "name": "graphCuration", + "nameLocation": "3699:13:37", + "nodeType": "VariableDeclaration", + "scope": 4650, + "src": "3691:21:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3691:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3366:352:37" + }, + "src": "3335:384:37" + }, + { + "documentation": { + "id": 4651, + "nodeType": "StructuredDocumentation", + "src": "3725:230:37", + "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": 4655, + "name": "GraphDirectoryInvalidZeroAddress", + "nameLocation": "3966:32:37", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "contractName", + "nameLocation": "4005:12:37", + "nodeType": "VariableDeclaration", + "scope": 4655, + "src": "3999:18:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4652, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3999:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3998:20:37" + }, + "src": "3960:59:37" + }, + { + "body": { + "id": 4794, + "nodeType": "Block", + "src": "4337:1382:37", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4662, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4658, + "src": "4355:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4377: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": 4664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4369:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4663, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4369:7:37", + "typeDescriptions": {} + } + }, + "id": 4666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4369:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4355:24:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "hexValue": "436f6e74726f6c6c6572", + "id": 4669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4414:12:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a", + "typeString": "literal_string \"Controller\"" + }, + "value": "Controller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a", + "typeString": "literal_string \"Controller\"" + } + ], + "id": 4668, + "name": "GraphDirectoryInvalidZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4655, + "src": "4381:32:37", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$", + "typeString": "function (bytes memory) pure returns (error)" + } + }, + "id": 4670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4381:46:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4347:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4347:81:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4672, + "nodeType": "ExpressionStatement", + "src": "4347:81:37" + }, + { + "expression": { + "id": 4677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4673, + "name": "GRAPH_CONTROLLER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4607, + "src": "4439:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4675, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4658, + "src": "4470:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4674, + "name": "IController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "4458:11:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IController_$441_$", + "typeString": "type(contract IController)" + } + }, + "id": 4676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4458:23:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "src": "4439:42:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "id": 4678, + "nodeType": "ExpressionStatement", + "src": "4439:42:37" + }, + { + "expression": { + "id": 4685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4679, + "name": "GRAPH_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "4491:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "4772617068546f6b656e", + "id": 4682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4544:12:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247", + "typeString": "literal_string \"GraphToken\"" + }, + "value": "GraphToken" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247", + "typeString": "literal_string \"GraphToken\"" + } + ], + "id": 4681, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4517:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4517:40:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4680, + "name": "IGraphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "4505:11:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphToken_$758_$", + "typeString": "type(contract IGraphToken)" + } + }, + "id": 4684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4505:53:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "src": "4491:67:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 4686, + "nodeType": "ExpressionStatement", + "src": "4491:67:37" + }, + { + "expression": { + "id": 4693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4687, + "name": "GRAPH_STAKING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4595, + "src": "4568:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "5374616b696e67", + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4627:9:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034", + "typeString": "literal_string \"Staking\"" + }, + "value": "Staking" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034", + "typeString": "literal_string \"Staking\"" + } + ], + "id": 4689, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4600:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4600:37:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4688, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "4584:15:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "type(contract IHorizonStaking)" + } + }, + "id": 4692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4584:54:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "src": "4568:70:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 4694, + "nodeType": "ExpressionStatement", + "src": "4568:70:37" + }, + { + "expression": { + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4695, + "name": "GRAPH_PAYMENTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4599, + "src": "4648:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "47726170685061796d656e7473", + "id": 4698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4707:15:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f", + "typeString": "literal_string \"GraphPayments\"" + }, + "value": "GraphPayments" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f", + "typeString": "literal_string \"GraphPayments\"" + } + ], + "id": 4697, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4680:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4680:43:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4696, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "4665:14:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2489_$", + "typeString": "type(contract IGraphPayments)" + } + }, + "id": 4700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4665:59:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "src": "4648:76:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "id": 4702, + "nodeType": "ExpressionStatement", + "src": "4648:76:37" + }, + { + "expression": { + "id": 4709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4703, + "name": "GRAPH_PAYMENTS_ESCROW", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4603, + "src": "4734:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "5061796d656e7473457363726f77", + "id": 4706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4801:16:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9", + "typeString": "literal_string \"PaymentsEscrow\"" + }, + "value": "PaymentsEscrow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9", + "typeString": "literal_string \"PaymentsEscrow\"" + } + ], + "id": 4705, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4774:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4774:44:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4704, + "name": "IPaymentsEscrow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2858, + "src": "4758:15:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPaymentsEscrow_$2858_$", + "typeString": "type(contract IPaymentsEscrow)" + } + }, + "id": 4708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4758:61:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "src": "4734:85:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "id": 4710, + "nodeType": "ExpressionStatement", + "src": "4734:85:37" + }, + { + "expression": { + "id": 4717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4711, + "name": "GRAPH_EPOCH_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4611, + "src": "4829:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "45706f63684d616e61676572", + "id": 4714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:14:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063", + "typeString": "literal_string \"EpochManager\"" + }, + "value": "EpochManager" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063", + "typeString": "literal_string \"EpochManager\"" + } + ], + "id": 4713, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4865:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4865:42:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4712, + "name": "IEpochManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "4851:13:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEpochManager_$369_$", + "typeString": "type(contract IEpochManager)" + } + }, + "id": 4716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4851:57:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "src": "4829:79:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "id": 4718, + "nodeType": "ExpressionStatement", + "src": "4829:79:37" + }, + { + "expression": { + "id": 4725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4719, + "name": "GRAPH_REWARDS_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4615, + "src": "4918:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "526577617264734d616e61676572", + "id": 4722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4985:16:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761", + "typeString": "literal_string \"RewardsManager\"" + }, + "value": "RewardsManager" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761", + "typeString": "literal_string \"RewardsManager\"" + } + ], + "id": 4721, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "4958:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4958:44:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4720, + "name": "IRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 678, + "src": "4942:15:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IRewardsManager_$678_$", + "typeString": "type(contract IRewardsManager)" + } + }, + "id": 4724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4942:61:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "src": "4918:85:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 4726, + "nodeType": "ExpressionStatement", + "src": "4918:85:37" + }, + { + "expression": { + "id": 4733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4727, + "name": "GRAPH_TOKEN_GATEWAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4619, + "src": "5013:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "4772617068546f6b656e47617465776179", + "id": 4730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5076:19:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0", + "typeString": "literal_string \"GraphTokenGateway\"" + }, + "value": "GraphTokenGateway" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0", + "typeString": "literal_string \"GraphTokenGateway\"" + } + ], + "id": 4729, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "5049:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5049:47:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4728, + "name": "ITokenGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "5035:13:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITokenGateway_$41_$", + "typeString": "type(contract ITokenGateway)" + } + }, + "id": 4732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5035:62:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "src": "5013:84:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "id": 4734, + "nodeType": "ExpressionStatement", + "src": "5013:84:37" + }, + { + "expression": { + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4735, + "name": "GRAPH_PROXY_ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4623, + "src": "5107:17:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "477261706850726f787941646d696e", + "id": 4738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5171:17:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb", + "typeString": "literal_string \"GraphProxyAdmin\"" + }, + "value": "GraphProxyAdmin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb", + "typeString": "literal_string \"GraphProxyAdmin\"" + } + ], + "id": 4737, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "5144:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5144:45:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4736, + "name": "IGraphProxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2493, + "src": "5127:16:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphProxyAdmin_$2493_$", + "typeString": "type(contract IGraphProxyAdmin)" + } + }, + "id": 4740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5127:63:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "src": "5107:83:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "id": 4742, + "nodeType": "ExpressionStatement", + "src": "5107:83:37" + }, + { + "expression": { + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4743, + "name": "GRAPH_CURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4627, + "src": "5200:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "4375726174696f6e", + "id": 4746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5254:10:37", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f", + "typeString": "literal_string \"Curation\"" + }, + "value": "Curation" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f", + "typeString": "literal_string \"Curation\"" + } + ], + "id": 4745, + "name": "_getContractFromController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "5227:26:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) view returns (address)" + } + }, + "id": 4747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5227:38:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4744, + "name": "ICuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5217:9:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICuration_$165_$", + "typeString": "type(contract ICuration)" + } + }, + "id": 4748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5217:49:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "src": "5200:66:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "id": 4750, + "nodeType": "ExpressionStatement", + "src": "5200:66:37" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 4754, + "name": "GRAPH_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "5329:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + ], + "id": 4753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5321:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5321:7:37", + "typeDescriptions": {} + } + }, + "id": 4755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5321:20:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4758, + "name": "GRAPH_STAKING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4595, + "src": "5363:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + ], + "id": 4757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5355:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5355:7:37", + "typeDescriptions": {} + } + }, + "id": 4759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5355:22:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4762, + "name": "GRAPH_PAYMENTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4599, + "src": "5399:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + ], + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5391:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5391:7:37", + "typeDescriptions": {} + } + }, + "id": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5391:23:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4766, + "name": "GRAPH_PAYMENTS_ESCROW", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4603, + "src": "5436:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + ], + "id": 4765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5428:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5428:7:37", + "typeDescriptions": {} + } + }, + "id": 4767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5428:30:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4770, + "name": "GRAPH_CONTROLLER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4607, + "src": "5480:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + ], + "id": 4769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5472:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5472:7:37", + "typeDescriptions": {} + } + }, + "id": 4771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5472:25:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4774, + "name": "GRAPH_EPOCH_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4611, + "src": "5519:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + ], + "id": 4773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5511:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5511:7:37", + "typeDescriptions": {} + } + }, + "id": 4775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5511:28:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4778, + "name": "GRAPH_REWARDS_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4615, + "src": "5561:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + ], + "id": 4777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5553:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5553:7:37", + "typeDescriptions": {} + } + }, + "id": 4779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5553:30:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4782, + "name": "GRAPH_TOKEN_GATEWAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4619, + "src": "5605:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + ], + "id": 4781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5597:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5597:7:37", + "typeDescriptions": {} + } + }, + "id": 4783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5597:28:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4786, + "name": "GRAPH_PROXY_ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4623, + "src": "5647:17:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + ], + "id": 4785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5639:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5639:7:37", + "typeDescriptions": {} + } + }, + "id": 4787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5639:26:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4790, + "name": "GRAPH_CURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4627, + "src": "5687:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + ], + "id": 4789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5679:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4788, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5679:7:37", + "typeDescriptions": {} + } + }, + "id": 4791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5679:23:37", + "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": 4751, + "name": "GraphDirectoryInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4650, + "src": "5282:25:37", + "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": 4792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5282:430:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4793, + "nodeType": "EmitStatement", + "src": "5277:435:37" + } + ] + }, + "documentation": { + "id": 4656, + "nodeType": "StructuredDocumentation", + "src": "4025:275:37", + "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": 4795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4658, + "mutability": "mutable", + "name": "controller", + "nameLocation": "4325:10:37", + "nodeType": "VariableDeclaration", + "scope": 4795, + "src": "4317:18:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4317:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4316:20:37" + }, + "returnParameters": { + "id": 4660, + "nodeType": "ParameterList", + "parameters": [], + "src": "4337:0:37" + }, + "scope": 4928, + "src": "4305:1414:37", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4804, + "nodeType": "Block", + "src": "5884:35:37", + "statements": [ + { + "expression": { + "id": 4802, + "name": "GRAPH_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "5901:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "functionReturnParameters": 4801, + "id": 4803, + "nodeType": "Return", + "src": "5894:18:37" + } + ] + }, + "documentation": { + "id": 4796, + "nodeType": "StructuredDocumentation", + "src": "5725:95:37", + "text": " @notice Get the Graph Token contract\n @return The Graph Token contract" + }, + "id": 4805, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphToken", + "nameLocation": "5834:11:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [], + "src": "5845:2:37" + }, + "returnParameters": { + "id": 4801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4800, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "5871:11:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + }, + "typeName": { + "id": 4799, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4798, + "name": "IGraphToken", + "nameLocations": [ + "5871:11:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "5871:11:37" + }, + "referencedDeclaration": 758, + "src": "5871:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "visibility": "internal" + } + ], + "src": "5870:13:37" + }, + "scope": 4928, + "src": "5825:94:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4814, + "nodeType": "Block", + "src": "6098:37:37", + "statements": [ + { + "expression": { + "id": 4812, + "name": "GRAPH_STAKING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4595, + "src": "6115:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "functionReturnParameters": 4811, + "id": 4813, + "nodeType": "Return", + "src": "6108:20:37" + } + ] + }, + "documentation": { + "id": 4806, + "nodeType": "StructuredDocumentation", + "src": "5925:103:37", + "text": " @notice Get the Horizon Staking contract\n @return The Horizon Staking contract" + }, + "id": 4815, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphStaking", + "nameLocation": "6042:13:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4807, + "nodeType": "ParameterList", + "parameters": [], + "src": "6055:2:37" + }, + "returnParameters": { + "id": 4811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4815, + "src": "6081:15:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + "typeName": { + "id": 4809, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4808, + "name": "IHorizonStaking", + "nameLocations": [ + "6081:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2625, + "src": "6081:15:37" + }, + "referencedDeclaration": 2625, + "src": "6081:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "visibility": "internal" + } + ], + "src": "6080:17:37" + }, + "scope": 4928, + "src": "6033:102:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4824, + "nodeType": "Block", + "src": "6312:38:37", + "statements": [ + { + "expression": { + "id": 4822, + "name": "GRAPH_PAYMENTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4599, + "src": "6329:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "functionReturnParameters": 4821, + "id": 4823, + "nodeType": "Return", + "src": "6322:21:37" + } + ] + }, + "documentation": { + "id": 4816, + "nodeType": "StructuredDocumentation", + "src": "6141:101:37", + "text": " @notice Get the Graph Payments contract\n @return The Graph Payments contract" + }, + "id": 4825, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphPayments", + "nameLocation": "6256:14:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4817, + "nodeType": "ParameterList", + "parameters": [], + "src": "6270:2:37" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4825, + "src": "6296:14:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + }, + "typeName": { + "id": 4819, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4818, + "name": "IGraphPayments", + "nameLocations": [ + "6296:14:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2489, + "src": "6296:14:37" + }, + "referencedDeclaration": 2489, + "src": "6296:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphPayments_$2489", + "typeString": "contract IGraphPayments" + } + }, + "visibility": "internal" + } + ], + "src": "6295:16:37" + }, + "scope": 4928, + "src": "6247:103:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4834, + "nodeType": "Block", + "src": "6536:45:37", + "statements": [ + { + "expression": { + "id": 4832, + "name": "GRAPH_PAYMENTS_ESCROW", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4603, + "src": "6553:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "functionReturnParameters": 4831, + "id": 4833, + "nodeType": "Return", + "src": "6546:28:37" + } + ] + }, + "documentation": { + "id": 4826, + "nodeType": "StructuredDocumentation", + "src": "6356:103:37", + "text": " @notice Get the Payments Escrow contract\n @return The Payments Escrow contract" + }, + "id": 4835, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphPaymentsEscrow", + "nameLocation": "6473:20:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4827, + "nodeType": "ParameterList", + "parameters": [], + "src": "6493:2:37" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4835, + "src": "6519:15:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + }, + "typeName": { + "id": 4829, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4828, + "name": "IPaymentsEscrow", + "nameLocations": [ + "6519:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2858, + "src": "6519:15:37" + }, + "referencedDeclaration": 2858, + "src": "6519:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPaymentsEscrow_$2858", + "typeString": "contract IPaymentsEscrow" + } + }, + "visibility": "internal" + } + ], + "src": "6518:17:37" + }, + "scope": 4928, + "src": "6464:117:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4844, + "nodeType": "Block", + "src": "6761:40:37", + "statements": [ + { + "expression": { + "id": 4842, + "name": "GRAPH_CONTROLLER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4607, + "src": "6778:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "functionReturnParameters": 4841, + "id": 4843, + "nodeType": "Return", + "src": "6771:23:37" + } + ] + }, + "documentation": { + "id": 4836, + "nodeType": "StructuredDocumentation", + "src": "6587:105:37", + "text": " @notice Get the Graph Controller contract\n @return The Graph Controller contract" + }, + "id": 4845, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphController", + "nameLocation": "6706:16:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4837, + "nodeType": "ParameterList", + "parameters": [], + "src": "6722:2:37" + }, + "returnParameters": { + "id": 4841, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4840, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4845, + "src": "6748:11:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + }, + "typeName": { + "id": 4839, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4838, + "name": "IController", + "nameLocations": [ + "6748:11:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 441, + "src": "6748:11:37" + }, + "referencedDeclaration": 441, + "src": "6748:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "visibility": "internal" + } + ], + "src": "6747:13:37" + }, + "scope": 4928, + "src": "6697:104:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4854, + "nodeType": "Block", + "src": "6979:43:37", + "statements": [ + { + "expression": { + "id": 4852, + "name": "GRAPH_EPOCH_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4611, + "src": "6996:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "functionReturnParameters": 4851, + "id": 4853, + "nodeType": "Return", + "src": "6989:26:37" + } + ] + }, + "documentation": { + "id": 4846, + "nodeType": "StructuredDocumentation", + "src": "6807:99:37", + "text": " @notice Get the Epoch Manager contract\n @return The Epoch Manager contract" + }, + "id": 4855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphEpochManager", + "nameLocation": "6920:18:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4847, + "nodeType": "ParameterList", + "parameters": [], + "src": "6938:2:37" + }, + "returnParameters": { + "id": 4851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4855, + "src": "6964:13:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + }, + "typeName": { + "id": 4849, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4848, + "name": "IEpochManager", + "nameLocations": [ + "6964:13:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 369, + "src": "6964:13:37" + }, + "referencedDeclaration": 369, + "src": "6964:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "visibility": "internal" + } + ], + "src": "6963:15:37" + }, + "scope": 4928, + "src": "6911:111:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4864, + "nodeType": "Block", + "src": "7216:45:37", + "statements": [ + { + "expression": { + "id": 4862, + "name": "GRAPH_REWARDS_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4615, + "src": "7233:21:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "functionReturnParameters": 4861, + "id": 4863, + "nodeType": "Return", + "src": "7226:28:37" + } + ] + }, + "documentation": { + "id": 4856, + "nodeType": "StructuredDocumentation", + "src": "7028:111:37", + "text": " @notice Get the Rewards Manager contract\n @return The Rewards Manager contract address" + }, + "id": 4865, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphRewardsManager", + "nameLocation": "7153:20:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4857, + "nodeType": "ParameterList", + "parameters": [], + "src": "7173:2:37" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4865, + "src": "7199:15:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + }, + "typeName": { + "id": 4859, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4858, + "name": "IRewardsManager", + "nameLocations": [ + "7199:15:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 678, + "src": "7199:15:37" + }, + "referencedDeclaration": 678, + "src": "7199:15:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "visibility": "internal" + } + ], + "src": "7198:17:37" + }, + "scope": 4928, + "src": "7144:117:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4874, + "nodeType": "Block", + "src": "7451:43:37", + "statements": [ + { + "expression": { + "id": 4872, + "name": "GRAPH_TOKEN_GATEWAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4619, + "src": "7468:19:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "functionReturnParameters": 4871, + "id": 4873, + "nodeType": "Return", + "src": "7461:26:37" + } + ] + }, + "documentation": { + "id": 4866, + "nodeType": "StructuredDocumentation", + "src": "7267:111:37", + "text": " @notice Get the Graph Token Gateway contract\n @return The Graph Token Gateway contract" + }, + "id": 4875, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphTokenGateway", + "nameLocation": "7392:18:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [], + "src": "7410:2:37" + }, + "returnParameters": { + "id": 4871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4870, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4875, + "src": "7436:13:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + }, + "typeName": { + "id": 4869, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4868, + "name": "ITokenGateway", + "nameLocations": [ + "7436:13:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "7436:13:37" + }, + "referencedDeclaration": 41, + "src": "7436:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenGateway_$41", + "typeString": "contract ITokenGateway" + } + }, + "visibility": "internal" + } + ], + "src": "7435:15:37" + }, + "scope": 4928, + "src": "7383:111:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4884, + "nodeType": "Block", + "src": "7681:41:37", + "statements": [ + { + "expression": { + "id": 4882, + "name": "GRAPH_PROXY_ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4623, + "src": "7698:17:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "functionReturnParameters": 4881, + "id": 4883, + "nodeType": "Return", + "src": "7691:24:37" + } + ] + }, + "documentation": { + "id": 4876, + "nodeType": "StructuredDocumentation", + "src": "7500:107:37", + "text": " @notice Get the Graph Proxy Admin contract\n @return The Graph Proxy Admin contract" + }, + "id": 4885, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphProxyAdmin", + "nameLocation": "7621:16:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4877, + "nodeType": "ParameterList", + "parameters": [], + "src": "7637:2:37" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4885, + "src": "7663:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + }, + "typeName": { + "id": 4879, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4878, + "name": "IGraphProxyAdmin", + "nameLocations": [ + "7663:16:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2493, + "src": "7663:16:37" + }, + "referencedDeclaration": 2493, + "src": "7663:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2493", + "typeString": "contract IGraphProxyAdmin" + } + }, + "visibility": "internal" + } + ], + "src": "7662:18:37" + }, + "scope": 4928, + "src": "7612:110:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4894, + "nodeType": "Block", + "src": "7882:38:37", + "statements": [ + { + "expression": { + "id": 4892, + "name": "GRAPH_CURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4627, + "src": "7899:14:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "functionReturnParameters": 4891, + "id": 4893, + "nodeType": "Return", + "src": "7892:21:37" + } + ] + }, + "documentation": { + "id": 4886, + "nodeType": "StructuredDocumentation", + "src": "7728:89:37", + "text": " @notice Get the Curation contract\n @return The Curation contract" + }, + "id": 4895, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphCuration", + "nameLocation": "7831:14:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4887, + "nodeType": "ParameterList", + "parameters": [], + "src": "7845:2:37" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4895, + "src": "7871:9:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + }, + "typeName": { + "id": 4889, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4888, + "name": "ICuration", + "nameLocations": [ + "7871:9:37" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 165, + "src": "7871:9:37" + }, + "referencedDeclaration": 165, + "src": "7871:9:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "visibility": "internal" + } + ], + "src": "7870:11:37" + }, + "scope": 4928, + "src": "7822:98:37", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4926, + "nodeType": "Block", + "src": "8312:231:37", + "statements": [ + { + "assignments": [ + 4904 + ], + "declarations": [ + { + "constant": false, + "id": 4904, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "8330:15:37", + "nodeType": "VariableDeclaration", + "scope": 4926, + "src": "8322:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4903, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8322:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 4911, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 4908, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4898, + "src": "8392:13:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4907, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8382:9:37", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8382:24:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 4905, + "name": "GRAPH_CONTROLLER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4607, + "src": "8348:16:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IController_$441", + "typeString": "contract IController" + } + }, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8365:16:37", + "memberName": "getContractProxy", + "nodeType": "MemberAccess", + "referencedDeclaration": 415, + "src": "8348:33:37", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 4910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8348:59:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8322:85:37" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4913, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4904, + "src": "8425:15:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8452: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": 4915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8444:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4914, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8444:7:37", + "typeDescriptions": {} + } + }, + "id": 4917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8444:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8425:29:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 4920, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4898, + "src": "8489:13:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4919, + "name": "GraphDirectoryInvalidZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4655, + "src": "8456:32:37", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$", + "typeString": "function (bytes memory) pure returns (error)" + } + }, + "id": 4921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8456:47:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 4912, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8417:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 4922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8417:87:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4923, + "nodeType": "ExpressionStatement", + "src": "8417:87:37" + }, + { + "expression": { + "id": 4924, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4904, + "src": "8521:15:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4902, + "id": 4925, + "nodeType": "Return", + "src": "8514:22:37" + } + ] + }, + "documentation": { + "id": 4896, + "nodeType": "StructuredDocumentation", + "src": "7926:286:37", + "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\n @return The address of the contract" + }, + "id": 4927, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getContractFromController", + "nameLocation": "8226:26:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4898, + "mutability": "mutable", + "name": "_contractName", + "nameLocation": "8266:13:37", + "nodeType": "VariableDeclaration", + "scope": 4927, + "src": "8253:26:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4897, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8253:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8252:28:37" + }, + "returnParameters": { + "id": 4902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4927, + "src": "8303:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8303:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8302:9:37" + }, + "scope": 4928, + "src": "8217:326:37", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 4929, + "src": "1220:7325:37", + "usedErrors": [ + 4655 + ], + "usedEvents": [ + 4650 + ] + } + ], + "src": "46:8500:37" + }, + "id": 37 + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 5437 + ], + "Initializable": [ + 5391 + ], + "OwnableUpgradeable": [ + 5123 + ] + }, + "id": 5124, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4930, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:38" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 4932, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5124, + "sourceUnit": 5438, + "src": "128:67:38", + "symbolAliases": [ + { + "foreign": { + "id": 4931, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "136:18:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 4934, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5124, + "sourceUnit": 5392, + "src": "196:63:38", + "symbolAliases": [ + { + "foreign": { + "id": 4933, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "204:13:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4936, + "name": "Initializable", + "nameLocations": [ + "789:13:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "789:13:38" + }, + "id": 4937, + "nodeType": "InheritanceSpecifier", + "src": "789:13:38" + }, + { + "baseName": { + "id": 4938, + "name": "ContextUpgradeable", + "nameLocations": [ + "804:18:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5437, + "src": "804:18:38" + }, + "id": 4939, + "nodeType": "InheritanceSpecifier", + "src": "804:18:38" + } + ], + "canonicalName": "OwnableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4935, + "nodeType": "StructuredDocumentation", + "src": "261:487:38", + "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": 5123, + "linearizedBaseContracts": [ + 5123, + 5437, + 5391 + ], + "name": "OwnableUpgradeable", + "nameLocation": "767:18:38", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OwnableUpgradeable.OwnableStorage", + "documentation": { + "id": 4940, + "nodeType": "StructuredDocumentation", + "src": "829:65:38", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable" + }, + "id": 4943, + "members": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "939:6:38", + "nodeType": "VariableDeclaration", + "scope": 4943, + "src": "931:14:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "OwnableStorage", + "nameLocation": "906:14:38", + "nodeType": "StructDefinition", + "scope": 5123, + "src": "899:53:38", + "visibility": "public" + }, + { + "constant": true, + "id": 4946, + "mutability": "constant", + "name": "OwnableStorageLocation", + "nameLocation": "1094:22:38", + "nodeType": "VariableDeclaration", + "scope": 5123, + "src": "1069:116:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4944, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1069:7:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030", + "id": 4945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1119:66:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1", + "typeString": "int_const 6517...(69 digits omitted)...7328" + }, + "value": "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" + }, + "visibility": "private" + }, + { + "body": { + "id": 4953, + "nodeType": "Block", + "src": "1270:81:38", + "statements": [ + { + "AST": { + "nativeSrc": "1289:56:38", + "nodeType": "YulBlock", + "src": "1289:56:38", + "statements": [ + { + "nativeSrc": "1303:32:38", + "nodeType": "YulAssignment", + "src": "1303:32:38", + "value": { + "name": "OwnableStorageLocation", + "nativeSrc": "1313:22:38", + "nodeType": "YulIdentifier", + "src": "1313:22:38" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1303:6:38", + "nodeType": "YulIdentifier", + "src": "1303:6:38" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4950, + "isOffset": false, + "isSlot": true, + "src": "1303:6:38", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4946, + "isOffset": false, + "isSlot": false, + "src": "1313:22:38", + "valueSize": 1 + } + ], + "id": 4952, + "nodeType": "InlineAssembly", + "src": "1280:65:38" + } + ] + }, + "id": 4954, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getOwnableStorage", + "nameLocation": "1201:18:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4947, + "nodeType": "ParameterList", + "parameters": [], + "src": "1219:2:38" + }, + "returnParameters": { + "id": 4951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4950, + "mutability": "mutable", + "name": "$", + "nameLocation": "1267:1:38", + "nodeType": "VariableDeclaration", + "scope": 4954, + "src": "1244:24:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 4949, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4948, + "name": "OwnableStorage", + "nameLocations": [ + "1244:14:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4943, + "src": "1244:14:38" + }, + "referencedDeclaration": 4943, + "src": "1244:14:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1243:26:38" + }, + "scope": 5123, + "src": "1192:159:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "documentation": { + "id": 4955, + "nodeType": "StructuredDocumentation", + "src": "1357:85:38", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 4959, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "1453:26:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4957, + "mutability": "mutable", + "name": "account", + "nameLocation": "1488:7:38", + "nodeType": "VariableDeclaration", + "scope": 4959, + "src": "1480:15:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4956, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1480:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1479:17:38" + }, + "src": "1447:50:38" + }, + { + "documentation": { + "id": 4960, + "nodeType": "StructuredDocumentation", + "src": "1503:82:38", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 4964, + "name": "OwnableInvalidOwner", + "nameLocation": "1596:19:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4962, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1624:5:38", + "nodeType": "VariableDeclaration", + "scope": 4964, + "src": "1616:13:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4961, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1616:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1615:15:38" + }, + "src": "1590:41:38" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 4970, + "name": "OwnershipTransferred", + "nameLocation": "1643:20:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 4969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4966, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1680:13:38", + "nodeType": "VariableDeclaration", + "scope": 4970, + "src": "1664:29:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1664:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4968, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1711:8:38", + "nodeType": "VariableDeclaration", + "scope": 4970, + "src": "1695:24:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1695:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1663:57:38" + }, + "src": "1637:84:38" + }, + { + "body": { + "id": 4982, + "nodeType": "Block", + "src": "1919:55:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4979, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4973, + "src": "1954:12:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4978, + "name": "__Ownable_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "1929:24:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1929:38:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4981, + "nodeType": "ExpressionStatement", + "src": "1929:38:38" + } + ] + }, + "documentation": { + "id": 4971, + "nodeType": "StructuredDocumentation", + "src": "1727:115:38", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 4983, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4976, + "kind": "modifierInvocation", + "modifierName": { + "id": 4975, + "name": "onlyInitializing", + "nameLocations": [ + "1902:16:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1902:16:38" + }, + "nodeType": "ModifierInvocation", + "src": "1902:16:38" + } + ], + "name": "__Ownable_init", + "nameLocation": "1856:14:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4973, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1879:12:38", + "nodeType": "VariableDeclaration", + "scope": 4983, + "src": "1871:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1871:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1870:22:38" + }, + "returnParameters": { + "id": 4977, + "nodeType": "ParameterList", + "parameters": [], + "src": "1919:0:38" + }, + "scope": 5123, + "src": "1847:127:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5009, + "nodeType": "Block", + "src": "2062:153:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4990, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4985, + "src": "2076:12:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2100:1:38", + "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": 4992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2092:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2092:7:38", + "typeDescriptions": {} + } + }, + "id": 4994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2092:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2076:26:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5004, + "nodeType": "IfStatement", + "src": "2072:95:38", + "trueBody": { + "id": 5003, + "nodeType": "Block", + "src": "2104:63:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 4999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2153:1:38", + "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": 4998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2145:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:38", + "typeDescriptions": {} + } + }, + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2145:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4996, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "2125:19:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 5001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2125:31:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5002, + "nodeType": "RevertStatement", + "src": "2118:38:38" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5006, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4985, + "src": "2195:12:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5005, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5122, + "src": "2176:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2176:32:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5008, + "nodeType": "ExpressionStatement", + "src": "2176:32:38" + } + ] + }, + "id": 5010, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4988, + "kind": "modifierInvocation", + "modifierName": { + "id": 4987, + "name": "onlyInitializing", + "nameLocations": [ + "2045:16:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "2045:16:38" + }, + "nodeType": "ModifierInvocation", + "src": "2045:16:38" + } + ], + "name": "__Ownable_init_unchained", + "nameLocation": "1989:24:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4986, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4985, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "2022:12:38", + "nodeType": "VariableDeclaration", + "scope": 5010, + "src": "2014:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2014:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2013:22:38" + }, + "returnParameters": { + "id": 4989, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:38" + }, + "scope": 5123, + "src": "1980:235:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5017, + "nodeType": "Block", + "src": "2324:41:38", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5013, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "2334:11:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 5014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2334:13:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5015, + "nodeType": "ExpressionStatement", + "src": "2334:13:38" + }, + { + "id": 5016, + "nodeType": "PlaceholderStatement", + "src": "2357:1:38" + } + ] + }, + "documentation": { + "id": 5011, + "nodeType": "StructuredDocumentation", + "src": "2221:77:38", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 5018, + "name": "onlyOwner", + "nameLocation": "2312:9:38", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [], + "src": "2321:2:38" + }, + "src": "2303:62:38", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "2496:89:38", + "statements": [ + { + "assignments": [ + 5026 + ], + "declarations": [ + { + "constant": false, + "id": 5026, + "mutability": "mutable", + "name": "$", + "nameLocation": "2529:1:38", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "2506:24:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 5025, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5024, + "name": "OwnableStorage", + "nameLocations": [ + "2506:14:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4943, + "src": "2506:14:38" + }, + "referencedDeclaration": 4943, + "src": "2506:14:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5029, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5027, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4954, + "src": "2533:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4943_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 5028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2533:20:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2506:47:38" + }, + { + "expression": { + "expression": { + "id": 5030, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "2570:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2572:6:38", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4942, + "src": "2570:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5023, + "id": 5032, + "nodeType": "Return", + "src": "2563:15:38" + } + ] + }, + "documentation": { + "id": 5019, + "nodeType": "StructuredDocumentation", + "src": "2371:65:38", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 5034, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2450:5:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5020, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:38" + }, + "returnParameters": { + "id": 5023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5022, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5034, + "src": "2487:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2487:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2486:9:38" + }, + "scope": 5123, + "src": "2441:144:38", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5050, + "nodeType": "Block", + "src": "2703:117:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5038, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5034, + "src": "2717:5:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2717:7:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5040, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5419, + "src": "2728:10:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:12:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2717:23:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5049, + "nodeType": "IfStatement", + "src": "2713:101:38", + "trueBody": { + "id": 5048, + "nodeType": "Block", + "src": "2742:72:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5044, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5419, + "src": "2790:10:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2790:12:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5043, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4959, + "src": "2763:26:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 5046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2763:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5047, + "nodeType": "RevertStatement", + "src": "2756:47:38" + } + ] + } + } + ] + }, + "documentation": { + "id": 5035, + "nodeType": "StructuredDocumentation", + "src": "2591:62:38", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 5051, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "2667:11:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5036, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:2:38" + }, + "returnParameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [], + "src": "2703:0:38" + }, + "scope": 5123, + "src": "2658:162:38", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5064, + "nodeType": "Block", + "src": "3209:47:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3246:1:38", + "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": 5059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3238:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3238:7:38", + "typeDescriptions": {} + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3238:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5057, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5122, + "src": "3219:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3219:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5063, + "nodeType": "ExpressionStatement", + "src": "3219:30:38" + } + ] + }, + "documentation": { + "id": 5052, + "nodeType": "StructuredDocumentation", + "src": "2826:324:38", + "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": 5065, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5055, + "kind": "modifierInvocation", + "modifierName": { + "id": 5054, + "name": "onlyOwner", + "nameLocations": [ + "3199:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "3199:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "3199:9:38" + } + ], + "name": "renounceOwnership", + "nameLocation": "3164:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5053, + "nodeType": "ParameterList", + "parameters": [], + "src": "3181:2:38" + }, + "returnParameters": { + "id": 5056, + "nodeType": "ParameterList", + "parameters": [], + "src": "3209:0:38" + }, + "scope": 5123, + "src": "3155:101:38", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5092, + "nodeType": "Block", + "src": "3475:145:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5073, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5068, + "src": "3489:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 5076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3509:1:38", + "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": 5075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3501:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3501:7:38", + "typeDescriptions": {} + } + }, + "id": 5077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3501:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3489:22:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5087, + "nodeType": "IfStatement", + "src": "3485:91:38", + "trueBody": { + "id": 5086, + "nodeType": "Block", + "src": "3513:63:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 5082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3562:1:38", + "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": 5081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3554:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3554:7:38", + "typeDescriptions": {} + } + }, + "id": 5083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3554:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5079, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "3534:19:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 5084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3534:31:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5085, + "nodeType": "RevertStatement", + "src": "3527:38:38" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5089, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5068, + "src": "3604:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5088, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5122, + "src": "3585:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3585:28:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5091, + "nodeType": "ExpressionStatement", + "src": "3585:28:38" + } + ] + }, + "documentation": { + "id": 5066, + "nodeType": "StructuredDocumentation", + "src": "3262:138:38", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 5093, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5071, + "kind": "modifierInvocation", + "modifierName": { + "id": 5070, + "name": "onlyOwner", + "nameLocations": [ + "3465:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "3465:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "3465:9:38" + } + ], + "name": "transferOwnership", + "nameLocation": "3414:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5068, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3440:8:38", + "nodeType": "VariableDeclaration", + "scope": 5093, + "src": "3432:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3432:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3431:18:38" + }, + "returnParameters": { + "id": 5072, + "nodeType": "ParameterList", + "parameters": [], + "src": "3475:0:38" + }, + "scope": 5123, + "src": "3405:215:38", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5121, + "nodeType": "Block", + "src": "3837:185:38", + "statements": [ + { + "assignments": [ + 5101 + ], + "declarations": [ + { + "constant": false, + "id": 5101, + "mutability": "mutable", + "name": "$", + "nameLocation": "3870:1:38", + "nodeType": "VariableDeclaration", + "scope": 5121, + "src": "3847:24:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 5100, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5099, + "name": "OwnableStorage", + "nameLocations": [ + "3847:14:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4943, + "src": "3847:14:38" + }, + "referencedDeclaration": 4943, + "src": "3847:14:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5104, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5102, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4954, + "src": "3874:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4943_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 5103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3874:20:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3847:47:38" + }, + { + "assignments": [ + 5106 + ], + "declarations": [ + { + "constant": false, + "id": 5106, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "3912:8:38", + "nodeType": "VariableDeclaration", + "scope": 5121, + "src": "3904:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 5109, + "initialValue": { + "expression": { + "id": 5107, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5101, + "src": "3923:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3925:6:38", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4942, + "src": "3923:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3904:27:38" + }, + { + "expression": { + "id": 5114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5110, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5101, + "src": "3941:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4943_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 5112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3943:6:38", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4942, + "src": "3941:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5113, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5096, + "src": "3952:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3941:19:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5115, + "nodeType": "ExpressionStatement", + "src": "3941:19:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5117, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "3996:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5118, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5096, + "src": "4006:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5116, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4970, + "src": "3975:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 5119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3975:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5120, + "nodeType": "EmitStatement", + "src": "3970:45:38" + } + ] + }, + "documentation": { + "id": 5094, + "nodeType": "StructuredDocumentation", + "src": "3626:143:38", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 5122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "3783:18:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5096, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3810:8:38", + "nodeType": "VariableDeclaration", + "scope": 5122, + "src": "3802:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3802:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3801:18:38" + }, + "returnParameters": { + "id": 5098, + "nodeType": "ParameterList", + "parameters": [], + "src": "3837:0:38" + }, + "scope": 5123, + "src": "3774:248:38", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 5124, + "src": "749:3275:38", + "usedErrors": [ + 4959, + 4964, + 5140, + 5143 + ], + "usedEvents": [ + 4970, + 5148 + ] + } + ], + "src": "102:3923:38" + }, + "id": 38 + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 5391 + ] + }, + "id": 5392, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5125, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:39" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5126, + "nodeType": "StructuredDocumentation", + "src": "139:2209:39", + "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": 5391, + "linearizedBaseContracts": [ + 5391 + ], + "name": "Initializable", + "nameLocation": "2367:13:39", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Initializable.InitializableStorage", + "documentation": { + "id": 5127, + "nodeType": "StructuredDocumentation", + "src": "2387:293:39", + "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": 5134, + "members": [ + { + "constant": false, + "id": 5130, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2820:12:39", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "2813:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5129, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2813:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5133, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2955:13:39", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "2950:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5132, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2950:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "InitializableStorage", + "nameLocation": "2692:20:39", + "nodeType": "StructDefinition", + "scope": 5391, + "src": "2685:290:39", + "visibility": "public" + }, + { + "constant": true, + "id": 5137, + "mutability": "constant", + "name": "INITIALIZABLE_STORAGE", + "nameLocation": "3123:21:39", + "nodeType": "VariableDeclaration", + "scope": 5391, + "src": "3098:115:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5135, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", + "id": 5136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", + "typeString": "int_const 1089...(70 digits omitted)...9600" + }, + "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 5138, + "nodeType": "StructuredDocumentation", + "src": "3220:60:39", + "text": " @dev The contract is already initialized." + }, + "errorSelector": "f92ee8a9", + "id": 5140, + "name": "InvalidInitialization", + "nameLocation": "3291:21:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 5139, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:2:39" + }, + "src": "3285:30:39" + }, + { + "documentation": { + "id": 5141, + "nodeType": "StructuredDocumentation", + "src": "3321:57:39", + "text": " @dev The contract is not initializing." + }, + "errorSelector": "d7e6bcf8", + "id": 5143, + "name": "NotInitializing", + "nameLocation": "3389:15:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [], + "src": "3404:2:39" + }, + "src": "3383:24:39" + }, + { + "anonymous": false, + "documentation": { + "id": 5144, + "nodeType": "StructuredDocumentation", + "src": "3413:90:39", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", + "id": 5148, + "name": "Initialized", + "nameLocation": "3514:11:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5146, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "3533:7:39", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "3526:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5145, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3526:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3525:16:39" + }, + "src": "3508:34:39" + }, + { + "body": { + "id": 5230, + "nodeType": "Block", + "src": "4092:1079:39", + "statements": [ + { + "assignments": [ + 5153 + ], + "declarations": [ + { + "constant": false, + "id": 5153, + "mutability": "mutable", + "name": "$", + "nameLocation": "4187:1:39", + "nodeType": "VariableDeclaration", + "scope": 5230, + "src": "4158:30:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5152, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5151, + "name": "InitializableStorage", + "nameLocations": [ + "4158:20:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5134, + "src": "4158:20:39" + }, + "referencedDeclaration": 5134, + "src": "4158:20:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5156, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5154, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "4191:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$5134_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4191:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4158:59:39" + }, + { + "assignments": [ + 5158 + ], + "declarations": [ + { + "constant": false, + "id": 5158, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "4284:14:39", + "nodeType": "VariableDeclaration", + "scope": 5230, + "src": "4279:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5157, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4279:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5162, + "initialValue": { + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4301:16:39", + "subExpression": { + "expression": { + "id": 5159, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5153, + "src": "4302:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "4302:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4279:38:39" + }, + { + "assignments": [ + 5164 + ], + "declarations": [ + { + "constant": false, + "id": 5164, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "4334:11:39", + "nodeType": "VariableDeclaration", + "scope": 5230, + "src": "4327:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5163, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4327:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 5167, + "initialValue": { + "expression": { + "id": 5165, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5153, + "src": "4348:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4350:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "4348:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4327:35:39" + }, + { + "assignments": [ + 5169 + ], + "declarations": [ + { + "constant": false, + "id": 5169, + "mutability": "mutable", + "name": "initialSetup", + "nameLocation": "4709:12:39", + "nodeType": "VariableDeclaration", + "scope": 5230, + "src": "4704:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5168, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4704:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5175, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5170, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5164, + "src": "4724:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4739:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4724:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 5173, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "4744:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4724:34:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4704:54:39" + }, + { + "assignments": [ + 5177 + ], + "declarations": [ + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "construction", + "nameLocation": "4773:12:39", + "nodeType": "VariableDeclaration", + "scope": 5230, + "src": "4768:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4768:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5190, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5178, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5164, + "src": "4788:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 5179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4803:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4788:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 5183, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4816:4:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$5391", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$5391", + "typeString": "contract Initializable" + } + ], + "id": 5182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4808:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4808:7:39", + "typeDescriptions": {} + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4808:13:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4822:4:39", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4808:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4827:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4808:25:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4837:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4808:30:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4788:50:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4768:70:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4853:13:39", + "subExpression": { + "id": 5191, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5169, + "src": "4854:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 5194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4870:13:39", + "subExpression": { + "id": 5193, + "name": "construction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "4871:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4853:30:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5200, + "nodeType": "IfStatement", + "src": "4849:91:39", + "trueBody": { + "id": 5199, + "nodeType": "Block", + "src": "4885:55:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5196, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5140, + "src": "4906:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:23:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5198, + "nodeType": "RevertStatement", + "src": "4899:30:39" + } + ] + } + }, + { + "expression": { + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5201, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5153, + "src": "4949:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4951:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "4949:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 5204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4966:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4949:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5206, + "nodeType": "ExpressionStatement", + "src": "4949:18:39" + }, + { + "condition": { + "id": 5207, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "4981:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5215, + "nodeType": "IfStatement", + "src": "4977:67:39", + "trueBody": { + "id": 5214, + "nodeType": "Block", + "src": "4997:47:39", + "statements": [ + { + "expression": { + "id": 5212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5208, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5153, + "src": "5011:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5013:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "5011:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5029:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5011:22:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5213, + "nodeType": "ExpressionStatement", + "src": "5011:22:39" + } + ] + } + }, + { + "id": 5216, + "nodeType": "PlaceholderStatement", + "src": "5053:1:39" + }, + { + "condition": { + "id": 5217, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "5068:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5229, + "nodeType": "IfStatement", + "src": "5064:101:39", + "trueBody": { + "id": 5228, + "nodeType": "Block", + "src": "5084:81:39", + "statements": [ + { + "expression": { + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5218, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5153, + "src": "5098:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5220, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5100:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "5098:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 5221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5116:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5098:23:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5223, + "nodeType": "ExpressionStatement", + "src": "5098:23:39" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5152:1:39", + "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": 5224, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5148, + "src": "5140:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5140:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5227, + "nodeType": "EmitStatement", + "src": "5135:19:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 5149, + "nodeType": "StructuredDocumentation", + "src": "3548:516:39", + "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": 5231, + "name": "initializer", + "nameLocation": "4078:11:39", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5150, + "nodeType": "ParameterList", + "parameters": [], + "src": "4089:2:39" + }, + "src": "4069:1102:39", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5277, + "nodeType": "Block", + "src": "6289:392:39", + "statements": [ + { + "assignments": [ + 5238 + ], + "declarations": [ + { + "constant": false, + "id": 5238, + "mutability": "mutable", + "name": "$", + "nameLocation": "6384:1:39", + "nodeType": "VariableDeclaration", + "scope": 5277, + "src": "6355:30:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5237, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5236, + "name": "InitializableStorage", + "nameLocations": [ + "6355:20:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5134, + "src": "6355:20:39" + }, + "referencedDeclaration": 5134, + "src": "6355:20:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5241, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5239, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "6388:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$5134_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6388:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6355:59:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5242, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5238, + "src": "6429:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6431:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "6429:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5244, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5238, + "src": "6448:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6450:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "6448:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5246, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5234, + "src": "6466:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6448:25:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6429:44:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5253, + "nodeType": "IfStatement", + "src": "6425:105:39", + "trueBody": { + "id": 5252, + "nodeType": "Block", + "src": "6475:55:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5249, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5140, + "src": "6496:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:23:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5251, + "nodeType": "RevertStatement", + "src": "6489:30:39" + } + ] + } + }, + { + "expression": { + "id": 5258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5254, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5238, + "src": "6539:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5256, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6541:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "6539:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5257, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5234, + "src": "6556:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6539:24:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5259, + "nodeType": "ExpressionStatement", + "src": "6539:24:39" + }, + { + "expression": { + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5260, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5238, + "src": "6573:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6575:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "6573:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6591:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6573:22:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "6573:22:39" + }, + { + "id": 5266, + "nodeType": "PlaceholderStatement", + "src": "6605:1:39" + }, + { + "expression": { + "id": 5271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5267, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5238, + "src": "6616:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6618:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "6616:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 5270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6634:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6616:23:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5272, + "nodeType": "ExpressionStatement", + "src": "6616:23:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5274, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5234, + "src": "6666:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 5273, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5148, + "src": "6654:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6654:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5276, + "nodeType": "EmitStatement", + "src": "6649:25:39" + } + ] + }, + "documentation": { + "id": 5232, + "nodeType": "StructuredDocumentation", + "src": "5177:1068:39", + "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": 5278, + "name": "reinitializer", + "nameLocation": "6259:13:39", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5234, + "mutability": "mutable", + "name": "version", + "nameLocation": "6280:7:39", + "nodeType": "VariableDeclaration", + "scope": 5278, + "src": "6273:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5233, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6273:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6272:16:39" + }, + "src": "6250:431:39", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5285, + "nodeType": "Block", + "src": "6919:48:39", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5281, + "name": "_checkInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5299, + "src": "6929:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6929:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5283, + "nodeType": "ExpressionStatement", + "src": "6929:20:39" + }, + { + "id": 5284, + "nodeType": "PlaceholderStatement", + "src": "6959:1:39" + } + ] + }, + "documentation": { + "id": 5279, + "nodeType": "StructuredDocumentation", + "src": "6687:199:39", + "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": 5286, + "name": "onlyInitializing", + "nameLocation": "6900:16:39", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5280, + "nodeType": "ParameterList", + "parameters": [], + "src": "6916:2:39" + }, + "src": "6891:76:39", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5298, + "nodeType": "Block", + "src": "7134:89:39", + "statements": [ + { + "condition": { + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7148:18:39", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5290, + "name": "_isInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "7149:15:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7149:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5297, + "nodeType": "IfStatement", + "src": "7144:73:39", + "trueBody": { + "id": 5296, + "nodeType": "Block", + "src": "7168:49:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5293, + "name": "NotInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5143, + "src": "7189:15:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7189:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5295, + "nodeType": "RevertStatement", + "src": "7182:24:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 5287, + "nodeType": "StructuredDocumentation", + "src": "6973:104:39", + "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." + }, + "id": 5299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkInitializing", + "nameLocation": "7091:18:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5288, + "nodeType": "ParameterList", + "parameters": [], + "src": "7109:2:39" + }, + "returnParameters": { + "id": 5289, + "nodeType": "ParameterList", + "parameters": [], + "src": "7134:0:39" + }, + "scope": 5391, + "src": "7082:141:39", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5344, + "nodeType": "Block", + "src": "7758:373:39", + "statements": [ + { + "assignments": [ + 5305 + ], + "declarations": [ + { + "constant": false, + "id": 5305, + "mutability": "mutable", + "name": "$", + "nameLocation": "7853:1:39", + "nodeType": "VariableDeclaration", + "scope": 5344, + "src": "7824:30:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5304, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5303, + "name": "InitializableStorage", + "nameLocations": [ + "7824:20:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5134, + "src": "7824:20:39" + }, + "referencedDeclaration": 5134, + "src": "7824:20:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5308, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5306, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "7857:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$5134_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7857:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7824:59:39" + }, + { + "condition": { + "expression": { + "id": 5309, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5305, + "src": "7898:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5310, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7900:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "7898:15:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5315, + "nodeType": "IfStatement", + "src": "7894:76:39", + "trueBody": { + "id": 5314, + "nodeType": "Block", + "src": "7915:55:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5311, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5140, + "src": "7936:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7936:23:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5313, + "nodeType": "RevertStatement", + "src": "7929:30:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5316, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5305, + "src": "7983:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5317, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7985:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "7983:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8006:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5319, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8006:6:39", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5318, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8001:4:39", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8001:12:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8014:3:39", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8001:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7983:34:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5343, + "nodeType": "IfStatement", + "src": "7979:146:39", + "trueBody": { + "id": 5342, + "nodeType": "Block", + "src": "8019:106:39", + "statements": [ + { + "expression": { + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5324, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5305, + "src": "8033:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8035:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "8033:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8055:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5328, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8055:6:39", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5327, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8050:4:39", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8050:12:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8063:3:39", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8050:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8033:33:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "8033:33:39" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 5337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8102:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5336, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8102:6:39", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5335, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8097:4:39", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8097:12:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8110:3:39", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8097:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 5334, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5148, + "src": "8085:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8085:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5341, + "nodeType": "EmitStatement", + "src": "8080:34:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 5300, + "nodeType": "StructuredDocumentation", + "src": "7229:475:39", + "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": 5345, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "7718:20:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5301, + "nodeType": "ParameterList", + "parameters": [], + "src": "7738:2:39" + }, + "returnParameters": { + "id": 5302, + "nodeType": "ParameterList", + "parameters": [], + "src": "7758:0:39" + }, + "scope": 5391, + "src": "7709:422:39", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5355, + "nodeType": "Block", + "src": "8306:63:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5351, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "8323:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$5134_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8323:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8350:12:39", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 5130, + "src": "8323:39:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 5350, + "id": 5354, + "nodeType": "Return", + "src": "8316:46:39" + } + ] + }, + "documentation": { + "id": 5346, + "nodeType": "StructuredDocumentation", + "src": "8137:99:39", + "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." + }, + "id": 5356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "8250:22:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5347, + "nodeType": "ParameterList", + "parameters": [], + "src": "8272:2:39" + }, + "returnParameters": { + "id": 5350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5356, + "src": "8298:6:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5348, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8298:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8297:8:39" + }, + "scope": 5391, + "src": "8241:128:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5366, + "nodeType": "Block", + "src": "8541:64:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5362, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "8558:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$5134_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8558:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5364, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8585:13:39", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 5133, + "src": "8558:40:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5361, + "id": 5365, + "nodeType": "Return", + "src": "8551:47:39" + } + ] + }, + "documentation": { + "id": 5357, + "nodeType": "StructuredDocumentation", + "src": "8375:105:39", + "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." + }, + "id": 5367, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "8494:15:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5358, + "nodeType": "ParameterList", + "parameters": [], + "src": "8509:2:39" + }, + "returnParameters": { + "id": 5361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5360, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5367, + "src": "8535:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5359, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8535:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8534:6:39" + }, + "scope": 5391, + "src": "8485:120:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "8896:45:39", + "statements": [ + { + "expression": { + "id": 5373, + "name": "INITIALIZABLE_STORAGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "8913:21:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5372, + "id": 5374, + "nodeType": "Return", + "src": "8906:28:39" + } + ] + }, + "documentation": { + "id": 5368, + "nodeType": "StructuredDocumentation", + "src": "8611:203:39", + "text": " @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n NOTE: Consider following the ERC-7201 formula to derive storage locations." + }, + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_initializableStorageSlot", + "nameLocation": "8828:25:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5369, + "nodeType": "ParameterList", + "parameters": [], + "src": "8853:2:39" + }, + "returnParameters": { + "id": 5372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5371, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "8887:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5370, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8887:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8886:9:39" + }, + "scope": 5391, + "src": "8819:122:39", + "stateMutability": "pure", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5389, + "nodeType": "Block", + "src": "9161:115:39", + "statements": [ + { + "assignments": [ + 5384 + ], + "declarations": [ + { + "constant": false, + "id": 5384, + "mutability": "mutable", + "name": "slot", + "nameLocation": "9179:4:39", + "nodeType": "VariableDeclaration", + "scope": 5389, + "src": "9171:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5383, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9171:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5387, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5385, + "name": "_initializableStorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5376, + "src": "9186:25:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9186:27:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9171:42:39" + }, + { + "AST": { + "nativeSrc": "9232:38:39", + "nodeType": "YulBlock", + "src": "9232:38:39", + "statements": [ + { + "nativeSrc": "9246:14:39", + "nodeType": "YulAssignment", + "src": "9246:14:39", + "value": { + "name": "slot", + "nativeSrc": "9256:4:39", + "nodeType": "YulIdentifier", + "src": "9256:4:39" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "9246:6:39", + "nodeType": "YulIdentifier", + "src": "9246:6:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5381, + "isOffset": false, + "isSlot": true, + "src": "9246:6:39", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 5384, + "isOffset": false, + "isSlot": false, + "src": "9256:4:39", + "valueSize": 1 + } + ], + "id": 5388, + "nodeType": "InlineAssembly", + "src": "9223:47:39" + } + ] + }, + "documentation": { + "id": 5377, + "nodeType": "StructuredDocumentation", + "src": "8947:67:39", + "text": " @dev Returns a pointer to the storage namespace." + }, + "id": 5390, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializableStorage", + "nameLocation": "9080:24:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5378, + "nodeType": "ParameterList", + "parameters": [], + "src": "9104:2:39" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "mutability": "mutable", + "name": "$", + "nameLocation": "9158:1:39", + "nodeType": "VariableDeclaration", + "scope": 5390, + "src": "9129:30:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5379, + "name": "InitializableStorage", + "nameLocations": [ + "9129:20:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5134, + "src": "9129:20:39" + }, + "referencedDeclaration": 5134, + "src": "9129:20:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$5134_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "9128:32:39" + }, + "scope": 5391, + "src": "9071:205:39", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 5392, + "src": "2349:6929:39", + "usedErrors": [ + 5140, + 5143 + ], + "usedEvents": [ + 5148 + ] + } + ], + "src": "113:9166:39" + }, + "id": 39 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 5437 + ], + "Initializable": [ + 5391 + ] + }, + "id": 5438, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5393, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:40" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 5395, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5438, + "sourceUnit": 5392, + "src": "126:63:40", + "symbolAliases": [ + { + "foreign": { + "id": 5394, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "134:13:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5397, + "name": "Initializable", + "nameLocations": [ + "728:13:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "728:13:40" + }, + "id": 5398, + "nodeType": "InheritanceSpecifier", + "src": "728:13:40" + } + ], + "canonicalName": "ContextUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5396, + "nodeType": "StructuredDocumentation", + "src": "191:496:40", + "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": 5437, + "linearizedBaseContracts": [ + 5437, + 5391 + ], + "name": "ContextUpgradeable", + "nameLocation": "706:18:40", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5403, + "nodeType": "Block", + "src": "800:7:40", + "statements": [] + }, + "id": 5404, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5401, + "kind": "modifierInvocation", + "modifierName": { + "id": 5400, + "name": "onlyInitializing", + "nameLocations": [ + "783:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "783:16:40" + }, + "nodeType": "ModifierInvocation", + "src": "783:16:40" + } + ], + "name": "__Context_init", + "nameLocation": "757:14:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5399, + "nodeType": "ParameterList", + "parameters": [], + "src": "771:2:40" + }, + "returnParameters": { + "id": 5402, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:40" + }, + "scope": 5437, + "src": "748:59:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5409, + "nodeType": "Block", + "src": "875:7:40", + "statements": [] + }, + "id": 5410, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5407, + "kind": "modifierInvocation", + "modifierName": { + "id": 5406, + "name": "onlyInitializing", + "nameLocations": [ + "858:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "858:16:40" + }, + "nodeType": "ModifierInvocation", + "src": "858:16:40" + } + ], + "name": "__Context_init_unchained", + "nameLocation": "822:24:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5405, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:40" + }, + "returnParameters": { + "id": 5408, + "nodeType": "ParameterList", + "parameters": [], + "src": "875:0:40" + }, + "scope": 5437, + "src": "813:69:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "949:34:40", + "statements": [ + { + "expression": { + "expression": { + "id": 5415, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "966:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5414, + "id": 5417, + "nodeType": "Return", + "src": "959:17:40" + } + ] + }, + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "896:10:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5411, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:40" + }, + "returnParameters": { + "id": 5414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5413, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "940:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:40" + }, + "scope": 5437, + "src": "887:96:40", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5427, + "nodeType": "Block", + "src": "1056:32:40", + "statements": [ + { + "expression": { + "expression": { + "id": 5424, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1073:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1077:4:40", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1073:8:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 5423, + "id": 5426, + "nodeType": "Return", + "src": "1066:15:40" + } + ] + }, + "id": 5428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "998:8:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5420, + "nodeType": "ParameterList", + "parameters": [], + "src": "1006:2:40" + }, + "returnParameters": { + "id": 5423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5428, + "src": "1040:14:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5421, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1039:16:40" + }, + "scope": 5437, + "src": "989:99:40", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5435, + "nodeType": "Block", + "src": "1166:25:40", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 5433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1183:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 5432, + "id": 5434, + "nodeType": "Return", + "src": "1176:8:40" + } + ] + }, + "id": 5436, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "1103:20:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [], + "src": "1123:2:40" + }, + "returnParameters": { + "id": 5432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5431, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5436, + "src": "1157:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1157:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1156:9:40" + }, + "scope": 5437, + "src": "1094:97:40", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 5438, + "src": "688:505:40", + "usedErrors": [ + 5140, + 5143 + ], + "usedEvents": [ + 5148 + ] + } + ], + "src": "101:1093:40" + }, + "id": 40 + }, + "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "exportedSymbols": { + "Address": [ + 6407 + ], + "ContextUpgradeable": [ + 5437 + ], + "Initializable": [ + 5391 + ], + "MulticallUpgradeable": [ + 5540 + ] + }, + "id": 5541, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5439, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:41" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "@openzeppelin/contracts/utils/Address.sol", + "id": 5441, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5541, + "sourceUnit": 6408, + "src": "129:66:41", + "symbolAliases": [ + { + "foreign": { + "id": 5440, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6407, + "src": "137:7:41", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "./ContextUpgradeable.sol", + "id": 5443, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5541, + "sourceUnit": 5438, + "src": "196:60:41", + "symbolAliases": [ + { + "foreign": { + "id": 5442, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "204:18:41", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 5445, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5541, + "sourceUnit": 5392, + "src": "257:63:41", + "symbolAliases": [ + { + "foreign": { + "id": 5444, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "265:13:41", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5447, + "name": "Initializable", + "nameLocations": [ + "1178:13:41" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "1178:13:41" + }, + "id": 5448, + "nodeType": "InheritanceSpecifier", + "src": "1178:13:41" + }, + { + "baseName": { + "id": 5449, + "name": "ContextUpgradeable", + "nameLocations": [ + "1193:18:41" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5437, + "src": "1193:18:41" + }, + "id": 5450, + "nodeType": "InheritanceSpecifier", + "src": "1193:18:41" + } + ], + "canonicalName": "MulticallUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5446, + "nodeType": "StructuredDocumentation", + "src": "322:813:41", + "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 {Context-_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 {Context-_msgSender} are not propagated to subcalls." + }, + "fullyImplemented": true, + "id": 5540, + "linearizedBaseContracts": [ + 5540, + 5437, + 5391 + ], + "name": "MulticallUpgradeable", + "nameLocation": "1154:20:41", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5455, + "nodeType": "Block", + "src": "1272:7:41", + "statements": [] + }, + "id": 5456, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5453, + "kind": "modifierInvocation", + "modifierName": { + "id": 5452, + "name": "onlyInitializing", + "nameLocations": [ + "1255:16:41" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1255:16:41" + }, + "nodeType": "ModifierInvocation", + "src": "1255:16:41" + } + ], + "name": "__Multicall_init", + "nameLocation": "1227:16:41", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5451, + "nodeType": "ParameterList", + "parameters": [], + "src": "1243:2:41" + }, + "returnParameters": { + "id": 5454, + "nodeType": "ParameterList", + "parameters": [], + "src": "1272:0:41" + }, + "scope": 5540, + "src": "1218:61:41", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5461, + "nodeType": "Block", + "src": "1349:7:41", + "statements": [] + }, + "id": 5462, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5459, + "kind": "modifierInvocation", + "modifierName": { + "id": 5458, + "name": "onlyInitializing", + "nameLocations": [ + "1332:16:41" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1332:16:41" + }, + "nodeType": "ModifierInvocation", + "src": "1332:16:41" + } + ], + "name": "__Multicall_init_unchained", + "nameLocation": "1294:26:41", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5457, + "nodeType": "ParameterList", + "parameters": [], + "src": "1320:2:41" + }, + "returnParameters": { + "id": 5460, + "nodeType": "ParameterList", + "parameters": [], + "src": "1349:0:41" + }, + "scope": 5540, + "src": "1285:71:41", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5538, + "nodeType": "Block", + "src": "1610:392:41", + "statements": [ + { + "assignments": [ + 5473 + ], + "declarations": [ + { + "constant": false, + "id": 5473, + "mutability": "mutable", + "name": "context", + "nameLocation": "1633:7:41", + "nodeType": "VariableDeclaration", + "scope": 5538, + "src": "1620:20:41", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5472, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1620:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 5493, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5474, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1643:3:41", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1647:6:41", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1643:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5476, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5419, + "src": "1657:10:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1657:12:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1643:26:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "baseExpression": { + "expression": { + "id": 5483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1711:3:41", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1715:4:41", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1711:8:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 5491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "1711:51:41", + "startExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 5485, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1720:3:41", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1724:4:41", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1720:8:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 5487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1729:6:41", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1720:15:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5488, + "name": "_contextSuffixLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5436, + "src": "1738:20:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 5489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1738:22:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1720:40:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + "id": 5492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1643:119:41", + "trueExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 5481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1694:1:41", + "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": 5480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1684:9:41", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 5479, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1688:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1684:12:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1620:142:41" + }, + { + "expression": { + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5494, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5470, + "src": "1773:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 5498, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "1795:4:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 5499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1800:6:41", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1795:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1783:11:41", + "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": 5495, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1787:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 5496, + "nodeType": "ArrayTypeName", + "src": "1787:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + } + }, + "id": 5500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1783:24:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "1773:34:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 5502, + "nodeType": "ExpressionStatement", + "src": "1773:34:41" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "1859:113:41", + "statements": [ + { + "expression": { + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5514, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5470, + "src": "1873:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 5516, + "indexExpression": { + "id": 5515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5504, + "src": "1881:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1873:10:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 5521, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1923:4:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MulticallUpgradeable_$5540", + "typeString": "contract MulticallUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MulticallUpgradeable_$5540", + "typeString": "contract MulticallUpgradeable" + } + ], + "id": 5520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1915:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1915:7:41", + "typeDescriptions": {} + } + }, + "id": 5522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1915:13:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "baseExpression": { + "id": 5526, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "1943:4:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 5528, + "indexExpression": { + "id": 5527, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5504, + "src": "1948:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1943:7:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 5529, + "name": "context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5473, + "src": "1952:7:41", + "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": 5524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1930:5:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5523, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1930:5:41", + "typeDescriptions": {} + } + }, + "id": 5525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1936:6:41", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1930:12:41", + "typeDescriptions": { + "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1930:30:41", + "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": 5517, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6407, + "src": "1886:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$6407_$", + "typeString": "type(library Address)" + } + }, + "id": 5518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1894:20:41", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 6324, + "src": "1886:28:41", + "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": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1886:75:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1873:88:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "1873:88:41" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5507, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5504, + "src": "1837:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 5508, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5466, + "src": "1841:4:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 5509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1846:6:41", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1841:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1837:15:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5535, + "initializationExpression": { + "assignments": [ + 5504 + ], + "declarations": [ + { + "constant": false, + "id": 5504, + "mutability": "mutable", + "name": "i", + "nameLocation": "1830:1:41", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "1822:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1822:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5506, + "initialValue": { + "hexValue": "30", + "id": 5505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1834:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1822:13:41" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 5512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1854:3:41", + "subExpression": { + "id": 5511, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5504, + "src": "1854:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5513, + "nodeType": "ExpressionStatement", + "src": "1854:3:41" + }, + "nodeType": "ForStatement", + "src": "1817:155:41" + }, + { + "expression": { + "id": 5536, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5470, + "src": "1988:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "functionReturnParameters": 5471, + "id": 5537, + "nodeType": "Return", + "src": "1981:14:41" + } + ] + }, + "documentation": { + "id": 5463, + "nodeType": "StructuredDocumentation", + "src": "1361:152:41", + "text": " @dev Receives and executes a batch of function calls on this contract.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall" + }, + "functionSelector": "ac9650d8", + "id": 5539, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "multicall", + "nameLocation": "1527:9:41", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5466, + "mutability": "mutable", + "name": "data", + "nameLocation": "1554:4:41", + "nodeType": "VariableDeclaration", + "scope": 5539, + "src": "1537:21:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 5464, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1537:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 5465, + "nodeType": "ArrayTypeName", + "src": "1537:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "1536:23:41" + }, + "returnParameters": { + "id": 5471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5470, + "mutability": "mutable", + "name": "results", + "nameLocation": "1601:7:41", + "nodeType": "VariableDeclaration", + "scope": 5539, + "src": "1586:22:41", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 5468, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1586:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 5469, + "nodeType": "ArrayTypeName", + "src": "1586:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "1585:24:41" + }, + "scope": 5540, + "src": "1518:484:41", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + } + ], + "scope": 5541, + "src": "1136:868:41", + "usedErrors": [ + 5140, + 5143, + 6157, + 6420 + ], + "usedEvents": [ + 5148 + ] + } + ], + "src": "103:1902:41" + }, + "id": 41 + }, + "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 5437 + ], + "Initializable": [ + 5391 + ], + "PausableUpgradeable": [ + 5700 + ] + }, + "id": 5701, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5542, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:42" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 5544, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5701, + "sourceUnit": 5438, + "src": "128:67:42", + "symbolAliases": [ + { + "foreign": { + "id": 5543, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "136:18:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 5546, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5701, + "sourceUnit": 5392, + "src": "196:63:42", + "symbolAliases": [ + { + "foreign": { + "id": 5545, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "204:13:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5548, + "name": "Initializable", + "nameLocations": [ + "742:13:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "742:13:42" + }, + "id": 5549, + "nodeType": "InheritanceSpecifier", + "src": "742:13:42" + }, + { + "baseName": { + "id": 5550, + "name": "ContextUpgradeable", + "nameLocations": [ + "757:18:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5437, + "src": "757:18:42" + }, + "id": 5551, + "nodeType": "InheritanceSpecifier", + "src": "757:18:42" + } + ], + "canonicalName": "PausableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5547, + "nodeType": "StructuredDocumentation", + "src": "261:439:42", + "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": 5700, + "linearizedBaseContracts": [ + 5700, + 5437, + 5391 + ], + "name": "PausableUpgradeable", + "nameLocation": "719:19:42", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "PausableUpgradeable.PausableStorage", + "documentation": { + "id": 5552, + "nodeType": "StructuredDocumentation", + "src": "782:66:42", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Pausable" + }, + "id": 5555, + "members": [ + { + "constant": false, + "id": 5554, + "mutability": "mutable", + "name": "_paused", + "nameLocation": "891:7:42", + "nodeType": "VariableDeclaration", + "scope": 5555, + "src": "886:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5553, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "886:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "PausableStorage", + "nameLocation": "860:15:42", + "nodeType": "StructDefinition", + "scope": 5700, + "src": "853:52:42", + "visibility": "public" + }, + { + "constant": true, + "id": 5558, + "mutability": "constant", + "name": "PausableStorageLocation", + "nameLocation": "1048:23:42", + "nodeType": "VariableDeclaration", + "scope": 5700, + "src": "1023:117:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1023:7:42", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307863643565643135633665313837653737653961656538383138346332316634663231383261623538323763623362376530376662656463643633663033333030", + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1074:66:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_92891662540554778686986514950364265630913525426840345632122912437671245656832_by_1", + "typeString": "int_const 9289...(69 digits omitted)...6832" + }, + "value": "0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300" + }, + "visibility": "private" + }, + { + "body": { + "id": 5565, + "nodeType": "Block", + "src": "1227:82:42", + "statements": [ + { + "AST": { + "nativeSrc": "1246:57:42", + "nodeType": "YulBlock", + "src": "1246:57:42", + "statements": [ + { + "nativeSrc": "1260:33:42", + "nodeType": "YulAssignment", + "src": "1260:33:42", + "value": { + "name": "PausableStorageLocation", + "nativeSrc": "1270:23:42", + "nodeType": "YulIdentifier", + "src": "1270:23:42" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1260:6:42", + "nodeType": "YulIdentifier", + "src": "1260:6:42" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5562, + "isOffset": false, + "isSlot": true, + "src": "1260:6:42", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 5558, + "isOffset": false, + "isSlot": false, + "src": "1270:23:42", + "valueSize": 1 + } + ], + "id": 5564, + "nodeType": "InlineAssembly", + "src": "1237:66:42" + } + ] + }, + "id": 5566, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getPausableStorage", + "nameLocation": "1156:19:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5559, + "nodeType": "ParameterList", + "parameters": [], + "src": "1175:2:42" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "$", + "nameLocation": "1224:1:42", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "1200:25:42", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + }, + "typeName": { + "id": 5561, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5560, + "name": "PausableStorage", + "nameLocations": [ + "1200:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5555, + "src": "1200:15:42" + }, + "referencedDeclaration": 5555, + "src": "1200:15:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1199:27:42" + }, + "scope": 5700, + "src": "1147:162:42", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 5567, + "nodeType": "StructuredDocumentation", + "src": "1315:73:42", + "text": " @dev Emitted when the pause is triggered by `account`." + }, + "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", + "id": 5571, + "name": "Paused", + "nameLocation": "1399:6:42", + "nodeType": "EventDefinition", + "parameters": { + "id": 5570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nameLocation": "1414:7:42", + "nodeType": "VariableDeclaration", + "scope": 5571, + "src": "1406:15:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1406:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1405:17:42" + }, + "src": "1393:30:42" + }, + { + "anonymous": false, + "documentation": { + "id": 5572, + "nodeType": "StructuredDocumentation", + "src": "1429:70:42", + "text": " @dev Emitted when the pause is lifted by `account`." + }, + "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", + "id": 5576, + "name": "Unpaused", + "nameLocation": "1510:8:42", + "nodeType": "EventDefinition", + "parameters": { + "id": 5575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5574, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nameLocation": "1527:7:42", + "nodeType": "VariableDeclaration", + "scope": 5576, + "src": "1519:15:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1519:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1518:17:42" + }, + "src": "1504:32:42" + }, + { + "documentation": { + "id": 5577, + "nodeType": "StructuredDocumentation", + "src": "1542:76:42", + "text": " @dev The operation failed because the contract is paused." + }, + "errorSelector": "d93c0665", + "id": 5579, + "name": "EnforcedPause", + "nameLocation": "1629:13:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 5578, + "nodeType": "ParameterList", + "parameters": [], + "src": "1642:2:42" + }, + "src": "1623:22:42" + }, + { + "documentation": { + "id": 5580, + "nodeType": "StructuredDocumentation", + "src": "1651:80:42", + "text": " @dev The operation failed because the contract is not paused." + }, + "errorSelector": "8dfc202b", + "id": 5582, + "name": "ExpectedPause", + "nameLocation": "1742:13:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "1755:2:42" + }, + "src": "1736:22:42" + }, + { + "body": { + "id": 5589, + "nodeType": "Block", + "src": "1969:47:42", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5585, + "name": "_requireNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5638, + "src": "1979:17:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 5586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1979:19:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5587, + "nodeType": "ExpressionStatement", + "src": "1979:19:42" + }, + { + "id": 5588, + "nodeType": "PlaceholderStatement", + "src": "2008:1:42" + } + ] + }, + "documentation": { + "id": 5583, + "nodeType": "StructuredDocumentation", + "src": "1764:175:42", + "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": 5590, + "name": "whenNotPaused", + "nameLocation": "1953:13:42", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [], + "src": "1966:2:42" + }, + "src": "1944:72:42", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5597, + "nodeType": "Block", + "src": "2216:44:42", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5593, + "name": "_requirePaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "2226:14:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 5594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2226:16:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5595, + "nodeType": "ExpressionStatement", + "src": "2226:16:42" + }, + { + "id": 5596, + "nodeType": "PlaceholderStatement", + "src": "2252:1:42" + } + ] + }, + "documentation": { + "id": 5591, + "nodeType": "StructuredDocumentation", + "src": "2022:167:42", + "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." + }, + "id": 5598, + "name": "whenPaused", + "nameLocation": "2203:10:42", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5592, + "nodeType": "ParameterList", + "parameters": [], + "src": "2213:2:42" + }, + "src": "2194:66:42", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5603, + "nodeType": "Block", + "src": "2319:7:42", + "statements": [] + }, + "id": 5604, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5601, + "kind": "modifierInvocation", + "modifierName": { + "id": 5600, + "name": "onlyInitializing", + "nameLocations": [ + "2302:16:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "2302:16:42" + }, + "nodeType": "ModifierInvocation", + "src": "2302:16:42" + } + ], + "name": "__Pausable_init", + "nameLocation": "2275:15:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5599, + "nodeType": "ParameterList", + "parameters": [], + "src": "2290:2:42" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:0:42" + }, + "scope": 5700, + "src": "2266:60:42", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5609, + "nodeType": "Block", + "src": "2395:7:42", + "statements": [] + }, + "id": 5610, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5607, + "kind": "modifierInvocation", + "modifierName": { + "id": 5606, + "name": "onlyInitializing", + "nameLocations": [ + "2378:16:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "2378:16:42" + }, + "nodeType": "ModifierInvocation", + "src": "2378:16:42" + } + ], + "name": "__Pausable_init_unchained", + "nameLocation": "2341:25:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5605, + "nodeType": "ParameterList", + "parameters": [], + "src": "2366:2:42" + }, + "returnParameters": { + "id": 5608, + "nodeType": "ParameterList", + "parameters": [], + "src": "2395:0:42" + }, + "scope": 5700, + "src": "2332:70:42", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5625, + "nodeType": "Block", + "src": "2549:92:42", + "statements": [ + { + "assignments": [ + 5618 + ], + "declarations": [ + { + "constant": false, + "id": 5618, + "mutability": "mutable", + "name": "$", + "nameLocation": "2583:1:42", + "nodeType": "VariableDeclaration", + "scope": 5625, + "src": "2559:25:42", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + }, + "typeName": { + "id": 5617, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5616, + "name": "PausableStorage", + "nameLocations": [ + "2559:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5555, + "src": "2559:15:42" + }, + "referencedDeclaration": 5555, + "src": "2559:15:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5621, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5619, + "name": "_getPausableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "2587:19:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5555_storage_ptr_$", + "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" + } + }, + "id": 5620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2587:21:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2559:49:42" + }, + { + "expression": { + "expression": { + "id": 5622, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "2625:1:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "id": 5623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2627:7:42", + "memberName": "_paused", + "nodeType": "MemberAccess", + "referencedDeclaration": 5554, + "src": "2625:9:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5615, + "id": 5624, + "nodeType": "Return", + "src": "2618:16:42" + } + ] + }, + "documentation": { + "id": 5611, + "nodeType": "StructuredDocumentation", + "src": "2407:84:42", + "text": " @dev Returns true if the contract is paused, and false otherwise." + }, + "functionSelector": "5c975abb", + "id": 5626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paused", + "nameLocation": "2505:6:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5612, + "nodeType": "ParameterList", + "parameters": [], + "src": "2511:2:42" + }, + "returnParameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5626, + "src": "2543:4:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5613, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2543:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2542:6:42" + }, + "scope": 5700, + "src": "2496:145:42", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5637, + "nodeType": "Block", + "src": "2760:77:42", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5630, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "2774:6:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2774:8:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5636, + "nodeType": "IfStatement", + "src": "2770:61:42", + "trueBody": { + "id": 5635, + "nodeType": "Block", + "src": "2784:47:42", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5632, + "name": "EnforcedPause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5579, + "src": "2805:13:42", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2805:15:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5634, + "nodeType": "RevertStatement", + "src": "2798:22:42" + } + ] + } + } + ] + }, + "documentation": { + "id": 5627, + "nodeType": "StructuredDocumentation", + "src": "2647:57:42", + "text": " @dev Throws if the contract is paused." + }, + "id": 5638, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireNotPaused", + "nameLocation": "2718:17:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "2735:2:42" + }, + "returnParameters": { + "id": 5629, + "nodeType": "ParameterList", + "parameters": [], + "src": "2760:0:42" + }, + "scope": 5700, + "src": "2709:128:42", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5650, + "nodeType": "Block", + "src": "2957:78:42", + "statements": [ + { + "condition": { + "id": 5644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2971:9:42", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5642, + "name": "paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "2972:6:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2972:8:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5649, + "nodeType": "IfStatement", + "src": "2967:62:42", + "trueBody": { + "id": 5648, + "nodeType": "Block", + "src": "2982:47:42", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5645, + "name": "ExpectedPause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5582, + "src": "3003:13:42", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3003:15:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5647, + "nodeType": "RevertStatement", + "src": "2996:22:42" + } + ] + } + } + ] + }, + "documentation": { + "id": 5639, + "nodeType": "StructuredDocumentation", + "src": "2843:61:42", + "text": " @dev Throws if the contract is not paused." + }, + "id": 5651, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requirePaused", + "nameLocation": "2918:14:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5640, + "nodeType": "ParameterList", + "parameters": [], + "src": "2932:2:42" + }, + "returnParameters": { + "id": 5641, + "nodeType": "ParameterList", + "parameters": [], + "src": "2957:0:42" + }, + "scope": 5700, + "src": "2909:126:42", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5674, + "nodeType": "Block", + "src": "3219:127:42", + "statements": [ + { + "assignments": [ + 5659 + ], + "declarations": [ + { + "constant": false, + "id": 5659, + "mutability": "mutable", + "name": "$", + "nameLocation": "3253:1:42", + "nodeType": "VariableDeclaration", + "scope": 5674, + "src": "3229:25:42", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + }, + "typeName": { + "id": 5658, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5657, + "name": "PausableStorage", + "nameLocations": [ + "3229:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5555, + "src": "3229:15:42" + }, + "referencedDeclaration": 5555, + "src": "3229:15:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5662, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5660, + "name": "_getPausableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "3257:19:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5555_storage_ptr_$", + "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" + } + }, + "id": 5661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3257:21:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3229:49:42" + }, + { + "expression": { + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5663, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "3288:1:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "id": 5665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3290:7:42", + "memberName": "_paused", + "nodeType": "MemberAccess", + "referencedDeclaration": 5554, + "src": "3288:9:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3300:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3288:16:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5668, + "nodeType": "ExpressionStatement", + "src": "3288:16:42" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5670, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5419, + "src": "3326:10:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3326:12:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5669, + "name": "Paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "3319:6:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3319:20:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5673, + "nodeType": "EmitStatement", + "src": "3314:25:42" + } + ] + }, + "documentation": { + "id": 5652, + "nodeType": "StructuredDocumentation", + "src": "3041:124:42", + "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." + }, + "id": 5675, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5655, + "kind": "modifierInvocation", + "modifierName": { + "id": 5654, + "name": "whenNotPaused", + "nameLocations": [ + "3205:13:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "3205:13:42" + }, + "nodeType": "ModifierInvocation", + "src": "3205:13:42" + } + ], + "name": "_pause", + "nameLocation": "3179:6:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5653, + "nodeType": "ParameterList", + "parameters": [], + "src": "3185:2:42" + }, + "returnParameters": { + "id": 5656, + "nodeType": "ParameterList", + "parameters": [], + "src": "3219:0:42" + }, + "scope": 5700, + "src": "3170:176:42", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5698, + "nodeType": "Block", + "src": "3526:130:42", + "statements": [ + { + "assignments": [ + 5683 + ], + "declarations": [ + { + "constant": false, + "id": 5683, + "mutability": "mutable", + "name": "$", + "nameLocation": "3560:1:42", + "nodeType": "VariableDeclaration", + "scope": 5698, + "src": "3536:25:42", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + }, + "typeName": { + "id": 5682, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5681, + "name": "PausableStorage", + "nameLocations": [ + "3536:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5555, + "src": "3536:15:42" + }, + "referencedDeclaration": 5555, + "src": "3536:15:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5686, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5684, + "name": "_getPausableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "3564:19:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5555_storage_ptr_$", + "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" + } + }, + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3564:21:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3536:49:42" + }, + { + "expression": { + "id": 5691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5687, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "3595:1:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PausableStorage_$5555_storage_ptr", + "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" + } + }, + "id": 5689, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3597:7:42", + "memberName": "_paused", + "nodeType": "MemberAccess", + "referencedDeclaration": 5554, + "src": "3595:9:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 5690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3607:5:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3595:17:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5692, + "nodeType": "ExpressionStatement", + "src": "3595:17:42" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5694, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5419, + "src": "3636:10:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 5695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3636:12:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5693, + "name": "Unpaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5576, + "src": "3627:8:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3627:22:42", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5697, + "nodeType": "EmitStatement", + "src": "3622:27:42" + } + ] + }, + "documentation": { + "id": 5676, + "nodeType": "StructuredDocumentation", + "src": "3352:121:42", + "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." + }, + "id": 5699, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5679, + "kind": "modifierInvocation", + "modifierName": { + "id": 5678, + "name": "whenPaused", + "nameLocations": [ + "3515:10:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5598, + "src": "3515:10:42" + }, + "nodeType": "ModifierInvocation", + "src": "3515:10:42" + } + ], + "name": "_unpause", + "nameLocation": "3487:8:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5677, + "nodeType": "ParameterList", + "parameters": [], + "src": "3495:2:42" + }, + "returnParameters": { + "id": 5680, + "nodeType": "ParameterList", + "parameters": [], + "src": "3526:0:42" + }, + "scope": 5700, + "src": "3478:178:42", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 5701, + "src": "701:2957:42", + "usedErrors": [ + 5140, + 5143, + 5579, + 5582 + ], + "usedEvents": [ + 5148, + 5571, + 5576 + ] + } + ], + "src": "102:3557:42" + }, + "id": 42 + }, + "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "exportedSymbols": { + "EIP712Upgradeable": [ + 6044 + ], + "IERC5267": [ + 6069 + ], + "Initializable": [ + 5391 + ], + "MessageHashUtils": [ + 8317 + ] + }, + "id": 6045, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5702, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:43" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "file": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "id": 5704, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6045, + "sourceUnit": 8318, + "src": "139:97:43", + "symbolAliases": [ + { + "foreign": { + "id": 5703, + "name": "MessageHashUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8317, + "src": "147:16:43", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "file": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "id": 5706, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6045, + "sourceUnit": 6070, + "src": "237:73:43", + "symbolAliases": [ + { + "foreign": { + "id": 5705, + "name": "IERC5267", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6069, + "src": "245:8:43", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../proxy/utils/Initializable.sol", + "id": 5708, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6045, + "sourceUnit": 5392, + "src": "311:66:43", + "symbolAliases": [ + { + "foreign": { + "id": 5707, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "319:13:43", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5710, + "name": "Initializable", + "nameLocations": [ + "1998:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "1998:13:43" + }, + "id": 5711, + "nodeType": "InheritanceSpecifier", + "src": "1998:13:43" + }, + { + "baseName": { + "id": 5712, + "name": "IERC5267", + "nameLocations": [ + "2013:8:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6069, + "src": "2013:8:43" + }, + "id": 5713, + "nodeType": "InheritanceSpecifier", + "src": "2013:8:43" + } + ], + "canonicalName": "EIP712Upgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5709, + "nodeType": "StructuredDocumentation", + "src": "379:1579:43", + "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": 6044, + "linearizedBaseContracts": [ + 6044, + 6069, + 5391 + ], + "name": "EIP712Upgradeable", + "nameLocation": "1977:17:43", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5718, + "mutability": "constant", + "name": "TYPE_HASH", + "nameLocation": "2053:9:43", + "nodeType": "VariableDeclaration", + "scope": 6044, + "src": "2028:140:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5714, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2028:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 5716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2083:84:43", + "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": 5715, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2073:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2073:95:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "canonicalName": "EIP712Upgradeable.EIP712Storage", + "documentation": { + "id": 5719, + "nodeType": "StructuredDocumentation", + "src": "2175:64:43", + "text": "@custom:storage-location erc7201:openzeppelin.storage.EIP712" + }, + "id": 5730, + "members": [ + { + "constant": false, + "id": 5722, + "mutability": "mutable", + "name": "_hashedName", + "nameLocation": "2332:11:43", + "nodeType": "VariableDeclaration", + "scope": 5730, + "src": "2324:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5721, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2324:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5725, + "mutability": "mutable", + "name": "_hashedVersion", + "nameLocation": "2413:14:43", + "nodeType": "VariableDeclaration", + "scope": 5730, + "src": "2405:22:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5724, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2405:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5727, + "mutability": "mutable", + "name": "_name", + "nameLocation": "2445:5:43", + "nodeType": "VariableDeclaration", + "scope": 5730, + "src": "2438:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2438:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "mutability": "mutable", + "name": "_version", + "nameLocation": "2467:8:43", + "nodeType": "VariableDeclaration", + "scope": 5730, + "src": "2460:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2460:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "EIP712Storage", + "nameLocation": "2251:13:43", + "nodeType": "StructDefinition", + "scope": 6044, + "src": "2244:238:43", + "visibility": "public" + }, + { + "constant": true, + "id": 5733, + "mutability": "constant", + "name": "EIP712StorageLocation", + "nameLocation": "2623:21:43", + "nodeType": "VariableDeclaration", + "scope": 6044, + "src": "2598:115:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5731, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2598:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307861313661343664393432363163373531376363386666383966363163306365393335393865336338343938303130313164656536343961366135353764313030", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:66:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_73010143390315934406010559831118728393600729754696197287367516085911467577600_by_1", + "typeString": "int_const 7301...(69 digits omitted)...7600" + }, + "value": "0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100" + }, + "visibility": "private" + }, + { + "body": { + "id": 5740, + "nodeType": "Block", + "src": "2796:80:43", + "statements": [ + { + "AST": { + "nativeSrc": "2815:55:43", + "nodeType": "YulBlock", + "src": "2815:55:43", + "statements": [ + { + "nativeSrc": "2829:31:43", + "nodeType": "YulAssignment", + "src": "2829:31:43", + "value": { + "name": "EIP712StorageLocation", + "nativeSrc": "2839:21:43", + "nodeType": "YulIdentifier", + "src": "2839:21:43" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "2829:6:43", + "nodeType": "YulIdentifier", + "src": "2829:6:43" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5737, + "isOffset": false, + "isSlot": true, + "src": "2829:6:43", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 5733, + "isOffset": false, + "isSlot": false, + "src": "2839:21:43", + "valueSize": 1 + } + ], + "id": 5739, + "nodeType": "InlineAssembly", + "src": "2806:64:43" + } + ] + }, + "id": 5741, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getEIP712Storage", + "nameLocation": "2729:17:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2746:2:43" + }, + "returnParameters": { + "id": 5738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5737, + "mutability": "mutable", + "name": "$", + "nameLocation": "2793:1:43", + "nodeType": "VariableDeclaration", + "scope": 5741, + "src": "2771:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5736, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5735, + "name": "EIP712Storage", + "nameLocations": [ + "2771:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "2771:13:43" + }, + "referencedDeclaration": 5730, + "src": "2771:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "src": "2770:25:43" + }, + "scope": 6044, + "src": "2720:156:43", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5756, + "nodeType": "Block", + "src": "3538:55:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5752, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5744, + "src": "3572:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5753, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5746, + "src": "3578:7:43", + "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": 5751, + "name": "__EIP712_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "3548:23:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 5754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3548:38:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5755, + "nodeType": "ExpressionStatement", + "src": "3548:38:43" + } + ] + }, + "documentation": { + "id": 5742, + "nodeType": "StructuredDocumentation", + "src": "2882:559:43", + "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": 5757, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5749, + "kind": "modifierInvocation", + "modifierName": { + "id": 5748, + "name": "onlyInitializing", + "nameLocations": [ + "3521:16:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "3521:16:43" + }, + "nodeType": "ModifierInvocation", + "src": "3521:16:43" + } + ], + "name": "__EIP712_init", + "nameLocation": "3455:13:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5744, + "mutability": "mutable", + "name": "name", + "nameLocation": "3483:4:43", + "nodeType": "VariableDeclaration", + "scope": 5757, + "src": "3469:18:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3469:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5746, + "mutability": "mutable", + "name": "version", + "nameLocation": "3503:7:43", + "nodeType": "VariableDeclaration", + "scope": 5757, + "src": "3489:21:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3489:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3468:43:43" + }, + "returnParameters": { + "id": 5750, + "nodeType": "ParameterList", + "parameters": [], + "src": "3538:0:43" + }, + "scope": 6044, + "src": "3446:147:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5796, + "nodeType": "Block", + "src": "3701:228:43", + "statements": [ + { + "assignments": [ + 5768 + ], + "declarations": [ + { + "constant": false, + "id": 5768, + "mutability": "mutable", + "name": "$", + "nameLocation": "3733:1:43", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "3711:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5767, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5766, + "name": "EIP712Storage", + "nameLocations": [ + "3711:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "3711:13:43" + }, + "referencedDeclaration": 5730, + "src": "3711:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5771, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5769, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "3737:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3737:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3711:45:43" + }, + { + "expression": { + "id": 5776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5772, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "3766:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5774, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3768:5:43", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 5727, + "src": "3766:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5775, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5759, + "src": "3776:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3766:14:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5777, + "nodeType": "ExpressionStatement", + "src": "3766:14:43" + }, + { + "expression": { + "id": 5782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5778, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "3790:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5780, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3792:8:43", + "memberName": "_version", + "nodeType": "MemberAccess", + "referencedDeclaration": 5729, + "src": "3790:10:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5781, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5761, + "src": "3803:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3790:20:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5783, + "nodeType": "ExpressionStatement", + "src": "3790:20:43" + }, + { + "expression": { + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5784, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "3875:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5786, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3877:11:43", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5722, + "src": "3875:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 5787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3891:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3875:17:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5789, + "nodeType": "ExpressionStatement", + "src": "3875:17:43" + }, + { + "expression": { + "id": 5794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5790, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "3902:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3904:14:43", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5725, + "src": "3902:16:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3921:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3902:20:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5795, + "nodeType": "ExpressionStatement", + "src": "3902:20:43" + } + ] + }, + "id": 5797, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5764, + "kind": "modifierInvocation", + "modifierName": { + "id": 5763, + "name": "onlyInitializing", + "nameLocations": [ + "3684:16:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "3684:16:43" + }, + "nodeType": "ModifierInvocation", + "src": "3684:16:43" + } + ], + "name": "__EIP712_init_unchained", + "nameLocation": "3608:23:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5759, + "mutability": "mutable", + "name": "name", + "nameLocation": "3646:4:43", + "nodeType": "VariableDeclaration", + "scope": 5797, + "src": "3632:18:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5758, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3632:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5761, + "mutability": "mutable", + "name": "version", + "nameLocation": "3666:7:43", + "nodeType": "VariableDeclaration", + "scope": 5797, + "src": "3652:21:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5760, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3652:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3631:43:43" + }, + "returnParameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [], + "src": "3701:0:43" + }, + "scope": 6044, + "src": "3599:330:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5806, + "nodeType": "Block", + "src": "4077:47:43", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5803, + "name": "_buildDomainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5830, + "src": "4094:21:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4094:23:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5802, + "id": 5805, + "nodeType": "Return", + "src": "4087:30:43" + } + ] + }, + "documentation": { + "id": 5798, + "nodeType": "StructuredDocumentation", + "src": "3935:75:43", + "text": " @dev Returns the domain separator for the current chain." + }, + "id": 5807, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_domainSeparatorV4", + "nameLocation": "4024:18:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5799, + "nodeType": "ParameterList", + "parameters": [], + "src": "4042:2:43" + }, + "returnParameters": { + "id": 5802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5801, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5807, + "src": "4068:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5800, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4068:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4067:9:43" + }, + "scope": 6044, + "src": "4015:109:43", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5829, + "nodeType": "Block", + "src": "4194:127:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5815, + "name": "TYPE_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5718, + "src": "4232:9:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5816, + "name": "_EIP712NameHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5991, + "src": "4243:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5818, + "name": "_EIP712VersionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6043, + "src": "4262:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 5820, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4284:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4290:7:43", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "4284:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4307:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$6044", + "typeString": "contract EIP712Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$6044", + "typeString": "contract EIP712Upgradeable" + } + ], + "id": 5823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4299:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5822, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4299:7:43", + "typeDescriptions": {} + } + }, + "id": 5825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4299:13:43", + "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": 5813, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4221:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4225:6:43", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "4221:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4221:92:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5812, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4211:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4211:103:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5811, + "id": 5828, + "nodeType": "Return", + "src": "4204:110:43" + } + ] + }, + "id": 5830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_buildDomainSeparator", + "nameLocation": "4139:21:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5808, + "nodeType": "ParameterList", + "parameters": [], + "src": "4160:2:43" + }, + "returnParameters": { + "id": 5811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5830, + "src": "4185:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5809, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4185:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4184:9:43" + }, + "scope": 6044, + "src": "4130:191:43", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5845, + "nodeType": "Block", + "src": "5032:90:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5840, + "name": "_domainSeparatorV4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5807, + "src": "5082:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5082:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5842, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5833, + "src": "5104:10:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 5838, + "name": "MessageHashUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8317, + "src": "5049:16:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MessageHashUtils_$8317_$", + "typeString": "type(library MessageHashUtils)" + } + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5066:15:43", + "memberName": "toTypedDataHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 8316, + "src": "5049:32:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32) pure returns (bytes32)" + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5049:66:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5837, + "id": 5844, + "nodeType": "Return", + "src": "5042:73:43" + } + ] + }, + "documentation": { + "id": 5831, + "nodeType": "StructuredDocumentation", + "src": "4327:614:43", + "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": 5846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hashTypedDataV4", + "nameLocation": "4955:16:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5833, + "mutability": "mutable", + "name": "structHash", + "nameLocation": "4980:10:43", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "4972:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5832, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4972:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4971:20:43" + }, + "returnParameters": { + "id": 5837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5836, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "5023:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5835, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5023:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5022:9:43" + }, + "scope": 6044, + "src": "4946:176:43", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 6068 + ], + "body": { + "id": 5906, + "nodeType": "Block", + "src": "5500:575:43", + "statements": [ + { + "assignments": [ + 5867 + ], + "declarations": [ + { + "constant": false, + "id": 5867, + "mutability": "mutable", + "name": "$", + "nameLocation": "5532:1:43", + "nodeType": "VariableDeclaration", + "scope": 5906, + "src": "5510:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5866, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5865, + "name": "EIP712Storage", + "nameLocations": [ + "5510:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "5510:13:43" + }, + "referencedDeclaration": 5730, + "src": "5510:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5870, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5868, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "5536:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5510:45:43" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5872, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5867, + "src": "5776:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5778:11:43", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5722, + "src": "5776:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5793:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5776:18:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5876, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5867, + "src": "5798:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5800:14:43", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5725, + "src": "5798:16:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5818:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5798:21:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5776:43:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4549503731323a20556e696e697469616c697a6564", + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5821:23:43", + "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": 5871, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5768:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5768:77:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5883, + "nodeType": "ExpressionStatement", + "src": "5768:77:43" + }, + { + "expression": { + "components": [ + { + "hexValue": "0f", + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5877:7:43", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c", + "typeString": "literal_string hex\"0f\"" + }, + "value": "\u000f" + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5885, + "name": "_EIP712Name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5923, + "src": "5907:11:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5907:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5887, + "name": "_EIP712Version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5939, + "src": "5934:14:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 5889, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5964:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5970:7:43", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "5964:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5893, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5999:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$6044", + "typeString": "contract EIP712Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$6044", + "typeString": "contract EIP712Upgradeable" + } + ], + "id": 5892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5991:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5991:7:43", + "typeDescriptions": {} + } + }, + "id": 5894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5991:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6026:1:43", + "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": 5896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6018:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 5895, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6018:7:43", + "typeDescriptions": {} + } + }, + "id": 5898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6018:10:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:43", + "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": 5901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6042:13:43", + "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": 5899, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6046:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5900, + "nodeType": "ArrayTypeName", + "src": "6046:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6042:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "id": 5904, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5863:205:43", + "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": 5864, + "id": 5905, + "nodeType": "Return", + "src": "5856:212:43" + } + ] + }, + "documentation": { + "id": 5847, + "nodeType": "StructuredDocumentation", + "src": "5128:39:43", + "text": " @inheritdoc IERC5267" + }, + "functionSelector": "84b0196e", + "id": 5907, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "eip712Domain", + "nameLocation": "5181:12:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5848, + "nodeType": "ParameterList", + "parameters": [], + "src": "5193:2:43" + }, + "returnParameters": { + "id": 5864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "fields", + "nameLocation": "5277:6:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5270:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 5849, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "5270:6:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5852, + "mutability": "mutable", + "name": "name", + "nameLocation": "5311:4:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5297:18:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5851, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5297:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5854, + "mutability": "mutable", + "name": "version", + "nameLocation": "5343:7:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5329:21:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5853, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5329:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5856, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "5372:7:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5364:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5364:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5858, + "mutability": "mutable", + "name": "verifyingContract", + "nameLocation": "5401:17:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5393:25:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5393:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5860, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5440:4:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5432:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5432:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5863, + "mutability": "mutable", + "name": "extensions", + "nameLocation": "5475:10:43", + "nodeType": "VariableDeclaration", + "scope": 5907, + "src": "5458:27:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5458:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5862, + "nodeType": "ArrayTypeName", + "src": "5458:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5256:239:43" + }, + "scope": 6044, + "src": "5172:903:43", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5922, + "nodeType": "Block", + "src": "6368:86:43", + "statements": [ + { + "assignments": [ + 5915 + ], + "declarations": [ + { + "constant": false, + "id": 5915, + "mutability": "mutable", + "name": "$", + "nameLocation": "6400:1:43", + "nodeType": "VariableDeclaration", + "scope": 5922, + "src": "6378:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5914, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5913, + "name": "EIP712Storage", + "nameLocations": [ + "6378:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "6378:13:43" + }, + "referencedDeclaration": 5730, + "src": "6378:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5918, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5916, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "6404:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6404:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6378:45:43" + }, + { + "expression": { + "expression": { + "id": 5919, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5915, + "src": "6440:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6442:5:43", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 5727, + "src": "6440:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 5912, + "id": 5921, + "nodeType": "Return", + "src": "6433:14:43" + } + ] + }, + "documentation": { + "id": 5908, + "nodeType": "StructuredDocumentation", + "src": "6081:213:43", + "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": 5923, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712Name", + "nameLocation": "6308:11:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5909, + "nodeType": "ParameterList", + "parameters": [], + "src": "6319:2:43" + }, + "returnParameters": { + "id": 5912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5911, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5923, + "src": "6353:13:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5910, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6353:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6352:15:43" + }, + "scope": 6044, + "src": "6299:155:43", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5938, + "nodeType": "Block", + "src": "6753:89:43", + "statements": [ + { + "assignments": [ + 5931 + ], + "declarations": [ + { + "constant": false, + "id": 5931, + "mutability": "mutable", + "name": "$", + "nameLocation": "6785:1:43", + "nodeType": "VariableDeclaration", + "scope": 5938, + "src": "6763:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5930, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5929, + "name": "EIP712Storage", + "nameLocations": [ + "6763:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "6763:13:43" + }, + "referencedDeclaration": 5730, + "src": "6763:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5934, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5932, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "6789:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6789:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6763:45:43" + }, + { + "expression": { + "expression": { + "id": 5935, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5931, + "src": "6825:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6827:8:43", + "memberName": "_version", + "nodeType": "MemberAccess", + "referencedDeclaration": 5729, + "src": "6825:10:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 5928, + "id": 5937, + "nodeType": "Return", + "src": "6818:17:43" + } + ] + }, + "documentation": { + "id": 5924, + "nodeType": "StructuredDocumentation", + "src": "6460:216:43", + "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": 5939, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712Version", + "nameLocation": "6690:14:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5925, + "nodeType": "ParameterList", + "parameters": [], + "src": "6704:2:43" + }, + "returnParameters": { + "id": 5928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5927, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5939, + "src": "6738:13:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5926, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6738:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6737:15:43" + }, + "scope": 6044, + "src": "6681:161:43", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5990, + "nodeType": "Block", + "src": "7116:628:43", + "statements": [ + { + "assignments": [ + 5947 + ], + "declarations": [ + { + "constant": false, + "id": 5947, + "mutability": "mutable", + "name": "$", + "nameLocation": "7148:1:43", + "nodeType": "VariableDeclaration", + "scope": 5990, + "src": "7126:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5946, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5945, + "name": "EIP712Storage", + "nameLocations": [ + "7126:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "7126:13:43" + }, + "referencedDeclaration": 5730, + "src": "7126:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5948, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "7152:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7152:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7126:45:43" + }, + { + "assignments": [ + 5952 + ], + "declarations": [ + { + "constant": false, + "id": 5952, + "mutability": "mutable", + "name": "name", + "nameLocation": "7195:4:43", + "nodeType": "VariableDeclaration", + "scope": 5990, + "src": "7181:18:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7181:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 5955, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5953, + "name": "_EIP712Name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5923, + "src": "7202:11:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7202:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7181:34:43" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 5958, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5952, + "src": "7235:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7229:5:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5956, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7229:5:43", + "typeDescriptions": {} + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7229:11:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7241:6:43", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7229:18:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7250:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7229:22:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5988, + "nodeType": "Block", + "src": "7313:425:43", + "statements": [ + { + "assignments": [ + 5972 + ], + "declarations": [ + { + "constant": false, + "id": 5972, + "mutability": "mutable", + "name": "hashedName", + "nameLocation": "7558:10:43", + "nodeType": "VariableDeclaration", + "scope": 5988, + "src": "7550:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5971, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7550:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5975, + "initialValue": { + "expression": { + "id": 5973, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "7571:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7573:11:43", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5722, + "src": "7571:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7550:34:43" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5976, + "name": "hashedName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5972, + "src": "7602:10:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 5977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7616:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7602:15:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5986, + "nodeType": "Block", + "src": "7675:53:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 5983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7710:2:43", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5982, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7700:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7700:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5944, + "id": 5985, + "nodeType": "Return", + "src": "7693:20:43" + } + ] + }, + "id": 5987, + "nodeType": "IfStatement", + "src": "7598:130:43", + "trueBody": { + "id": 5981, + "nodeType": "Block", + "src": "7619:50:43", + "statements": [ + { + "expression": { + "id": 5979, + "name": "hashedName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5972, + "src": "7644:10:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5944, + "id": 5980, + "nodeType": "Return", + "src": "7637:17:43" + } + ] + } + } + ] + }, + "id": 5989, + "nodeType": "IfStatement", + "src": "7225:513:43", + "trueBody": { + "id": 5970, + "nodeType": "Block", + "src": "7253:54:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5966, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5952, + "src": "7290:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7284:5:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5964, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7284:5:43", + "typeDescriptions": {} + } + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7284:11:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5963, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7274:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7274:22:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5944, + "id": 5969, + "nodeType": "Return", + "src": "7267:29:43" + } + ] + } + } + ] + }, + "documentation": { + "id": 5940, + "nodeType": "StructuredDocumentation", + "src": "6848:204:43", + "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": 5991, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712NameHash", + "nameLocation": "7066:15:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5941, + "nodeType": "ParameterList", + "parameters": [], + "src": "7081:2:43" + }, + "returnParameters": { + "id": 5944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5943, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5991, + "src": "7107:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7107:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7106:9:43" + }, + "scope": 6044, + "src": "7057:687:43", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6042, + "nodeType": "Block", + "src": "8027:661:43", + "statements": [ + { + "assignments": [ + 5999 + ], + "declarations": [ + { + "constant": false, + "id": 5999, + "mutability": "mutable", + "name": "$", + "nameLocation": "8059:1:43", + "nodeType": "VariableDeclaration", + "scope": 6042, + "src": "8037:23:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5998, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5997, + "name": "EIP712Storage", + "nameLocations": [ + "8037:13:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5730, + "src": "8037:13:43" + }, + "referencedDeclaration": 5730, + "src": "8037:13:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 6002, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6000, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5741, + "src": "8063:17:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5730_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 6001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8063:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8037:45:43" + }, + { + "assignments": [ + 6004 + ], + "declarations": [ + { + "constant": false, + "id": 6004, + "mutability": "mutable", + "name": "version", + "nameLocation": "8106:7:43", + "nodeType": "VariableDeclaration", + "scope": 6042, + "src": "8092:21:43", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6003, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8092:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6007, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6005, + "name": "_EIP712Version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5939, + "src": "8116:14:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8116:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8092:40:43" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6010, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6004, + "src": "8152:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8146:5:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6008, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8146:5:43", + "typeDescriptions": {} + } + }, + "id": 6011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8146:14:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8161:6:43", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8146:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8170:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8146:25:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6040, + "nodeType": "Block", + "src": "8236:446:43", + "statements": [ + { + "assignments": [ + 6024 + ], + "declarations": [ + { + "constant": false, + "id": 6024, + "mutability": "mutable", + "name": "hashedVersion", + "nameLocation": "8490:13:43", + "nodeType": "VariableDeclaration", + "scope": 6040, + "src": "8482:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6023, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8482:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6027, + "initialValue": { + "expression": { + "id": 6025, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5999, + "src": "8506:1:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5730_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 6026, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8508:14:43", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5725, + "src": "8506:16:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8482:40:43" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6028, + "name": "hashedVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6024, + "src": "8540:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 6029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8557:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8540:18:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6038, + "nodeType": "Block", + "src": "8619:53:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8654:2:43", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 6034, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8644:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8644:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5996, + "id": 6037, + "nodeType": "Return", + "src": "8637:20:43" + } + ] + }, + "id": 6039, + "nodeType": "IfStatement", + "src": "8536:136:43", + "trueBody": { + "id": 6033, + "nodeType": "Block", + "src": "8560:53:43", + "statements": [ + { + "expression": { + "id": 6031, + "name": "hashedVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6024, + "src": "8585:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5996, + "id": 6032, + "nodeType": "Return", + "src": "8578:20:43" + } + ] + } + } + ] + }, + "id": 6041, + "nodeType": "IfStatement", + "src": "8142:540:43", + "trueBody": { + "id": 6022, + "nodeType": "Block", + "src": "8173:57:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6018, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6004, + "src": "8210:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8204:5:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6016, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8204:5:43", + "typeDescriptions": {} + } + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8204:14:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6015, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8194:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8194:25:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5996, + "id": 6021, + "nodeType": "Return", + "src": "8187:32:43" + } + ] + } + } + ] + }, + "documentation": { + "id": 5992, + "nodeType": "StructuredDocumentation", + "src": "7750:210:43", + "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": 6043, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712VersionHash", + "nameLocation": "7974:18:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5993, + "nodeType": "ParameterList", + "parameters": [], + "src": "7992:2:43" + }, + "returnParameters": { + "id": 5996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5995, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6043, + "src": "8018:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5994, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8018:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8017:9:43" + }, + "scope": 6044, + "src": "7965:723:43", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6045, + "src": "1959:6731:43", + "usedErrors": [ + 5140, + 5143 + ], + "usedEvents": [ + 5148, + 6049 + ] + } + ], + "src": "113:8578:43" + }, + "id": 43 + }, + "@openzeppelin/contracts/interfaces/IERC5267.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "exportedSymbols": { + "IERC5267": [ + 6069 + ] + }, + "id": 6070, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6046, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:44" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC5267", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 6069, + "linearizedBaseContracts": [ + 6069 + ], + "name": "IERC5267", + "nameLocation": "143:8:44", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 6047, + "nodeType": "StructuredDocumentation", + "src": "158:84:44", + "text": " @dev MAY be emitted to signal that the domain could have changed." + }, + "eventSelector": "0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31", + "id": 6049, + "name": "EIP712DomainChanged", + "nameLocation": "253:19:44", + "nodeType": "EventDefinition", + "parameters": { + "id": 6048, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:2:44" + }, + "src": "247:28:44" + }, + { + "documentation": { + "id": 6050, + "nodeType": "StructuredDocumentation", + "src": "281:140:44", + "text": " @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature." + }, + "functionSelector": "84b0196e", + "id": 6068, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "eip712Domain", + "nameLocation": "435:12:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6051, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:44" + }, + "returnParameters": { + "id": 6067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6053, + "mutability": "mutable", + "name": "fields", + "nameLocation": "517:6:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "510:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 6052, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "510:6:44", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6055, + "mutability": "mutable", + "name": "name", + "nameLocation": "551:4:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "537:18:44", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6054, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "537:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6057, + "mutability": "mutable", + "name": "version", + "nameLocation": "583:7:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "569:21:44", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6056, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "612:7:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "604:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6061, + "mutability": "mutable", + "name": "verifyingContract", + "nameLocation": "641:17:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "633:25:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6060, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6063, + "mutability": "mutable", + "name": "salt", + "nameLocation": "680:4:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "672:12:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6062, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "672:7:44", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6066, + "mutability": "mutable", + "name": "extensions", + "nameLocation": "715:10:44", + "nodeType": "VariableDeclaration", + "scope": 6068, + "src": "698:27:44", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "698:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6065, + "nodeType": "ArrayTypeName", + "src": "698:9:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "496:239:44" + }, + "scope": 6069, + "src": "426:310:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6070, + "src": "133:605:44", + "usedErrors": [], + "usedEvents": [ + 6049 + ] + } + ], + "src": "107:632:44" + }, + "id": 44 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 6147 + ] + }, + "id": 6148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6071, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:45" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 6072, + "nodeType": "StructuredDocumentation", + "src": "132:71:45", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 6147, + "linearizedBaseContracts": [ + 6147 + ], + "name": "IERC20", + "nameLocation": "214:6:45", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 6073, + "nodeType": "StructuredDocumentation", + "src": "227:158:45", + "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": 6081, + "name": "Transfer", + "nameLocation": "396:8:45", + "nodeType": "EventDefinition", + "parameters": { + "id": 6080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6075, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:45", + "nodeType": "VariableDeclaration", + "scope": 6081, + "src": "405:20:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6077, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:45", + "nodeType": "VariableDeclaration", + "scope": 6081, + "src": "427:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6079, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:45", + "nodeType": "VariableDeclaration", + "scope": 6081, + "src": "447:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6078, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:45" + }, + "src": "390:72:45" + }, + { + "anonymous": false, + "documentation": { + "id": 6082, + "nodeType": "StructuredDocumentation", + "src": "468:148:45", + "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": 6090, + "name": "Approval", + "nameLocation": "627:8:45", + "nodeType": "EventDefinition", + "parameters": { + "id": 6089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6084, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:45", + "nodeType": "VariableDeclaration", + "scope": 6090, + "src": "636:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6086, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:45", + "nodeType": "VariableDeclaration", + "scope": 6090, + "src": "659:23:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6088, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:45", + "nodeType": "VariableDeclaration", + "scope": 6090, + "src": "684:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:45" + }, + "src": "621:78:45" + }, + { + "documentation": { + "id": 6091, + "nodeType": "StructuredDocumentation", + "src": "705:65:45", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 6096, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6092, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:45" + }, + "returnParameters": { + "id": 6095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6094, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6096, + "src": "821:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:45" + }, + "scope": 6147, + "src": "775:55:45", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 6097, + "nodeType": "StructuredDocumentation", + "src": "836:71:45", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 6104, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6099, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:45", + "nodeType": "VariableDeclaration", + "scope": 6104, + "src": "931:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6098, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:45" + }, + "returnParameters": { + "id": 6103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6102, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6104, + "src": "971:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:45" + }, + "scope": 6147, + "src": "912:68:45", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 6105, + "nodeType": "StructuredDocumentation", + "src": "986:213:45", + "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": 6114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6107, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:45", + "nodeType": "VariableDeclaration", + "scope": 6114, + "src": "1222:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6109, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:45", + "nodeType": "VariableDeclaration", + "scope": 6114, + "src": "1234:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:45" + }, + "returnParameters": { + "id": 6113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6114, + "src": "1267:4:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6111, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:45" + }, + "scope": 6147, + "src": "1204:69:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 6115, + "nodeType": "StructuredDocumentation", + "src": "1279:264:45", + "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": 6124, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6117, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:45", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "1567:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6119, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:45", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "1582:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6118, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:45" + }, + "returnParameters": { + "id": 6123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6122, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "1622:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:45" + }, + "scope": 6147, + "src": "1548:83:45", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 6125, + "nodeType": "StructuredDocumentation", + "src": "1637:667:45", + "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": 6134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6127, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:45", + "nodeType": "VariableDeclaration", + "scope": 6134, + "src": "2326:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6129, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:45", + "nodeType": "VariableDeclaration", + "scope": 6134, + "src": "2343:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:45" + }, + "returnParameters": { + "id": 6133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6132, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6134, + "src": "2376:4:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6131, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:45" + }, + "scope": 6147, + "src": "2309:73:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 6135, + "nodeType": "StructuredDocumentation", + "src": "2388:297:45", + "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": 6146, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6137, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:45", + "nodeType": "VariableDeclaration", + "scope": 6146, + "src": "2712:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6139, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:45", + "nodeType": "VariableDeclaration", + "scope": 6146, + "src": "2726:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6141, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:45", + "nodeType": "VariableDeclaration", + "scope": 6146, + "src": "2738:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:45" + }, + "returnParameters": { + "id": 6145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6144, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6146, + "src": "2771:4:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6143, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:45" + }, + "scope": 6147, + "src": "2690:87:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6148, + "src": "204:2575:45", + "usedErrors": [], + "usedEvents": [ + 6081, + 6090 + ] + } + ], + "src": "106:2674:45" + }, + "id": 45 + }, + "@openzeppelin/contracts/utils/Address.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 6407 + ], + "Errors": [ + 6429 + ] + }, + "id": 6408, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:46" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "file": "./Errors.sol", + "id": 6151, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6408, + "sourceUnit": 6430, + "src": "127:36:46", + "symbolAliases": [ + { + "foreign": { + "id": 6150, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6429, + "src": "135:6:46", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6152, + "nodeType": "StructuredDocumentation", + "src": "165:67:46", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 6407, + "linearizedBaseContracts": [ + 6407 + ], + "name": "Address", + "nameLocation": "241:7:46", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 6153, + "nodeType": "StructuredDocumentation", + "src": "255:75:46", + "text": " @dev There's no code at `target` (it is not a contract)." + }, + "errorSelector": "9996b315", + "id": 6157, + "name": "AddressEmptyCode", + "nameLocation": "341:16:46", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6155, + "mutability": "mutable", + "name": "target", + "nameLocation": "366:6:46", + "nodeType": "VariableDeclaration", + "scope": 6157, + "src": "358:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "358:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "357:16:46" + }, + "src": "335:39:46" + }, + { + "body": { + "id": 6204, + "nodeType": "Block", + "src": "1361:294:46", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6167, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1383:4:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + ], + "id": 6166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1375:7:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1375:7:46", + "typeDescriptions": {} + } + }, + "id": 6168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1375:13:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1389:7:46", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1375:21:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6170, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6162, + "src": "1399:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1375:30:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6184, + "nodeType": "IfStatement", + "src": "1371:125:46", + "trueBody": { + "id": 6183, + "nodeType": "Block", + "src": "1407:89:46", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 6177, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1463:4:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + ], + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1455:7:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1455:7:46", + "typeDescriptions": {} + } + }, + "id": 6178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1455:13:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1469:7:46", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1455:21:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6180, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6162, + "src": "1478:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6172, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6429, + "src": "1428:6:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$6429_$", + "typeString": "type(library Errors)" + } + }, + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1435:19:46", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 6417, + "src": "1428:26:46", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 6181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1428:57:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6182, + "nodeType": "RevertStatement", + "src": "1421:64:46" + } + ] + } + }, + { + "assignments": [ + 6186, + 6188 + ], + "declarations": [ + { + "constant": false, + "id": 6186, + "mutability": "mutable", + "name": "success", + "nameLocation": "1512:7:46", + "nodeType": "VariableDeclaration", + "scope": 6204, + "src": "1507:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6185, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1507:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6188, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "1534:10:46", + "nodeType": "VariableDeclaration", + "scope": 6204, + "src": "1521:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6187, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1521:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6195, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 6193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1578:2:46", + "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": 6189, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6160, + "src": "1548:9:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 6190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1558:4:46", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1548:14:46", + "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": 6192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 6191, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6162, + "src": "1570:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1548:29:46", + "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": 6194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1548:33:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1506:75:46" + }, + { + "condition": { + "id": 6197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1595:8:46", + "subExpression": { + "id": 6196, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6186, + "src": "1596:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6203, + "nodeType": "IfStatement", + "src": "1591:58:46", + "trueBody": { + "id": 6202, + "nodeType": "Block", + "src": "1605:44:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6199, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6188, + "src": "1627:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6198, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6406, + "src": "1619:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 6200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1619:19:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6201, + "nodeType": "ExpressionStatement", + "src": "1619:19:46" + } + ] + } + } + ] + }, + "documentation": { + "id": 6158, + "nodeType": "StructuredDocumentation", + "src": "380:905:46", + "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": 6205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "1299:9:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6160, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "1325:9:46", + "nodeType": "VariableDeclaration", + "scope": 6205, + "src": "1309:25:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 6159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1309:15:46", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6162, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1344:6:46", + "nodeType": "VariableDeclaration", + "scope": 6205, + "src": "1336:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1336:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1308:43:46" + }, + "returnParameters": { + "id": 6164, + "nodeType": "ParameterList", + "parameters": [], + "src": "1361:0:46" + }, + "scope": 6407, + "src": "1290:365:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6221, + "nodeType": "Block", + "src": "2589:62:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6216, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6208, + "src": "2628:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6217, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "2636:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 6218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2642:1:46", + "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": 6215, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6272, + "src": "2606:21:46", + "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": 6219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:38:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6214, + "id": 6220, + "nodeType": "Return", + "src": "2599:45:46" + } + ] + }, + "documentation": { + "id": 6206, + "nodeType": "StructuredDocumentation", + "src": "1661:834:46", + "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 {Errors.FailedCall} 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": 6222, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "2509:12:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6208, + "mutability": "mutable", + "name": "target", + "nameLocation": "2530:6:46", + "nodeType": "VariableDeclaration", + "scope": 6222, + "src": "2522:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2522:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "data", + "nameLocation": "2551:4:46", + "nodeType": "VariableDeclaration", + "scope": 6222, + "src": "2538:17:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2538:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2521:35:46" + }, + "returnParameters": { + "id": 6214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6213, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6222, + "src": "2575:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6212, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2575:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2574:14:46" + }, + "scope": 6407, + "src": "2500:151:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6271, + "nodeType": "Block", + "src": "3088:294:46", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6236, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3110:4:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + ], + "id": 6235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3102:7:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3102:7:46", + "typeDescriptions": {} + } + }, + "id": 6237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3102:13:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3116:7:46", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3102:21:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6239, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "3126:5:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3102:29:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6253, + "nodeType": "IfStatement", + "src": "3098:123:46", + "trueBody": { + "id": 6252, + "nodeType": "Block", + "src": "3133:88:46", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3189:4:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$6407", + "typeString": "library Address" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3181:7:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3181:7:46", + "typeDescriptions": {} + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3181:13:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3195:7:46", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3181:21:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6249, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "3204:5:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6241, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6429, + "src": "3154:6:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$6429_$", + "typeString": "type(library Errors)" + } + }, + "id": 6243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3161:19:46", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 6417, + "src": "3154:26:46", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 6250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:56:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6251, + "nodeType": "RevertStatement", + "src": "3147:63:46" + } + ] + } + }, + { + "assignments": [ + 6255, + 6257 + ], + "declarations": [ + { + "constant": false, + "id": 6255, + "mutability": "mutable", + "name": "success", + "nameLocation": "3236:7:46", + "nodeType": "VariableDeclaration", + "scope": 6271, + "src": "3231:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6254, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3231:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6257, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3258:10:46", + "nodeType": "VariableDeclaration", + "scope": 6271, + "src": "3245:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3245:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6264, + "initialValue": { + "arguments": [ + { + "id": 6262, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "3298:4:46", + "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": 6258, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6225, + "src": "3272:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3279:4:46", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "3272:11:46", + "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": 6261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 6260, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6229, + "src": "3291:5:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3272:25:46", + "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": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3272:31:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3230:73:46" + }, + { + "expression": { + "arguments": [ + { + "id": 6266, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6225, + "src": "3347:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6267, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6255, + "src": "3355:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 6268, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6257, + "src": "3364:10:46", + "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": 6265, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "3320:26:46", + "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": 6269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3320:55:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6233, + "id": 6270, + "nodeType": "Return", + "src": "3313:62:46" + } + ] + }, + "documentation": { + "id": 6223, + "nodeType": "StructuredDocumentation", + "src": "2657:313:46", + "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": 6272, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "2984:21:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6225, + "mutability": "mutable", + "name": "target", + "nameLocation": "3014:6:46", + "nodeType": "VariableDeclaration", + "scope": 6272, + "src": "3006:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3006:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6227, + "mutability": "mutable", + "name": "data", + "nameLocation": "3035:4:46", + "nodeType": "VariableDeclaration", + "scope": 6272, + "src": "3022:17:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6226, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3022:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6229, + "mutability": "mutable", + "name": "value", + "nameLocation": "3049:5:46", + "nodeType": "VariableDeclaration", + "scope": 6272, + "src": "3041:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3041:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3005:50:46" + }, + "returnParameters": { + "id": 6233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6232, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6272, + "src": "3074:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6231, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3074:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3073:14:46" + }, + "scope": 6407, + "src": "2975:407:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6297, + "nodeType": "Block", + "src": "3621:154:46", + "statements": [ + { + "assignments": [ + 6283, + 6285 + ], + "declarations": [ + { + "constant": false, + "id": 6283, + "mutability": "mutable", + "name": "success", + "nameLocation": "3637:7:46", + "nodeType": "VariableDeclaration", + "scope": 6297, + "src": "3632:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6282, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3632:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6285, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3659:10:46", + "nodeType": "VariableDeclaration", + "scope": 6297, + "src": "3646:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6284, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3646:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6290, + "initialValue": { + "arguments": [ + { + "id": 6288, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6277, + "src": "3691:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 6286, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6275, + "src": "3673:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3680:10:46", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "3673:17:46", + "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": 6289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3673:23:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3631:65:46" + }, + { + "expression": { + "arguments": [ + { + "id": 6292, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6275, + "src": "3740:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6293, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6283, + "src": "3748:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 6294, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6285, + "src": "3757:10:46", + "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": 6291, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "3713:26:46", + "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": 6295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3713:55:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6281, + "id": 6296, + "nodeType": "Return", + "src": "3706:62:46" + } + ] + }, + "documentation": { + "id": 6273, + "nodeType": "StructuredDocumentation", + "src": "3388:128:46", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." + }, + "id": 6298, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "3530:18:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6275, + "mutability": "mutable", + "name": "target", + "nameLocation": "3557:6:46", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3549:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3549:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6277, + "mutability": "mutable", + "name": "data", + "nameLocation": "3578:4:46", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3565:17:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6276, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3565:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3548:35:46" + }, + "returnParameters": { + "id": 6281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6280, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3607:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3607:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3606:14:46" + }, + "scope": 6407, + "src": "3521:254:46", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6323, + "nodeType": "Block", + "src": "4013:156:46", + "statements": [ + { + "assignments": [ + 6309, + 6311 + ], + "declarations": [ + { + "constant": false, + "id": 6309, + "mutability": "mutable", + "name": "success", + "nameLocation": "4029:7:46", + "nodeType": "VariableDeclaration", + "scope": 6323, + "src": "4024:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6308, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4024:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6311, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4051:10:46", + "nodeType": "VariableDeclaration", + "scope": 6323, + "src": "4038:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6310, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4038:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6316, + "initialValue": { + "arguments": [ + { + "id": 6314, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6303, + "src": "4085:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 6312, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6301, + "src": "4065:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4072:12:46", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "4065:19:46", + "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": 6315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4065:25:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4023:67:46" + }, + { + "expression": { + "arguments": [ + { + "id": 6318, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6301, + "src": "4134:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6319, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6309, + "src": "4142:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 6320, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6311, + "src": "4151:10:46", + "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": 6317, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "4107:26:46", + "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": 6321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4107:55:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6307, + "id": 6322, + "nodeType": "Return", + "src": "4100:62:46" + } + ] + }, + "documentation": { + "id": 6299, + "nodeType": "StructuredDocumentation", + "src": "3781:130:46", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." + }, + "id": 6324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "3925:20:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6301, + "mutability": "mutable", + "name": "target", + "nameLocation": "3954:6:46", + "nodeType": "VariableDeclaration", + "scope": 6324, + "src": "3946:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3946:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6303, + "mutability": "mutable", + "name": "data", + "nameLocation": "3975:4:46", + "nodeType": "VariableDeclaration", + "scope": 6324, + "src": "3962:17:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3962:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3945:35:46" + }, + "returnParameters": { + "id": 6307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6306, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6324, + "src": "3999:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3999:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3998:14:46" + }, + "scope": 6407, + "src": "3916:253:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6363, + "nodeType": "Block", + "src": "4595:424:46", + "statements": [ + { + "condition": { + "id": 6337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4609:8:46", + "subExpression": { + "id": 6336, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6329, + "src": "4610:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6361, + "nodeType": "Block", + "src": "4669:344:46", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6343, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "4857:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4868:6:46", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4857:17:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4878:1:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4857:22:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 6347, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "4883:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4890:4:46", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4883:11:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4895:6:46", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4883:18:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4905:1:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4883:23:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4857:49:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6358, + "nodeType": "IfStatement", + "src": "4853:119:46", + "trueBody": { + "id": 6357, + "nodeType": "Block", + "src": "4908:64:46", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 6354, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "4950:6:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "AddressEmptyCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6157, + "src": "4933:16:46", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4933:24:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6356, + "nodeType": "RevertStatement", + "src": "4926:31:46" + } + ] + } + }, + { + "expression": { + "id": 6359, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "4992:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6335, + "id": 6360, + "nodeType": "Return", + "src": "4985:17:46" + } + ] + }, + "id": 6362, + "nodeType": "IfStatement", + "src": "4605:408:46", + "trueBody": { + "id": 6342, + "nodeType": "Block", + "src": "4619:44:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6339, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "4641:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6338, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6406, + "src": "4633:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 6340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4633:19:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6341, + "nodeType": "ExpressionStatement", + "src": "4633:19:46" + } + ] + } + } + ] + }, + "documentation": { + "id": 6325, + "nodeType": "StructuredDocumentation", + "src": "4175:257:46", + "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 {Errors.FailedCall}) in case\n of an unsuccessful call." + }, + "id": 6364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "4446:26:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6327, + "mutability": "mutable", + "name": "target", + "nameLocation": "4490:6:46", + "nodeType": "VariableDeclaration", + "scope": 6364, + "src": "4482:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4482:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6329, + "mutability": "mutable", + "name": "success", + "nameLocation": "4511:7:46", + "nodeType": "VariableDeclaration", + "scope": 6364, + "src": "4506:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6328, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4506:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6331, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4541:10:46", + "nodeType": "VariableDeclaration", + "scope": 6364, + "src": "4528:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6330, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4528:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4472:85:46" + }, + "returnParameters": { + "id": 6335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6364, + "src": "4581:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4581:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4580:14:46" + }, + "scope": 6407, + "src": "4437:582:46", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6385, + "nodeType": "Block", + "src": "5323:122:46", + "statements": [ + { + "condition": { + "id": 6375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5337:8:46", + "subExpression": { + "id": 6374, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6367, + "src": "5338:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6383, + "nodeType": "Block", + "src": "5397:42:46", + "statements": [ + { + "expression": { + "id": 6381, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6369, + "src": "5418:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6373, + "id": 6382, + "nodeType": "Return", + "src": "5411:17:46" + } + ] + }, + "id": 6384, + "nodeType": "IfStatement", + "src": "5333:106:46", + "trueBody": { + "id": 6380, + "nodeType": "Block", + "src": "5347:44:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6377, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6369, + "src": "5369:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6376, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6406, + "src": "5361:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5361:19:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6379, + "nodeType": "ExpressionStatement", + "src": "5361:19:46" + } + ] + } + } + ] + }, + "documentation": { + "id": 6365, + "nodeType": "StructuredDocumentation", + "src": "5025:191:46", + "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 {Errors.FailedCall} error." + }, + "id": 6386, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "5230:16:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6367, + "mutability": "mutable", + "name": "success", + "nameLocation": "5252:7:46", + "nodeType": "VariableDeclaration", + "scope": 6386, + "src": "5247:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6366, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5247:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6369, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5274:10:46", + "nodeType": "VariableDeclaration", + "scope": 6386, + "src": "5261:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5261:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5246:39:46" + }, + "returnParameters": { + "id": 6373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6386, + "src": "5309:12:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6371, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5309:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5308:14:46" + }, + "scope": 6407, + "src": "5221:224:46", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6405, + "nodeType": "Block", + "src": "5614:432:46", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6392, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "5690:10:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5701:6:46", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5690:17:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5710:1:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5690:21:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6403, + "nodeType": "Block", + "src": "5989:51:46", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6398, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6429, + "src": "6010:6:46", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$6429_$", + "typeString": "type(library Errors)" + } + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6017:10:46", + "memberName": "FailedCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 6420, + "src": "6010:17:46", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6010:19:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6402, + "nodeType": "RevertStatement", + "src": "6003:26:46" + } + ] + }, + "id": 6404, + "nodeType": "IfStatement", + "src": "5686:354:46", + "trueBody": { + "id": 6397, + "nodeType": "Block", + "src": "5713:270:46", + "statements": [ + { + "AST": { + "nativeSrc": "5840:133:46", + "nodeType": "YulBlock", + "src": "5840:133:46", + "statements": [ + { + "nativeSrc": "5858:40:46", + "nodeType": "YulVariableDeclaration", + "src": "5858:40:46", + "value": { + "arguments": [ + { + "name": "returndata", + "nativeSrc": "5887:10:46", + "nodeType": "YulIdentifier", + "src": "5887:10:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5881:5:46", + "nodeType": "YulIdentifier", + "src": "5881:5:46" + }, + "nativeSrc": "5881:17:46", + "nodeType": "YulFunctionCall", + "src": "5881:17:46" + }, + "variables": [ + { + "name": "returndata_size", + "nativeSrc": "5862:15:46", + "nodeType": "YulTypedName", + "src": "5862:15:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5926:2:46", + "nodeType": "YulLiteral", + "src": "5926:2:46", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nativeSrc": "5930:10:46", + "nodeType": "YulIdentifier", + "src": "5930:10:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5922:3:46", + "nodeType": "YulIdentifier", + "src": "5922:3:46" + }, + "nativeSrc": "5922:19:46", + "nodeType": "YulFunctionCall", + "src": "5922:19:46" + }, + { + "name": "returndata_size", + "nativeSrc": "5943:15:46", + "nodeType": "YulIdentifier", + "src": "5943:15:46" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5915:6:46", + "nodeType": "YulIdentifier", + "src": "5915:6:46" + }, + "nativeSrc": "5915:44:46", + "nodeType": "YulFunctionCall", + "src": "5915:44:46" + }, + "nativeSrc": "5915:44:46", + "nodeType": "YulExpressionStatement", + "src": "5915:44:46" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6389, + "isOffset": false, + "isSlot": false, + "src": "5887:10:46", + "valueSize": 1 + }, + { + "declaration": 6389, + "isOffset": false, + "isSlot": false, + "src": "5930:10:46", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6396, + "nodeType": "InlineAssembly", + "src": "5815:158:46" + } + ] + } + } + ] + }, + "documentation": { + "id": 6387, + "nodeType": "StructuredDocumentation", + "src": "5451:103:46", + "text": " @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}." + }, + "id": 6406, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "5568:7:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5589:10:46", + "nodeType": "VariableDeclaration", + "scope": 6406, + "src": "5576:23:46", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6388, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5576:5:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5575:25:46" + }, + "returnParameters": { + "id": 6391, + "nodeType": "ParameterList", + "parameters": [], + "src": "5614:0:46" + }, + "scope": 6407, + "src": "5559:487:46", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 6408, + "src": "233:5815:46", + "usedErrors": [ + 6157 + ], + "usedEvents": [] + } + ], + "src": "101:5948:46" + }, + "id": 46 + }, + "@openzeppelin/contracts/utils/Errors.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "exportedSymbols": { + "Errors": [ + 6429 + ] + }, + "id": 6430, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6409, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:47" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Errors", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6410, + "nodeType": "StructuredDocumentation", + "src": "126:284:47", + "text": " @dev Collection of common custom errors used in multiple contracts\n IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n It is recommended to avoid relying on the error API for critical functionality.\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 6429, + "linearizedBaseContracts": [ + 6429 + ], + "name": "Errors", + "nameLocation": "419:6:47", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 6411, + "nodeType": "StructuredDocumentation", + "src": "432:94:47", + "text": " @dev The ETH balance of the account is not enough to perform the operation." + }, + "errorSelector": "cf479181", + "id": 6417, + "name": "InsufficientBalance", + "nameLocation": "537:19:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6413, + "mutability": "mutable", + "name": "balance", + "nameLocation": "565:7:47", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "557:15:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "needed", + "nameLocation": "582:6:47", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "574:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "574:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "556:33:47" + }, + "src": "531:59:47" + }, + { + "documentation": { + "id": 6418, + "nodeType": "StructuredDocumentation", + "src": "596:89:47", + "text": " @dev A call to an address target failed. The target may have reverted." + }, + "errorSelector": "d6bda275", + "id": 6420, + "name": "FailedCall", + "nameLocation": "696:10:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6419, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:47" + }, + "src": "690:19:47" + }, + { + "documentation": { + "id": 6421, + "nodeType": "StructuredDocumentation", + "src": "715:46:47", + "text": " @dev The deployment failed." + }, + "errorSelector": "b06ebf3d", + "id": 6423, + "name": "FailedDeployment", + "nameLocation": "772:16:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6422, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:2:47" + }, + "src": "766:25:47" + }, + { + "documentation": { + "id": 6424, + "nodeType": "StructuredDocumentation", + "src": "797:58:47", + "text": " @dev A necessary precompile is missing." + }, + "errorSelector": "42b01bce", + "id": 6428, + "name": "MissingPrecompile", + "nameLocation": "866:17:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6426, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6428, + "src": "884:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "884:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "883:9:47" + }, + "src": "860:33:47" + } + ], + "scope": 6430, + "src": "411:484:47", + "usedErrors": [ + 6417, + 6420, + 6423, + 6428 + ], + "usedEvents": [] + } + ], + "src": "100:796:47" + }, + "id": 47 + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "exportedSymbols": { + "Panic": [ + 6481 + ] + }, + "id": 6482, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6431, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "99:24:48" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Panic", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6432, + "nodeType": "StructuredDocumentation", + "src": "125:489:48", + "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 6481, + "linearizedBaseContracts": [ + 6481 + ], + "name": "Panic", + "nameLocation": "665:5:48", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 6433, + "nodeType": "StructuredDocumentation", + "src": "677:36:48", + "text": "@dev generic / unspecified error" + }, + "id": 6436, + "mutability": "constant", + "name": "GENERIC", + "nameLocation": "744:7:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "718:40:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783030", + "id": 6435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "754:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6437, + "nodeType": "StructuredDocumentation", + "src": "764:37:48", + "text": "@dev used by the assert() builtin" + }, + "id": 6440, + "mutability": "constant", + "name": "ASSERT", + "nameLocation": "832:6:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "806:39:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "806:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783031", + "id": 6439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "841:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x01" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6441, + "nodeType": "StructuredDocumentation", + "src": "851:41:48", + "text": "@dev arithmetic underflow or overflow" + }, + "id": 6444, + "mutability": "constant", + "name": "UNDER_OVERFLOW", + "nameLocation": "923:14:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "897:47:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "897:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783131", + "id": 6443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "940:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_17_by_1", + "typeString": "int_const 17" + }, + "value": "0x11" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6445, + "nodeType": "StructuredDocumentation", + "src": "950:35:48", + "text": "@dev division or modulo by zero" + }, + "id": 6448, + "mutability": "constant", + "name": "DIVISION_BY_ZERO", + "nameLocation": "1016:16:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "990:49:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "990:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783132", + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1035:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "0x12" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6449, + "nodeType": "StructuredDocumentation", + "src": "1045:30:48", + "text": "@dev enum conversion error" + }, + "id": 6452, + "mutability": "constant", + "name": "ENUM_CONVERSION_ERROR", + "nameLocation": "1106:21:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1080:54:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1080:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783231", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1130:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "0x21" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6453, + "nodeType": "StructuredDocumentation", + "src": "1140:36:48", + "text": "@dev invalid encoding in storage" + }, + "id": 6456, + "mutability": "constant", + "name": "STORAGE_ENCODING_ERROR", + "nameLocation": "1207:22:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1181:55:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1181:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783232", + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6457, + "nodeType": "StructuredDocumentation", + "src": "1242:24:48", + "text": "@dev empty array pop" + }, + "id": 6460, + "mutability": "constant", + "name": "EMPTY_ARRAY_POP", + "nameLocation": "1297:15:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1271:48:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783331", + "id": 6459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1315:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "0x31" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6461, + "nodeType": "StructuredDocumentation", + "src": "1325:35:48", + "text": "@dev array out of bounds access" + }, + "id": 6464, + "mutability": "constant", + "name": "ARRAY_OUT_OF_BOUNDS", + "nameLocation": "1391:19:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1365:52:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1365:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783332", + "id": 6463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "0x32" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6465, + "nodeType": "StructuredDocumentation", + "src": "1423:65:48", + "text": "@dev resource error (too large allocation or too large array)" + }, + "id": 6468, + "mutability": "constant", + "name": "RESOURCE_ERROR", + "nameLocation": "1519:14:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1493:47:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1493:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783431", + "id": 6467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1536:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "0x41" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6469, + "nodeType": "StructuredDocumentation", + "src": "1546:42:48", + "text": "@dev calling invalid internal function" + }, + "id": 6472, + "mutability": "constant", + "name": "INVALID_INTERNAL_FUNCTION", + "nameLocation": "1619:25:48", + "nodeType": "VariableDeclaration", + "scope": 6481, + "src": "1593:58:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783531", + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1647:4:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_81_by_1", + "typeString": "int_const 81" + }, + "value": "0x51" + }, + "visibility": "internal" + }, + { + "body": { + "id": 6479, + "nodeType": "Block", + "src": "1819:151:48", + "statements": [ + { + "AST": { + "nativeSrc": "1854:110:48", + "nodeType": "YulBlock", + "src": "1854:110:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1875:4:48", + "nodeType": "YulLiteral", + "src": "1875:4:48", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1881:10:48", + "nodeType": "YulLiteral", + "src": "1881:10:48", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1868:6:48", + "nodeType": "YulIdentifier", + "src": "1868:6:48" + }, + "nativeSrc": "1868:24:48", + "nodeType": "YulFunctionCall", + "src": "1868:24:48" + }, + "nativeSrc": "1868:24:48", + "nodeType": "YulExpressionStatement", + "src": "1868:24:48" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1912:4:48", + "nodeType": "YulLiteral", + "src": "1912:4:48", + "type": "", + "value": "0x20" + }, + { + "name": "code", + "nativeSrc": "1918:4:48", + "nodeType": "YulIdentifier", + "src": "1918:4:48" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1905:6:48", + "nodeType": "YulIdentifier", + "src": "1905:6:48" + }, + "nativeSrc": "1905:18:48", + "nodeType": "YulFunctionCall", + "src": "1905:18:48" + }, + "nativeSrc": "1905:18:48", + "nodeType": "YulExpressionStatement", + "src": "1905:18:48" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1943:4:48", + "nodeType": "YulLiteral", + "src": "1943:4:48", + "type": "", + "value": "0x1c" + }, + { + "kind": "number", + "nativeSrc": "1949:4:48", + "nodeType": "YulLiteral", + "src": "1949:4:48", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1936:6:48", + "nodeType": "YulIdentifier", + "src": "1936:6:48" + }, + "nativeSrc": "1936:18:48", + "nodeType": "YulFunctionCall", + "src": "1936:18:48" + }, + "nativeSrc": "1936:18:48", + "nodeType": "YulExpressionStatement", + "src": "1936:18:48" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6475, + "isOffset": false, + "isSlot": false, + "src": "1918:4:48", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6478, + "nodeType": "InlineAssembly", + "src": "1829:135:48" + } + ] + }, + "documentation": { + "id": 6473, + "nodeType": "StructuredDocumentation", + "src": "1658:113:48", + "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes." + }, + "id": 6480, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "panic", + "nameLocation": "1785:5:48", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6475, + "mutability": "mutable", + "name": "code", + "nameLocation": "1799:4:48", + "nodeType": "VariableDeclaration", + "scope": 6480, + "src": "1791:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1790:14:48" + }, + "returnParameters": { + "id": 6477, + "nodeType": "ParameterList", + "parameters": [], + "src": "1819:0:48" + }, + "scope": 6481, + "src": "1776:194:48", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6482, + "src": "657:1315:48", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "99:1874:48" + }, + "id": 48 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 9938 + ], + "SafeCast": [ + 11703 + ], + "SignedMath": [ + 11847 + ], + "Strings": [ + 7883 + ] + }, + "id": 7884, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6483, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:49" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 6485, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7884, + "sourceUnit": 9939, + "src": "127:37:49", + "symbolAliases": [ + { + "foreign": { + "id": 6484, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "135:4:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./math/SafeCast.sol", + "id": 6487, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7884, + "sourceUnit": 11704, + "src": "165:45:49", + "symbolAliases": [ + { + "foreign": { + "id": 6486, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "173:8:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 6489, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7884, + "sourceUnit": 11848, + "src": "211:49:49", + "symbolAliases": [ + { + "foreign": { + "id": 6488, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11847, + "src": "219:10:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6490, + "nodeType": "StructuredDocumentation", + "src": "262:34:49", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 7883, + "linearizedBaseContracts": [ + 7883 + ], + "name": "Strings", + "nameLocation": "305:7:49", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 6492, + "libraryName": { + "id": 6491, + "name": "SafeCast", + "nameLocations": [ + "325:8:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11703, + "src": "325:8:49" + }, + "nodeType": "UsingForDirective", + "src": "319:21:49" + }, + { + "constant": true, + "id": 6495, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "371:10:49", + "nodeType": "VariableDeclaration", + "scope": 7883, + "src": "346:56:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 6493, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "346:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 6494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "384:18:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6498, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "431:14:49", + "nodeType": "VariableDeclaration", + "scope": 7883, + "src": "408:42:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6496, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "408:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6534, + "mutability": "constant", + "name": "SPECIAL_CHARS_LOOKUP", + "nameLocation": "481:20:49", + "nodeType": "VariableDeclaration", + "scope": 7883, + "src": "456:302:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "456:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + }, + "id": 6533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_17179883264_by_1", + "typeString": "int_const 17179883264" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_14080_by_1", + "typeString": "int_const 14080" + }, + "id": 6523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_5888_by_1", + "typeString": "int_const 5888" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_1792_by_1", + "typeString": "int_const 1792" + }, + "id": 6513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_768_by_1", + "typeString": "int_const 768" + }, + "id": 6508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783038", + "id": 6501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "513:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 6503, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "512:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + }, + "id": 6506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "552:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783039", + "id": 6505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "552:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + } + ], + "id": 6507, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "551:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + }, + "src": "512:50:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_768_by_1", + "typeString": "int_const 768" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "585:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783061", + "id": 6510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "590:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "585:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + } + ], + "id": 6512, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "584:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + }, + "src": "512:83:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1792_by_1", + "typeString": "int_const 1792" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783063", + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "627:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "622:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "621:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + }, + "src": "512:120:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_5888_by_1", + "typeString": "int_const 5888" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + }, + "id": 6521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "661:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783064", + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "666:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "661:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + } + ], + "id": 6522, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "660:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + }, + "src": "512:159:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_14080_by_1", + "typeString": "int_const 14080" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + }, + "id": 6526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "706:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783232", + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "706:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + } + ], + "id": 6527, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "705:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + }, + "src": "512:204:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179883264_by_1", + "typeString": "int_const 17179883264" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "748:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783563", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "753:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "748:9:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + } + ], + "id": 6532, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "747:11:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + }, + "src": "512:246:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 6535, + "nodeType": "StructuredDocumentation", + "src": "778:81:49", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 6541, + "name": "StringsInsufficientHexLength", + "nameLocation": "870:28:49", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6537, + "mutability": "mutable", + "name": "value", + "nameLocation": "907:5:49", + "nodeType": "VariableDeclaration", + "scope": 6541, + "src": "899:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "899:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6539, + "mutability": "mutable", + "name": "length", + "nameLocation": "922:6:49", + "nodeType": "VariableDeclaration", + "scope": 6541, + "src": "914:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "898:31:49" + }, + "src": "864:66:49" + }, + { + "documentation": { + "id": 6542, + "nodeType": "StructuredDocumentation", + "src": "936:108:49", + "text": " @dev The string being parsed contains characters that are not in scope of the given base." + }, + "errorSelector": "94e2737e", + "id": 6544, + "name": "StringsInvalidChar", + "nameLocation": "1055:18:49", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6543, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:2:49" + }, + "src": "1049:27:49" + }, + { + "documentation": { + "id": 6545, + "nodeType": "StructuredDocumentation", + "src": "1082:84:49", + "text": " @dev The string being parsed is not a properly formatted address." + }, + "errorSelector": "1d15ae44", + "id": 6547, + "name": "StringsInvalidAddressFormat", + "nameLocation": "1177:27:49", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6546, + "nodeType": "ParameterList", + "parameters": [], + "src": "1204:2:49" + }, + "src": "1171:36:49" + }, + { + "body": { + "id": 6594, + "nodeType": "Block", + "src": "1379:561:49", + "statements": [ + { + "id": 6593, + "nodeType": "UncheckedBlock", + "src": "1389:545:49", + "statements": [ + { + "assignments": [ + 6556 + ], + "declarations": [ + { + "constant": false, + "id": 6556, + "mutability": "mutable", + "name": "length", + "nameLocation": "1421:6:49", + "nodeType": "VariableDeclaration", + "scope": 6593, + "src": "1413:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1413:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6563, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6559, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6550, + "src": "1441:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6557, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "1430:4:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$9938_$", + "typeString": "type(library Math)" + } + }, + "id": 6558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1435:5:49", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 9770, + "src": "1430:10:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1430:17:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1450:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1430:21:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1413:38:49" + }, + { + "assignments": [ + 6565 + ], + "declarations": [ + { + "constant": false, + "id": 6565, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1479:6:49", + "nodeType": "VariableDeclaration", + "scope": 6593, + "src": "1465:20:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1465:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6570, + "initialValue": { + "arguments": [ + { + "id": 6568, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6556, + "src": "1499:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1488:10:49", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 6566, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1492:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 6569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1488:18:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1465:41:49" + }, + { + "assignments": [ + 6572 + ], + "declarations": [ + { + "constant": false, + "id": 6572, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "1528:3:49", + "nodeType": "VariableDeclaration", + "scope": 6593, + "src": "1520:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1520:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6573, + "nodeType": "VariableDeclarationStatement", + "src": "1520:11:49" + }, + { + "AST": { + "nativeSrc": "1570:67:49", + "nodeType": "YulBlock", + "src": "1570:67:49", + "statements": [ + { + "nativeSrc": "1588:35:49", + "nodeType": "YulAssignment", + "src": "1588:35:49", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "1599:6:49", + "nodeType": "YulIdentifier", + "src": "1599:6:49" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1611:2:49", + "nodeType": "YulLiteral", + "src": "1611:2:49", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "1615:6:49", + "nodeType": "YulIdentifier", + "src": "1615:6:49" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1607:3:49", + "nodeType": "YulIdentifier", + "src": "1607:3:49" + }, + "nativeSrc": "1607:15:49", + "nodeType": "YulFunctionCall", + "src": "1607:15:49" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1595:3:49", + "nodeType": "YulIdentifier", + "src": "1595:3:49" + }, + "nativeSrc": "1595:28:49", + "nodeType": "YulFunctionCall", + "src": "1595:28:49" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "1588:3:49", + "nodeType": "YulIdentifier", + "src": "1588:3:49" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6565, + "isOffset": false, + "isSlot": false, + "src": "1599:6:49", + "valueSize": 1 + }, + { + "declaration": 6556, + "isOffset": false, + "isSlot": false, + "src": "1615:6:49", + "valueSize": 1 + }, + { + "declaration": 6572, + "isOffset": false, + "isSlot": false, + "src": "1588:3:49", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6574, + "nodeType": "InlineAssembly", + "src": "1545:92:49" + }, + { + "body": { + "id": 6589, + "nodeType": "Block", + "src": "1663:234:49", + "statements": [ + { + "expression": { + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1681:5:49", + "subExpression": { + "id": 6576, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6572, + "src": "1681:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6578, + "nodeType": "ExpressionStatement", + "src": "1681:5:49" + }, + { + "AST": { + "nativeSrc": "1729:86:49", + "nodeType": "YulBlock", + "src": "1729:86:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1759:3:49", + "nodeType": "YulIdentifier", + "src": "1759:3:49" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1773:5:49", + "nodeType": "YulIdentifier", + "src": "1773:5:49" + }, + { + "kind": "number", + "nativeSrc": "1780:2:49", + "nodeType": "YulLiteral", + "src": "1780:2:49", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1769:3:49", + "nodeType": "YulIdentifier", + "src": "1769:3:49" + }, + "nativeSrc": "1769:14:49", + "nodeType": "YulFunctionCall", + "src": "1769:14:49" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1785:10:49", + "nodeType": "YulIdentifier", + "src": "1785:10:49" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1764:4:49", + "nodeType": "YulIdentifier", + "src": "1764:4:49" + }, + "nativeSrc": "1764:32:49", + "nodeType": "YulFunctionCall", + "src": "1764:32:49" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1751:7:49", + "nodeType": "YulIdentifier", + "src": "1751:7:49" + }, + "nativeSrc": "1751:46:49", + "nodeType": "YulFunctionCall", + "src": "1751:46:49" + }, + "nativeSrc": "1751:46:49", + "nodeType": "YulExpressionStatement", + "src": "1751:46:49" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6495, + "isOffset": false, + "isSlot": false, + "src": "1785:10:49", + "valueSize": 1 + }, + { + "declaration": 6572, + "isOffset": false, + "isSlot": false, + "src": "1759:3:49", + "valueSize": 1 + }, + { + "declaration": 6550, + "isOffset": false, + "isSlot": false, + "src": "1773:5:49", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6579, + "nodeType": "InlineAssembly", + "src": "1704:111:49" + }, + { + "expression": { + "id": 6582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6580, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6550, + "src": "1832:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 6581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1841:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1832:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6583, + "nodeType": "ExpressionStatement", + "src": "1832:11:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6584, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6550, + "src": "1865:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1874:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1865:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6588, + "nodeType": "IfStatement", + "src": "1861:21:49", + "trueBody": { + "id": 6587, + "nodeType": "Break", + "src": "1877:5:49" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 6590, + "nodeType": "WhileStatement", + "src": "1650:247:49" + }, + { + "expression": { + "id": 6591, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6565, + "src": "1917:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6554, + "id": 6592, + "nodeType": "Return", + "src": "1910:13:49" + } + ] + } + ] + }, + "documentation": { + "id": 6548, + "nodeType": "StructuredDocumentation", + "src": "1213:90:49", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 6595, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "1317:8:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6550, + "mutability": "mutable", + "name": "value", + "nameLocation": "1334:5:49", + "nodeType": "VariableDeclaration", + "scope": 6595, + "src": "1326:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1326:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1325:15:49" + }, + "returnParameters": { + "id": 6554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6595, + "src": "1364:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6552, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1364:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1363:15:49" + }, + "scope": 7883, + "src": "1308:632:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6620, + "nodeType": "Block", + "src": "2116:92:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6606, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6598, + "src": "2147:5:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 6607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2155:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2147:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 6610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:2:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 6611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2147:20:49", + "trueExpression": { + "hexValue": "2d", + "id": 6609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2159:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 6615, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6598, + "src": "2193:5:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 6613, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11847, + "src": "2178:10:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$11847_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 6614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2189:3:49", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 11846, + "src": "2178:14:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 6616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2178:21:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6612, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6595, + "src": "2169:8:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 6617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2169:31:49", + "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": 6604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2133:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 6603, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2133:6:49", + "typeDescriptions": {} + } + }, + "id": 6605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2140:6:49", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2133:13:49", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 6618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2133:68:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6602, + "id": 6619, + "nodeType": "Return", + "src": "2126:75:49" + } + ] + }, + "documentation": { + "id": 6596, + "nodeType": "StructuredDocumentation", + "src": "1946:89:49", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 6621, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "2049:14:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6598, + "mutability": "mutable", + "name": "value", + "nameLocation": "2071:5:49", + "nodeType": "VariableDeclaration", + "scope": 6621, + "src": "2064:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6597, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2064:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "2063:14:49" + }, + "returnParameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6621, + "src": "2101:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6600, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2101:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2100:15:49" + }, + "scope": 7883, + "src": "2040:168:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6640, + "nodeType": "Block", + "src": "2387:100:49", + "statements": [ + { + "id": 6639, + "nodeType": "UncheckedBlock", + "src": "2397:84:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6624, + "src": "2440:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6624, + "src": "2459:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6631, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "2447:4:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$9938_$", + "typeString": "type(library Math)" + } + }, + "id": 6632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2452:6:49", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 9881, + "src": "2447:11:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2447:18:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2447:22:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6629, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6641, + 6724, + 6744 + ], + "referencedDeclaration": 6724, + "src": "2428:11:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2428:42:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6628, + "id": 6638, + "nodeType": "Return", + "src": "2421:49:49" + } + ] + } + ] + }, + "documentation": { + "id": 6622, + "nodeType": "StructuredDocumentation", + "src": "2214:94:49", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 6641, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2322:11:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6624, + "mutability": "mutable", + "name": "value", + "nameLocation": "2342:5:49", + "nodeType": "VariableDeclaration", + "scope": 6641, + "src": "2334:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:15:49" + }, + "returnParameters": { + "id": 6628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6641, + "src": "2372:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6626, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2372:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2371:15:49" + }, + "scope": 7883, + "src": "2313:174:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6723, + "nodeType": "Block", + "src": "2700:435:49", + "statements": [ + { + "assignments": [ + 6652 + ], + "declarations": [ + { + "constant": false, + "id": 6652, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2718:10:49", + "nodeType": "VariableDeclaration", + "scope": 6723, + "src": "2710:18:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2710:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6654, + "initialValue": { + "id": 6653, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6644, + "src": "2731:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2710:26:49" + }, + { + "assignments": [ + 6656 + ], + "declarations": [ + { + "constant": false, + "id": 6656, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2759:6:49", + "nodeType": "VariableDeclaration", + "scope": 6723, + "src": "2746:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6655, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2746:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6665, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2778:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6660, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6646, + "src": "2782:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2778:10:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2791:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2778:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2768:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 6657, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2772:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 6664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2768:25:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2746:47:49" + }, + { + "expression": { + "id": 6670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6666, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6656, + "src": "2803:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6668, + "indexExpression": { + "hexValue": "30", + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2810:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2815:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2803:15:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 6671, + "nodeType": "ExpressionStatement", + "src": "2803:15:49" + }, + { + "expression": { + "id": 6676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6672, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6656, + "src": "2828:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6674, + "indexExpression": { + "hexValue": "31", + "id": 6673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2835:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2828:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2840:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2828:15:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 6677, + "nodeType": "ExpressionStatement", + "src": "2828:15:49" + }, + { + "body": { + "id": 6706, + "nodeType": "Block", + "src": "2898:95:49", + "statements": [ + { + "expression": { + "id": 6700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6692, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6656, + "src": "2912:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6694, + "indexExpression": { + "id": 6693, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6679, + "src": "2919:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2912:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 6695, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6495, + "src": "2924:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 6699, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6696, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6652, + "src": "2935:10:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 6697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2948:3:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2935:16:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2924:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2912:40:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 6701, + "nodeType": "ExpressionStatement", + "src": "2912:40:49" + }, + { + "expression": { + "id": 6704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6702, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6652, + "src": "2966:10:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 6703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2981:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2966:16:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6705, + "nodeType": "ExpressionStatement", + "src": "2966:16:49" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6686, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6679, + "src": "2886:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 6687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2890:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2886:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6707, + "initializationExpression": { + "assignments": [ + 6679 + ], + "declarations": [ + { + "constant": false, + "id": 6679, + "mutability": "mutable", + "name": "i", + "nameLocation": "2866:1:49", + "nodeType": "VariableDeclaration", + "scope": 6707, + "src": "2858:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2858:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6685, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2870:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6681, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6646, + "src": "2874:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:10:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2883:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2870:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2858:26:49" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 6690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2893:3:49", + "subExpression": { + "id": 6689, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6679, + "src": "2895:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6691, + "nodeType": "ExpressionStatement", + "src": "2893:3:49" + }, + "nodeType": "ForStatement", + "src": "2853:140:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6708, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6652, + "src": "3006:10:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 6709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3020:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3006:15:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6717, + "nodeType": "IfStatement", + "src": "3002:96:49", + "trueBody": { + "id": 6716, + "nodeType": "Block", + "src": "3023:75:49", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 6712, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6644, + "src": "3073:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6713, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6646, + "src": "3080:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6711, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6541, + "src": "3044:28:49", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 6714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3044:43:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6715, + "nodeType": "RevertStatement", + "src": "3037:50:49" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 6720, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6656, + "src": "3121:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3114:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 6718, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3114:6:49", + "typeDescriptions": {} + } + }, + "id": 6721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3114:14:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6650, + "id": 6722, + "nodeType": "Return", + "src": "3107:21:49" + } + ] + }, + "documentation": { + "id": 6642, + "nodeType": "StructuredDocumentation", + "src": "2493:112:49", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 6724, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2619:11:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6644, + "mutability": "mutable", + "name": "value", + "nameLocation": "2639:5:49", + "nodeType": "VariableDeclaration", + "scope": 6724, + "src": "2631:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2631:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6646, + "mutability": "mutable", + "name": "length", + "nameLocation": "2654:6:49", + "nodeType": "VariableDeclaration", + "scope": 6724, + "src": "2646:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2646:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2630:31:49" + }, + "returnParameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6649, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6724, + "src": "2685:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2685:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2684:15:49" + }, + "scope": 7883, + "src": "2610:525:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6743, + "nodeType": "Block", + "src": "3367:75:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 6737, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6727, + "src": "3412:4:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3404:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 6735, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3404:7:49", + "typeDescriptions": {} + } + }, + "id": 6738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3404:13:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 6734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3396:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3396:7:49", + "typeDescriptions": {} + } + }, + "id": 6739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3396:22:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6740, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6498, + "src": "3420:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 6732, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6641, + 6724, + 6744 + ], + "referencedDeclaration": 6724, + "src": "3384:11:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 6741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3384:51:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6731, + "id": 6742, + "nodeType": "Return", + "src": "3377:58:49" + } + ] + }, + "documentation": { + "id": 6725, + "nodeType": "StructuredDocumentation", + "src": "3141:148:49", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 6744, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "3303:11:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6727, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3323:4:49", + "nodeType": "VariableDeclaration", + "scope": 6744, + "src": "3315:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3314:14:49" + }, + "returnParameters": { + "id": 6731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6730, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6744, + "src": "3352:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3352:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3351:15:49" + }, + "scope": 7883, + "src": "3294:148:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6808, + "nodeType": "Block", + "src": "3699:642:49", + "statements": [ + { + "assignments": [ + 6753 + ], + "declarations": [ + { + "constant": false, + "id": 6753, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "3722:6:49", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "3709:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6752, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3709:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6760, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 6757, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6747, + "src": "3749:4:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6756, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6641, + 6724, + 6744 + ], + "referencedDeclaration": 6744, + "src": "3737:11:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", + "typeString": "function (address) pure returns (string memory)" + } + }, + "id": 6758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3737:17:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3731:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6754, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3731:5:49", + "typeDescriptions": {} + } + }, + "id": 6759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3731:24:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3709:46:49" + }, + { + "assignments": [ + 6762 + ], + "declarations": [ + { + "constant": false, + "id": 6762, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3848:9:49", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "3840:17:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3840:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6763, + "nodeType": "VariableDeclarationStatement", + "src": "3840:17:49" + }, + { + "AST": { + "nativeSrc": "3892:78:49", + "nodeType": "YulBlock", + "src": "3892:78:49", + "statements": [ + { + "nativeSrc": "3906:54:49", + "nodeType": "YulAssignment", + "src": "3906:54:49", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3923:2:49", + "nodeType": "YulLiteral", + "src": "3923:2:49", + "type": "", + "value": "96" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "3941:6:49", + "nodeType": "YulIdentifier", + "src": "3941:6:49" + }, + { + "kind": "number", + "nativeSrc": "3949:4:49", + "nodeType": "YulLiteral", + "src": "3949:4:49", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3937:3:49", + "nodeType": "YulIdentifier", + "src": "3937:3:49" + }, + "nativeSrc": "3937:17:49", + "nodeType": "YulFunctionCall", + "src": "3937:17:49" + }, + { + "kind": "number", + "nativeSrc": "3956:2:49", + "nodeType": "YulLiteral", + "src": "3956:2:49", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3927:9:49", + "nodeType": "YulIdentifier", + "src": "3927:9:49" + }, + "nativeSrc": "3927:32:49", + "nodeType": "YulFunctionCall", + "src": "3927:32:49" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3919:3:49", + "nodeType": "YulIdentifier", + "src": "3919:3:49" + }, + "nativeSrc": "3919:41:49", + "nodeType": "YulFunctionCall", + "src": "3919:41:49" + }, + "variableNames": [ + { + "name": "hashValue", + "nativeSrc": "3906:9:49", + "nodeType": "YulIdentifier", + "src": "3906:9:49" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6753, + "isOffset": false, + "isSlot": false, + "src": "3941:6:49", + "valueSize": 1 + }, + { + "declaration": 6762, + "isOffset": false, + "isSlot": false, + "src": "3906:9:49", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6764, + "nodeType": "InlineAssembly", + "src": "3867:103:49" + }, + { + "body": { + "id": 6801, + "nodeType": "Block", + "src": "4013:291:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6775, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6762, + "src": "4119:9:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 6776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4131:3:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "4119:15:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "37", + "id": 6778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4137:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "4119:19:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "baseExpression": { + "id": 6782, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6753, + "src": "4148:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6784, + "indexExpression": { + "id": 6783, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6766, + "src": "4155:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4148:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 6781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4142:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 6780, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4142:5:49", + "typeDescriptions": {} + } + }, + "id": 6785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4142:16:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 6786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4161:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "4142:21:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4119:44:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6796, + "nodeType": "IfStatement", + "src": "4115:150:49", + "trueBody": { + "id": 6795, + "nodeType": "Block", + "src": "4165:100:49", + "statements": [ + { + "expression": { + "id": 6793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6789, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6753, + "src": "4233:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6791, + "indexExpression": { + "id": 6790, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6766, + "src": "4240:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4233:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "^=", + "rightHandSide": { + "hexValue": "30783230", + "id": 6792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4246:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4233:17:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 6794, + "nodeType": "ExpressionStatement", + "src": "4233:17:49" + } + ] + } + }, + { + "expression": { + "id": 6799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6797, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6762, + "src": "4278:9:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 6798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4292:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "4278:15:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6800, + "nodeType": "ExpressionStatement", + "src": "4278:15:49" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6769, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6766, + "src": "4001:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 6770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4005:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4001:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6802, + "initializationExpression": { + "assignments": [ + 6766 + ], + "declarations": [ + { + "constant": false, + "id": 6766, + "mutability": "mutable", + "name": "i", + "nameLocation": "3993:1:49", + "nodeType": "VariableDeclaration", + "scope": 6802, + "src": "3985:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6768, + "initialValue": { + "hexValue": "3431", + "id": 6767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3997:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_41_by_1", + "typeString": "int_const 41" + }, + "value": "41" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3985:14:49" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 6773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "4008:3:49", + "subExpression": { + "id": 6772, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6766, + "src": "4010:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6774, + "nodeType": "ExpressionStatement", + "src": "4008:3:49" + }, + "nodeType": "ForStatement", + "src": "3980:324:49" + }, + { + "expression": { + "arguments": [ + { + "id": 6805, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6753, + "src": "4327:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4320:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 6803, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4320:6:49", + "typeDescriptions": {} + } + }, + "id": 6806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4320:14:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6751, + "id": 6807, + "nodeType": "Return", + "src": "4313:21:49" + } + ] + }, + "documentation": { + "id": 6745, + "nodeType": "StructuredDocumentation", + "src": "3448:165:49", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n representation, according to EIP-55." + }, + "id": 6809, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toChecksumHexString", + "nameLocation": "3627:19:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6747, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3655:4:49", + "nodeType": "VariableDeclaration", + "scope": 6809, + "src": "3647:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6746, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3647:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3646:14:49" + }, + "returnParameters": { + "id": 6751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6750, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6809, + "src": "3684:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6749, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3684:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:49" + }, + "scope": 7883, + "src": "3618:723:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6845, + "nodeType": "Block", + "src": "4496:104:49", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6821, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6812, + "src": "4519:1:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4513:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6819, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4513:5:49", + "typeDescriptions": {} + } + }, + "id": 6822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4513:8:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4522:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4513:15:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 6826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6814, + "src": "4538:1:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4532:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6824, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4532:5:49", + "typeDescriptions": {} + } + }, + "id": 6827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4532:8:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4541:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4532:15:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4513:34:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 6833, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6812, + "src": "4567:1:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4561:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6831, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4561:5:49", + "typeDescriptions": {} + } + }, + "id": 6834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4561:8:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6830, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4551:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4551:19:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 6839, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6814, + "src": "4590:1:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4584:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6837, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4584:5:49", + "typeDescriptions": {} + } + }, + "id": 6840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4584:8:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6836, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4574:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4574:19:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4551:42:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4513:80:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6818, + "id": 6844, + "nodeType": "Return", + "src": "4506:87:49" + } + ] + }, + "documentation": { + "id": 6810, + "nodeType": "StructuredDocumentation", + "src": "4347:66:49", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 6846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "4427:5:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6812, + "mutability": "mutable", + "name": "a", + "nameLocation": "4447:1:49", + "nodeType": "VariableDeclaration", + "scope": 6846, + "src": "4433:15:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6811, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4433:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6814, + "mutability": "mutable", + "name": "b", + "nameLocation": "4464:1:49", + "nodeType": "VariableDeclaration", + "scope": 6846, + "src": "4450:15:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6813, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4450:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4432:34:49" + }, + "returnParameters": { + "id": 6818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6817, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6846, + "src": "4490:4:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6816, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4490:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4489:6:49" + }, + "scope": 7883, + "src": "4418:182:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6864, + "nodeType": "Block", + "src": "4897:64:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6855, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6849, + "src": "4924:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 6856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4931:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 6859, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6849, + "src": "4940:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4934:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6857, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4934:5:49", + "typeDescriptions": {} + } + }, + "id": 6860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4934:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4947:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4934:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6854, + "name": "parseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6865, + 6896 + ], + "referencedDeclaration": 6896, + "src": "4914:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4914:40:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6853, + "id": 6863, + "nodeType": "Return", + "src": "4907:47:49" + } + ] + }, + "documentation": { + "id": 6847, + "nodeType": "StructuredDocumentation", + "src": "4606:214:49", + "text": " @dev Parse a decimal string and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type" + }, + "id": 6865, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "4834:9:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6850, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6849, + "mutability": "mutable", + "name": "input", + "nameLocation": "4858:5:49", + "nodeType": "VariableDeclaration", + "scope": 6865, + "src": "4844:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6848, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4844:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4843:21:49" + }, + "returnParameters": { + "id": 6853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6852, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6865, + "src": "4888:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4888:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4887:9:49" + }, + "scope": 7883, + "src": "4825:136:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6895, + "nodeType": "Block", + "src": "5366:153:49", + "statements": [ + { + "assignments": [ + 6878, + 6880 + ], + "declarations": [ + { + "constant": false, + "id": 6878, + "mutability": "mutable", + "name": "success", + "nameLocation": "5382:7:49", + "nodeType": "VariableDeclaration", + "scope": 6895, + "src": "5377:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6877, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5377:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6880, + "mutability": "mutable", + "name": "value", + "nameLocation": "5399:5:49", + "nodeType": "VariableDeclaration", + "scope": 6895, + "src": "5391:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5391:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6886, + "initialValue": { + "arguments": [ + { + "id": 6882, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6868, + "src": "5421:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6883, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6870, + "src": "5428:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6884, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6872, + "src": "5435:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6881, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6917, + 6954 + ], + "referencedDeclaration": 6954, + "src": "5408:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 6885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5408:31:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5376:63:49" + }, + { + "condition": { + "id": 6888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5453:8:49", + "subExpression": { + "id": 6887, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6878, + "src": "5454:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6892, + "nodeType": "IfStatement", + "src": "5449:41:49", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6889, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6544, + "src": "5470:18:49", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 6890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5470:20:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 6891, + "nodeType": "RevertStatement", + "src": "5463:27:49" + } + }, + { + "expression": { + "id": 6893, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6880, + "src": "5507:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6876, + "id": 6894, + "nodeType": "Return", + "src": "5500:12:49" + } + ] + }, + "documentation": { + "id": 6866, + "nodeType": "StructuredDocumentation", + "src": "4967:294:49", + "text": " @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type" + }, + "id": 6896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "5275:9:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6873, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6868, + "mutability": "mutable", + "name": "input", + "nameLocation": "5299:5:49", + "nodeType": "VariableDeclaration", + "scope": 6896, + "src": "5285:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6867, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5285:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6870, + "mutability": "mutable", + "name": "begin", + "nameLocation": "5314:5:49", + "nodeType": "VariableDeclaration", + "scope": 6896, + "src": "5306:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5306:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6872, + "mutability": "mutable", + "name": "end", + "nameLocation": "5329:3:49", + "nodeType": "VariableDeclaration", + "scope": 6896, + "src": "5321:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5321:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5284:49:49" + }, + "returnParameters": { + "id": 6876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6875, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6896, + "src": "5357:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5356:9:49" + }, + "scope": 7883, + "src": "5266:253:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6916, + "nodeType": "Block", + "src": "5840:83:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6907, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6899, + "src": "5886:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5893:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 6911, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6899, + "src": "5902:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5896:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6909, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5896:5:49", + "typeDescriptions": {} + } + }, + "id": 6912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5896:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5909:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5896:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6906, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7024, + "src": "5857:28:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 6914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5857:59:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 6905, + "id": 6915, + "nodeType": "Return", + "src": "5850:66:49" + } + ] + }, + "documentation": { + "id": 6897, + "nodeType": "StructuredDocumentation", + "src": "5525:215:49", + "text": " @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 6917, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "5754:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6899, + "mutability": "mutable", + "name": "input", + "nameLocation": "5781:5:49", + "nodeType": "VariableDeclaration", + "scope": 6917, + "src": "5767:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6898, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5767:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5766:21:49" + }, + "returnParameters": { + "id": 6905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6902, + "mutability": "mutable", + "name": "success", + "nameLocation": "5816:7:49", + "nodeType": "VariableDeclaration", + "scope": 6917, + "src": "5811:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5811:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6904, + "mutability": "mutable", + "name": "value", + "nameLocation": "5833:5:49", + "nodeType": "VariableDeclaration", + "scope": 6917, + "src": "5825:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5825:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5810:29:49" + }, + "scope": 7883, + "src": "5745:178:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6953, + "nodeType": "Block", + "src": "6325:144:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6931, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6924, + "src": "6339:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 6934, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6920, + "src": "6351:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6345:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6932, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6345:5:49", + "typeDescriptions": {} + } + }, + "id": 6935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6345:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6358:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6345:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6339:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6938, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6922, + "src": "6368:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 6939, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6924, + "src": "6376:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6368:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6339:40:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6946, + "nodeType": "IfStatement", + "src": "6335:63:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 6942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6389:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 6943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6396:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 6944, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6388:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 6930, + "id": 6945, + "nodeType": "Return", + "src": "6381:17:49" + } + }, + { + "expression": { + "arguments": [ + { + "id": 6948, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6920, + "src": "6444:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6949, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6922, + "src": "6451:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6950, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6924, + "src": "6458:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6947, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7024, + "src": "6415:28:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 6951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6415:47:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 6930, + "id": 6952, + "nodeType": "Return", + "src": "6408:54:49" + } + ] + }, + "documentation": { + "id": 6918, + "nodeType": "StructuredDocumentation", + "src": "5929:238:49", + "text": " @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 6954, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "6181:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6920, + "mutability": "mutable", + "name": "input", + "nameLocation": "6217:5:49", + "nodeType": "VariableDeclaration", + "scope": 6954, + "src": "6203:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6919, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6203:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6922, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6240:5:49", + "nodeType": "VariableDeclaration", + "scope": 6954, + "src": "6232:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6924, + "mutability": "mutable", + "name": "end", + "nameLocation": "6263:3:49", + "nodeType": "VariableDeclaration", + "scope": 6954, + "src": "6255:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6255:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6193:79:49" + }, + "returnParameters": { + "id": 6930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6927, + "mutability": "mutable", + "name": "success", + "nameLocation": "6301:7:49", + "nodeType": "VariableDeclaration", + "scope": 6954, + "src": "6296:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6926, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6296:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6929, + "mutability": "mutable", + "name": "value", + "nameLocation": "6318:5:49", + "nodeType": "VariableDeclaration", + "scope": 6954, + "src": "6310:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6310:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6295:29:49" + }, + "scope": 7883, + "src": "6172:297:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7023, + "nodeType": "Block", + "src": "6872:347:49", + "statements": [ + { + "assignments": [ + 6969 + ], + "declarations": [ + { + "constant": false, + "id": 6969, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "6895:6:49", + "nodeType": "VariableDeclaration", + "scope": 7023, + "src": "6882:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6968, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6882:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6974, + "initialValue": { + "arguments": [ + { + "id": 6972, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6957, + "src": "6910:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6904:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6970, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6904:5:49", + "typeDescriptions": {} + } + }, + "id": 6973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6904:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6882:34:49" + }, + { + "assignments": [ + 6976 + ], + "declarations": [ + { + "constant": false, + "id": 6976, + "mutability": "mutable", + "name": "result", + "nameLocation": "6935:6:49", + "nodeType": "VariableDeclaration", + "scope": 7023, + "src": "6927:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6927:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6978, + "initialValue": { + "hexValue": "30", + "id": 6977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6944:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6927:18:49" + }, + { + "body": { + "id": 7017, + "nodeType": "Block", + "src": "6993:189:49", + "statements": [ + { + "assignments": [ + 6990 + ], + "declarations": [ + { + "constant": false, + "id": 6990, + "mutability": "mutable", + "name": "chr", + "nameLocation": "7013:3:49", + "nodeType": "VariableDeclaration", + "scope": 7017, + "src": "7007:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6989, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7007:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7000, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 6995, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6969, + "src": "7062:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6996, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "7070:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6994, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "7039:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 6997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7039:33:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7032:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 6992, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "7032:6:49", + "typeDescriptions": {} + } + }, + "id": 6998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7032:41:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 6991, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7704, + "src": "7019:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 6999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7019:55:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7007:67:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7001, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6990, + "src": "7092:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "39", + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7098:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "7092:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7008, + "nodeType": "IfStatement", + "src": "7088:30:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7109:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7116:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7006, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7108:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 6967, + "id": 7007, + "nodeType": "Return", + "src": "7101:17:49" + } + }, + { + "expression": { + "id": 7011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7009, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6976, + "src": "7132:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3130", + "id": 7010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "7132:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7012, + "nodeType": "ExpressionStatement", + "src": "7132:12:49" + }, + { + "expression": { + "id": 7015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7013, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6976, + "src": "7158:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 7014, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6990, + "src": "7168:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7158:13:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7016, + "nodeType": "ExpressionStatement", + "src": "7158:13:49" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6983, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "6979:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6984, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6961, + "src": "6983:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6979:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7018, + "initializationExpression": { + "assignments": [ + 6980 + ], + "declarations": [ + { + "constant": false, + "id": 6980, + "mutability": "mutable", + "name": "i", + "nameLocation": "6968:1:49", + "nodeType": "VariableDeclaration", + "scope": 7018, + "src": "6960:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6960:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6982, + "initialValue": { + "id": 6981, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6959, + "src": "6972:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6960:17:49" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 6987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "6988:3:49", + "subExpression": { + "id": 6986, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "6990:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6988, + "nodeType": "ExpressionStatement", + "src": "6988:3:49" + }, + "nodeType": "ForStatement", + "src": "6955:227:49" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7199:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 7020, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6976, + "src": "7205:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7021, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7198:14:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 6967, + "id": 7022, + "nodeType": "Return", + "src": "7191:21:49" + } + ] + }, + "documentation": { + "id": 6955, + "nodeType": "StructuredDocumentation", + "src": "6475:224:49", + "text": " @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7024, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseUintUncheckedBounds", + "nameLocation": "6713:28:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6957, + "mutability": "mutable", + "name": "input", + "nameLocation": "6765:5:49", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "6751:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6956, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6751:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6959, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6788:5:49", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "6780:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6780:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6961, + "mutability": "mutable", + "name": "end", + "nameLocation": "6811:3:49", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "6803:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6803:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6741:79:49" + }, + "returnParameters": { + "id": 6967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6964, + "mutability": "mutable", + "name": "success", + "nameLocation": "6848:7:49", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "6843:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6963, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6843:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6966, + "mutability": "mutable", + "name": "value", + "nameLocation": "6865:5:49", + "nodeType": "VariableDeclaration", + "scope": 7024, + "src": "6857:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6857:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6842:29:49" + }, + "scope": 7883, + "src": "6704:515:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7042, + "nodeType": "Block", + "src": "7516:63:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7033, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7027, + "src": "7542:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7549:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7037, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7027, + "src": "7558:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7552:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7035, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7552:5:49", + "typeDescriptions": {} + } + }, + "id": 7038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7552:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7565:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7552:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7032, + "name": "parseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7043, + 7074 + ], + "referencedDeclaration": 7074, + "src": "7533:8:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (int256)" + } + }, + "id": 7040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7533:39:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 7031, + "id": 7041, + "nodeType": "Return", + "src": "7526:46:49" + } + ] + }, + "documentation": { + "id": 7025, + "nodeType": "StructuredDocumentation", + "src": "7225:216:49", + "text": " @dev Parse a decimal string and returns the value as a `int256`.\n Requirements:\n - The string must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type." + }, + "id": 7043, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7455:8:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7027, + "mutability": "mutable", + "name": "input", + "nameLocation": "7478:5:49", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "7464:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7026, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7464:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7463:21:49" + }, + "returnParameters": { + "id": 7031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7030, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "7508:6:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7029, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7508:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7507:8:49" + }, + "scope": 7883, + "src": "7446:133:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7073, + "nodeType": "Block", + "src": "7984:151:49", + "statements": [ + { + "assignments": [ + 7056, + 7058 + ], + "declarations": [ + { + "constant": false, + "id": 7056, + "mutability": "mutable", + "name": "success", + "nameLocation": "8000:7:49", + "nodeType": "VariableDeclaration", + "scope": 7073, + "src": "7995:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7055, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7995:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7058, + "mutability": "mutable", + "name": "value", + "nameLocation": "8016:5:49", + "nodeType": "VariableDeclaration", + "scope": 7073, + "src": "8009:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7057, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8009:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 7064, + "initialValue": { + "arguments": [ + { + "id": 7060, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7046, + "src": "8037:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7061, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7048, + "src": "8044:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7062, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7050, + "src": "8051:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7059, + "name": "tryParseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7095, + 7137 + ], + "referencedDeclaration": 7137, + "src": "8025:11:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8025:30:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7994:61:49" + }, + { + "condition": { + "id": 7066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8069:8:49", + "subExpression": { + "id": 7065, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7056, + "src": "8070:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7070, + "nodeType": "IfStatement", + "src": "8065:41:49", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7067, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6544, + "src": "8086:18:49", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8086:20:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7069, + "nodeType": "RevertStatement", + "src": "8079:27:49" + } + }, + { + "expression": { + "id": 7071, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7058, + "src": "8123:5:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 7054, + "id": 7072, + "nodeType": "Return", + "src": "8116:12:49" + } + ] + }, + "documentation": { + "id": 7044, + "nodeType": "StructuredDocumentation", + "src": "7585:296:49", + "text": " @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type." + }, + "id": 7074, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7895:8:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7046, + "mutability": "mutable", + "name": "input", + "nameLocation": "7918:5:49", + "nodeType": "VariableDeclaration", + "scope": 7074, + "src": "7904:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7045, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7904:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7048, + "mutability": "mutable", + "name": "begin", + "nameLocation": "7933:5:49", + "nodeType": "VariableDeclaration", + "scope": 7074, + "src": "7925:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7925:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7050, + "mutability": "mutable", + "name": "end", + "nameLocation": "7948:3:49", + "nodeType": "VariableDeclaration", + "scope": 7074, + "src": "7940:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7940:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7903:49:49" + }, + "returnParameters": { + "id": 7054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7053, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7074, + "src": "7976:6:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7052, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7976:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7975:8:49" + }, + "scope": 7883, + "src": "7886:249:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7094, + "nodeType": "Block", + "src": "8526:82:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7085, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7077, + "src": "8571:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8578:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7089, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7077, + "src": "8587:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8581:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7087, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8581:5:49", + "typeDescriptions": {} + } + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8581:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8594:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8581:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7084, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7258, + "src": "8543:27:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8543:58:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7083, + "id": 7093, + "nodeType": "Return", + "src": "8536:65:49" + } + ] + }, + "documentation": { + "id": 7075, + "nodeType": "StructuredDocumentation", + "src": "8141:287:49", + "text": " @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`." + }, + "id": 7095, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8442:11:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7077, + "mutability": "mutable", + "name": "input", + "nameLocation": "8468:5:49", + "nodeType": "VariableDeclaration", + "scope": 7095, + "src": "8454:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7076, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8454:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8453:21:49" + }, + "returnParameters": { + "id": 7083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7080, + "mutability": "mutable", + "name": "success", + "nameLocation": "8503:7:49", + "nodeType": "VariableDeclaration", + "scope": 7095, + "src": "8498:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7079, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8498:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7082, + "mutability": "mutable", + "name": "value", + "nameLocation": "8519:5:49", + "nodeType": "VariableDeclaration", + "scope": 7095, + "src": "8512:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7081, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8512:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "8497:28:49" + }, + "scope": 7883, + "src": "8433:175:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "id": 7100, + "mutability": "constant", + "name": "ABS_MIN_INT256", + "nameLocation": "8639:14:49", + "nodeType": "VariableDeclaration", + "scope": 7883, + "src": "8614:50:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8614:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + }, + "id": 7099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8656:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "323535", + "id": 7098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8661:3:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "8656:8:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 7136, + "nodeType": "Block", + "src": "9130:143:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7114, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7107, + "src": "9144:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7117, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7103, + "src": "9156:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9150:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7115, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9150:5:49", + "typeDescriptions": {} + } + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9150:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9163:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9150:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9144:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7121, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7105, + "src": "9173:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7122, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7107, + "src": "9181:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9173:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9144:40:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7129, + "nodeType": "IfStatement", + "src": "9140:63:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9194:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9201:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7127, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9193:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7113, + "id": 7128, + "nodeType": "Return", + "src": "9186:17:49" + } + }, + { + "expression": { + "arguments": [ + { + "id": 7131, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7103, + "src": "9248:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7132, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7105, + "src": "9255:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7133, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7107, + "src": "9262:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7130, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7258, + "src": "9220:27:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9220:46:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7113, + "id": 7135, + "nodeType": "Return", + "src": "9213:53:49" + } + ] + }, + "documentation": { + "id": 7101, + "nodeType": "StructuredDocumentation", + "src": "8671:303:49", + "text": " @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character or if the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`." + }, + "id": 7137, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8988:11:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7103, + "mutability": "mutable", + "name": "input", + "nameLocation": "9023:5:49", + "nodeType": "VariableDeclaration", + "scope": 7137, + "src": "9009:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7102, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9009:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7105, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9046:5:49", + "nodeType": "VariableDeclaration", + "scope": 7137, + "src": "9038:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9038:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7107, + "mutability": "mutable", + "name": "end", + "nameLocation": "9069:3:49", + "nodeType": "VariableDeclaration", + "scope": 7137, + "src": "9061:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9061:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8999:79:49" + }, + "returnParameters": { + "id": 7113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7110, + "mutability": "mutable", + "name": "success", + "nameLocation": "9107:7:49", + "nodeType": "VariableDeclaration", + "scope": 7137, + "src": "9102:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7109, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9102:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7112, + "mutability": "mutable", + "name": "value", + "nameLocation": "9123:5:49", + "nodeType": "VariableDeclaration", + "scope": 7137, + "src": "9116:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7111, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9116:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9101:28:49" + }, + "scope": 7883, + "src": "8979:294:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7257, + "nodeType": "Block", + "src": "9673:812:49", + "statements": [ + { + "assignments": [ + 7152 + ], + "declarations": [ + { + "constant": false, + "id": 7152, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "9696:6:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "9683:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7151, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9683:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7157, + "initialValue": { + "arguments": [ + { + "id": 7155, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "9711:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9705:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7153, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9705:5:49", + "typeDescriptions": {} + } + }, + "id": 7156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9705:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9683:34:49" + }, + { + "assignments": [ + 7159 + ], + "declarations": [ + { + "constant": false, + "id": 7159, + "mutability": "mutable", + "name": "sign", + "nameLocation": "9781:4:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "9774:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 7158, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9774:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 7175, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7160, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "9788:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7161, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7144, + "src": "9797:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9788:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7170, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7152, + "src": "9845:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7171, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "9853:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7169, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "9822:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:37:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9815:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7167, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9815:6:49", + "typeDescriptions": {} + } + }, + "id": 7173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9815:45:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9788:72:49", + "trueExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9810:1:49", + "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": 7164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9803:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7163, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9803:6:49", + "typeDescriptions": {} + } + }, + "id": 7166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9803:9:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9774:86:49" + }, + { + "assignments": [ + 7177 + ], + "declarations": [ + { + "constant": false, + "id": 7177, + "mutability": "mutable", + "name": "positiveSign", + "nameLocation": "9946:12:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "9941:17:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9941:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7184, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7178, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7159, + "src": "9961:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2b", + "id": 7181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9976:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + }, + "value": "+" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + } + ], + "id": 7180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9969:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7179, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9969:6:49", + "typeDescriptions": {} + } + }, + "id": 7182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9969:11:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9961:19:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9941:39:49" + }, + { + "assignments": [ + 7186 + ], + "declarations": [ + { + "constant": false, + "id": 7186, + "mutability": "mutable", + "name": "negativeSign", + "nameLocation": "9995:12:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "9990:17:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7185, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9990:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7193, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7187, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7159, + "src": "10010:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2d", + "id": 7190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + } + ], + "id": 7189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10018:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7188, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "10018:6:49", + "typeDescriptions": {} + } + }, + "id": 7191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10018:11:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "10010:19:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9990:39:49" + }, + { + "assignments": [ + 7195 + ], + "declarations": [ + { + "constant": false, + "id": 7195, + "mutability": "mutable", + "name": "offset", + "nameLocation": "10047:6:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "10039:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10039:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7202, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7196, + "name": "positiveSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7177, + "src": "10057:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7197, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7186, + "src": "10073:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10057:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7199, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10056:30:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10087:6:49", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "10056:37:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10056:39:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10039:56:49" + }, + { + "assignments": [ + 7204, + 7206 + ], + "declarations": [ + { + "constant": false, + "id": 7204, + "mutability": "mutable", + "name": "absSuccess", + "nameLocation": "10112:10:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "10107:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7203, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10107:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7206, + "mutability": "mutable", + "name": "absValue", + "nameLocation": "10132:8:49", + "nodeType": "VariableDeclaration", + "scope": 7257, + "src": "10124:16:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10124:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7214, + "initialValue": { + "arguments": [ + { + "id": 7208, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "10157:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7209, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "10164:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 7210, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7195, + "src": "10172:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10164:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7212, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7144, + "src": "10180:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7207, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6917, + 6954 + ], + "referencedDeclaration": 6954, + "src": "10144:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10144:40:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10106:78:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7215, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7204, + "src": "10199:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7216, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7206, + "src": "10213:8:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7217, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7100, + "src": "10224:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10213:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10199:39:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7235, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7204, + "src": "10341:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 7236, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7186, + "src": "10355:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:26:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7238, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7206, + "src": "10371:8:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7239, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7100, + "src": "10383:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10371:26:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:56:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10469:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10476:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7253, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10468:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7150, + "id": 7254, + "nodeType": "Return", + "src": "10461:17:49" + }, + "id": 7255, + "nodeType": "IfStatement", + "src": "10337:141:49", + "trueBody": { + "id": 7250, + "nodeType": "Block", + "src": "10399:56:49", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10421:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "arguments": [ + { + "id": 7245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10432:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7244, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10432:6:49", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 7243, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10427:4:49", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10427:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 7247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10440:3:49", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "10427:16:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 7248, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10420:24:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7150, + "id": 7249, + "nodeType": "Return", + "src": "10413:31:49" + } + ] + } + }, + "id": 7256, + "nodeType": "IfStatement", + "src": "10195:283:49", + "trueBody": { + "id": 7234, + "nodeType": "Block", + "src": "10240:91:49", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "condition": { + "id": 7221, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7186, + "src": "10268:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "id": 7229, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7206, + "src": "10310:8:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10303:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7227, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10303:6:49", + "typeDescriptions": {} + } + }, + "id": 7230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10303:16:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 7231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10268:51:49", + "trueExpression": { + "id": 7226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "10283:17:49", + "subExpression": { + "arguments": [ + { + "id": 7224, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7206, + "src": "10291:8:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10284:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7222, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10284:6:49", + "typeDescriptions": {} + } + }, + "id": 7225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10284:16:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 7232, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10261:59:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7150, + "id": 7233, + "nodeType": "Return", + "src": "10254:66:49" + } + ] + } + } + ] + }, + "documentation": { + "id": 7138, + "nodeType": "StructuredDocumentation", + "src": "9279:223:49", + "text": " @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7258, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseIntUncheckedBounds", + "nameLocation": "9516:27:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7140, + "mutability": "mutable", + "name": "input", + "nameLocation": "9567:5:49", + "nodeType": "VariableDeclaration", + "scope": 7258, + "src": "9553:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7139, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9553:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7142, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9590:5:49", + "nodeType": "VariableDeclaration", + "scope": 7258, + "src": "9582:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9582:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7144, + "mutability": "mutable", + "name": "end", + "nameLocation": "9613:3:49", + "nodeType": "VariableDeclaration", + "scope": 7258, + "src": "9605:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9605:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9543:79:49" + }, + "returnParameters": { + "id": 7150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7147, + "mutability": "mutable", + "name": "success", + "nameLocation": "9650:7:49", + "nodeType": "VariableDeclaration", + "scope": 7258, + "src": "9645:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7146, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9645:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7149, + "mutability": "mutable", + "name": "value", + "nameLocation": "9666:5:49", + "nodeType": "VariableDeclaration", + "scope": 7258, + "src": "9659:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7148, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9659:6:49", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9644:28:49" + }, + "scope": 7883, + "src": "9507:978:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7276, + "nodeType": "Block", + "src": "10830:67:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7267, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7261, + "src": "10860:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10867:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7271, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7261, + "src": "10876:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10870:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7269, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10870:5:49", + "typeDescriptions": {} + } + }, + "id": 7272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10870:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10870:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7266, + "name": "parseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7277, + 7308 + ], + "referencedDeclaration": 7308, + "src": "10847:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (uint256)" + } + }, + "id": 7274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10847:43:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7265, + "id": 7275, + "nodeType": "Return", + "src": "10840:50:49" + } + ] + }, + "documentation": { + "id": 7259, + "nodeType": "StructuredDocumentation", + "src": "10491:259:49", + "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type." + }, + "id": 7277, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "10764:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7261, + "mutability": "mutable", + "name": "input", + "nameLocation": "10791:5:49", + "nodeType": "VariableDeclaration", + "scope": 7277, + "src": "10777:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7260, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10777:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "10776:21:49" + }, + "returnParameters": { + "id": 7265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7277, + "src": "10821:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10821:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10820:9:49" + }, + "scope": 7883, + "src": "10755:142:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7307, + "nodeType": "Block", + "src": "11318:156:49", + "statements": [ + { + "assignments": [ + 7290, + 7292 + ], + "declarations": [ + { + "constant": false, + "id": 7290, + "mutability": "mutable", + "name": "success", + "nameLocation": "11334:7:49", + "nodeType": "VariableDeclaration", + "scope": 7307, + "src": "11329:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7289, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11329:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7292, + "mutability": "mutable", + "name": "value", + "nameLocation": "11351:5:49", + "nodeType": "VariableDeclaration", + "scope": 7307, + "src": "11343:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11343:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7298, + "initialValue": { + "arguments": [ + { + "id": 7294, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7280, + "src": "11376:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7295, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7282, + "src": "11383:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7296, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7284, + "src": "11390:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7293, + "name": "tryParseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7329, + 7366 + ], + "referencedDeclaration": 7366, + "src": "11360:15:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11360:34:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11328:66:49" + }, + { + "condition": { + "id": 7300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11408:8:49", + "subExpression": { + "id": 7299, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7290, + "src": "11409:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7304, + "nodeType": "IfStatement", + "src": "11404:41:49", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7301, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6544, + "src": "11425:18:49", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11425:20:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7303, + "nodeType": "RevertStatement", + "src": "11418:27:49" + } + }, + { + "expression": { + "id": 7305, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7292, + "src": "11462:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7288, + "id": 7306, + "nodeType": "Return", + "src": "11455:12:49" + } + ] + }, + "documentation": { + "id": 7278, + "nodeType": "StructuredDocumentation", + "src": "10903:307:49", + "text": " @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type." + }, + "id": 7308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "11224:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7280, + "mutability": "mutable", + "name": "input", + "nameLocation": "11251:5:49", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "11237:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7279, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11237:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7282, + "mutability": "mutable", + "name": "begin", + "nameLocation": "11266:5:49", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "11258:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11258:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7284, + "mutability": "mutable", + "name": "end", + "nameLocation": "11281:3:49", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "11273:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11273:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11236:49:49" + }, + "returnParameters": { + "id": 7288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7308, + "src": "11309:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11309:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11308:9:49" + }, + "scope": 7883, + "src": "11215:259:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7328, + "nodeType": "Block", + "src": "11801:86:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7311, + "src": "11850:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11857:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7323, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7311, + "src": "11866:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11860:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11860:5:49", + "typeDescriptions": {} + } + }, + "id": 7324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11860:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11873:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11860:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7318, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7469, + "src": "11818:31:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11818:62:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7317, + "id": 7327, + "nodeType": "Return", + "src": "11811:69:49" + } + ] + }, + "documentation": { + "id": 7309, + "nodeType": "StructuredDocumentation", + "src": "11480:218:49", + "text": " @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "11712:15:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7311, + "mutability": "mutable", + "name": "input", + "nameLocation": "11742:5:49", + "nodeType": "VariableDeclaration", + "scope": 7329, + "src": "11728:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7310, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11728:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "11727:21:49" + }, + "returnParameters": { + "id": 7317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7314, + "mutability": "mutable", + "name": "success", + "nameLocation": "11777:7:49", + "nodeType": "VariableDeclaration", + "scope": 7329, + "src": "11772:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11772:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7316, + "mutability": "mutable", + "name": "value", + "nameLocation": "11794:5:49", + "nodeType": "VariableDeclaration", + "scope": 7329, + "src": "11786:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11786:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11771:29:49" + }, + "scope": 7883, + "src": "11703:184:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7365, + "nodeType": "Block", + "src": "12295:147:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7343, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "12309:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7346, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7332, + "src": "12321:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12315:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7344, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12315:5:49", + "typeDescriptions": {} + } + }, + "id": 7347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12315:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12328:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12315:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12309:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7350, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "12338:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7351, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "12346:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12338:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12309:40:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7358, + "nodeType": "IfStatement", + "src": "12305:63:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12359:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12366:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7356, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12358:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7342, + "id": 7357, + "nodeType": "Return", + "src": "12351:17:49" + } + }, + { + "expression": { + "arguments": [ + { + "id": 7360, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7332, + "src": "12417:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7361, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "12424:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7362, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "12431:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7359, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7469, + "src": "12385:31:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12385:50:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7342, + "id": 7364, + "nodeType": "Return", + "src": "12378:57:49" + } + ] + }, + "documentation": { + "id": 7330, + "nodeType": "StructuredDocumentation", + "src": "11893:241:49", + "text": " @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7366, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "12148:15:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7332, + "mutability": "mutable", + "name": "input", + "nameLocation": "12187:5:49", + "nodeType": "VariableDeclaration", + "scope": 7366, + "src": "12173:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7331, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12173:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7334, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12210:5:49", + "nodeType": "VariableDeclaration", + "scope": 7366, + "src": "12202:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12202:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7336, + "mutability": "mutable", + "name": "end", + "nameLocation": "12233:3:49", + "nodeType": "VariableDeclaration", + "scope": 7366, + "src": "12225:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12225:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12163:79:49" + }, + "returnParameters": { + "id": 7342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7339, + "mutability": "mutable", + "name": "success", + "nameLocation": "12271:7:49", + "nodeType": "VariableDeclaration", + "scope": 7366, + "src": "12266:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7338, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12266:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7341, + "mutability": "mutable", + "name": "value", + "nameLocation": "12288:5:49", + "nodeType": "VariableDeclaration", + "scope": 7366, + "src": "12280:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12280:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12265:29:49" + }, + "scope": 7883, + "src": "12139:303:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7468, + "nodeType": "Block", + "src": "12851:881:49", + "statements": [ + { + "assignments": [ + 7381 + ], + "declarations": [ + { + "constant": false, + "id": 7381, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "12874:6:49", + "nodeType": "VariableDeclaration", + "scope": 7468, + "src": "12861:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7380, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12861:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7386, + "initialValue": { + "arguments": [ + { + "id": 7384, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7369, + "src": "12889:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12883:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7382, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12883:5:49", + "typeDescriptions": {} + } + }, + "id": 7385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12883:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12861:34:49" + }, + { + "assignments": [ + 7388 + ], + "declarations": [ + { + "constant": false, + "id": 7388, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "12948:9:49", + "nodeType": "VariableDeclaration", + "scope": 7468, + "src": "12943:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7387, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12943:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7408, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7389, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7373, + "src": "12961:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7390, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7371, + "src": "12967:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12975:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12967:9:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12961:15:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7394, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12960:17:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 7406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7398, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7381, + "src": "13011:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7399, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7371, + "src": "13019:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7397, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "12988:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12988:37:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12981:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7395, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "12981:6:49", + "typeDescriptions": {} + } + }, + "id": 7401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12981:45:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 7404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13037:4:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 7403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13030:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7402, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "13030:6:49", + "typeDescriptions": {} + } + }, + "id": 7405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13030:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "12981:61:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12960:82:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12943:99:49" + }, + { + "assignments": [ + 7410 + ], + "declarations": [ + { + "constant": false, + "id": 7410, + "mutability": "mutable", + "name": "offset", + "nameLocation": "13131:6:49", + "nodeType": "VariableDeclaration", + "scope": 7468, + "src": "13123:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13123:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7416, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7411, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7388, + "src": "13140:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13150:6:49", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "13140:16:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13140:18:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 7414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13161:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13140:22:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13123:39:49" + }, + { + "assignments": [ + 7418 + ], + "declarations": [ + { + "constant": false, + "id": 7418, + "mutability": "mutable", + "name": "result", + "nameLocation": "13181:6:49", + "nodeType": "VariableDeclaration", + "scope": 7468, + "src": "13173:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13173:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7420, + "initialValue": { + "hexValue": "30", + "id": 7419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13190:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13173:18:49" + }, + { + "body": { + "id": 7462, + "nodeType": "Block", + "src": "13248:447:49", + "statements": [ + { + "assignments": [ + 7434 + ], + "declarations": [ + { + "constant": false, + "id": 7434, + "mutability": "mutable", + "name": "chr", + "nameLocation": "13268:3:49", + "nodeType": "VariableDeclaration", + "scope": 7462, + "src": "13262:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7433, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13262:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7444, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7439, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7381, + "src": "13317:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7440, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7422, + "src": "13325:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7438, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "13294:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13294:33:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13287:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7436, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "13287:6:49", + "typeDescriptions": {} + } + }, + "id": 7442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13287:41:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7435, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7704, + "src": "13274:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 7443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13274:55:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13262:67:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7445, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7434, + "src": "13347:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3135", + "id": 7446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13353:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "15" + }, + "src": "13347:8:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7452, + "nodeType": "IfStatement", + "src": "13343:31:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13365:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13372:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7450, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13364:10:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7379, + "id": 7451, + "nodeType": "Return", + "src": "13357:17:49" + } + }, + { + "expression": { + "id": 7455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7453, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7418, + "src": "13388:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3136", + "id": 7454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13398:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13388:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7456, + "nodeType": "ExpressionStatement", + "src": "13388:12:49" + }, + { + "id": 7461, + "nodeType": "UncheckedBlock", + "src": "13414:271:49", + "statements": [ + { + "expression": { + "id": 7459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7457, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7418, + "src": "13657:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 7458, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7434, + "src": "13667:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13657:13:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7460, + "nodeType": "ExpressionStatement", + "src": "13657:13:49" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7427, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7422, + "src": "13234:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7428, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7373, + "src": "13238:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13234:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7463, + "initializationExpression": { + "assignments": [ + 7422 + ], + "declarations": [ + { + "constant": false, + "id": 7422, + "mutability": "mutable", + "name": "i", + "nameLocation": "13214:1:49", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "13206:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13206:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7426, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7423, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7371, + "src": "13218:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 7424, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7410, + "src": "13226:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13218:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13206:26:49" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "13243:3:49", + "subExpression": { + "id": 7430, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7422, + "src": "13245:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7432, + "nodeType": "ExpressionStatement", + "src": "13243:3:49" + }, + "nodeType": "ForStatement", + "src": "13201:494:49" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13712:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 7465, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7418, + "src": "13718:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7466, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13711:14:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7379, + "id": 7467, + "nodeType": "Return", + "src": "13704:21:49" + } + ] + }, + "documentation": { + "id": 7367, + "nodeType": "StructuredDocumentation", + "src": "12448:227:49", + "text": " @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseHexUintUncheckedBounds", + "nameLocation": "12689:31:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7369, + "mutability": "mutable", + "name": "input", + "nameLocation": "12744:5:49", + "nodeType": "VariableDeclaration", + "scope": 7469, + "src": "12730:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7368, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12730:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7371, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12767:5:49", + "nodeType": "VariableDeclaration", + "scope": 7469, + "src": "12759:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12759:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7373, + "mutability": "mutable", + "name": "end", + "nameLocation": "12790:3:49", + "nodeType": "VariableDeclaration", + "scope": 7469, + "src": "12782:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7372, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12782:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12720:79:49" + }, + "returnParameters": { + "id": 7379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7376, + "mutability": "mutable", + "name": "success", + "nameLocation": "12827:7:49", + "nodeType": "VariableDeclaration", + "scope": 7469, + "src": "12822:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7375, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12822:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7378, + "mutability": "mutable", + "name": "value", + "nameLocation": "12844:5:49", + "nodeType": "VariableDeclaration", + "scope": 7469, + "src": "12836:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12836:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12821:29:49" + }, + "scope": 7883, + "src": "12680:1052:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7487, + "nodeType": "Block", + "src": "14030:67:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7478, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7472, + "src": "14060:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14067:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7482, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7472, + "src": "14076:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14070:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7480, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14070:5:49", + "typeDescriptions": {} + } + }, + "id": 7483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14070:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14083:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14070:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7477, + "name": "parseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7488, + 7519 + ], + "referencedDeclaration": 7519, + "src": "14047:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (address)" + } + }, + "id": 7485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14047:43:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7476, + "id": 7486, + "nodeType": "Return", + "src": "14040:50:49" + } + ] + }, + "documentation": { + "id": 7470, + "nodeType": "StructuredDocumentation", + "src": "13738:212:49", + "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`" + }, + "id": 7488, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "13964:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7472, + "mutability": "mutable", + "name": "input", + "nameLocation": "13991:5:49", + "nodeType": "VariableDeclaration", + "scope": 7488, + "src": "13977:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7471, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "13977:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "13976:21:49" + }, + "returnParameters": { + "id": 7476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7475, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7488, + "src": "14021:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14021:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14020:9:49" + }, + "scope": 7883, + "src": "13955:142:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7518, + "nodeType": "Block", + "src": "14470:165:49", + "statements": [ + { + "assignments": [ + 7501, + 7503 + ], + "declarations": [ + { + "constant": false, + "id": 7501, + "mutability": "mutable", + "name": "success", + "nameLocation": "14486:7:49", + "nodeType": "VariableDeclaration", + "scope": 7518, + "src": "14481:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7500, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14481:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7503, + "mutability": "mutable", + "name": "value", + "nameLocation": "14503:5:49", + "nodeType": "VariableDeclaration", + "scope": 7518, + "src": "14495:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14495:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 7509, + "initialValue": { + "arguments": [ + { + "id": 7505, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7491, + "src": "14528:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7506, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "14535:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7507, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7495, + "src": "14542:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7504, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7540, + 7644 + ], + "referencedDeclaration": 7644, + "src": "14512:15:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)" + } + }, + "id": 7508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14512:34:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14480:66:49" + }, + { + "condition": { + "id": 7511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14560:8:49", + "subExpression": { + "id": 7510, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7501, + "src": "14561:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7515, + "nodeType": "IfStatement", + "src": "14556:50:49", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7512, + "name": "StringsInvalidAddressFormat", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "14577:27:49", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14577:29:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7514, + "nodeType": "RevertStatement", + "src": "14570:36:49" + } + }, + { + "expression": { + "id": 7516, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7503, + "src": "14623:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7499, + "id": 7517, + "nodeType": "Return", + "src": "14616:12:49" + } + ] + }, + "documentation": { + "id": 7489, + "nodeType": "StructuredDocumentation", + "src": "14103:259:49", + "text": " @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`" + }, + "id": 7519, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "14376:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7491, + "mutability": "mutable", + "name": "input", + "nameLocation": "14403:5:49", + "nodeType": "VariableDeclaration", + "scope": 7519, + "src": "14389:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7490, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14389:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7493, + "mutability": "mutable", + "name": "begin", + "nameLocation": "14418:5:49", + "nodeType": "VariableDeclaration", + "scope": 7519, + "src": "14410:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14410:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7495, + "mutability": "mutable", + "name": "end", + "nameLocation": "14433:3:49", + "nodeType": "VariableDeclaration", + "scope": 7519, + "src": "14425:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14425:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14388:49:49" + }, + "returnParameters": { + "id": 7499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7498, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7519, + "src": "14461:7:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14461:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14460:9:49" + }, + "scope": 7883, + "src": "14367:268:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7539, + "nodeType": "Block", + "src": "14942:70:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7530, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "14975:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14982:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7534, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "14991:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14985:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7532, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14985:5:49", + "typeDescriptions": {} + } + }, + "id": 7535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14985:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14998:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14985:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7529, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7540, + 7644 + ], + "referencedDeclaration": 7644, + "src": "14959:15:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)" + } + }, + "id": 7537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14959:46:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7528, + "id": 7538, + "nodeType": "Return", + "src": "14952:53:49" + } + ] + }, + "documentation": { + "id": 7520, + "nodeType": "StructuredDocumentation", + "src": "14641:198:49", + "text": " @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n formatted address. See {parseAddress-string} requirements." + }, + "id": 7540, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "14853:15:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7522, + "mutability": "mutable", + "name": "input", + "nameLocation": "14883:5:49", + "nodeType": "VariableDeclaration", + "scope": 7540, + "src": "14869:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7521, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14869:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14868:21:49" + }, + "returnParameters": { + "id": 7528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7525, + "mutability": "mutable", + "name": "success", + "nameLocation": "14918:7:49", + "nodeType": "VariableDeclaration", + "scope": 7540, + "src": "14913:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7524, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14913:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7527, + "mutability": "mutable", + "name": "value", + "nameLocation": "14935:5:49", + "nodeType": "VariableDeclaration", + "scope": 7540, + "src": "14927:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14912:29:49" + }, + "scope": 7883, + "src": "14844:168:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7643, + "nodeType": "Block", + "src": "15405:733:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7554, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7547, + "src": "15419:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7557, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7543, + "src": "15431:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15425:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7555, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15425:5:49", + "typeDescriptions": {} + } + }, + "id": 7558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15425:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15438:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15425:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15419:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7561, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "15448:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7562, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7547, + "src": "15456:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15448:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15419:40:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7572, + "nodeType": "IfStatement", + "src": "15415:72:49", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15469:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 7568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15484:1:49", + "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": 7567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15476:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15476:7:49", + "typeDescriptions": {} + } + }, + "id": 7569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15476:10:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7570, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15468:19:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7553, + "id": 7571, + "nodeType": "Return", + "src": "15461:26:49" + } + }, + { + "assignments": [ + 7574 + ], + "declarations": [ + { + "constant": false, + "id": 7574, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "15503:9:49", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "15498:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7573, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15498:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7597, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7575, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7547, + "src": "15516:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7576, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "15522:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15530:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15522:9:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15516:15:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7580, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15515:17:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 7595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7586, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7543, + "src": "15572:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15566:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7584, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15566:5:49", + "typeDescriptions": {} + } + }, + "id": 7587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15566:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7588, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "15580:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7583, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "15543:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15543:43:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15536:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7581, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15536:6:49", + "typeDescriptions": {} + } + }, + "id": 7590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15536:51:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 7593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15598:4:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 7592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15591:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7591, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15591:6:49", + "typeDescriptions": {} + } + }, + "id": 7594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15591:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "15536:67:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15515:88:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15498:105:49" + }, + { + "assignments": [ + 7599 + ], + "declarations": [ + { + "constant": false, + "id": 7599, + "mutability": "mutable", + "name": "expectedLength", + "nameLocation": "15692:14:49", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "15684:22:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15684:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7607, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3430", + "id": 7600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15709:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7601, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7574, + "src": "15714:9:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15724:6:49", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "15714:16:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15714:18:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 7604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15735:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15714:22:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15709:27:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15684:52:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7608, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7547, + "src": "15801:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 7609, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "15807:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7611, + "name": "expectedLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7599, + "src": "15816:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:29:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7641, + "nodeType": "Block", + "src": "16081:51:49", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16103:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16118:1:49", + "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": 7636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16110:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16110:7:49", + "typeDescriptions": {} + } + }, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:10:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7639, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16102:19:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7553, + "id": 7640, + "nodeType": "Return", + "src": "16095:26:49" + } + ] + }, + "id": 7642, + "nodeType": "IfStatement", + "src": "15797:335:49", + "trueBody": { + "id": 7633, + "nodeType": "Block", + "src": "15832:243:49", + "statements": [ + { + "assignments": [ + 7614, + 7616 + ], + "declarations": [ + { + "constant": false, + "id": 7614, + "mutability": "mutable", + "name": "s", + "nameLocation": "15953:1:49", + "nodeType": "VariableDeclaration", + "scope": 7633, + "src": "15948:6:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7613, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15948:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7616, + "mutability": "mutable", + "name": "v", + "nameLocation": "15964:1:49", + "nodeType": "VariableDeclaration", + "scope": 7633, + "src": "15956:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15956:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7622, + "initialValue": { + "arguments": [ + { + "id": 7618, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7543, + "src": "16001:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7619, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "16008:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7620, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7547, + "src": "16015:3:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7617, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7469, + "src": "15969:31:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15969:50:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:72:49" + }, + { + "expression": { + "components": [ + { + "id": 7623, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "16041:1:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 7628, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7616, + "src": "16060:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16052:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 7626, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "16052:7:49", + "typeDescriptions": {} + } + }, + "id": 7629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16052:10:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 7625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16044:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16044:7:49", + "typeDescriptions": {} + } + }, + "id": 7630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16044:19:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7631, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16040:24:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7553, + "id": 7632, + "nodeType": "Return", + "src": "16033:31:49" + } + ] + } + } + ] + }, + "documentation": { + "id": 7541, + "nodeType": "StructuredDocumentation", + "src": "15018:226:49", + "text": " @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n formatted address. See {parseAddress-string-uint256-uint256} requirements." + }, + "id": 7644, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "15258:15:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7543, + "mutability": "mutable", + "name": "input", + "nameLocation": "15297:5:49", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "15283:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7542, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15283:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7545, + "mutability": "mutable", + "name": "begin", + "nameLocation": "15320:5:49", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "15312:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15312:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7547, + "mutability": "mutable", + "name": "end", + "nameLocation": "15343:3:49", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "15335:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15335:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15273:79:49" + }, + "returnParameters": { + "id": 7553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7550, + "mutability": "mutable", + "name": "success", + "nameLocation": "15381:7:49", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "15376:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7549, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15376:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7552, + "mutability": "mutable", + "name": "value", + "nameLocation": "15398:5:49", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "15390:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15390:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15375:29:49" + }, + "scope": 7883, + "src": "15249:889:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7703, + "nodeType": "Block", + "src": "16207:461:49", + "statements": [ + { + "assignments": [ + 7652 + ], + "declarations": [ + { + "constant": false, + "id": 7652, + "mutability": "mutable", + "name": "value", + "nameLocation": "16223:5:49", + "nodeType": "VariableDeclaration", + "scope": 7703, + "src": "16217:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7651, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16217:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7657, + "initialValue": { + "arguments": [ + { + "id": 7655, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7646, + "src": "16237:3:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16231:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 7653, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16231:5:49", + "typeDescriptions": {} + } + }, + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16231:10:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16217:24:49" + }, + { + "id": 7700, + "nodeType": "UncheckedBlock", + "src": "16401:238:49", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7658, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16429:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3437", + "id": 7659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16437:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "src": "16429:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7661, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16443:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3538", + "id": 7662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16451:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_58_by_1", + "typeString": "int_const 58" + }, + "value": "58" + }, + "src": "16443:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16429:24:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7669, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16489:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 7670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16497:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "16489:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7672, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16503:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "313033", + "id": 7673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16511:3:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_103_by_1", + "typeString": "int_const 103" + }, + "value": "103" + }, + "src": "16503:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16489:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7680, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16550:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3634", + "id": 7681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16558:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "16550:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7683, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16564:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3731", + "id": 7684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16572:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "src": "16564:10:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16550:24:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "expression": { + "arguments": [ + { + "id": 7693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16618:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 7692, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16618:5:49", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 7691, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16613:4:49", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16613:11:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 7695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16625:3:49", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16613:15:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 7650, + "id": 7696, + "nodeType": "Return", + "src": "16606:22:49" + }, + "id": 7697, + "nodeType": "IfStatement", + "src": "16546:82:49", + "trueBody": { + "expression": { + "id": 7689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7687, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16576:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3535", + "id": 7688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16585:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_55_by_1", + "typeString": "int_const 55" + }, + "value": "55" + }, + "src": "16576:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 7690, + "nodeType": "ExpressionStatement", + "src": "16576:11:49" + } + }, + "id": 7698, + "nodeType": "IfStatement", + "src": "16485:143:49", + "trueBody": { + "expression": { + "id": 7678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7676, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16516:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3837", + "id": 7677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16525:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_87_by_1", + "typeString": "int_const 87" + }, + "value": "87" + }, + "src": "16516:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 7679, + "nodeType": "ExpressionStatement", + "src": "16516:11:49" + } + }, + "id": 7699, + "nodeType": "IfStatement", + "src": "16425:203:49", + "trueBody": { + "expression": { + "id": 7667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7665, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16455:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3438", + "id": 7666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16464:2:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "src": "16455:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 7668, + "nodeType": "ExpressionStatement", + "src": "16455:11:49" + } + } + ] + }, + { + "expression": { + "id": 7701, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7652, + "src": "16656:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 7650, + "id": 7702, + "nodeType": "Return", + "src": "16649:12:49" + } + ] + }, + "id": 7704, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseChr", + "nameLocation": "16153:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7646, + "mutability": "mutable", + "name": "chr", + "nameLocation": "16173:3:49", + "nodeType": "VariableDeclaration", + "scope": 7704, + "src": "16166:10:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 7645, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "16166:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "src": "16165:12:49" + }, + "returnParameters": { + "id": 7650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7649, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7704, + "src": "16200:5:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7648, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16200:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16199:7:49" + }, + "scope": 7883, + "src": "16144:524:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7869, + "nodeType": "Block", + "src": "17334:1331:49", + "statements": [ + { + "assignments": [ + 7713 + ], + "declarations": [ + { + "constant": false, + "id": 7713, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "17357:6:49", + "nodeType": "VariableDeclaration", + "scope": 7869, + "src": "17344:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7712, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17344:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7718, + "initialValue": { + "arguments": [ + { + "id": 7716, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7707, + "src": "17372:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17366:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7714, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17366:5:49", + "typeDescriptions": {} + } + }, + "id": 7717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17366:12:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17344:34:49" + }, + { + "assignments": [ + 7720 + ], + "declarations": [ + { + "constant": false, + "id": 7720, + "mutability": "mutable", + "name": "output", + "nameLocation": "17401:6:49", + "nodeType": "VariableDeclaration", + "scope": 7869, + "src": "17388:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17388:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7728, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17420:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 7724, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "17424:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17431:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17424:13:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17420:17:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "17410:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 7721, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17414:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 7727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17410:28:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17388:50:49" + }, + { + "assignments": [ + 7730 + ], + "declarations": [ + { + "constant": false, + "id": 7730, + "mutability": "mutable", + "name": "outputLength", + "nameLocation": "17479:12:49", + "nodeType": "VariableDeclaration", + "scope": 7869, + "src": "17471:20:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17471:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7732, + "initialValue": { + "hexValue": "30", + "id": 7731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17494:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17471:24:49" + }, + { + "body": { + "id": 7861, + "nodeType": "Block", + "src": "17546:854:49", + "statements": [ + { + "assignments": [ + 7744 + ], + "declarations": [ + { + "constant": false, + "id": 7744, + "mutability": "mutable", + "name": "char", + "nameLocation": "17567:4:49", + "nodeType": "VariableDeclaration", + "scope": 7861, + "src": "17560:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 7743, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17560:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 7752, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 7748, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "17604:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7749, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7734, + "src": "17612:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7747, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7882, + "src": "17581:22:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17581:33:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17574:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7745, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17574:6:49", + "typeDescriptions": {} + } + }, + "id": 7751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17574:41:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17560:55:49" + }, + { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7753, + "name": "SPECIAL_CHARS_LOOKUP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "17635:20:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17659:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "arguments": [ + { + "id": 7757, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "17670:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17664:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 7755, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "17664:5:49", + "typeDescriptions": {} + } + }, + "id": 7758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17664:11:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "17659:16:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17658:18:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17635:41:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7762, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17634:43:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 7763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17681:1:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17634:48:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17633:50:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7859, + "nodeType": "Block", + "src": "18328:62:49", + "statements": [ + { + "expression": { + "id": 7857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7852, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18346:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7855, + "indexExpression": { + "id": 7854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18353:14:49", + "subExpression": { + "id": 7853, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "18353:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18346:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7856, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "18371:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "18346:29:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7858, + "nodeType": "ExpressionStatement", + "src": "18346:29:49" + } + ] + }, + "id": 7860, + "nodeType": "IfStatement", + "src": "17629:761:49", + "trueBody": { + "id": 7851, + "nodeType": "Block", + "src": "17685:637:49", + "statements": [ + { + "expression": { + "id": 7771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7766, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "17703:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7769, + "indexExpression": { + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17710:14:49", + "subExpression": { + "id": 7767, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "17710:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17703:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 7770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17728:4:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "17703:29:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7772, + "nodeType": "ExpressionStatement", + "src": "17703:29:49" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7773, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "17754:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783038", + "id": 7774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17762:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "17754:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7783, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "17823:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783039", + "id": 7784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17831:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "17823:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7793, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "17892:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783061", + "id": 7794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17900:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "17892:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7803, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "17961:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783063", + "id": 7804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17969:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "17961:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7813, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "18030:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783064", + "id": 7814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18038:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "18030:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7823, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "18099:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783563", + "id": 7824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18107:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "18099:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7833, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7744, + "src": "18169:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783232", + "id": 7834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18177:4:49", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "18169:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7844, + "nodeType": "IfStatement", + "src": "18165:143:49", + "trueBody": { + "id": 7843, + "nodeType": "Block", + "src": "18183:125:49", + "statements": [ + { + "expression": { + "id": 7841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7836, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18261:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7839, + "indexExpression": { + "id": 7838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18268:14:49", + "subExpression": { + "id": 7837, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "18268:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18261:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "22", + "id": 7840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18286:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0", + "typeString": "literal_string \"\"\"" + }, + "value": "\"" + }, + "src": "18261:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7842, + "nodeType": "ExpressionStatement", + "src": "18261:28:49" + } + ] + } + }, + "id": 7845, + "nodeType": "IfStatement", + "src": "18095:213:49", + "trueBody": { + "expression": { + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7826, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18113:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7829, + "indexExpression": { + "id": 7828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18120:14:49", + "subExpression": { + "id": 7827, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "18120:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18113:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 7830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18138:4:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "18113:29:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7832, + "nodeType": "ExpressionStatement", + "src": "18113:29:49" + } + }, + "id": 7846, + "nodeType": "IfStatement", + "src": "18026:282:49", + "trueBody": { + "expression": { + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7816, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18044:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7819, + "indexExpression": { + "id": 7818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18051:14:49", + "subExpression": { + "id": 7817, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "18051:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18044:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "72", + "id": 7820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18069:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_414f72a4d550cad29f17d9d99a4af64b3776ec5538cd440cef0f03fef2e9e010", + "typeString": "literal_string \"r\"" + }, + "value": "r" + }, + "src": "18044:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7822, + "nodeType": "ExpressionStatement", + "src": "18044:28:49" + } + }, + "id": 7847, + "nodeType": "IfStatement", + "src": "17957:351:49", + "trueBody": { + "expression": { + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7806, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "17975:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7809, + "indexExpression": { + "id": 7808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17982:14:49", + "subExpression": { + "id": 7807, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "17982:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17975:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66", + "id": 7810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18000:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483", + "typeString": "literal_string \"f\"" + }, + "value": "f" + }, + "src": "17975:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7812, + "nodeType": "ExpressionStatement", + "src": "17975:28:49" + } + }, + "id": 7848, + "nodeType": "IfStatement", + "src": "17888:420:49", + "trueBody": { + "expression": { + "id": 7801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7796, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "17906:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7799, + "indexExpression": { + "id": 7798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17913:14:49", + "subExpression": { + "id": 7797, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "17913:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17906:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "6e", + "id": 7800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17931:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b4ecedb4964a40fe416b16c7bd8b46092040ec42ef0aa69e59f09872f105cf3", + "typeString": "literal_string \"n\"" + }, + "value": "n" + }, + "src": "17906:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7802, + "nodeType": "ExpressionStatement", + "src": "17906:28:49" + } + }, + "id": 7849, + "nodeType": "IfStatement", + "src": "17819:489:49", + "trueBody": { + "expression": { + "id": 7791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7786, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "17837:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7789, + "indexExpression": { + "id": 7788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17844:14:49", + "subExpression": { + "id": 7787, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "17844:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17837:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74", + "id": 7790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17862:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cac1bb71f0a97c8ac94ca9546b43178a9ad254c7b757ac07433aa6df35cd8089", + "typeString": "literal_string \"t\"" + }, + "value": "t" + }, + "src": "17837:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7792, + "nodeType": "ExpressionStatement", + "src": "17837:28:49" + } + }, + "id": 7850, + "nodeType": "IfStatement", + "src": "17750:558:49", + "trueBody": { + "expression": { + "id": 7781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7776, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "17768:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7779, + "indexExpression": { + "id": 7778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17775:14:49", + "subExpression": { + "id": 7777, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7730, + "src": "17775:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17768:22:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "62", + "id": 7780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17793:3:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510", + "typeString": "literal_string \"b\"" + }, + "value": "b" + }, + "src": "17768:28:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7782, + "nodeType": "ExpressionStatement", + "src": "17768:28:49" + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7736, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7734, + "src": "17522:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 7737, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "17526:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17533:6:49", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17526:13:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17522:17:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7862, + "initializationExpression": { + "assignments": [ + 7734 + ], + "declarations": [ + { + "constant": false, + "id": 7734, + "mutability": "mutable", + "name": "i", + "nameLocation": "17519:1:49", + "nodeType": "VariableDeclaration", + "scope": 7862, + "src": "17511:9:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17511:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7735, + "nodeType": "VariableDeclarationStatement", + "src": "17511:9:49" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 7741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "17541:3:49", + "subExpression": { + "id": 7740, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7734, + "src": "17543:1:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7742, + "nodeType": "ExpressionStatement", + "src": "17541:3:49" + }, + "nodeType": "ForStatement", + "src": "17506:894:49" + }, + { + "AST": { + "nativeSrc": "18498:129:49", + "nodeType": "YulBlock", + "src": "18498:129:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "output", + "nativeSrc": "18519:6:49", + "nodeType": "YulIdentifier", + "src": "18519:6:49" + }, + { + "name": "outputLength", + "nativeSrc": "18527:12:49", + "nodeType": "YulIdentifier", + "src": "18527:12:49" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18512:6:49", + "nodeType": "YulIdentifier", + "src": "18512:6:49" + }, + "nativeSrc": "18512:28:49", + "nodeType": "YulFunctionCall", + "src": "18512:28:49" + }, + "nativeSrc": "18512:28:49", + "nodeType": "YulExpressionStatement", + "src": "18512:28:49" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18560:4:49", + "nodeType": "YulLiteral", + "src": "18560:4:49", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "output", + "nativeSrc": "18570:6:49", + "nodeType": "YulIdentifier", + "src": "18570:6:49" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18582:1:49", + "nodeType": "YulLiteral", + "src": "18582:1:49", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18589:1:49", + "nodeType": "YulLiteral", + "src": "18589:1:49", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "outputLength", + "nativeSrc": "18596:12:49", + "nodeType": "YulIdentifier", + "src": "18596:12:49" + }, + { + "kind": "number", + "nativeSrc": "18610:2:49", + "nodeType": "YulLiteral", + "src": "18610:2:49", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18592:3:49", + "nodeType": "YulIdentifier", + "src": "18592:3:49" + }, + "nativeSrc": "18592:21:49", + "nodeType": "YulFunctionCall", + "src": "18592:21:49" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18585:3:49", + "nodeType": "YulIdentifier", + "src": "18585:3:49" + }, + "nativeSrc": "18585:29:49", + "nodeType": "YulFunctionCall", + "src": "18585:29:49" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18578:3:49", + "nodeType": "YulIdentifier", + "src": "18578:3:49" + }, + "nativeSrc": "18578:37:49", + "nodeType": "YulFunctionCall", + "src": "18578:37:49" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18566:3:49", + "nodeType": "YulIdentifier", + "src": "18566:3:49" + }, + "nativeSrc": "18566:50:49", + "nodeType": "YulFunctionCall", + "src": "18566:50:49" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18553:6:49", + "nodeType": "YulIdentifier", + "src": "18553:6:49" + }, + "nativeSrc": "18553:64:49", + "nodeType": "YulFunctionCall", + "src": "18553:64:49" + }, + "nativeSrc": "18553:64:49", + "nodeType": "YulExpressionStatement", + "src": "18553:64:49" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 7720, + "isOffset": false, + "isSlot": false, + "src": "18519:6:49", + "valueSize": 1 + }, + { + "declaration": 7720, + "isOffset": false, + "isSlot": false, + "src": "18570:6:49", + "valueSize": 1 + }, + { + "declaration": 7730, + "isOffset": false, + "isSlot": false, + "src": "18527:12:49", + "valueSize": 1 + }, + { + "declaration": 7730, + "isOffset": false, + "isSlot": false, + "src": "18596:12:49", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 7863, + "nodeType": "InlineAssembly", + "src": "18473:154:49" + }, + { + "expression": { + "arguments": [ + { + "id": 7866, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18651:6:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18644:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 7864, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "18644:6:49", + "typeDescriptions": {} + } + }, + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18644:14:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7711, + "id": 7868, + "nodeType": "Return", + "src": "18637:21:49" + } + ] + }, + "documentation": { + "id": 7705, + "nodeType": "StructuredDocumentation", + "src": "16674:576:49", + "text": " @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n characters that are not in this range, but other tooling may provide different results." + }, + "id": 7870, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "escapeJSON", + "nameLocation": "17264:10:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7707, + "mutability": "mutable", + "name": "input", + "nameLocation": "17289:5:49", + "nodeType": "VariableDeclaration", + "scope": 7870, + "src": "17275:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17275:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17274:21:49" + }, + "returnParameters": { + "id": 7711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7710, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7870, + "src": "17319:13:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7709, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17319:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17318:15:49" + }, + "scope": 7883, + "src": "17255:1410:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7881, + "nodeType": "Block", + "src": "19050:225:49", + "statements": [ + { + "AST": { + "nativeSrc": "19199:70:49", + "nodeType": "YulBlock", + "src": "19199:70:49", + "statements": [ + { + "nativeSrc": "19213:46:49", + "nodeType": "YulAssignment", + "src": "19213:46:49", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "19232:6:49", + "nodeType": "YulIdentifier", + "src": "19232:6:49" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19244:4:49", + "nodeType": "YulLiteral", + "src": "19244:4:49", + "type": "", + "value": "0x20" + }, + { + "name": "offset", + "nativeSrc": "19250:6:49", + "nodeType": "YulIdentifier", + "src": "19250:6:49" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19240:3:49", + "nodeType": "YulIdentifier", + "src": "19240:3:49" + }, + "nativeSrc": "19240:17:49", + "nodeType": "YulFunctionCall", + "src": "19240:17:49" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19228:3:49", + "nodeType": "YulIdentifier", + "src": "19228:3:49" + }, + "nativeSrc": "19228:30:49", + "nodeType": "YulFunctionCall", + "src": "19228:30:49" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19222:5:49", + "nodeType": "YulIdentifier", + "src": "19222:5:49" + }, + "nativeSrc": "19222:37:49", + "nodeType": "YulFunctionCall", + "src": "19222:37:49" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19213:5:49", + "nodeType": "YulIdentifier", + "src": "19213:5:49" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 7873, + "isOffset": false, + "isSlot": false, + "src": "19232:6:49", + "valueSize": 1 + }, + { + "declaration": 7875, + "isOffset": false, + "isSlot": false, + "src": "19250:6:49", + "valueSize": 1 + }, + { + "declaration": 7878, + "isOffset": false, + "isSlot": false, + "src": "19213:5:49", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 7880, + "nodeType": "InlineAssembly", + "src": "19174:95:49" + } + ] + }, + "documentation": { + "id": 7871, + "nodeType": "StructuredDocumentation", + "src": "18671:268:49", + "text": " @dev Reads a bytes32 from a bytes array without bounds checking.\n NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n assembly block as such would prevent some optimizations." + }, + "id": 7882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_unsafeReadBytesOffset", + "nameLocation": "18953:22:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7873, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "18989:6:49", + "nodeType": "VariableDeclaration", + "scope": 7882, + "src": "18976:19:49", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7872, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18976:5:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7875, + "mutability": "mutable", + "name": "offset", + "nameLocation": "19005:6:49", + "nodeType": "VariableDeclaration", + "scope": 7882, + "src": "18997:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18997:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18975:37:49" + }, + "returnParameters": { + "id": 7879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7878, + "mutability": "mutable", + "name": "value", + "nameLocation": "19043:5:49", + "nodeType": "VariableDeclaration", + "scope": 7882, + "src": "19035:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7877, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19035:7:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "19034:15:49" + }, + "scope": 7883, + "src": "18944:331:49", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 7884, + "src": "297:18980:49", + "usedErrors": [ + 6541, + 6544, + 6547 + ], + "usedEvents": [] + } + ], + "src": "101:19177:49" + }, + "id": 49 + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "exportedSymbols": { + "ECDSA": [ + 8231 + ] + }, + "id": 8232, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7885, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:50" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ECDSA", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 7886, + "nodeType": "StructuredDocumentation", + "src": "138:205:50", + "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": 8231, + "linearizedBaseContracts": [ + 8231 + ], + "name": "ECDSA", + "nameLocation": "352:5:50", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ECDSA.RecoverError", + "id": 7891, + "members": [ + { + "id": 7887, + "name": "NoError", + "nameLocation": "392:7:50", + "nodeType": "EnumValue", + "src": "392:7:50" + }, + { + "id": 7888, + "name": "InvalidSignature", + "nameLocation": "409:16:50", + "nodeType": "EnumValue", + "src": "409:16:50" + }, + { + "id": 7889, + "name": "InvalidSignatureLength", + "nameLocation": "435:22:50", + "nodeType": "EnumValue", + "src": "435:22:50" + }, + { + "id": 7890, + "name": "InvalidSignatureS", + "nameLocation": "467:17:50", + "nodeType": "EnumValue", + "src": "467:17:50" + } + ], + "name": "RecoverError", + "nameLocation": "369:12:50", + "nodeType": "EnumDefinition", + "src": "364:126:50" + }, + { + "documentation": { + "id": 7892, + "nodeType": "StructuredDocumentation", + "src": "496:63:50", + "text": " @dev The signature derives the `address(0)`." + }, + "errorSelector": "f645eedf", + "id": 7894, + "name": "ECDSAInvalidSignature", + "nameLocation": "570:21:50", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7893, + "nodeType": "ParameterList", + "parameters": [], + "src": "591:2:50" + }, + "src": "564:30:50" + }, + { + "documentation": { + "id": 7895, + "nodeType": "StructuredDocumentation", + "src": "600:60:50", + "text": " @dev The signature has an invalid length." + }, + "errorSelector": "fce698f7", + "id": 7899, + "name": "ECDSAInvalidSignatureLength", + "nameLocation": "671:27:50", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7897, + "mutability": "mutable", + "name": "length", + "nameLocation": "707:6:50", + "nodeType": "VariableDeclaration", + "scope": 7899, + "src": "699:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "698:16:50" + }, + "src": "665:50:50" + }, + { + "documentation": { + "id": 7900, + "nodeType": "StructuredDocumentation", + "src": "721:85:50", + "text": " @dev The signature has an S value that is in the upper half order." + }, + "errorSelector": "d78bce0c", + "id": 7904, + "name": "ECDSAInvalidSignatureS", + "nameLocation": "817:22:50", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7902, + "mutability": "mutable", + "name": "s", + "nameLocation": "848:1:50", + "nodeType": "VariableDeclaration", + "scope": 7904, + "src": "840:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "840:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "839:11:50" + }, + "src": "811:40:50" + }, + { + "body": { + "id": 7956, + "nodeType": "Block", + "src": "2285:622:50", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 7919, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "2299:9:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2309:6:50", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2299:16:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3635", + "id": 7921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2319:2:50", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "2299:22:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7954, + "nodeType": "Block", + "src": "2793:108:50", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2823: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": 7942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2815:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2815:7:50", + "typeDescriptions": {} + } + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2815:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 7945, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "2827:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 7946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2840:22:50", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 7889, + "src": "2827:35:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "expression": { + "id": 7949, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "2872:9:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2882:6:50", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2872:16:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2864:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 7947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2864:7:50", + "typeDescriptions": {} + } + }, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2864:25:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 7952, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2814:76:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 7918, + "id": 7953, + "nodeType": "Return", + "src": "2807:83:50" + } + ] + }, + "id": 7955, + "nodeType": "IfStatement", + "src": "2295:606:50", + "trueBody": { + "id": 7940, + "nodeType": "Block", + "src": "2323:464:50", + "statements": [ + { + "assignments": [ + 7924 + ], + "declarations": [ + { + "constant": false, + "id": 7924, + "mutability": "mutable", + "name": "r", + "nameLocation": "2345:1:50", + "nodeType": "VariableDeclaration", + "scope": 7940, + "src": "2337:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7923, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2337:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 7925, + "nodeType": "VariableDeclarationStatement", + "src": "2337:9:50" + }, + { + "assignments": [ + 7927 + ], + "declarations": [ + { + "constant": false, + "id": 7927, + "mutability": "mutable", + "name": "s", + "nameLocation": "2368:1:50", + "nodeType": "VariableDeclaration", + "scope": 7940, + "src": "2360:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2360:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 7928, + "nodeType": "VariableDeclarationStatement", + "src": "2360:9:50" + }, + { + "assignments": [ + 7930 + ], + "declarations": [ + { + "constant": false, + "id": 7930, + "mutability": "mutable", + "name": "v", + "nameLocation": "2389:1:50", + "nodeType": "VariableDeclaration", + "scope": 7940, + "src": "2383:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2383:5:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7931, + "nodeType": "VariableDeclarationStatement", + "src": "2383:7:50" + }, + { + "AST": { + "nativeSrc": "2560:171:50", + "nodeType": "YulBlock", + "src": "2560:171:50", + "statements": [ + { + "nativeSrc": "2578:32:50", + "nodeType": "YulAssignment", + "src": "2578:32:50", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2593:9:50", + "nodeType": "YulIdentifier", + "src": "2593:9:50" + }, + { + "kind": "number", + "nativeSrc": "2604:4:50", + "nodeType": "YulLiteral", + "src": "2604:4:50", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2589:3:50", + "nodeType": "YulIdentifier", + "src": "2589:3:50" + }, + "nativeSrc": "2589:20:50", + "nodeType": "YulFunctionCall", + "src": "2589:20:50" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2583:5:50", + "nodeType": "YulIdentifier", + "src": "2583:5:50" + }, + "nativeSrc": "2583:27:50", + "nodeType": "YulFunctionCall", + "src": "2583:27:50" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "2578:1:50", + "nodeType": "YulIdentifier", + "src": "2578:1:50" + } + ] + }, + { + "nativeSrc": "2627:32:50", + "nodeType": "YulAssignment", + "src": "2627:32:50", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2642:9:50", + "nodeType": "YulIdentifier", + "src": "2642:9:50" + }, + { + "kind": "number", + "nativeSrc": "2653:4:50", + "nodeType": "YulLiteral", + "src": "2653:4:50", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2638:3:50", + "nodeType": "YulIdentifier", + "src": "2638:3:50" + }, + "nativeSrc": "2638:20:50", + "nodeType": "YulFunctionCall", + "src": "2638:20:50" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2632:5:50", + "nodeType": "YulIdentifier", + "src": "2632:5:50" + }, + "nativeSrc": "2632:27:50", + "nodeType": "YulFunctionCall", + "src": "2632:27:50" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "2627:1:50", + "nodeType": "YulIdentifier", + "src": "2627:1:50" + } + ] + }, + { + "nativeSrc": "2676:41:50", + "nodeType": "YulAssignment", + "src": "2676:41:50", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2686:1:50", + "nodeType": "YulLiteral", + "src": "2686:1:50", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2699:9:50", + "nodeType": "YulIdentifier", + "src": "2699:9:50" + }, + { + "kind": "number", + "nativeSrc": "2710:4:50", + "nodeType": "YulLiteral", + "src": "2710:4:50", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2695:3:50", + "nodeType": "YulIdentifier", + "src": "2695:3:50" + }, + "nativeSrc": "2695:20:50", + "nodeType": "YulFunctionCall", + "src": "2695:20:50" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2689:5:50", + "nodeType": "YulIdentifier", + "src": "2689:5:50" + }, + "nativeSrc": "2689:27:50", + "nodeType": "YulFunctionCall", + "src": "2689:27:50" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "2681:4:50", + "nodeType": "YulIdentifier", + "src": "2681:4:50" + }, + "nativeSrc": "2681:36:50", + "nodeType": "YulFunctionCall", + "src": "2681:36:50" + }, + "variableNames": [ + { + "name": "v", + "nativeSrc": "2676:1:50", + "nodeType": "YulIdentifier", + "src": "2676:1:50" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 7924, + "isOffset": false, + "isSlot": false, + "src": "2578:1:50", + "valueSize": 1 + }, + { + "declaration": 7927, + "isOffset": false, + "isSlot": false, + "src": "2627:1:50", + "valueSize": 1 + }, + { + "declaration": 7909, + "isOffset": false, + "isSlot": false, + "src": "2593:9:50", + "valueSize": 1 + }, + { + "declaration": 7909, + "isOffset": false, + "isSlot": false, + "src": "2642:9:50", + "valueSize": 1 + }, + { + "declaration": 7909, + "isOffset": false, + "isSlot": false, + "src": "2699:9:50", + "valueSize": 1 + }, + { + "declaration": 7930, + "isOffset": false, + "isSlot": false, + "src": "2676:1:50", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 7932, + "nodeType": "InlineAssembly", + "src": "2535:196:50" + }, + { + "expression": { + "arguments": [ + { + "id": 7934, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7907, + "src": "2762:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7935, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7930, + "src": "2768:1:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 7936, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7924, + "src": "2771:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7937, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7927, + "src": "2774:1:50", + "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": 7933, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7957, + 8037, + 8145 + ], + "referencedDeclaration": 8145, + "src": "2751:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 7938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2751:25:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 7918, + "id": 7939, + "nodeType": "Return", + "src": "2744:32:50" + } + ] + } + } + ] + }, + "documentation": { + "id": 7905, + "nodeType": "StructuredDocumentation", + "src": "857:1267:50", + "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": 7957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "2138:10:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7907, + "mutability": "mutable", + "name": "hash", + "nameLocation": "2166:4:50", + "nodeType": "VariableDeclaration", + "scope": 7957, + "src": "2158:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7906, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2158:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7909, + "mutability": "mutable", + "name": "signature", + "nameLocation": "2193:9:50", + "nodeType": "VariableDeclaration", + "scope": 7957, + "src": "2180:22:50", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7908, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2180:5:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2148:60:50" + }, + "returnParameters": { + "id": 7918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7912, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "2240:9:50", + "nodeType": "VariableDeclaration", + "scope": 7957, + "src": "2232:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7911, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2232:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7915, + "mutability": "mutable", + "name": "err", + "nameLocation": "2264:3:50", + "nodeType": "VariableDeclaration", + "scope": 7957, + "src": "2251:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 7914, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7913, + "name": "RecoverError", + "nameLocations": [ + "2251:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "2251:12:50" + }, + "referencedDeclaration": 7891, + "src": "2251:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7917, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "2277:6:50", + "nodeType": "VariableDeclaration", + "scope": 7957, + "src": "2269:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7916, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2269:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2231:53:50" + }, + "scope": 8231, + "src": "2129:778:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7986, + "nodeType": "Block", + "src": "3801:168:50", + "statements": [ + { + "assignments": [ + 7968, + 7971, + 7973 + ], + "declarations": [ + { + "constant": false, + "id": 7968, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "3820:9:50", + "nodeType": "VariableDeclaration", + "scope": 7986, + "src": "3812:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3812:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7971, + "mutability": "mutable", + "name": "error", + "nameLocation": "3844:5:50", + "nodeType": "VariableDeclaration", + "scope": 7986, + "src": "3831:18:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 7970, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7969, + "name": "RecoverError", + "nameLocations": [ + "3831:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "3831:12:50" + }, + "referencedDeclaration": 7891, + "src": "3831:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7973, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "3859:8:50", + "nodeType": "VariableDeclaration", + "scope": 7986, + "src": "3851:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7972, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3851:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 7978, + "initialValue": { + "arguments": [ + { + "id": 7975, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7960, + "src": "3882:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7976, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7962, + "src": "3888:9:50", + "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": 7974, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7957, + 8037, + 8145 + ], + "referencedDeclaration": 7957, + "src": "3871:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 7977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3871:27:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3811:87:50" + }, + { + "expression": { + "arguments": [ + { + "id": 7980, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7971, + "src": "3920:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 7981, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7973, + "src": "3927:8:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7979, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8230, + "src": "3908:11:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$7891_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3908:28:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7983, + "nodeType": "ExpressionStatement", + "src": "3908:28:50" + }, + { + "expression": { + "id": 7984, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7968, + "src": "3953:9:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7966, + "id": 7985, + "nodeType": "Return", + "src": "3946:16:50" + } + ] + }, + "documentation": { + "id": 7958, + "nodeType": "StructuredDocumentation", + "src": "2913:796:50", + "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": 7987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "3723:7:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7960, + "mutability": "mutable", + "name": "hash", + "nameLocation": "3739:4:50", + "nodeType": "VariableDeclaration", + "scope": 7987, + "src": "3731:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7959, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3731:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7962, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3758:9:50", + "nodeType": "VariableDeclaration", + "scope": 7987, + "src": "3745:22:50", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7961, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3745:5:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3730:38:50" + }, + "returnParameters": { + "id": 7966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7965, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7987, + "src": "3792:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3792:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3791:9:50" + }, + "scope": 8231, + "src": "3714:255:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8036, + "nodeType": "Block", + "src": "4348:342:50", + "statements": [ + { + "id": 8035, + "nodeType": "UncheckedBlock", + "src": "4358:326:50", + "statements": [ + { + "assignments": [ + 8005 + ], + "declarations": [ + { + "constant": false, + "id": 8005, + "mutability": "mutable", + "name": "s", + "nameLocation": "4390:1:50", + "nodeType": "VariableDeclaration", + "scope": 8035, + "src": "4382:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8004, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4382:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8012, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 8011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8006, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7994, + "src": "4394:2:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "arguments": [ + { + "hexValue": "307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "id": 8009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4407:66:50", + "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": 8008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4399:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8007, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4399:7:50", + "typeDescriptions": {} + } + }, + "id": 8010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4399:75:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4394:80:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4382:92:50" + }, + { + "assignments": [ + 8014 + ], + "declarations": [ + { + "constant": false, + "id": 8014, + "mutability": "mutable", + "name": "v", + "nameLocation": "4591:1:50", + "nodeType": "VariableDeclaration", + "scope": 8035, + "src": "4585:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8013, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4585:5:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 8027, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8019, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7994, + "src": "4610:2:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4602:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4602:7:50", + "typeDescriptions": {} + } + }, + "id": 8020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4602:11:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 8021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:3:50", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "4602:18:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8023, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4601:20:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3237", + "id": 8024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4624:2:50", + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "4601:25:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4595:5:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8015, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4595:5:50", + "typeDescriptions": {} + } + }, + "id": 8026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4595:32:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4585:42:50" + }, + { + "expression": { + "arguments": [ + { + "id": 8029, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7990, + "src": "4659:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8030, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8014, + "src": "4665:1:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8031, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7992, + "src": "4668:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8032, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "4671:1:50", + "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": 8028, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7957, + 8037, + 8145 + ], + "referencedDeclaration": 8145, + "src": "4648:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4648:25:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8003, + "id": 8034, + "nodeType": "Return", + "src": "4641:32:50" + } + ] + } + ] + }, + "documentation": { + "id": 7988, + "nodeType": "StructuredDocumentation", + "src": "3975:205:50", + "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[ERC-2098 short signatures]" + }, + "id": 8037, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "4194:10:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7990, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4222:4:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4214:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7989, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4214:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7992, + "mutability": "mutable", + "name": "r", + "nameLocation": "4244:1:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4236:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7991, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4236:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7994, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4263:2:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4255:10:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7993, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4255:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4204:67:50" + }, + "returnParameters": { + "id": 8003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7997, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "4303:9:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4295:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4295:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8000, + "mutability": "mutable", + "name": "err", + "nameLocation": "4327:3:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4314:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 7999, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7998, + "name": "RecoverError", + "nameLocations": [ + "4314:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "4314:12:50" + }, + "referencedDeclaration": 7891, + "src": "4314:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8002, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "4340:6:50", + "nodeType": "VariableDeclaration", + "scope": 8037, + "src": "4332:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8001, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4332:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4294:53:50" + }, + "scope": 8231, + "src": "4185:505:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8069, + "nodeType": "Block", + "src": "4903:164:50", + "statements": [ + { + "assignments": [ + 8050, + 8053, + 8055 + ], + "declarations": [ + { + "constant": false, + "id": 8050, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "4922:9:50", + "nodeType": "VariableDeclaration", + "scope": 8069, + "src": "4914:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8049, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4914:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8053, + "mutability": "mutable", + "name": "error", + "nameLocation": "4946:5:50", + "nodeType": "VariableDeclaration", + "scope": 8069, + "src": "4933:18:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8052, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8051, + "name": "RecoverError", + "nameLocations": [ + "4933:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "4933:12:50" + }, + "referencedDeclaration": 7891, + "src": "4933:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8055, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "4961:8:50", + "nodeType": "VariableDeclaration", + "scope": 8069, + "src": "4953:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8054, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4953:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8061, + "initialValue": { + "arguments": [ + { + "id": 8057, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8040, + "src": "4984:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8058, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8042, + "src": "4990:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8059, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8044, + "src": "4993:2:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8056, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7957, + 8037, + 8145 + ], + "referencedDeclaration": 8037, + "src": "4973:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4973:23:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4913:83:50" + }, + { + "expression": { + "arguments": [ + { + "id": 8063, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8053, + "src": "5018:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8064, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8055, + "src": "5025:8:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8062, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8230, + "src": "5006:11:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$7891_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 8065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5006:28:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8066, + "nodeType": "ExpressionStatement", + "src": "5006:28:50" + }, + { + "expression": { + "id": 8067, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8050, + "src": "5051:9:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8048, + "id": 8068, + "nodeType": "Return", + "src": "5044:16:50" + } + ] + }, + "documentation": { + "id": 8038, + "nodeType": "StructuredDocumentation", + "src": "4696:116:50", + "text": " @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately." + }, + "id": 8070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "4826:7:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8040, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4842:4:50", + "nodeType": "VariableDeclaration", + "scope": 8070, + "src": "4834:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8039, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4834:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8042, + "mutability": "mutable", + "name": "r", + "nameLocation": "4856:1:50", + "nodeType": "VariableDeclaration", + "scope": 8070, + "src": "4848:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8041, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4848:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8044, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4867:2:50", + "nodeType": "VariableDeclaration", + "scope": 8070, + "src": "4859:10:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8043, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4859:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4833:37:50" + }, + "returnParameters": { + "id": 8048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8047, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8070, + "src": "4894:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4894:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4893:9:50" + }, + "scope": 8231, + "src": "4817:250:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8144, + "nodeType": "Block", + "src": "5382:1372:50", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8091, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8079, + "src": "6278:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6270:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6270:7:50", + "typeDescriptions": {} + } + }, + "id": 8092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6270:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130", + "id": 8093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6283:66:50", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1", + "typeString": "int_const 5789...(69 digits omitted)...7168" + }, + "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0" + }, + "src": "6270:79:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8105, + "nodeType": "IfStatement", + "src": "6266:164:50", + "trueBody": { + "id": 8104, + "nodeType": "Block", + "src": "6351:79:50", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 8097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6381: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": 8096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6373:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6373:7:50", + "typeDescriptions": {} + } + }, + "id": 8098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6373:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8099, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "6385:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6398:17:50", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 7890, + "src": "6385:30:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8101, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8079, + "src": "6417:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8102, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6372:47:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8088, + "id": 8103, + "nodeType": "Return", + "src": "6365:54:50" + } + ] + } + }, + { + "assignments": [ + 8107 + ], + "declarations": [ + { + "constant": false, + "id": 8107, + "mutability": "mutable", + "name": "signer", + "nameLocation": "6532:6:50", + "nodeType": "VariableDeclaration", + "scope": 8144, + "src": "6524:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6524:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 8114, + "initialValue": { + "arguments": [ + { + "id": 8109, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8073, + "src": "6551:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8110, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8075, + "src": "6557:1:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8111, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8077, + "src": "6560:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8112, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8079, + "src": "6563:1:50", + "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": 8108, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "6541:9:50", + "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": 8113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6541:24:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6524:41:50" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8115, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8107, + "src": "6579:6:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 8118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6597: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": 8117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6589:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6589:7:50", + "typeDescriptions": {} + } + }, + "id": 8119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6589:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6579:20:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8134, + "nodeType": "IfStatement", + "src": "6575:113:50", + "trueBody": { + "id": 8133, + "nodeType": "Block", + "src": "6601:87:50", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6631: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": 8122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6623:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6623:7:50", + "typeDescriptions": {} + } + }, + "id": 8124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6623:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8125, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "6635:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6648:16:50", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 7888, + "src": "6635:29:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 8129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6674: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": 8128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6666:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8127, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6666:7:50", + "typeDescriptions": {} + } + }, + "id": 8130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6666:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8131, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6622:55:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8088, + "id": 8132, + "nodeType": "Return", + "src": "6615:62:50" + } + ] + } + }, + { + "expression": { + "components": [ + { + "id": 8135, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8107, + "src": "6706:6:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8136, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "6714:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6727:7:50", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 7887, + "src": "6714:20:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 8140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6744: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": 8139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6736:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8138, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6736:7:50", + "typeDescriptions": {} + } + }, + "id": 8141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6736:10:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6705:42:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8088, + "id": 8143, + "nodeType": "Return", + "src": "6698:49:50" + } + ] + }, + "documentation": { + "id": 8071, + "nodeType": "StructuredDocumentation", + "src": "5073:125:50", + "text": " @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 8145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "5212:10:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8073, + "mutability": "mutable", + "name": "hash", + "nameLocation": "5240:4:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5232:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8072, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5232:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8075, + "mutability": "mutable", + "name": "v", + "nameLocation": "5260:1:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5254:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8074, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5254:5:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8077, + "mutability": "mutable", + "name": "r", + "nameLocation": "5279:1:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5271:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8076, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5271:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8079, + "mutability": "mutable", + "name": "s", + "nameLocation": "5298:1:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5290:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8078, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5290:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5222:83:50" + }, + "returnParameters": { + "id": 8088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8082, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "5337:9:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5329:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5329:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8085, + "mutability": "mutable", + "name": "err", + "nameLocation": "5361:3:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5348:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8084, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8083, + "name": "RecoverError", + "nameLocations": [ + "5348:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "5348:12:50" + }, + "referencedDeclaration": 7891, + "src": "5348:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8087, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "5374:6:50", + "nodeType": "VariableDeclaration", + "scope": 8145, + "src": "5366:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8086, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5366:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5328:53:50" + }, + "scope": 8231, + "src": "5203:1551:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8180, + "nodeType": "Block", + "src": "6981:166:50", + "statements": [ + { + "assignments": [ + 8160, + 8163, + 8165 + ], + "declarations": [ + { + "constant": false, + "id": 8160, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "7000:9:50", + "nodeType": "VariableDeclaration", + "scope": 8180, + "src": "6992:17:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6992:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8163, + "mutability": "mutable", + "name": "error", + "nameLocation": "7024:5:50", + "nodeType": "VariableDeclaration", + "scope": 8180, + "src": "7011:18:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8162, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8161, + "name": "RecoverError", + "nameLocations": [ + "7011:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "7011:12:50" + }, + "referencedDeclaration": 7891, + "src": "7011:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8165, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "7039:8:50", + "nodeType": "VariableDeclaration", + "scope": 8180, + "src": "7031:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8164, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7031:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8172, + "initialValue": { + "arguments": [ + { + "id": 8167, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8148, + "src": "7062:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8168, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8150, + "src": "7068:1:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8169, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "7071:1:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8170, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "7074:1:50", + "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": 8166, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7957, + 8037, + 8145 + ], + "referencedDeclaration": 8145, + "src": "7051:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7051:25:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$7891_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6991:85:50" + }, + { + "expression": { + "arguments": [ + { + "id": 8174, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8163, + "src": "7098:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8175, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8165, + "src": "7105:8:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8173, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8230, + "src": "7086:11:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$7891_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 8176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7086:28:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8177, + "nodeType": "ExpressionStatement", + "src": "7086:28:50" + }, + { + "expression": { + "id": 8178, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8160, + "src": "7131:9:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8158, + "id": 8179, + "nodeType": "Return", + "src": "7124:16:50" + } + ] + }, + "documentation": { + "id": 8146, + "nodeType": "StructuredDocumentation", + "src": "6760:122:50", + "text": " @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 8181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "6896:7:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8148, + "mutability": "mutable", + "name": "hash", + "nameLocation": "6912:4:50", + "nodeType": "VariableDeclaration", + "scope": 8181, + "src": "6904:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8147, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6904:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8150, + "mutability": "mutable", + "name": "v", + "nameLocation": "6924:1:50", + "nodeType": "VariableDeclaration", + "scope": 8181, + "src": "6918:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8149, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6918:5:50", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8152, + "mutability": "mutable", + "name": "r", + "nameLocation": "6935:1:50", + "nodeType": "VariableDeclaration", + "scope": 8181, + "src": "6927:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8151, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6927:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8154, + "mutability": "mutable", + "name": "s", + "nameLocation": "6946:1:50", + "nodeType": "VariableDeclaration", + "scope": 8181, + "src": "6938:9:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8153, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6938:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6903:45:50" + }, + "returnParameters": { + "id": 8158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8157, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8181, + "src": "6972:7:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6972:7:50", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6971:9:50" + }, + "scope": 8231, + "src": "6887:260:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8229, + "nodeType": "Block", + "src": "7352:460:50", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8190, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "7366:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8191, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "7375:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7388:7:50", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 7887, + "src": "7375:20:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7366:29:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8196, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "7462:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8197, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "7471:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7484:16:50", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 7888, + "src": "7471:29:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7462:38:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8204, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "7567:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8205, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "7576:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7589:22:50", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 7889, + "src": "7576:35:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7567:44:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8216, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "7701:5:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8217, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7891, + "src": "7710:12:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$7891_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7723:17:50", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 7890, + "src": "7710:30:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7701:39:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8225, + "nodeType": "IfStatement", + "src": "7697:109:50", + "trueBody": { + "id": 8224, + "nodeType": "Block", + "src": "7742:64:50", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 8221, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8187, + "src": "7786:8:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8220, + "name": "ECDSAInvalidSignatureS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7904, + "src": "7763:22:50", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 8222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7763:32:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8223, + "nodeType": "RevertStatement", + "src": "7756:39:50" + } + ] + } + }, + "id": 8226, + "nodeType": "IfStatement", + "src": "7563:243:50", + "trueBody": { + "id": 8215, + "nodeType": "Block", + "src": "7613:78:50", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 8211, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8187, + "src": "7670:8:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7662:7:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7662:7:50", + "typeDescriptions": {} + } + }, + "id": 8212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7662:17:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8208, + "name": "ECDSAInvalidSignatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7899, + "src": "7634:27:50", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 8213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7634:46:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8214, + "nodeType": "RevertStatement", + "src": "7627:53:50" + } + ] + } + }, + "id": 8227, + "nodeType": "IfStatement", + "src": "7458:348:50", + "trueBody": { + "id": 8203, + "nodeType": "Block", + "src": "7502:55:50", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8200, + "name": "ECDSAInvalidSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7894, + "src": "7523:21:50", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 8201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7523:23:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8202, + "nodeType": "RevertStatement", + "src": "7516:30:50" + } + ] + } + }, + "id": 8228, + "nodeType": "IfStatement", + "src": "7362:444:50", + "trueBody": { + "id": 8195, + "nodeType": "Block", + "src": "7397:55:50", + "statements": [ + { + "functionReturnParameters": 8189, + "id": 8194, + "nodeType": "Return", + "src": "7411:7:50" + } + ] + } + } + ] + }, + "documentation": { + "id": 8182, + "nodeType": "StructuredDocumentation", + "src": "7153:122:50", + "text": " @dev Optionally reverts with the corresponding custom error according to the `error` argument provided." + }, + "id": 8230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_throwError", + "nameLocation": "7289:11:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8185, + "mutability": "mutable", + "name": "error", + "nameLocation": "7314:5:50", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "7301:18:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8184, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8183, + "name": "RecoverError", + "nameLocations": [ + "7301:12:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7891, + "src": "7301:12:50" + }, + "referencedDeclaration": 7891, + "src": "7301:12:50", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$7891", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8187, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "7329:8:50", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "7321:16:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8186, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7321:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7300:38:50" + }, + "returnParameters": { + "id": 8189, + "nodeType": "ParameterList", + "parameters": [], + "src": "7352:0:50" + }, + "scope": 8231, + "src": "7280:532:50", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 8232, + "src": "344:7470:50", + "usedErrors": [ + 7894, + 7899, + 7904 + ], + "usedEvents": [] + } + ], + "src": "112:7703:50" + }, + "id": 50 + }, + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "exportedSymbols": { + "MessageHashUtils": [ + 8317 + ], + "Strings": [ + 7883 + ] + }, + "id": 8318, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8233, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "123:24:51" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../Strings.sol", + "id": 8235, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8318, + "sourceUnit": 7884, + "src": "149:39:51", + "symbolAliases": [ + { + "foreign": { + "id": 8234, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7883, + "src": "157:7:51", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "MessageHashUtils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8236, + "nodeType": "StructuredDocumentation", + "src": "190:330:51", + "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[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications." + }, + "fullyImplemented": true, + "id": 8317, + "linearizedBaseContracts": [ + 8317 + ], + "name": "MessageHashUtils", + "nameLocation": "529:16:51", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8245, + "nodeType": "Block", + "src": "1339:341:51", + "statements": [ + { + "AST": { + "nativeSrc": "1374:300:51", + "nodeType": "YulBlock", + "src": "1374:300:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1395:4:51", + "nodeType": "YulLiteral", + "src": "1395:4:51", + "type": "", + "value": "0x00" + }, + { + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "kind": "string", + "nativeSrc": "1401:34:51", + "nodeType": "YulLiteral", + "src": "1401:34:51", + "type": "", + "value": "\u0019Ethereum Signed Message:\n32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1388:6:51", + "nodeType": "YulIdentifier", + "src": "1388:6:51" + }, + "nativeSrc": "1388:48:51", + "nodeType": "YulFunctionCall", + "src": "1388:48:51" + }, + "nativeSrc": "1388:48:51", + "nodeType": "YulExpressionStatement", + "src": "1388:48:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1497:4:51", + "nodeType": "YulLiteral", + "src": "1497:4:51", + "type": "", + "value": "0x1c" + }, + { + "name": "messageHash", + "nativeSrc": "1503:11:51", + "nodeType": "YulIdentifier", + "src": "1503:11:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1490:6:51", + "nodeType": "YulIdentifier", + "src": "1490:6:51" + }, + "nativeSrc": "1490:25:51", + "nodeType": "YulFunctionCall", + "src": "1490:25:51" + }, + "nativeSrc": "1490:25:51", + "nodeType": "YulExpressionStatement", + "src": "1490:25:51" + }, + { + "nativeSrc": "1569:31:51", + "nodeType": "YulAssignment", + "src": "1569:31:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1589:4:51", + "nodeType": "YulLiteral", + "src": "1589:4:51", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1595:4:51", + "nodeType": "YulLiteral", + "src": "1595:4:51", + "type": "", + "value": "0x3c" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "1579:9:51", + "nodeType": "YulIdentifier", + "src": "1579:9:51" + }, + "nativeSrc": "1579:21:51", + "nodeType": "YulFunctionCall", + "src": "1579:21:51" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "1569:6:51", + "nodeType": "YulIdentifier", + "src": "1569:6:51" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8242, + "isOffset": false, + "isSlot": false, + "src": "1569:6:51", + "valueSize": 1 + }, + { + "declaration": 8239, + "isOffset": false, + "isSlot": false, + "src": "1503:11:51", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8244, + "nodeType": "InlineAssembly", + "src": "1349:325:51" + } + ] + }, + "documentation": { + "id": 8237, + "nodeType": "StructuredDocumentation", + "src": "552:690:51", + "text": " @dev Returns the keccak256 digest of an ERC-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://ethereum.org/en/developers/docs/apis/json-rpc/#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": 8246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toEthSignedMessageHash", + "nameLocation": "1256:22:51", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8239, + "mutability": "mutable", + "name": "messageHash", + "nameLocation": "1287:11:51", + "nodeType": "VariableDeclaration", + "scope": 8246, + "src": "1279:19:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8238, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1279:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1278:21:51" + }, + "returnParameters": { + "id": 8243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8242, + "mutability": "mutable", + "name": "digest", + "nameLocation": "1331:6:51", + "nodeType": "VariableDeclaration", + "scope": 8246, + "src": "1323:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8241, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1323:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1322:16:51" + }, + "scope": 8317, + "src": "1247:433:51", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8271, + "nodeType": "Block", + "src": "2257:143:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a", + "id": 8258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2309:32:51", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4", + "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\"" + }, + "value": "\u0019Ethereum Signed Message:\n" + }, + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 8263, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8249, + "src": "2366:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2374:6:51", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2366:14:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8261, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7883, + "src": "2349:7:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$7883_$", + "typeString": "type(library Strings)" + } + }, + "id": 8262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2357:8:51", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 6595, + "src": "2349:16:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 8265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2349:32:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 8260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2343:5:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 8259, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2343:5:51", + "typeDescriptions": {} + } + }, + "id": 8266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2343:39:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 8267, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8249, + "src": "2384:7:51", + "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": 8256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2296:5:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 8255, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2296:5:51", + "typeDescriptions": {} + } + }, + "id": 8257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:51", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2296:12:51", + "typeDescriptions": { + "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 8268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2296:96:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8254, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2286:9:51", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 8269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2286:107:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8253, + "id": 8270, + "nodeType": "Return", + "src": "2267:126:51" + } + ] + }, + "documentation": { + "id": 8247, + "nodeType": "StructuredDocumentation", + "src": "1686:480:51", + "text": " @dev Returns the keccak256 digest of an ERC-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://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}." + }, + "id": 8272, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toEthSignedMessageHash", + "nameLocation": "2180:22:51", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8249, + "mutability": "mutable", + "name": "message", + "nameLocation": "2216:7:51", + "nodeType": "VariableDeclaration", + "scope": 8272, + "src": "2203:20:51", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8248, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2203:5:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2202:22:51" + }, + "returnParameters": { + "id": 8253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8252, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8272, + "src": "2248:7:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8251, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2248:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2247:9:51" + }, + "scope": 8317, + "src": "2171:229:51", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8291, + "nodeType": "Block", + "src": "2854:80:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1900", + "id": 8285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2898:10:51", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "typeString": "literal_string hex\"1900\"" + }, + "value": "\u0019\u0000" + }, + { + "id": 8286, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8275, + "src": "2910:9:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8287, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "2921:4:51", + "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": 8283, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2881:3:51", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 8284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2885:12:51", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2881:16:51", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 8288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2881:45:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8282, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2871:9:51", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2871:56:51", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8281, + "id": 8290, + "nodeType": "Return", + "src": "2864:63:51" + } + ] + }, + "documentation": { + "id": 8273, + "nodeType": "StructuredDocumentation", + "src": "2406:332:51", + "text": " @dev Returns the keccak256 digest of an ERC-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": 8292, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toDataWithIntendedValidatorHash", + "nameLocation": "2752:31:51", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8275, + "mutability": "mutable", + "name": "validator", + "nameLocation": "2792:9:51", + "nodeType": "VariableDeclaration", + "scope": 8292, + "src": "2784:17:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2784:7:51", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8277, + "mutability": "mutable", + "name": "data", + "nameLocation": "2816:4:51", + "nodeType": "VariableDeclaration", + "scope": 8292, + "src": "2803:17:51", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8276, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2803:5:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2783:38:51" + }, + "returnParameters": { + "id": 8281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8280, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8292, + "src": "2845:7:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8279, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2845:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2844:9:51" + }, + "scope": 8317, + "src": "2743:191:51", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8303, + "nodeType": "Block", + "src": "3216:216:51", + "statements": [ + { + "AST": { + "nativeSrc": "3251:175:51", + "nodeType": "YulBlock", + "src": "3251:175:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3272:4:51", + "nodeType": "YulLiteral", + "src": "3272:4:51", + "type": "", + "value": "0x00" + }, + { + "hexValue": "1900", + "kind": "string", + "nativeSrc": "3278:10:51", + "nodeType": "YulLiteral", + "src": "3278:10:51", + "type": "", + "value": "\u0019\u0000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3265:6:51", + "nodeType": "YulIdentifier", + "src": "3265:6:51" + }, + "nativeSrc": "3265:24:51", + "nodeType": "YulFunctionCall", + "src": "3265:24:51" + }, + "nativeSrc": "3265:24:51", + "nodeType": "YulExpressionStatement", + "src": "3265:24:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3309:4:51", + "nodeType": "YulLiteral", + "src": "3309:4:51", + "type": "", + "value": "0x02" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3319:2:51", + "nodeType": "YulLiteral", + "src": "3319:2:51", + "type": "", + "value": "96" + }, + { + "name": "validator", + "nativeSrc": "3323:9:51", + "nodeType": "YulIdentifier", + "src": "3323:9:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3315:3:51", + "nodeType": "YulIdentifier", + "src": "3315:3:51" + }, + "nativeSrc": "3315:18:51", + "nodeType": "YulFunctionCall", + "src": "3315:18:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3302:6:51", + "nodeType": "YulIdentifier", + "src": "3302:6:51" + }, + "nativeSrc": "3302:32:51", + "nodeType": "YulFunctionCall", + "src": "3302:32:51" + }, + "nativeSrc": "3302:32:51", + "nodeType": "YulExpressionStatement", + "src": "3302:32:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3354:4:51", + "nodeType": "YulLiteral", + "src": "3354:4:51", + "type": "", + "value": "0x16" + }, + { + "name": "messageHash", + "nativeSrc": "3360:11:51", + "nodeType": "YulIdentifier", + "src": "3360:11:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3347:6:51", + "nodeType": "YulIdentifier", + "src": "3347:6:51" + }, + "nativeSrc": "3347:25:51", + "nodeType": "YulFunctionCall", + "src": "3347:25:51" + }, + "nativeSrc": "3347:25:51", + "nodeType": "YulExpressionStatement", + "src": "3347:25:51" + }, + { + "nativeSrc": "3385:31:51", + "nodeType": "YulAssignment", + "src": "3385:31:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3405:4:51", + "nodeType": "YulLiteral", + "src": "3405:4:51", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "3411:4:51", + "nodeType": "YulLiteral", + "src": "3411:4:51", + "type": "", + "value": "0x36" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3395:9:51", + "nodeType": "YulIdentifier", + "src": "3395:9:51" + }, + "nativeSrc": "3395:21:51", + "nodeType": "YulFunctionCall", + "src": "3395:21:51" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "3385:6:51", + "nodeType": "YulIdentifier", + "src": "3385:6:51" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8300, + "isOffset": false, + "isSlot": false, + "src": "3385:6:51", + "valueSize": 1 + }, + { + "declaration": 8297, + "isOffset": false, + "isSlot": false, + "src": "3360:11:51", + "valueSize": 1 + }, + { + "declaration": 8295, + "isOffset": false, + "isSlot": false, + "src": "3323:9:51", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8302, + "nodeType": "InlineAssembly", + "src": "3226:200:51" + } + ] + }, + "documentation": { + "id": 8293, + "nodeType": "StructuredDocumentation", + "src": "2940:129:51", + "text": " @dev Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32." + }, + "id": 8304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toDataWithIntendedValidatorHash", + "nameLocation": "3083:31:51", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8295, + "mutability": "mutable", + "name": "validator", + "nameLocation": "3132:9:51", + "nodeType": "VariableDeclaration", + "scope": 8304, + "src": "3124:17:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3124:7:51", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8297, + "mutability": "mutable", + "name": "messageHash", + "nameLocation": "3159:11:51", + "nodeType": "VariableDeclaration", + "scope": 8304, + "src": "3151:19:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8296, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3151:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3114:62:51" + }, + "returnParameters": { + "id": 8301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8300, + "mutability": "mutable", + "name": "digest", + "nameLocation": "3208:6:51", + "nodeType": "VariableDeclaration", + "scope": 8304, + "src": "3200:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3200:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3199:16:51" + }, + "scope": 8317, + "src": "3074:358:51", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8315, + "nodeType": "Block", + "src": "3983:265:51", + "statements": [ + { + "AST": { + "nativeSrc": "4018:224:51", + "nodeType": "YulBlock", + "src": "4018:224:51", + "statements": [ + { + "nativeSrc": "4032:22:51", + "nodeType": "YulVariableDeclaration", + "src": "4032:22:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4049:4:51", + "nodeType": "YulLiteral", + "src": "4049:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4043:5:51", + "nodeType": "YulIdentifier", + "src": "4043:5:51" + }, + "nativeSrc": "4043:11:51", + "nodeType": "YulFunctionCall", + "src": "4043:11:51" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "4036:3:51", + "nodeType": "YulTypedName", + "src": "4036:3:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4074:3:51", + "nodeType": "YulIdentifier", + "src": "4074:3:51" + }, + { + "hexValue": "1901", + "kind": "string", + "nativeSrc": "4079:10:51", + "nodeType": "YulLiteral", + "src": "4079:10:51", + "type": "", + "value": "\u0019\u0001" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4067:6:51", + "nodeType": "YulIdentifier", + "src": "4067:6:51" + }, + "nativeSrc": "4067:23:51", + "nodeType": "YulFunctionCall", + "src": "4067:23:51" + }, + "nativeSrc": "4067:23:51", + "nodeType": "YulExpressionStatement", + "src": "4067:23:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4114:3:51", + "nodeType": "YulIdentifier", + "src": "4114:3:51" + }, + { + "kind": "number", + "nativeSrc": "4119:4:51", + "nodeType": "YulLiteral", + "src": "4119:4:51", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4110:3:51", + "nodeType": "YulIdentifier", + "src": "4110:3:51" + }, + "nativeSrc": "4110:14:51", + "nodeType": "YulFunctionCall", + "src": "4110:14:51" + }, + { + "name": "domainSeparator", + "nativeSrc": "4126:15:51", + "nodeType": "YulIdentifier", + "src": "4126:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4103:6:51", + "nodeType": "YulIdentifier", + "src": "4103:6:51" + }, + "nativeSrc": "4103:39:51", + "nodeType": "YulFunctionCall", + "src": "4103:39:51" + }, + "nativeSrc": "4103:39:51", + "nodeType": "YulExpressionStatement", + "src": "4103:39:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4166:3:51", + "nodeType": "YulIdentifier", + "src": "4166:3:51" + }, + { + "kind": "number", + "nativeSrc": "4171:4:51", + "nodeType": "YulLiteral", + "src": "4171:4:51", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4162:3:51", + "nodeType": "YulIdentifier", + "src": "4162:3:51" + }, + "nativeSrc": "4162:14:51", + "nodeType": "YulFunctionCall", + "src": "4162:14:51" + }, + { + "name": "structHash", + "nativeSrc": "4178:10:51", + "nodeType": "YulIdentifier", + "src": "4178:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4155:6:51", + "nodeType": "YulIdentifier", + "src": "4155:6:51" + }, + "nativeSrc": "4155:34:51", + "nodeType": "YulFunctionCall", + "src": "4155:34:51" + }, + "nativeSrc": "4155:34:51", + "nodeType": "YulExpressionStatement", + "src": "4155:34:51" + }, + { + "nativeSrc": "4202:30:51", + "nodeType": "YulAssignment", + "src": "4202:30:51", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4222:3:51", + "nodeType": "YulIdentifier", + "src": "4222:3:51" + }, + { + "kind": "number", + "nativeSrc": "4227:4:51", + "nodeType": "YulLiteral", + "src": "4227:4:51", + "type": "", + "value": "0x42" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4212:9:51", + "nodeType": "YulIdentifier", + "src": "4212:9:51" + }, + "nativeSrc": "4212:20:51", + "nodeType": "YulFunctionCall", + "src": "4212:20:51" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "4202:6:51", + "nodeType": "YulIdentifier", + "src": "4202:6:51" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8312, + "isOffset": false, + "isSlot": false, + "src": "4202:6:51", + "valueSize": 1 + }, + { + "declaration": 8307, + "isOffset": false, + "isSlot": false, + "src": "4126:15:51", + "valueSize": 1 + }, + { + "declaration": 8309, + "isOffset": false, + "isSlot": false, + "src": "4178:10:51", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8314, + "nodeType": "InlineAssembly", + "src": "3993:249:51" + } + ] + }, + "documentation": { + "id": 8305, + "nodeType": "StructuredDocumentation", + "src": "3438:431:51", + "text": " @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-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": 8316, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTypedDataHash", + "nameLocation": "3883:15:51", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8307, + "mutability": "mutable", + "name": "domainSeparator", + "nameLocation": "3907:15:51", + "nodeType": "VariableDeclaration", + "scope": 8316, + "src": "3899:23:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8306, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3899:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8309, + "mutability": "mutable", + "name": "structHash", + "nameLocation": "3932:10:51", + "nodeType": "VariableDeclaration", + "scope": 8316, + "src": "3924:18:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8308, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3924:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3898:45:51" + }, + "returnParameters": { + "id": 8313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8312, + "mutability": "mutable", + "name": "digest", + "nameLocation": "3975:6:51", + "nodeType": "VariableDeclaration", + "scope": 8316, + "src": "3967:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8311, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3967:7:51", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3966:16:51" + }, + "scope": 8317, + "src": "3874:374:51", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8318, + "src": "521:3729:51", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "123:4128:51" + }, + "id": 51 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 9938 + ], + "Panic": [ + 6481 + ], + "SafeCast": [ + 11703 + ] + }, + "id": 9939, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8319, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:52" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "file": "../Panic.sol", + "id": 8321, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 9939, + "sourceUnit": 6482, + "src": "129:35:52", + "symbolAliases": [ + { + "foreign": { + "id": 8320, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "137:5:52", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 8323, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 9939, + "sourceUnit": 11704, + "src": "165:40:52", + "symbolAliases": [ + { + "foreign": { + "id": 8322, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "173:8:52", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8324, + "nodeType": "StructuredDocumentation", + "src": "207:73:52", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 9938, + "linearizedBaseContracts": [ + 9938 + ], + "name": "Math", + "nameLocation": "289:4:52", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Math.Rounding", + "id": 8329, + "members": [ + { + "id": 8325, + "name": "Floor", + "nameLocation": "324:5:52", + "nodeType": "EnumValue", + "src": "324:5:52" + }, + { + "id": 8326, + "name": "Ceil", + "nameLocation": "367:4:52", + "nodeType": "EnumValue", + "src": "367:4:52" + }, + { + "id": 8327, + "name": "Trunc", + "nameLocation": "409:5:52", + "nodeType": "EnumValue", + "src": "409:5:52" + }, + { + "id": 8328, + "name": "Expand", + "nameLocation": "439:6:52", + "nodeType": "EnumValue", + "src": "439:6:52" + } + ], + "name": "Rounding", + "nameLocation": "305:8:52", + "nodeType": "EnumDefinition", + "src": "300:169:52" + }, + { + "body": { + "id": 8342, + "nodeType": "Block", + "src": "731:112:52", + "statements": [ + { + "AST": { + "nativeSrc": "766:71:52", + "nodeType": "YulBlock", + "src": "766:71:52", + "statements": [ + { + "nativeSrc": "780:16:52", + "nodeType": "YulAssignment", + "src": "780:16:52", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "791:1:52", + "nodeType": "YulIdentifier", + "src": "791:1:52" + }, + { + "name": "b", + "nativeSrc": "794:1:52", + "nodeType": "YulIdentifier", + "src": "794:1:52" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "787:3:52", + "nodeType": "YulIdentifier", + "src": "787:3:52" + }, + "nativeSrc": "787:9:52", + "nodeType": "YulFunctionCall", + "src": "787:9:52" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "780:3:52", + "nodeType": "YulIdentifier", + "src": "780:3:52" + } + ] + }, + { + "nativeSrc": "809:18:52", + "nodeType": "YulAssignment", + "src": "809:18:52", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "820:3:52", + "nodeType": "YulIdentifier", + "src": "820:3:52" + }, + { + "name": "a", + "nativeSrc": "825:1:52", + "nodeType": "YulIdentifier", + "src": "825:1:52" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "817:2:52", + "nodeType": "YulIdentifier", + "src": "817:2:52" + }, + "nativeSrc": "817:10:52", + "nodeType": "YulFunctionCall", + "src": "817:10:52" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "809:4:52", + "nodeType": "YulIdentifier", + "src": "809:4:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8332, + "isOffset": false, + "isSlot": false, + "src": "791:1:52", + "valueSize": 1 + }, + { + "declaration": 8332, + "isOffset": false, + "isSlot": false, + "src": "825:1:52", + "valueSize": 1 + }, + { + "declaration": 8334, + "isOffset": false, + "isSlot": false, + "src": "794:1:52", + "valueSize": 1 + }, + { + "declaration": 8337, + "isOffset": false, + "isSlot": false, + "src": "809:4:52", + "valueSize": 1 + }, + { + "declaration": 8339, + "isOffset": false, + "isSlot": false, + "src": "780:3:52", + "valueSize": 1 + }, + { + "declaration": 8339, + "isOffset": false, + "isSlot": false, + "src": "820:3:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8341, + "nodeType": "InlineAssembly", + "src": "741:96:52" + } + ] + }, + "documentation": { + "id": 8330, + "nodeType": "StructuredDocumentation", + "src": "475:163:52", + "text": " @dev Return the 512-bit addition of two uint256.\n The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low." + }, + "id": 8343, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add512", + "nameLocation": "652:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8332, + "mutability": "mutable", + "name": "a", + "nameLocation": "667:1:52", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "659:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "659:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8334, + "mutability": "mutable", + "name": "b", + "nameLocation": "678:1:52", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "670:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "658:22:52" + }, + "returnParameters": { + "id": 8340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8337, + "mutability": "mutable", + "name": "high", + "nameLocation": "712:4:52", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "704:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "704:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8339, + "mutability": "mutable", + "name": "low", + "nameLocation": "726:3:52", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "718:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "703:27:52" + }, + "scope": 9938, + "src": "643:200:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8356, + "nodeType": "Block", + "src": "1115:462:52", + "statements": [ + { + "AST": { + "nativeSrc": "1437:134:52", + "nodeType": "YulBlock", + "src": "1437:134:52", + "statements": [ + { + "nativeSrc": "1451:30:52", + "nodeType": "YulVariableDeclaration", + "src": "1451:30:52", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1468:1:52", + "nodeType": "YulIdentifier", + "src": "1468:1:52" + }, + { + "name": "b", + "nativeSrc": "1471:1:52", + "nodeType": "YulIdentifier", + "src": "1471:1:52" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1478:1:52", + "nodeType": "YulLiteral", + "src": "1478:1:52", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1474:3:52", + "nodeType": "YulIdentifier", + "src": "1474:3:52" + }, + "nativeSrc": "1474:6:52", + "nodeType": "YulFunctionCall", + "src": "1474:6:52" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "1461:6:52", + "nodeType": "YulIdentifier", + "src": "1461:6:52" + }, + "nativeSrc": "1461:20:52", + "nodeType": "YulFunctionCall", + "src": "1461:20:52" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "1455:2:52", + "nodeType": "YulTypedName", + "src": "1455:2:52", + "type": "" + } + ] + }, + { + "nativeSrc": "1494:16:52", + "nodeType": "YulAssignment", + "src": "1494:16:52", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1505:1:52", + "nodeType": "YulIdentifier", + "src": "1505:1:52" + }, + { + "name": "b", + "nativeSrc": "1508:1:52", + "nodeType": "YulIdentifier", + "src": "1508:1:52" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1501:3:52", + "nodeType": "YulIdentifier", + "src": "1501:3:52" + }, + "nativeSrc": "1501:9:52", + "nodeType": "YulFunctionCall", + "src": "1501:9:52" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "1494:3:52", + "nodeType": "YulIdentifier", + "src": "1494:3:52" + } + ] + }, + { + "nativeSrc": "1523:38:52", + "nodeType": "YulAssignment", + "src": "1523:38:52", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1539:2:52", + "nodeType": "YulIdentifier", + "src": "1539:2:52" + }, + { + "name": "low", + "nativeSrc": "1543:3:52", + "nodeType": "YulIdentifier", + "src": "1543:3:52" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1535:3:52", + "nodeType": "YulIdentifier", + "src": "1535:3:52" + }, + "nativeSrc": "1535:12:52", + "nodeType": "YulFunctionCall", + "src": "1535:12:52" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1552:2:52", + "nodeType": "YulIdentifier", + "src": "1552:2:52" + }, + { + "name": "low", + "nativeSrc": "1556:3:52", + "nodeType": "YulIdentifier", + "src": "1556:3:52" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1549:2:52", + "nodeType": "YulIdentifier", + "src": "1549:2:52" + }, + "nativeSrc": "1549:11:52", + "nodeType": "YulFunctionCall", + "src": "1549:11:52" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1531:3:52", + "nodeType": "YulIdentifier", + "src": "1531:3:52" + }, + "nativeSrc": "1531:30:52", + "nodeType": "YulFunctionCall", + "src": "1531:30:52" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "1523:4:52", + "nodeType": "YulIdentifier", + "src": "1523:4:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8346, + "isOffset": false, + "isSlot": false, + "src": "1468:1:52", + "valueSize": 1 + }, + { + "declaration": 8346, + "isOffset": false, + "isSlot": false, + "src": "1505:1:52", + "valueSize": 1 + }, + { + "declaration": 8348, + "isOffset": false, + "isSlot": false, + "src": "1471:1:52", + "valueSize": 1 + }, + { + "declaration": 8348, + "isOffset": false, + "isSlot": false, + "src": "1508:1:52", + "valueSize": 1 + }, + { + "declaration": 8351, + "isOffset": false, + "isSlot": false, + "src": "1523:4:52", + "valueSize": 1 + }, + { + "declaration": 8353, + "isOffset": false, + "isSlot": false, + "src": "1494:3:52", + "valueSize": 1 + }, + { + "declaration": 8353, + "isOffset": false, + "isSlot": false, + "src": "1543:3:52", + "valueSize": 1 + }, + { + "declaration": 8353, + "isOffset": false, + "isSlot": false, + "src": "1556:3:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8355, + "nodeType": "InlineAssembly", + "src": "1412:159:52" + } + ] + }, + "documentation": { + "id": 8344, + "nodeType": "StructuredDocumentation", + "src": "849:173:52", + "text": " @dev Return the 512-bit multiplication of two uint256.\n The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low." + }, + "id": 8357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul512", + "nameLocation": "1036:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8346, + "mutability": "mutable", + "name": "a", + "nameLocation": "1051:1:52", + "nodeType": "VariableDeclaration", + "scope": 8357, + "src": "1043:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1043:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8348, + "mutability": "mutable", + "name": "b", + "nameLocation": "1062:1:52", + "nodeType": "VariableDeclaration", + "scope": 8357, + "src": "1054:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1054:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1042:22:52" + }, + "returnParameters": { + "id": 8354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8351, + "mutability": "mutable", + "name": "high", + "nameLocation": "1096:4:52", + "nodeType": "VariableDeclaration", + "scope": 8357, + "src": "1088:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8353, + "mutability": "mutable", + "name": "low", + "nameLocation": "1110:3:52", + "nodeType": "VariableDeclaration", + "scope": 8357, + "src": "1102:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1102:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1087:27:52" + }, + "scope": 9938, + "src": "1027:550:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8391, + "nodeType": "Block", + "src": "1784:149:52", + "statements": [ + { + "id": 8390, + "nodeType": "UncheckedBlock", + "src": "1794:133:52", + "statements": [ + { + "assignments": [ + 8370 + ], + "declarations": [ + { + "constant": false, + "id": 8370, + "mutability": "mutable", + "name": "c", + "nameLocation": "1826:1:52", + "nodeType": "VariableDeclaration", + "scope": 8390, + "src": "1818:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1818:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8374, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8371, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8360, + "src": "1830:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 8372, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8362, + "src": "1834:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1830:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1818:17:52" + }, + { + "expression": { + "id": 8379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8375, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8365, + "src": "1849:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8376, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8370, + "src": "1859:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 8377, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8360, + "src": "1864:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1859:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1849:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8380, + "nodeType": "ExpressionStatement", + "src": "1849:16:52" + }, + { + "expression": { + "id": 8388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8381, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "1879:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8382, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8370, + "src": "1888:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8385, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8365, + "src": "1908:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8383, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "1892:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1901:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "1892:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1892:24:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1888:28:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1879:37:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8389, + "nodeType": "ExpressionStatement", + "src": "1879:37:52" + } + ] + } + ] + }, + "documentation": { + "id": 8358, + "nodeType": "StructuredDocumentation", + "src": "1583:105:52", + "text": " @dev Returns the addition of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8392, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "1702:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8360, + "mutability": "mutable", + "name": "a", + "nameLocation": "1717:1:52", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "1709:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1709:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8362, + "mutability": "mutable", + "name": "b", + "nameLocation": "1728:1:52", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "1720:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1720:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1708:22:52" + }, + "returnParameters": { + "id": 8368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8365, + "mutability": "mutable", + "name": "success", + "nameLocation": "1759:7:52", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "1754:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8364, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1754:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8367, + "mutability": "mutable", + "name": "result", + "nameLocation": "1776:6:52", + "nodeType": "VariableDeclaration", + "scope": 8392, + "src": "1768:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1768:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1753:30:52" + }, + "scope": 9938, + "src": "1693:240:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8426, + "nodeType": "Block", + "src": "2143:149:52", + "statements": [ + { + "id": 8425, + "nodeType": "UncheckedBlock", + "src": "2153:133:52", + "statements": [ + { + "assignments": [ + 8405 + ], + "declarations": [ + { + "constant": false, + "id": 8405, + "mutability": "mutable", + "name": "c", + "nameLocation": "2185:1:52", + "nodeType": "VariableDeclaration", + "scope": 8425, + "src": "2177:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2177:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8409, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8406, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "2189:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 8407, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8397, + "src": "2193:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2189:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2177:17:52" + }, + { + "expression": { + "id": 8414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8400, + "src": "2208:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8411, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8405, + "src": "2218:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 8412, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8395, + "src": "2223:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2218:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2208:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8415, + "nodeType": "ExpressionStatement", + "src": "2208:16:52" + }, + { + "expression": { + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8416, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8402, + "src": "2238:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8417, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8405, + "src": "2247:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8420, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8400, + "src": "2267:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8418, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "2251:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2260:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "2251:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2251:24:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2247:28:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2238:37:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8424, + "nodeType": "ExpressionStatement", + "src": "2238:37:52" + } + ] + } + ] + }, + "documentation": { + "id": 8393, + "nodeType": "StructuredDocumentation", + "src": "1939:108:52", + "text": " @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8427, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "2061:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8395, + "mutability": "mutable", + "name": "a", + "nameLocation": "2076:1:52", + "nodeType": "VariableDeclaration", + "scope": 8427, + "src": "2068:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8397, + "mutability": "mutable", + "name": "b", + "nameLocation": "2087:1:52", + "nodeType": "VariableDeclaration", + "scope": 8427, + "src": "2079:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2079:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2067:22:52" + }, + "returnParameters": { + "id": 8403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8400, + "mutability": "mutable", + "name": "success", + "nameLocation": "2118:7:52", + "nodeType": "VariableDeclaration", + "scope": 8427, + "src": "2113:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8399, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2113:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8402, + "mutability": "mutable", + "name": "result", + "nameLocation": "2135:6:52", + "nodeType": "VariableDeclaration", + "scope": 8427, + "src": "2127:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2127:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2112:30:52" + }, + "scope": 9938, + "src": "2052:240:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "2505:391:52", + "statements": [ + { + "id": 8455, + "nodeType": "UncheckedBlock", + "src": "2515:375:52", + "statements": [ + { + "assignments": [ + 8440 + ], + "declarations": [ + { + "constant": false, + "id": 8440, + "mutability": "mutable", + "name": "c", + "nameLocation": "2547:1:52", + "nodeType": "VariableDeclaration", + "scope": 8455, + "src": "2539:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8444, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8441, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "2551:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8442, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8432, + "src": "2555:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2551:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2539:17:52" + }, + { + "AST": { + "nativeSrc": "2595:188:52", + "nodeType": "YulBlock", + "src": "2595:188:52", + "statements": [ + { + "nativeSrc": "2727:42:52", + "nodeType": "YulAssignment", + "src": "2727:42:52", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "c", + "nativeSrc": "2748:1:52", + "nodeType": "YulIdentifier", + "src": "2748:1:52" + }, + { + "name": "a", + "nativeSrc": "2751:1:52", + "nodeType": "YulIdentifier", + "src": "2751:1:52" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2744:3:52", + "nodeType": "YulIdentifier", + "src": "2744:3:52" + }, + "nativeSrc": "2744:9:52", + "nodeType": "YulFunctionCall", + "src": "2744:9:52" + }, + { + "name": "b", + "nativeSrc": "2755:1:52", + "nodeType": "YulIdentifier", + "src": "2755:1:52" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2741:2:52", + "nodeType": "YulIdentifier", + "src": "2741:2:52" + }, + "nativeSrc": "2741:16:52", + "nodeType": "YulFunctionCall", + "src": "2741:16:52" + }, + { + "arguments": [ + { + "name": "a", + "nativeSrc": "2766:1:52", + "nodeType": "YulIdentifier", + "src": "2766:1:52" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2759:6:52", + "nodeType": "YulIdentifier", + "src": "2759:6:52" + }, + "nativeSrc": "2759:9:52", + "nodeType": "YulFunctionCall", + "src": "2759:9:52" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2738:2:52", + "nodeType": "YulIdentifier", + "src": "2738:2:52" + }, + "nativeSrc": "2738:31:52", + "nodeType": "YulFunctionCall", + "src": "2738:31:52" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "2727:7:52", + "nodeType": "YulIdentifier", + "src": "2727:7:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8430, + "isOffset": false, + "isSlot": false, + "src": "2751:1:52", + "valueSize": 1 + }, + { + "declaration": 8430, + "isOffset": false, + "isSlot": false, + "src": "2766:1:52", + "valueSize": 1 + }, + { + "declaration": 8432, + "isOffset": false, + "isSlot": false, + "src": "2755:1:52", + "valueSize": 1 + }, + { + "declaration": 8440, + "isOffset": false, + "isSlot": false, + "src": "2748:1:52", + "valueSize": 1 + }, + { + "declaration": 8435, + "isOffset": false, + "isSlot": false, + "src": "2727:7:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8445, + "nodeType": "InlineAssembly", + "src": "2570:213:52" + }, + { + "expression": { + "id": 8453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8446, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8437, + "src": "2842:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8447, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8440, + "src": "2851:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8450, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8435, + "src": "2871:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8448, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "2855:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2864:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "2855:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2855:24:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2851:28:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2842:37:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8454, + "nodeType": "ExpressionStatement", + "src": "2842:37:52" + } + ] + } + ] + }, + "documentation": { + "id": 8428, + "nodeType": "StructuredDocumentation", + "src": "2298:111:52", + "text": " @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8457, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "2423:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8430, + "mutability": "mutable", + "name": "a", + "nameLocation": "2438:1:52", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "2430:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8432, + "mutability": "mutable", + "name": "b", + "nameLocation": "2449:1:52", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "2441:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2441:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2429:22:52" + }, + "returnParameters": { + "id": 8438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8435, + "mutability": "mutable", + "name": "success", + "nameLocation": "2480:7:52", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "2475:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8434, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2475:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8437, + "mutability": "mutable", + "name": "result", + "nameLocation": "2497:6:52", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "2489:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2489:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2474:30:52" + }, + "scope": 9938, + "src": "2414:482:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8477, + "nodeType": "Block", + "src": "3111:231:52", + "statements": [ + { + "id": 8476, + "nodeType": "UncheckedBlock", + "src": "3121:215:52", + "statements": [ + { + "expression": { + "id": 8473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8469, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "3145:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8470, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8462, + "src": "3155:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3159:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3155:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3145:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8474, + "nodeType": "ExpressionStatement", + "src": "3145:15:52" + }, + { + "AST": { + "nativeSrc": "3199:127:52", + "nodeType": "YulBlock", + "src": "3199:127:52", + "statements": [ + { + "nativeSrc": "3293:19:52", + "nodeType": "YulAssignment", + "src": "3293:19:52", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3307:1:52", + "nodeType": "YulIdentifier", + "src": "3307:1:52" + }, + { + "name": "b", + "nativeSrc": "3310:1:52", + "nodeType": "YulIdentifier", + "src": "3310:1:52" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3303:3:52", + "nodeType": "YulIdentifier", + "src": "3303:3:52" + }, + "nativeSrc": "3303:9:52", + "nodeType": "YulFunctionCall", + "src": "3303:9:52" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3293:6:52", + "nodeType": "YulIdentifier", + "src": "3293:6:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8460, + "isOffset": false, + "isSlot": false, + "src": "3307:1:52", + "valueSize": 1 + }, + { + "declaration": 8462, + "isOffset": false, + "isSlot": false, + "src": "3310:1:52", + "valueSize": 1 + }, + { + "declaration": 8467, + "isOffset": false, + "isSlot": false, + "src": "3293:6:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8475, + "nodeType": "InlineAssembly", + "src": "3174:152:52" + } + ] + } + ] + }, + "documentation": { + "id": 8458, + "nodeType": "StructuredDocumentation", + "src": "2902:113:52", + "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)." + }, + "id": 8478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "3029:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8460, + "mutability": "mutable", + "name": "a", + "nameLocation": "3044:1:52", + "nodeType": "VariableDeclaration", + "scope": 8478, + "src": "3036:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3036:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8462, + "mutability": "mutable", + "name": "b", + "nameLocation": "3055:1:52", + "nodeType": "VariableDeclaration", + "scope": 8478, + "src": "3047:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3047:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3035:22:52" + }, + "returnParameters": { + "id": 8468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8465, + "mutability": "mutable", + "name": "success", + "nameLocation": "3086:7:52", + "nodeType": "VariableDeclaration", + "scope": 8478, + "src": "3081:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8464, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3081:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8467, + "mutability": "mutable", + "name": "result", + "nameLocation": "3103:6:52", + "nodeType": "VariableDeclaration", + "scope": 8478, + "src": "3095:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3095:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3080:30:52" + }, + "scope": 9938, + "src": "3020:322:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8498, + "nodeType": "Block", + "src": "3567:231:52", + "statements": [ + { + "id": 8497, + "nodeType": "UncheckedBlock", + "src": "3577:215:52", + "statements": [ + { + "expression": { + "id": 8494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8490, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8486, + "src": "3601:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8491, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8483, + "src": "3611:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3615:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3611:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3601:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8495, + "nodeType": "ExpressionStatement", + "src": "3601:15:52" + }, + { + "AST": { + "nativeSrc": "3655:127:52", + "nodeType": "YulBlock", + "src": "3655:127:52", + "statements": [ + { + "nativeSrc": "3749:19:52", + "nodeType": "YulAssignment", + "src": "3749:19:52", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3763:1:52", + "nodeType": "YulIdentifier", + "src": "3763:1:52" + }, + { + "name": "b", + "nativeSrc": "3766:1:52", + "nodeType": "YulIdentifier", + "src": "3766:1:52" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "3759:3:52", + "nodeType": "YulIdentifier", + "src": "3759:3:52" + }, + "nativeSrc": "3759:9:52", + "nodeType": "YulFunctionCall", + "src": "3759:9:52" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3749:6:52", + "nodeType": "YulIdentifier", + "src": "3749:6:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8481, + "isOffset": false, + "isSlot": false, + "src": "3763:1:52", + "valueSize": 1 + }, + { + "declaration": 8483, + "isOffset": false, + "isSlot": false, + "src": "3766:1:52", + "valueSize": 1 + }, + { + "declaration": 8488, + "isOffset": false, + "isSlot": false, + "src": "3749:6:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8496, + "nodeType": "InlineAssembly", + "src": "3630:152:52" + } + ] + } + ] + }, + "documentation": { + "id": 8479, + "nodeType": "StructuredDocumentation", + "src": "3348:123:52", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)." + }, + "id": 8499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "3485:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8481, + "mutability": "mutable", + "name": "a", + "nameLocation": "3500:1:52", + "nodeType": "VariableDeclaration", + "scope": 8499, + "src": "3492:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3492:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8483, + "mutability": "mutable", + "name": "b", + "nameLocation": "3511:1:52", + "nodeType": "VariableDeclaration", + "scope": 8499, + "src": "3503:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3503:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:22:52" + }, + "returnParameters": { + "id": 8489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8486, + "mutability": "mutable", + "name": "success", + "nameLocation": "3542:7:52", + "nodeType": "VariableDeclaration", + "scope": 8499, + "src": "3537:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8485, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3537:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8488, + "mutability": "mutable", + "name": "result", + "nameLocation": "3559:6:52", + "nodeType": "VariableDeclaration", + "scope": 8499, + "src": "3551:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3536:30:52" + }, + "scope": 9938, + "src": "3476:322:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8528, + "nodeType": "Block", + "src": "3989:122:52", + "statements": [ + { + "assignments": [ + 8510, + 8512 + ], + "declarations": [ + { + "constant": false, + "id": 8510, + "mutability": "mutable", + "name": "success", + "nameLocation": "4005:7:52", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "4000:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8509, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4000:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8512, + "mutability": "mutable", + "name": "result", + "nameLocation": "4022:6:52", + "nodeType": "VariableDeclaration", + "scope": 8528, + "src": "4014:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4014:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8517, + "initialValue": { + "arguments": [ + { + "id": 8514, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8502, + "src": "4039:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8515, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8504, + "src": "4042:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8513, + "name": "tryAdd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "4032:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4032:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3999:45:52" + }, + { + "expression": { + "arguments": [ + { + "id": 8519, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8510, + "src": "4069:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8520, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8512, + "src": "4078:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4091:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:52", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 8521, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4086:4:52", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4086:13:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 8525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4100:3:52", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4086:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8518, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "4061:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4061:43:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8508, + "id": 8527, + "nodeType": "Return", + "src": "4054:50:52" + } + ] + }, + "documentation": { + "id": 8500, + "nodeType": "StructuredDocumentation", + "src": "3804:103:52", + "text": " @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 8529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingAdd", + "nameLocation": "3921:13:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8502, + "mutability": "mutable", + "name": "a", + "nameLocation": "3943:1:52", + "nodeType": "VariableDeclaration", + "scope": 8529, + "src": "3935:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3935:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8504, + "mutability": "mutable", + "name": "b", + "nameLocation": "3954:1:52", + "nodeType": "VariableDeclaration", + "scope": 8529, + "src": "3946:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3934:22:52" + }, + "returnParameters": { + "id": 8508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8507, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8529, + "src": "3980:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3980:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3979:9:52" + }, + "scope": 9938, + "src": "3912:199:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8548, + "nodeType": "Block", + "src": "4294:73:52", + "statements": [ + { + "assignments": [ + null, + 8540 + ], + "declarations": [ + null, + { + "constant": false, + "id": 8540, + "mutability": "mutable", + "name": "result", + "nameLocation": "4315:6:52", + "nodeType": "VariableDeclaration", + "scope": 8548, + "src": "4307:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4307:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8545, + "initialValue": { + "arguments": [ + { + "id": 8542, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "4332:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8543, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8534, + "src": "4335:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8541, + "name": "trySub", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "4325:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4325:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4304:33:52" + }, + { + "expression": { + "id": 8546, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8540, + "src": "4354:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8538, + "id": 8547, + "nodeType": "Return", + "src": "4347:13:52" + } + ] + }, + "documentation": { + "id": 8530, + "nodeType": "StructuredDocumentation", + "src": "4117:95:52", + "text": " @dev Unsigned saturating subtraction, bounds to zero instead of overflowing." + }, + "id": 8549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingSub", + "nameLocation": "4226:13:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8532, + "mutability": "mutable", + "name": "a", + "nameLocation": "4248:1:52", + "nodeType": "VariableDeclaration", + "scope": 8549, + "src": "4240:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8531, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4240:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8534, + "mutability": "mutable", + "name": "b", + "nameLocation": "4259:1:52", + "nodeType": "VariableDeclaration", + "scope": 8549, + "src": "4251:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4251:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4239:22:52" + }, + "returnParameters": { + "id": 8538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8537, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8549, + "src": "4285:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4285:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4284:9:52" + }, + "scope": 9938, + "src": "4217:150:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8578, + "nodeType": "Block", + "src": "4564:122:52", + "statements": [ + { + "assignments": [ + 8560, + 8562 + ], + "declarations": [ + { + "constant": false, + "id": 8560, + "mutability": "mutable", + "name": "success", + "nameLocation": "4580:7:52", + "nodeType": "VariableDeclaration", + "scope": 8578, + "src": "4575:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8559, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4575:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8562, + "mutability": "mutable", + "name": "result", + "nameLocation": "4597:6:52", + "nodeType": "VariableDeclaration", + "scope": 8578, + "src": "4589:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4589:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8567, + "initialValue": { + "arguments": [ + { + "id": 8564, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8552, + "src": "4614:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8565, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8554, + "src": "4617:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8563, + "name": "tryMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "4607:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4607:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4574:45:52" + }, + { + "expression": { + "arguments": [ + { + "id": 8569, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8560, + "src": "4644:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8570, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8562, + "src": "4653:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 8573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4666:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4666:7:52", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 8571, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4661:4:52", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4661:13:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 8575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4675:3:52", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4661:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8568, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "4636:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4636:43:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8558, + "id": 8577, + "nodeType": "Return", + "src": "4629:50:52" + } + ] + }, + "documentation": { + "id": 8550, + "nodeType": "StructuredDocumentation", + "src": "4373:109:52", + "text": " @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 8579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingMul", + "nameLocation": "4496:13:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8552, + "mutability": "mutable", + "name": "a", + "nameLocation": "4518:1:52", + "nodeType": "VariableDeclaration", + "scope": 8579, + "src": "4510:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4510:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8554, + "mutability": "mutable", + "name": "b", + "nameLocation": "4529:1:52", + "nodeType": "VariableDeclaration", + "scope": 8579, + "src": "4521:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4521:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4509:22:52" + }, + "returnParameters": { + "id": 8558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8557, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8579, + "src": "4555:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4554:9:52" + }, + "scope": 9938, + "src": "4487:199:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8605, + "nodeType": "Block", + "src": "5158:207:52", + "statements": [ + { + "id": 8604, + "nodeType": "UncheckedBlock", + "src": "5168:191:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8591, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8586, + "src": "5306:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8592, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8584, + "src": "5312:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8593, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8586, + "src": "5316:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5312:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8595, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5311:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8598, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8582, + "src": "5337:9:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8596, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "5321:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5330:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "5321:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5321:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5311:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8601, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5310:38:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5306:42:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8590, + "id": 8603, + "nodeType": "Return", + "src": "5299:49:52" + } + ] + } + ] + }, + "documentation": { + "id": 8580, + "nodeType": "StructuredDocumentation", + "src": "4692:374:52", + "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." + }, + "id": 8606, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "5080:7:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8582, + "mutability": "mutable", + "name": "condition", + "nameLocation": "5093:9:52", + "nodeType": "VariableDeclaration", + "scope": 8606, + "src": "5088:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8581, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5088:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8584, + "mutability": "mutable", + "name": "a", + "nameLocation": "5112:1:52", + "nodeType": "VariableDeclaration", + "scope": 8606, + "src": "5104:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5104:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8586, + "mutability": "mutable", + "name": "b", + "nameLocation": "5123:1:52", + "nodeType": "VariableDeclaration", + "scope": 8606, + "src": "5115:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5115:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5087:38:52" + }, + "returnParameters": { + "id": 8590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8589, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8606, + "src": "5149:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8588, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5149:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5148:9:52" + }, + "scope": 9938, + "src": "5071:294:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8624, + "nodeType": "Block", + "src": "5502:44:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8617, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "5527:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 8618, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8611, + "src": "5531:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5527:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8620, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "5534:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8621, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8611, + "src": "5537:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8616, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "5519:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5519:20:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8615, + "id": 8623, + "nodeType": "Return", + "src": "5512:27:52" + } + ] + }, + "documentation": { + "id": 8607, + "nodeType": "StructuredDocumentation", + "src": "5371:59:52", + "text": " @dev Returns the largest of two numbers." + }, + "id": 8625, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "5444:3:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8609, + "mutability": "mutable", + "name": "a", + "nameLocation": "5456:1:52", + "nodeType": "VariableDeclaration", + "scope": 8625, + "src": "5448:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5448:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8611, + "mutability": "mutable", + "name": "b", + "nameLocation": "5467:1:52", + "nodeType": "VariableDeclaration", + "scope": 8625, + "src": "5459:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5459:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5447:22:52" + }, + "returnParameters": { + "id": 8615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8614, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8625, + "src": "5493:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5492:9:52" + }, + "scope": 9938, + "src": "5435:111:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8643, + "nodeType": "Block", + "src": "5684:44:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8636, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8628, + "src": "5709:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 8637, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8630, + "src": "5713:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5709:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8628, + "src": "5716:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8640, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8630, + "src": "5719:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8635, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "5701:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5701:20:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8634, + "id": 8642, + "nodeType": "Return", + "src": "5694:27:52" + } + ] + }, + "documentation": { + "id": 8626, + "nodeType": "StructuredDocumentation", + "src": "5552:60:52", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 8644, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "5626:3:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8628, + "mutability": "mutable", + "name": "a", + "nameLocation": "5638:1:52", + "nodeType": "VariableDeclaration", + "scope": 8644, + "src": "5630:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5630:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8630, + "mutability": "mutable", + "name": "b", + "nameLocation": "5649:1:52", + "nodeType": "VariableDeclaration", + "scope": 8644, + "src": "5641:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5641:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5629:22:52" + }, + "returnParameters": { + "id": 8634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8633, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8644, + "src": "5675:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5675:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5674:9:52" + }, + "scope": 9938, + "src": "5617:111:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8666, + "nodeType": "Block", + "src": "5912:82:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8654, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8647, + "src": "5967:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 8655, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8649, + "src": "5971:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5967:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8657, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5966:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8658, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8647, + "src": "5977:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8659, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8649, + "src": "5981:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5977:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8661, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5976:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 8662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5986:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5976:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5966:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8653, + "id": 8665, + "nodeType": "Return", + "src": "5959:28:52" + } + ] + }, + "documentation": { + "id": 8645, + "nodeType": "StructuredDocumentation", + "src": "5734:102:52", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 8667, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "5850:7:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8647, + "mutability": "mutable", + "name": "a", + "nameLocation": "5866:1:52", + "nodeType": "VariableDeclaration", + "scope": 8667, + "src": "5858:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5858:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8649, + "mutability": "mutable", + "name": "b", + "nameLocation": "5877:1:52", + "nodeType": "VariableDeclaration", + "scope": 8667, + "src": "5869:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5869:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5857:22:52" + }, + "returnParameters": { + "id": 8653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8652, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8667, + "src": "5903:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5903:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5902:9:52" + }, + "scope": 9938, + "src": "5841:153:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8707, + "nodeType": "Block", + "src": "6286:633:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8677, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8672, + "src": "6300:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 8678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6305:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6300:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8688, + "nodeType": "IfStatement", + "src": "6296:150:52", + "trueBody": { + "id": 8687, + "nodeType": "Block", + "src": "6308:138:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 8683, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "6412:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6418:16:52", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6448, + "src": "6412:22:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8680, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "6400:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6406:5:52", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6480, + "src": "6400:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 8685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6400:35:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8686, + "nodeType": "ExpressionStatement", + "src": "6400:35:52" + } + ] + } + }, + { + "id": 8706, + "nodeType": "UncheckedBlock", + "src": "6829:84:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8691, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8670, + "src": "6876:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6880:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6876:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8689, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "6860:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6869:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "6860:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6860:22:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8695, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8670, + "src": "6887:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 8696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6891:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6887:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8698, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6886:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 8699, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8672, + "src": "6896:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6886:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 8701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6900:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6886:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8703, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6885:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6860:42:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8676, + "id": 8705, + "nodeType": "Return", + "src": "6853:49:52" + } + ] + } + ] + }, + "documentation": { + "id": 8668, + "nodeType": "StructuredDocumentation", + "src": "6000:210:52", + "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": 8708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "6224:7:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8670, + "mutability": "mutable", + "name": "a", + "nameLocation": "6240:1:52", + "nodeType": "VariableDeclaration", + "scope": 8708, + "src": "6232:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8672, + "mutability": "mutable", + "name": "b", + "nameLocation": "6251:1:52", + "nodeType": "VariableDeclaration", + "scope": 8708, + "src": "6243:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6243:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6231:22:52" + }, + "returnParameters": { + "id": 8676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8675, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8708, + "src": "6277:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6277:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6276:9:52" + }, + "scope": 9938, + "src": "6215:704:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8843, + "nodeType": "Block", + "src": "7340:3585:52", + "statements": [ + { + "id": 8842, + "nodeType": "UncheckedBlock", + "src": "7350:3569:52", + "statements": [ + { + "assignments": [ + 8721, + 8723 + ], + "declarations": [ + { + "constant": false, + "id": 8721, + "mutability": "mutable", + "name": "high", + "nameLocation": "7383:4:52", + "nodeType": "VariableDeclaration", + "scope": 8842, + "src": "7375:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7375:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8723, + "mutability": "mutable", + "name": "low", + "nameLocation": "7397:3:52", + "nodeType": "VariableDeclaration", + "scope": 8842, + "src": "7389:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7389:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8728, + "initialValue": { + "arguments": [ + { + "id": 8725, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8711, + "src": "7411:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8726, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8713, + "src": "7414:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8724, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "7404:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 8727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7404:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7374:42:52" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8729, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8721, + "src": "7498:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 8730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7506:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7498:9:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8737, + "nodeType": "IfStatement", + "src": "7494:365:52", + "trueBody": { + "id": 8736, + "nodeType": "Block", + "src": "7509:350:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8732, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8723, + "src": "7827:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 8733, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "7833:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7827:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8719, + "id": 8735, + "nodeType": "Return", + "src": "7820:24:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8738, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "7969:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 8739, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8721, + "src": "7984:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7969:19:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8756, + "nodeType": "IfStatement", + "src": "7965:142:52", + "trueBody": { + "id": 8755, + "nodeType": "Block", + "src": "7990:117:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8745, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "8028:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 8746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8043:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8028:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 8748, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "8046:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8052:16:52", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6448, + "src": "8046:22:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8750, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "8070:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8076:14:52", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 6444, + "src": "8070:20:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8744, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "8020:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8020:71:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8741, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "8008:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8014:5:52", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6480, + "src": "8008:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8008:84:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8754, + "nodeType": "ExpressionStatement", + "src": "8008:84:52" + } + ] + } + }, + { + "assignments": [ + 8758 + ], + "declarations": [ + { + "constant": false, + "id": 8758, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "8367:9:52", + "nodeType": "VariableDeclaration", + "scope": 8842, + "src": "8359:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8359:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8759, + "nodeType": "VariableDeclarationStatement", + "src": "8359:17:52" + }, + { + "AST": { + "nativeSrc": "8415:283:52", + "nodeType": "YulBlock", + "src": "8415:283:52", + "statements": [ + { + "nativeSrc": "8484:38:52", + "nodeType": "YulAssignment", + "src": "8484:38:52", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "8504:1:52", + "nodeType": "YulIdentifier", + "src": "8504:1:52" + }, + { + "name": "y", + "nativeSrc": "8507:1:52", + "nodeType": "YulIdentifier", + "src": "8507:1:52" + }, + { + "name": "denominator", + "nativeSrc": "8510:11:52", + "nodeType": "YulIdentifier", + "src": "8510:11:52" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "8497:6:52", + "nodeType": "YulIdentifier", + "src": "8497:6:52" + }, + "nativeSrc": "8497:25:52", + "nodeType": "YulFunctionCall", + "src": "8497:25:52" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "8484:9:52", + "nodeType": "YulIdentifier", + "src": "8484:9:52" + } + ] + }, + { + "nativeSrc": "8604:37:52", + "nodeType": "YulAssignment", + "src": "8604:37:52", + "value": { + "arguments": [ + { + "name": "high", + "nativeSrc": "8616:4:52", + "nodeType": "YulIdentifier", + "src": "8616:4:52" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "8625:9:52", + "nodeType": "YulIdentifier", + "src": "8625:9:52" + }, + { + "name": "low", + "nativeSrc": "8636:3:52", + "nodeType": "YulIdentifier", + "src": "8636:3:52" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8622:2:52", + "nodeType": "YulIdentifier", + "src": "8622:2:52" + }, + "nativeSrc": "8622:18:52", + "nodeType": "YulFunctionCall", + "src": "8622:18:52" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8612:3:52", + "nodeType": "YulIdentifier", + "src": "8612:3:52" + }, + "nativeSrc": "8612:29:52", + "nodeType": "YulFunctionCall", + "src": "8612:29:52" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "8604:4:52", + "nodeType": "YulIdentifier", + "src": "8604:4:52" + } + ] + }, + { + "nativeSrc": "8658:26:52", + "nodeType": "YulAssignment", + "src": "8658:26:52", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "8669:3:52", + "nodeType": "YulIdentifier", + "src": "8669:3:52" + }, + { + "name": "remainder", + "nativeSrc": "8674:9:52", + "nodeType": "YulIdentifier", + "src": "8674:9:52" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8665:3:52", + "nodeType": "YulIdentifier", + "src": "8665:3:52" + }, + "nativeSrc": "8665:19:52", + "nodeType": "YulFunctionCall", + "src": "8665:19:52" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "8658:3:52", + "nodeType": "YulIdentifier", + "src": "8658:3:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8715, + "isOffset": false, + "isSlot": false, + "src": "8510:11:52", + "valueSize": 1 + }, + { + "declaration": 8721, + "isOffset": false, + "isSlot": false, + "src": "8604:4:52", + "valueSize": 1 + }, + { + "declaration": 8721, + "isOffset": false, + "isSlot": false, + "src": "8616:4:52", + "valueSize": 1 + }, + { + "declaration": 8723, + "isOffset": false, + "isSlot": false, + "src": "8636:3:52", + "valueSize": 1 + }, + { + "declaration": 8723, + "isOffset": false, + "isSlot": false, + "src": "8658:3:52", + "valueSize": 1 + }, + { + "declaration": 8723, + "isOffset": false, + "isSlot": false, + "src": "8669:3:52", + "valueSize": 1 + }, + { + "declaration": 8758, + "isOffset": false, + "isSlot": false, + "src": "8484:9:52", + "valueSize": 1 + }, + { + "declaration": 8758, + "isOffset": false, + "isSlot": false, + "src": "8625:9:52", + "valueSize": 1 + }, + { + "declaration": 8758, + "isOffset": false, + "isSlot": false, + "src": "8674:9:52", + "valueSize": 1 + }, + { + "declaration": 8711, + "isOffset": false, + "isSlot": false, + "src": "8504:1:52", + "valueSize": 1 + }, + { + "declaration": 8713, + "isOffset": false, + "isSlot": false, + "src": "8507:1:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8760, + "nodeType": "InlineAssembly", + "src": "8390:308:52" + }, + { + "assignments": [ + 8762 + ], + "declarations": [ + { + "constant": false, + "id": 8762, + "mutability": "mutable", + "name": "twos", + "nameLocation": "8910:4:52", + "nodeType": "VariableDeclaration", + "scope": 8842, + "src": "8902:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8902:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8769, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8763, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "8917:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 8764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8932:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 8765, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "8936:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8932:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8767, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8931:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8917:31:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8902:46:52" + }, + { + "AST": { + "nativeSrc": "8987:359:52", + "nodeType": "YulBlock", + "src": "8987:359:52", + "statements": [ + { + "nativeSrc": "9052:37:52", + "nodeType": "YulAssignment", + "src": "9052:37:52", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "9071:11:52", + "nodeType": "YulIdentifier", + "src": "9071:11:52" + }, + { + "name": "twos", + "nativeSrc": "9084:4:52", + "nodeType": "YulIdentifier", + "src": "9084:4:52" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9067:3:52", + "nodeType": "YulIdentifier", + "src": "9067:3:52" + }, + "nativeSrc": "9067:22:52", + "nodeType": "YulFunctionCall", + "src": "9067:22:52" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "9052:11:52", + "nodeType": "YulIdentifier", + "src": "9052:11:52" + } + ] + }, + { + "nativeSrc": "9153:21:52", + "nodeType": "YulAssignment", + "src": "9153:21:52", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "9164:3:52", + "nodeType": "YulIdentifier", + "src": "9164:3:52" + }, + { + "name": "twos", + "nativeSrc": "9169:4:52", + "nodeType": "YulIdentifier", + "src": "9169:4:52" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9160:3:52", + "nodeType": "YulIdentifier", + "src": "9160:3:52" + }, + "nativeSrc": "9160:14:52", + "nodeType": "YulFunctionCall", + "src": "9160:14:52" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "9153:3:52", + "nodeType": "YulIdentifier", + "src": "9153:3:52" + } + ] + }, + { + "nativeSrc": "9293:39:52", + "nodeType": "YulAssignment", + "src": "9293:39:52", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9313:1:52", + "nodeType": "YulLiteral", + "src": "9313:1:52", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "9316:4:52", + "nodeType": "YulIdentifier", + "src": "9316:4:52" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9309:3:52", + "nodeType": "YulIdentifier", + "src": "9309:3:52" + }, + "nativeSrc": "9309:12:52", + "nodeType": "YulFunctionCall", + "src": "9309:12:52" + }, + { + "name": "twos", + "nativeSrc": "9323:4:52", + "nodeType": "YulIdentifier", + "src": "9323:4:52" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9305:3:52", + "nodeType": "YulIdentifier", + "src": "9305:3:52" + }, + "nativeSrc": "9305:23:52", + "nodeType": "YulFunctionCall", + "src": "9305:23:52" + }, + { + "kind": "number", + "nativeSrc": "9330:1:52", + "nodeType": "YulLiteral", + "src": "9330:1:52", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9301:3:52", + "nodeType": "YulIdentifier", + "src": "9301:3:52" + }, + "nativeSrc": "9301:31:52", + "nodeType": "YulFunctionCall", + "src": "9301:31:52" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "9293:4:52", + "nodeType": "YulIdentifier", + "src": "9293:4:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8715, + "isOffset": false, + "isSlot": false, + "src": "9052:11:52", + "valueSize": 1 + }, + { + "declaration": 8715, + "isOffset": false, + "isSlot": false, + "src": "9071:11:52", + "valueSize": 1 + }, + { + "declaration": 8723, + "isOffset": false, + "isSlot": false, + "src": "9153:3:52", + "valueSize": 1 + }, + { + "declaration": 8723, + "isOffset": false, + "isSlot": false, + "src": "9164:3:52", + "valueSize": 1 + }, + { + "declaration": 8762, + "isOffset": false, + "isSlot": false, + "src": "9084:4:52", + "valueSize": 1 + }, + { + "declaration": 8762, + "isOffset": false, + "isSlot": false, + "src": "9169:4:52", + "valueSize": 1 + }, + { + "declaration": 8762, + "isOffset": false, + "isSlot": false, + "src": "9293:4:52", + "valueSize": 1 + }, + { + "declaration": 8762, + "isOffset": false, + "isSlot": false, + "src": "9316:4:52", + "valueSize": 1 + }, + { + "declaration": 8762, + "isOffset": false, + "isSlot": false, + "src": "9323:4:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8770, + "nodeType": "InlineAssembly", + "src": "8962:384:52" + }, + { + "expression": { + "id": 8775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8771, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8723, + "src": "9409:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8772, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8721, + "src": "9416:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8773, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8762, + "src": "9423:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9416:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9409:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8776, + "nodeType": "ExpressionStatement", + "src": "9409:18:52" + }, + { + "assignments": [ + 8778 + ], + "declarations": [ + { + "constant": false, + "id": 8778, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "9770:7:52", + "nodeType": "VariableDeclaration", + "scope": 8842, + "src": "9762:15:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9762:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8785, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 8779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9781:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8780, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "9785:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9781:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8782, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9780:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 8783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9800:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9780:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9762:39:52" + }, + { + "expression": { + "id": 8792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8786, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10018:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10029:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8788, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10033:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8789, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10047:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10033:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10029:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10018:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8793, + "nodeType": "ExpressionStatement", + "src": "10018:36:52" + }, + { + "expression": { + "id": 8800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8794, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10088:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10099:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8796, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10103:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8797, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10117:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10099:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10088:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8801, + "nodeType": "ExpressionStatement", + "src": "10088:36:52" + }, + { + "expression": { + "id": 8808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8802, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10160:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10171:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8804, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10175:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8805, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10189:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10175:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10171:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10160:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8809, + "nodeType": "ExpressionStatement", + "src": "10160:36:52" + }, + { + "expression": { + "id": 8816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8810, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10231:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10242:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8812, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10246:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8813, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10260:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10246:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10242:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10231:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8817, + "nodeType": "ExpressionStatement", + "src": "10231:36:52" + }, + { + "expression": { + "id": 8824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8818, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10304:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10315:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8820, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10319:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8821, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10333:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10319:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10315:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10304:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8825, + "nodeType": "ExpressionStatement", + "src": "10304:36:52" + }, + { + "expression": { + "id": 8832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8826, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10378:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10389:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8828, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8715, + "src": "10393:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8829, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10407:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10393:21:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10389:25:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10378:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8833, + "nodeType": "ExpressionStatement", + "src": "10378:36:52" + }, + { + "expression": { + "id": 8838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8834, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8718, + "src": "10859:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8835, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8723, + "src": "10868:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8836, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8778, + "src": "10874:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10868:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10859:22:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8839, + "nodeType": "ExpressionStatement", + "src": "10859:22:52" + }, + { + "expression": { + "id": 8840, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8718, + "src": "10902:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8719, + "id": 8841, + "nodeType": "Return", + "src": "10895:13:52" + } + ] + } + ] + }, + "documentation": { + "id": 8709, + "nodeType": "StructuredDocumentation", + "src": "6925:312:52", + "text": " @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n 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": 8844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "7251:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8711, + "mutability": "mutable", + "name": "x", + "nameLocation": "7266:1:52", + "nodeType": "VariableDeclaration", + "scope": 8844, + "src": "7258:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7258:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8713, + "mutability": "mutable", + "name": "y", + "nameLocation": "7277:1:52", + "nodeType": "VariableDeclaration", + "scope": 8844, + "src": "7269:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7269:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8715, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "7288:11:52", + "nodeType": "VariableDeclaration", + "scope": 8844, + "src": "7280:19:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7280:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7257:43:52" + }, + "returnParameters": { + "id": 8719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8718, + "mutability": "mutable", + "name": "result", + "nameLocation": "7332:6:52", + "nodeType": "VariableDeclaration", + "scope": 8844, + "src": "7324:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7324:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7323:16:52" + }, + "scope": 9938, + "src": "7242:3683:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8880, + "nodeType": "Block", + "src": "11164:128:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8860, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8847, + "src": "11188:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8861, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8849, + "src": "11191:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8862, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8851, + "src": "11194:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8859, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8844, + 8881 + ], + "referencedDeclaration": 8844, + "src": "11181:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11181:25:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8867, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8854, + "src": "11242:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 8866, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "11225:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 8868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11225:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8870, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8847, + "src": "11262:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8871, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8849, + "src": "11265:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8872, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8851, + "src": "11268:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8869, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "11255:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11255:25:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11283:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11255:29:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11225:59:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8864, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "11209:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11218:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "11209:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11209:76:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11181:104:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8858, + "id": 8879, + "nodeType": "Return", + "src": "11174:111:52" + } + ] + }, + "documentation": { + "id": 8845, + "nodeType": "StructuredDocumentation", + "src": "10931:118:52", + "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 8881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "11063:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8847, + "mutability": "mutable", + "name": "x", + "nameLocation": "11078:1:52", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "11070:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11070:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8849, + "mutability": "mutable", + "name": "y", + "nameLocation": "11089:1:52", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "11081:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8848, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11081:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8851, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "11100:11:52", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "11092:19:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11092:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8854, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11122:8:52", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "11113:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 8853, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8852, + "name": "Rounding", + "nameLocations": [ + "11113:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "11113:8:52" + }, + "referencedDeclaration": 8329, + "src": "11113:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11069:62:52" + }, + "returnParameters": { + "id": 8858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8857, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "11155:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11155:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11154:9:52" + }, + "scope": 9938, + "src": "11054:238:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8930, + "nodeType": "Block", + "src": "11500:245:52", + "statements": [ + { + "id": 8929, + "nodeType": "UncheckedBlock", + "src": "11510:229:52", + "statements": [ + { + "assignments": [ + 8894, + 8896 + ], + "declarations": [ + { + "constant": false, + "id": 8894, + "mutability": "mutable", + "name": "high", + "nameLocation": "11543:4:52", + "nodeType": "VariableDeclaration", + "scope": 8929, + "src": "11535:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11535:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8896, + "mutability": "mutable", + "name": "low", + "nameLocation": "11557:3:52", + "nodeType": "VariableDeclaration", + "scope": 8929, + "src": "11549:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11549:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8901, + "initialValue": { + "arguments": [ + { + "id": 8898, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8884, + "src": "11571:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8899, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8886, + "src": "11574:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8897, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "11564:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 8900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11564:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11534:42:52" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8902, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8894, + "src": "11594:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 8903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11602:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 8904, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8888, + "src": "11607:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11602:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11594:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8915, + "nodeType": "IfStatement", + "src": "11590:86:52", + "trueBody": { + "id": 8914, + "nodeType": "Block", + "src": "11610:66:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 8910, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "11640:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11646:14:52", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 6444, + "src": "11640:20:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8907, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "11628:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 8909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11634:5:52", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6480, + "src": "11628:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 8912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11628:33:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8913, + "nodeType": "ExpressionStatement", + "src": "11628:33:52" + } + ] + } + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8916, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8894, + "src": "11697:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 8919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "323536", + "id": 8917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11706:3:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 8918, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8888, + "src": "11712:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11706:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "id": 8920, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11705:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "11697:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8922, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11696:19:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8923, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8896, + "src": "11719:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 8924, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8888, + "src": "11726:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11719:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11718:10:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11696:32:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8892, + "id": 8928, + "nodeType": "Return", + "src": "11689:39:52" + } + ] + } + ] + }, + "documentation": { + "id": 8882, + "nodeType": "StructuredDocumentation", + "src": "11298:111:52", + "text": " @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256." + }, + "id": 8931, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11423:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8884, + "mutability": "mutable", + "name": "x", + "nameLocation": "11438:1:52", + "nodeType": "VariableDeclaration", + "scope": 8931, + "src": "11430:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11430:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8886, + "mutability": "mutable", + "name": "y", + "nameLocation": "11449:1:52", + "nodeType": "VariableDeclaration", + "scope": 8931, + "src": "11441:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11441:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8888, + "mutability": "mutable", + "name": "n", + "nameLocation": "11458:1:52", + "nodeType": "VariableDeclaration", + "scope": 8931, + "src": "11452:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8887, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11452:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "11429:31:52" + }, + "returnParameters": { + "id": 8892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8891, + "mutability": "mutable", + "name": "result", + "nameLocation": "11492:6:52", + "nodeType": "VariableDeclaration", + "scope": 8931, + "src": "11484:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11484:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11483:16:52" + }, + "scope": 9938, + "src": "11414:331:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8969, + "nodeType": "Block", + "src": "11963:113:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8947, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "11987:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8948, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8936, + "src": "11990:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8949, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8938, + "src": "11993:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8946, + "name": "mulShr", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8931, + 8970 + ], + "referencedDeclaration": 8931, + "src": "11980:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint8) pure returns (uint256)" + } + }, + "id": 8950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11980:15:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8954, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8941, + "src": "12031:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 8953, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "12014:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 8955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12014:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8957, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "12051:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8958, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8936, + "src": "12054:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 8959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12057:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 8960, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8938, + "src": "12062:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12057:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8956, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "12044:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12044:20:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12067:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12044:24:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12014:54:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8951, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "11998:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12007:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "11998:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11998:71:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11980:89:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8945, + "id": 8968, + "nodeType": "Return", + "src": "11973:96:52" + } + ] + }, + "documentation": { + "id": 8932, + "nodeType": "StructuredDocumentation", + "src": "11751:109:52", + "text": " @dev Calculates x * y >> n with full precision, following the selected rounding direction." + }, + "id": 8970, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11874:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8934, + "mutability": "mutable", + "name": "x", + "nameLocation": "11889:1:52", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "11881:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11881:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8936, + "mutability": "mutable", + "name": "y", + "nameLocation": "11900:1:52", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "11892:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11892:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8938, + "mutability": "mutable", + "name": "n", + "nameLocation": "11909:1:52", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "11903:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8937, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11903:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8941, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11921:8:52", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "11912:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 8940, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8939, + "name": "Rounding", + "nameLocations": [ + "11912:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "11912:8:52" + }, + "referencedDeclaration": 8329, + "src": "11912:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11880:50:52" + }, + "returnParameters": { + "id": 8945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8944, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "11954:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11954:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11953:9:52" + }, + "scope": 9938, + "src": "11865:211:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9066, + "nodeType": "Block", + "src": "12710:1849:52", + "statements": [ + { + "id": 9065, + "nodeType": "UncheckedBlock", + "src": "12720:1833:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8980, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8975, + "src": "12748:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 8981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12753:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12748:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8985, + "nodeType": "IfStatement", + "src": "12744:20:52", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 8983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12763:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8979, + "id": 8984, + "nodeType": "Return", + "src": "12756:8:52" + } + }, + { + "assignments": [ + 8987 + ], + "declarations": [ + { + "constant": false, + "id": 8987, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "13243:9:52", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "13235:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13235:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8991, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8988, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8973, + "src": "13255:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 8989, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8975, + "src": "13259:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13255:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13235:25:52" + }, + { + "assignments": [ + 8993 + ], + "declarations": [ + { + "constant": false, + "id": 8993, + "mutability": "mutable", + "name": "gcd", + "nameLocation": "13282:3:52", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "13274:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13274:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8995, + "initialValue": { + "id": 8994, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8975, + "src": "13288:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13274:15:52" + }, + { + "assignments": [ + 8997 + ], + "declarations": [ + { + "constant": false, + "id": 8997, + "mutability": "mutable", + "name": "x", + "nameLocation": "13432:1:52", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "13425:8:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8996, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13425:6:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 8999, + "initialValue": { + "hexValue": "30", + "id": 8998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13436:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13425:12:52" + }, + { + "assignments": [ + 9001 + ], + "declarations": [ + { + "constant": false, + "id": 9001, + "mutability": "mutable", + "name": "y", + "nameLocation": "13458:1:52", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "13451:8:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9000, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13451:6:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 9003, + "initialValue": { + "hexValue": "31", + "id": 9002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13462:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13451:12:52" + }, + { + "body": { + "id": 9040, + "nodeType": "Block", + "src": "13501:882:52", + "statements": [ + { + "assignments": [ + 9008 + ], + "declarations": [ + { + "constant": false, + "id": 9008, + "mutability": "mutable", + "name": "quotient", + "nameLocation": "13527:8:52", + "nodeType": "VariableDeclaration", + "scope": 9040, + "src": "13519:16:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13519:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9012, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9009, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8993, + "src": "13538:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9010, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "13544:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13538:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13519:34:52" + }, + { + "expression": { + "id": 9023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 9013, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8993, + "src": "13573:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9014, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "13578:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9015, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13572:16:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 9016, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "13678:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9017, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8993, + "src": "13923:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9018, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "13929:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9019, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9008, + "src": "13941:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13929:20:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13923:26:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9022, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13591:376:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "13572:395:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9024, + "nodeType": "ExpressionStatement", + "src": "13572:395:52" + }, + { + "expression": { + "id": 9038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 9025, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8997, + "src": "13987:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 9026, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9001, + "src": "13990:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9027, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13986:6:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 9028, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9001, + "src": "14072:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9029, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8997, + "src": "14326:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9030, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9001, + "src": "14330:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 9033, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9008, + "src": "14341:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14334:6:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 9031, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "14334:6:52", + "typeDescriptions": {} + } + }, + "id": 9034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14334:16:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14330:20:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14326:24:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9037, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13995:373:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "src": "13986:382:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9039, + "nodeType": "ExpressionStatement", + "src": "13986:382:52" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9004, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "13485:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13485:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9041, + "nodeType": "WhileStatement", + "src": "13478:905:52" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9042, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8993, + "src": "14401:3:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "31", + "id": 9043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14408:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14401:8:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9047, + "nodeType": "IfStatement", + "src": "14397:22:52", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 9045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14418:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8979, + "id": 9046, + "nodeType": "Return", + "src": "14411:8:52" + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9049, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8997, + "src": "14470:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 9050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14474:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14470:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9052, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8975, + "src": "14477:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 9056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "14489:2:52", + "subExpression": { + "id": 9055, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8997, + "src": "14490:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14481:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14481:7:52", + "typeDescriptions": {} + } + }, + "id": 9057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14481:11:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14477:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 9061, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8997, + "src": "14502:1:52", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14494:7:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14494:7:52", + "typeDescriptions": {} + } + }, + "id": 9062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14494:10:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9048, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8606, + "src": "14462:7:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14462:43:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8979, + "id": 9064, + "nodeType": "Return", + "src": "14455:50:52" + } + ] + } + ] + }, + "documentation": { + "id": 8971, + "nodeType": "StructuredDocumentation", + "src": "12082:553:52", + "text": " @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}." + }, + "id": 9067, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invMod", + "nameLocation": "12649:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8973, + "mutability": "mutable", + "name": "a", + "nameLocation": "12664:1:52", + "nodeType": "VariableDeclaration", + "scope": 9067, + "src": "12656:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12656:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8975, + "mutability": "mutable", + "name": "n", + "nameLocation": "12675:1:52", + "nodeType": "VariableDeclaration", + "scope": 9067, + "src": "12667:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8974, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12667:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12655:22:52" + }, + "returnParameters": { + "id": 8979, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8978, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9067, + "src": "12701:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12701:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12700:9:52" + }, + "scope": 9938, + "src": "12640:1919:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9087, + "nodeType": "Block", + "src": "15159:82:52", + "statements": [ + { + "id": 9086, + "nodeType": "UncheckedBlock", + "src": "15169:66:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9079, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9070, + "src": "15212:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9080, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9072, + "src": "15215:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "32", + "id": 9081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15219:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15215:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9083, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9072, + "src": "15222:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9077, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "15200:4:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$9938_$", + "typeString": "type(library Math)" + } + }, + "id": 9078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15205:6:52", + "memberName": "modExp", + "nodeType": "MemberAccess", + "referencedDeclaration": 9124, + "src": "15200:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 9084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15200:24:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9076, + "id": 9085, + "nodeType": "Return", + "src": "15193:31:52" + } + ] + } + ] + }, + "documentation": { + "id": 9068, + "nodeType": "StructuredDocumentation", + "src": "14565:514:52", + "text": " @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`." + }, + "id": 9088, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invModPrime", + "nameLocation": "15093:11:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9070, + "mutability": "mutable", + "name": "a", + "nameLocation": "15113:1:52", + "nodeType": "VariableDeclaration", + "scope": 9088, + "src": "15105:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15105:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9072, + "mutability": "mutable", + "name": "p", + "nameLocation": "15124:1:52", + "nodeType": "VariableDeclaration", + "scope": 9088, + "src": "15116:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15116:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15104:22:52" + }, + "returnParameters": { + "id": 9076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9075, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9088, + "src": "15150:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9074, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15150:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15149:9:52" + }, + "scope": 9938, + "src": "15084:157:52", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9123, + "nodeType": "Block", + "src": "16011:174:52", + "statements": [ + { + "assignments": [ + 9101, + 9103 + ], + "declarations": [ + { + "constant": false, + "id": 9101, + "mutability": "mutable", + "name": "success", + "nameLocation": "16027:7:52", + "nodeType": "VariableDeclaration", + "scope": 9123, + "src": "16022:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9100, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16022:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9103, + "mutability": "mutable", + "name": "result", + "nameLocation": "16044:6:52", + "nodeType": "VariableDeclaration", + "scope": 9123, + "src": "16036:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16036:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9109, + "initialValue": { + "arguments": [ + { + "id": 9105, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9091, + "src": "16064:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9106, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9093, + "src": "16067:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9107, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9095, + "src": "16070:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9104, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9148, + 9230 + ], + "referencedDeclaration": 9148, + "src": "16054:9:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (bool,uint256)" + } + }, + "id": 9108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16054:18:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16021:51:52" + }, + { + "condition": { + "id": 9111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16086:8:52", + "subExpression": { + "id": 9110, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9101, + "src": "16087:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9120, + "nodeType": "IfStatement", + "src": "16082:74:52", + "trueBody": { + "id": 9119, + "nodeType": "Block", + "src": "16096:60:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9115, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "16122:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 9116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16128:16:52", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6448, + "src": "16122:22:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9112, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "16110:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 9114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16116:5:52", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6480, + "src": "16110:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:35:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9118, + "nodeType": "ExpressionStatement", + "src": "16110:35:52" + } + ] + } + }, + { + "expression": { + "id": 9121, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9103, + "src": "16172:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9099, + "id": 9122, + "nodeType": "Return", + "src": "16165:13:52" + } + ] + }, + "documentation": { + "id": 9089, + "nodeType": "StructuredDocumentation", + "src": "15247:678:52", + "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0." + }, + "id": 9124, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "15939:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9091, + "mutability": "mutable", + "name": "b", + "nameLocation": "15954:1:52", + "nodeType": "VariableDeclaration", + "scope": 9124, + "src": "15946:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15946:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9093, + "mutability": "mutable", + "name": "e", + "nameLocation": "15965:1:52", + "nodeType": "VariableDeclaration", + "scope": 9124, + "src": "15957:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15957:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9095, + "mutability": "mutable", + "name": "m", + "nameLocation": "15976:1:52", + "nodeType": "VariableDeclaration", + "scope": 9124, + "src": "15968:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15968:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15945:33:52" + }, + "returnParameters": { + "id": 9099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9098, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9124, + "src": "16002:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16002:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16001:9:52" + }, + "scope": 9938, + "src": "15930:255:52", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9147, + "nodeType": "Block", + "src": "17039:1493:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9138, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9131, + "src": "17053:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17058:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17053:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9145, + "nodeType": "IfStatement", + "src": "17049:29:52", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 9141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17069:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 9142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17076:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 9143, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17068:10:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 9137, + "id": 9144, + "nodeType": "Return", + "src": "17061:17:52" + } + }, + { + "AST": { + "nativeSrc": "17113:1413:52", + "nodeType": "YulBlock", + "src": "17113:1413:52", + "statements": [ + { + "nativeSrc": "17127:22:52", + "nodeType": "YulVariableDeclaration", + "src": "17127:22:52", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17144:4:52", + "nodeType": "YulLiteral", + "src": "17144:4:52", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17138:5:52", + "nodeType": "YulIdentifier", + "src": "17138:5:52" + }, + "nativeSrc": "17138:11:52", + "nodeType": "YulFunctionCall", + "src": "17138:11:52" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "17131:3:52", + "nodeType": "YulTypedName", + "src": "17131:3:52", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18057:3:52", + "nodeType": "YulIdentifier", + "src": "18057:3:52" + }, + { + "kind": "number", + "nativeSrc": "18062:4:52", + "nodeType": "YulLiteral", + "src": "18062:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18050:6:52", + "nodeType": "YulIdentifier", + "src": "18050:6:52" + }, + "nativeSrc": "18050:17:52", + "nodeType": "YulFunctionCall", + "src": "18050:17:52" + }, + "nativeSrc": "18050:17:52", + "nodeType": "YulExpressionStatement", + "src": "18050:17:52" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18091:3:52", + "nodeType": "YulIdentifier", + "src": "18091:3:52" + }, + { + "kind": "number", + "nativeSrc": "18096:4:52", + "nodeType": "YulLiteral", + "src": "18096:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18087:3:52", + "nodeType": "YulIdentifier", + "src": "18087:3:52" + }, + "nativeSrc": "18087:14:52", + "nodeType": "YulFunctionCall", + "src": "18087:14:52" + }, + { + "kind": "number", + "nativeSrc": "18103:4:52", + "nodeType": "YulLiteral", + "src": "18103:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18080:6:52", + "nodeType": "YulIdentifier", + "src": "18080:6:52" + }, + "nativeSrc": "18080:28:52", + "nodeType": "YulFunctionCall", + "src": "18080:28:52" + }, + "nativeSrc": "18080:28:52", + "nodeType": "YulExpressionStatement", + "src": "18080:28:52" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18132:3:52", + "nodeType": "YulIdentifier", + "src": "18132:3:52" + }, + { + "kind": "number", + "nativeSrc": "18137:4:52", + "nodeType": "YulLiteral", + "src": "18137:4:52", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18128:3:52", + "nodeType": "YulIdentifier", + "src": "18128:3:52" + }, + "nativeSrc": "18128:14:52", + "nodeType": "YulFunctionCall", + "src": "18128:14:52" + }, + { + "kind": "number", + "nativeSrc": "18144:4:52", + "nodeType": "YulLiteral", + "src": "18144:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18121:6:52", + "nodeType": "YulIdentifier", + "src": "18121:6:52" + }, + "nativeSrc": "18121:28:52", + "nodeType": "YulFunctionCall", + "src": "18121:28:52" + }, + "nativeSrc": "18121:28:52", + "nodeType": "YulExpressionStatement", + "src": "18121:28:52" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18173:3:52", + "nodeType": "YulIdentifier", + "src": "18173:3:52" + }, + { + "kind": "number", + "nativeSrc": "18178:4:52", + "nodeType": "YulLiteral", + "src": "18178:4:52", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18169:3:52", + "nodeType": "YulIdentifier", + "src": "18169:3:52" + }, + "nativeSrc": "18169:14:52", + "nodeType": "YulFunctionCall", + "src": "18169:14:52" + }, + { + "name": "b", + "nativeSrc": "18185:1:52", + "nodeType": "YulIdentifier", + "src": "18185:1:52" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18162:6:52", + "nodeType": "YulIdentifier", + "src": "18162:6:52" + }, + "nativeSrc": "18162:25:52", + "nodeType": "YulFunctionCall", + "src": "18162:25:52" + }, + "nativeSrc": "18162:25:52", + "nodeType": "YulExpressionStatement", + "src": "18162:25:52" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18211:3:52", + "nodeType": "YulIdentifier", + "src": "18211:3:52" + }, + { + "kind": "number", + "nativeSrc": "18216:4:52", + "nodeType": "YulLiteral", + "src": "18216:4:52", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18207:3:52", + "nodeType": "YulIdentifier", + "src": "18207:3:52" + }, + "nativeSrc": "18207:14:52", + "nodeType": "YulFunctionCall", + "src": "18207:14:52" + }, + { + "name": "e", + "nativeSrc": "18223:1:52", + "nodeType": "YulIdentifier", + "src": "18223:1:52" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18200:6:52", + "nodeType": "YulIdentifier", + "src": "18200:6:52" + }, + "nativeSrc": "18200:25:52", + "nodeType": "YulFunctionCall", + "src": "18200:25:52" + }, + "nativeSrc": "18200:25:52", + "nodeType": "YulExpressionStatement", + "src": "18200:25:52" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18249:3:52", + "nodeType": "YulIdentifier", + "src": "18249:3:52" + }, + { + "kind": "number", + "nativeSrc": "18254:4:52", + "nodeType": "YulLiteral", + "src": "18254:4:52", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18245:3:52", + "nodeType": "YulIdentifier", + "src": "18245:3:52" + }, + "nativeSrc": "18245:14:52", + "nodeType": "YulFunctionCall", + "src": "18245:14:52" + }, + { + "name": "m", + "nativeSrc": "18261:1:52", + "nodeType": "YulIdentifier", + "src": "18261:1:52" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18238:6:52", + "nodeType": "YulIdentifier", + "src": "18238:6:52" + }, + "nativeSrc": "18238:25:52", + "nodeType": "YulFunctionCall", + "src": "18238:25:52" + }, + "nativeSrc": "18238:25:52", + "nodeType": "YulExpressionStatement", + "src": "18238:25:52" + }, + { + "nativeSrc": "18425:57:52", + "nodeType": "YulAssignment", + "src": "18425:57:52", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18447:3:52", + "nodeType": "YulIdentifier", + "src": "18447:3:52" + }, + "nativeSrc": "18447:5:52", + "nodeType": "YulFunctionCall", + "src": "18447:5:52" + }, + { + "kind": "number", + "nativeSrc": "18454:4:52", + "nodeType": "YulLiteral", + "src": "18454:4:52", + "type": "", + "value": "0x05" + }, + { + "name": "ptr", + "nativeSrc": "18460:3:52", + "nodeType": "YulIdentifier", + "src": "18460:3:52" + }, + { + "kind": "number", + "nativeSrc": "18465:4:52", + "nodeType": "YulLiteral", + "src": "18465:4:52", + "type": "", + "value": "0xc0" + }, + { + "kind": "number", + "nativeSrc": "18471:4:52", + "nodeType": "YulLiteral", + "src": "18471:4:52", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "18477:4:52", + "nodeType": "YulLiteral", + "src": "18477:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18436:10:52", + "nodeType": "YulIdentifier", + "src": "18436:10:52" + }, + "nativeSrc": "18436:46:52", + "nodeType": "YulFunctionCall", + "src": "18436:46:52" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18425:7:52", + "nodeType": "YulIdentifier", + "src": "18425:7:52" + } + ] + }, + { + "nativeSrc": "18495:21:52", + "nodeType": "YulAssignment", + "src": "18495:21:52", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18511:4:52", + "nodeType": "YulLiteral", + "src": "18511:4:52", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18505:5:52", + "nodeType": "YulIdentifier", + "src": "18505:5:52" + }, + "nativeSrc": "18505:11:52", + "nodeType": "YulFunctionCall", + "src": "18505:11:52" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18495:6:52", + "nodeType": "YulIdentifier", + "src": "18495:6:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9127, + "isOffset": false, + "isSlot": false, + "src": "18185:1:52", + "valueSize": 1 + }, + { + "declaration": 9129, + "isOffset": false, + "isSlot": false, + "src": "18223:1:52", + "valueSize": 1 + }, + { + "declaration": 9131, + "isOffset": false, + "isSlot": false, + "src": "18261:1:52", + "valueSize": 1 + }, + { + "declaration": 9136, + "isOffset": false, + "isSlot": false, + "src": "18495:6:52", + "valueSize": 1 + }, + { + "declaration": 9134, + "isOffset": false, + "isSlot": false, + "src": "18425:7:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9146, + "nodeType": "InlineAssembly", + "src": "17088:1438:52" + } + ] + }, + "documentation": { + "id": 9125, + "nodeType": "StructuredDocumentation", + "src": "16191:738:52", + "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0." + }, + "id": 9148, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "16943:9:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9127, + "mutability": "mutable", + "name": "b", + "nameLocation": "16961:1:52", + "nodeType": "VariableDeclaration", + "scope": 9148, + "src": "16953:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16953:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9129, + "mutability": "mutable", + "name": "e", + "nameLocation": "16972:1:52", + "nodeType": "VariableDeclaration", + "scope": 9148, + "src": "16964:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16964:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9131, + "mutability": "mutable", + "name": "m", + "nameLocation": "16983:1:52", + "nodeType": "VariableDeclaration", + "scope": 9148, + "src": "16975:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16975:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16952:33:52" + }, + "returnParameters": { + "id": 9137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9134, + "mutability": "mutable", + "name": "success", + "nameLocation": "17014:7:52", + "nodeType": "VariableDeclaration", + "scope": 9148, + "src": "17009:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9133, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17009:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9136, + "mutability": "mutable", + "name": "result", + "nameLocation": "17031:6:52", + "nodeType": "VariableDeclaration", + "scope": 9148, + "src": "17023:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17023:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17008:30:52" + }, + "scope": 9938, + "src": "16934:1598:52", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9183, + "nodeType": "Block", + "src": "18729:179:52", + "statements": [ + { + "assignments": [ + 9161, + 9163 + ], + "declarations": [ + { + "constant": false, + "id": 9161, + "mutability": "mutable", + "name": "success", + "nameLocation": "18745:7:52", + "nodeType": "VariableDeclaration", + "scope": 9183, + "src": "18740:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9160, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18740:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9163, + "mutability": "mutable", + "name": "result", + "nameLocation": "18767:6:52", + "nodeType": "VariableDeclaration", + "scope": 9183, + "src": "18754:19:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9162, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18754:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 9169, + "initialValue": { + "arguments": [ + { + "id": 9165, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9151, + "src": "18787:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9166, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9153, + "src": "18790:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9167, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9155, + "src": "18793:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9164, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9148, + 9230 + ], + "referencedDeclaration": 9230, + "src": "18777:9:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 9168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18777:18:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18739:56:52" + }, + { + "condition": { + "id": 9171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18809:8:52", + "subExpression": { + "id": 9170, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9161, + "src": "18810:7:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9180, + "nodeType": "IfStatement", + "src": "18805:74:52", + "trueBody": { + "id": 9179, + "nodeType": "Block", + "src": "18819:60:52", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9175, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "18845:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 9176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18851:16:52", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6448, + "src": "18845:22:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9172, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6481, + "src": "18833:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6481_$", + "typeString": "type(library Panic)" + } + }, + "id": 9174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18839:5:52", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6480, + "src": "18833:11:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18833:35:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9178, + "nodeType": "ExpressionStatement", + "src": "18833:35:52" + } + ] + } + }, + { + "expression": { + "id": 9181, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9163, + "src": "18895:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 9159, + "id": 9182, + "nodeType": "Return", + "src": "18888:13:52" + } + ] + }, + "documentation": { + "id": 9149, + "nodeType": "StructuredDocumentation", + "src": "18538:85:52", + "text": " @dev Variant of {modExp} that supports inputs of arbitrary length." + }, + "id": 9184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "18637:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9151, + "mutability": "mutable", + "name": "b", + "nameLocation": "18657:1:52", + "nodeType": "VariableDeclaration", + "scope": 9184, + "src": "18644:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9150, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18644:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9153, + "mutability": "mutable", + "name": "e", + "nameLocation": "18673:1:52", + "nodeType": "VariableDeclaration", + "scope": 9184, + "src": "18660:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9152, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18660:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9155, + "mutability": "mutable", + "name": "m", + "nameLocation": "18689:1:52", + "nodeType": "VariableDeclaration", + "scope": 9184, + "src": "18676:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9154, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18676:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18643:48:52" + }, + "returnParameters": { + "id": 9159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9158, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9184, + "src": "18715:12:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9157, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18715:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18714:14:52" + }, + "scope": 9938, + "src": "18628:280:52", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9229, + "nodeType": "Block", + "src": "19162:771:52", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 9199, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9191, + "src": "19187:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9198, + "name": "_zeroBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9263, + "src": "19176:10:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory) pure returns (bool)" + } + }, + "id": 9200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19176:13:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9208, + "nodeType": "IfStatement", + "src": "19172:47:52", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 9201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19199:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 9204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19216:1:52", + "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": 9203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "19206:9:52", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 9202, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19210:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 9205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19206:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 9206, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19198:21:52", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "functionReturnParameters": 9197, + "id": 9207, + "nodeType": "Return", + "src": "19191:28:52" + } + }, + { + "assignments": [ + 9210 + ], + "declarations": [ + { + "constant": false, + "id": 9210, + "mutability": "mutable", + "name": "mLen", + "nameLocation": "19238:4:52", + "nodeType": "VariableDeclaration", + "scope": 9229, + "src": "19230:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19230:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9213, + "initialValue": { + "expression": { + "id": 9211, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9191, + "src": "19245:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19247:6:52", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19245:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19230:23:52" + }, + { + "expression": { + "id": 9226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9214, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9196, + "src": "19335:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 9217, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9187, + "src": "19361:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19363:6:52", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19361:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 9219, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9189, + "src": "19371:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19373:6:52", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19371:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9221, + "name": "mLen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9210, + "src": "19381:4:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9222, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9187, + "src": "19387:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9223, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9189, + "src": "19390:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9224, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9191, + "src": "19393:1:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 9215, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "19344:3:52", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 9216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19348:12:52", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "19344:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 9225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19344:51:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "19335:60:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9227, + "nodeType": "ExpressionStatement", + "src": "19335:60:52" + }, + { + "AST": { + "nativeSrc": "19431:496:52", + "nodeType": "YulBlock", + "src": "19431:496:52", + "statements": [ + { + "nativeSrc": "19445:32:52", + "nodeType": "YulVariableDeclaration", + "src": "19445:32:52", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19464:6:52", + "nodeType": "YulIdentifier", + "src": "19464:6:52" + }, + { + "kind": "number", + "nativeSrc": "19472:4:52", + "nodeType": "YulLiteral", + "src": "19472:4:52", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19460:3:52", + "nodeType": "YulIdentifier", + "src": "19460:3:52" + }, + "nativeSrc": "19460:17:52", + "nodeType": "YulFunctionCall", + "src": "19460:17:52" + }, + "variables": [ + { + "name": "dataPtr", + "nativeSrc": "19449:7:52", + "nodeType": "YulTypedName", + "src": "19449:7:52", + "type": "" + } + ] + }, + { + "nativeSrc": "19567:73:52", + "nodeType": "YulAssignment", + "src": "19567:73:52", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19589:3:52", + "nodeType": "YulIdentifier", + "src": "19589:3:52" + }, + "nativeSrc": "19589:5:52", + "nodeType": "YulFunctionCall", + "src": "19589:5:52" + }, + { + "kind": "number", + "nativeSrc": "19596:4:52", + "nodeType": "YulLiteral", + "src": "19596:4:52", + "type": "", + "value": "0x05" + }, + { + "name": "dataPtr", + "nativeSrc": "19602:7:52", + "nodeType": "YulIdentifier", + "src": "19602:7:52" + }, + { + "arguments": [ + { + "name": "result", + "nativeSrc": "19617:6:52", + "nodeType": "YulIdentifier", + "src": "19617:6:52" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19611:5:52", + "nodeType": "YulIdentifier", + "src": "19611:5:52" + }, + "nativeSrc": "19611:13:52", + "nodeType": "YulFunctionCall", + "src": "19611:13:52" + }, + { + "name": "dataPtr", + "nativeSrc": "19626:7:52", + "nodeType": "YulIdentifier", + "src": "19626:7:52" + }, + { + "name": "mLen", + "nativeSrc": "19635:4:52", + "nodeType": "YulIdentifier", + "src": "19635:4:52" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19578:10:52", + "nodeType": "YulIdentifier", + "src": "19578:10:52" + }, + "nativeSrc": "19578:62:52", + "nodeType": "YulFunctionCall", + "src": "19578:62:52" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19567:7:52", + "nodeType": "YulIdentifier", + "src": "19567:7:52" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19796:6:52", + "nodeType": "YulIdentifier", + "src": "19796:6:52" + }, + { + "name": "mLen", + "nativeSrc": "19804:4:52", + "nodeType": "YulIdentifier", + "src": "19804:4:52" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19789:6:52", + "nodeType": "YulIdentifier", + "src": "19789:6:52" + }, + "nativeSrc": "19789:20:52", + "nodeType": "YulFunctionCall", + "src": "19789:20:52" + }, + "nativeSrc": "19789:20:52", + "nodeType": "YulExpressionStatement", + "src": "19789:20:52" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19892:4:52", + "nodeType": "YulLiteral", + "src": "19892:4:52", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "19902:7:52", + "nodeType": "YulIdentifier", + "src": "19902:7:52" + }, + { + "name": "mLen", + "nativeSrc": "19911:4:52", + "nodeType": "YulIdentifier", + "src": "19911:4:52" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19898:3:52", + "nodeType": "YulIdentifier", + "src": "19898:3:52" + }, + "nativeSrc": "19898:18:52", + "nodeType": "YulFunctionCall", + "src": "19898:18:52" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19885:6:52", + "nodeType": "YulIdentifier", + "src": "19885:6:52" + }, + "nativeSrc": "19885:32:52", + "nodeType": "YulFunctionCall", + "src": "19885:32:52" + }, + "nativeSrc": "19885:32:52", + "nodeType": "YulExpressionStatement", + "src": "19885:32:52" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9210, + "isOffset": false, + "isSlot": false, + "src": "19635:4:52", + "valueSize": 1 + }, + { + "declaration": 9210, + "isOffset": false, + "isSlot": false, + "src": "19804:4:52", + "valueSize": 1 + }, + { + "declaration": 9210, + "isOffset": false, + "isSlot": false, + "src": "19911:4:52", + "valueSize": 1 + }, + { + "declaration": 9196, + "isOffset": false, + "isSlot": false, + "src": "19464:6:52", + "valueSize": 1 + }, + { + "declaration": 9196, + "isOffset": false, + "isSlot": false, + "src": "19617:6:52", + "valueSize": 1 + }, + { + "declaration": 9196, + "isOffset": false, + "isSlot": false, + "src": "19796:6:52", + "valueSize": 1 + }, + { + "declaration": 9194, + "isOffset": false, + "isSlot": false, + "src": "19567:7:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9228, + "nodeType": "InlineAssembly", + "src": "19406:521:52" + } + ] + }, + "documentation": { + "id": 9185, + "nodeType": "StructuredDocumentation", + "src": "18914:88:52", + "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length." + }, + "id": 9230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "19016:9:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9187, + "mutability": "mutable", + "name": "b", + "nameLocation": "19048:1:52", + "nodeType": "VariableDeclaration", + "scope": 9230, + "src": "19035:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19035:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9189, + "mutability": "mutable", + "name": "e", + "nameLocation": "19072:1:52", + "nodeType": "VariableDeclaration", + "scope": 9230, + "src": "19059:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9188, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19059:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9191, + "mutability": "mutable", + "name": "m", + "nameLocation": "19096:1:52", + "nodeType": "VariableDeclaration", + "scope": 9230, + "src": "19083:14:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9190, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19083:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19025:78:52" + }, + "returnParameters": { + "id": 9197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9194, + "mutability": "mutable", + "name": "success", + "nameLocation": "19132:7:52", + "nodeType": "VariableDeclaration", + "scope": 9230, + "src": "19127:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9193, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19127:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9196, + "mutability": "mutable", + "name": "result", + "nameLocation": "19154:6:52", + "nodeType": "VariableDeclaration", + "scope": 9230, + "src": "19141:19:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19141:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19126:35:52" + }, + "scope": 9938, + "src": "19007:926:52", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9262, + "nodeType": "Block", + "src": "20088:176:52", + "statements": [ + { + "body": { + "id": 9258, + "nodeType": "Block", + "src": "20145:92:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 9253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 9249, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9233, + "src": "20163:9:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9251, + "indexExpression": { + "id": 9250, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9239, + "src": "20173:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20163:12:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20179:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20163:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9257, + "nodeType": "IfStatement", + "src": "20159:68:52", + "trueBody": { + "id": 9256, + "nodeType": "Block", + "src": "20182:45:52", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 9254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20207:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 9237, + "id": 9255, + "nodeType": "Return", + "src": "20200:12:52" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9242, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9239, + "src": "20118:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 9243, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9233, + "src": "20122:9:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20132:6:52", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "20122:16:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20118:20:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9259, + "initializationExpression": { + "assignments": [ + 9239 + ], + "declarations": [ + { + "constant": false, + "id": 9239, + "mutability": "mutable", + "name": "i", + "nameLocation": "20111:1:52", + "nodeType": "VariableDeclaration", + "scope": 9259, + "src": "20103:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20103:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9241, + "initialValue": { + "hexValue": "30", + "id": 9240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20115:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20103:13:52" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 9247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "20140:3:52", + "subExpression": { + "id": 9246, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9239, + "src": "20142:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9248, + "nodeType": "ExpressionStatement", + "src": "20140:3:52" + }, + "nodeType": "ForStatement", + "src": "20098:139:52" + }, + { + "expression": { + "hexValue": "74727565", + "id": 9260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20253:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9237, + "id": 9261, + "nodeType": "Return", + "src": "20246:11:52" + } + ] + }, + "documentation": { + "id": 9231, + "nodeType": "StructuredDocumentation", + "src": "19939:72:52", + "text": " @dev Returns whether the provided byte array is zero." + }, + "id": 9263, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_zeroBytes", + "nameLocation": "20025:10:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9233, + "mutability": "mutable", + "name": "byteArray", + "nameLocation": "20049:9:52", + "nodeType": "VariableDeclaration", + "scope": 9263, + "src": "20036:22:52", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9232, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20036:5:52", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "20035:24:52" + }, + "returnParameters": { + "id": 9237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9236, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9263, + "src": "20082:4:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9235, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20082:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "20081:6:52" + }, + "scope": 9938, + "src": "20016:248:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 9481, + "nodeType": "Block", + "src": "20624:5124:52", + "statements": [ + { + "id": 9480, + "nodeType": "UncheckedBlock", + "src": "20634:5108:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9271, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "20728:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "31", + "id": 9272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20733:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20728:6:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9277, + "nodeType": "IfStatement", + "src": "20724:53:52", + "trueBody": { + "id": 9276, + "nodeType": "Block", + "src": "20736:41:52", + "statements": [ + { + "expression": { + "id": 9274, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "20761:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9270, + "id": 9275, + "nodeType": "Return", + "src": "20754:8:52" + } + ] + } + }, + { + "assignments": [ + 9279 + ], + "declarations": [ + { + "constant": false, + "id": 9279, + "mutability": "mutable", + "name": "aa", + "nameLocation": "21712:2:52", + "nodeType": "VariableDeclaration", + "scope": 9480, + "src": "21704:10:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21704:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9281, + "initialValue": { + "id": 9280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "21717:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21704:14:52" + }, + { + "assignments": [ + 9283 + ], + "declarations": [ + { + "constant": false, + "id": 9283, + "mutability": "mutable", + "name": "xn", + "nameLocation": "21740:2:52", + "nodeType": "VariableDeclaration", + "scope": 9480, + "src": "21732:10:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21732:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9285, + "initialValue": { + "hexValue": "31", + "id": 9284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21745:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21732:14:52" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9286, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "21765:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "id": 9289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21772:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "313238", + "id": 9288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21777:3:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21772:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + } + ], + "id": 9290, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21771:10:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + }, + "src": "21765:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9301, + "nodeType": "IfStatement", + "src": "21761:92:52", + "trueBody": { + "id": 9300, + "nodeType": "Block", + "src": "21783:70:52", + "statements": [ + { + "expression": { + "id": 9294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9292, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "21801:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 9293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21808:3:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21801:10:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9295, + "nodeType": "ExpressionStatement", + "src": "21801:10:52" + }, + { + "expression": { + "id": 9298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9296, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "21829:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3634", + "id": 9297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21836:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21829:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9299, + "nodeType": "ExpressionStatement", + "src": "21829:9:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9302, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "21870:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + }, + "id": 9305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21877:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3634", + "id": 9304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21882:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21877:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + } + ], + "id": 9306, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21876:9:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + }, + "src": "21870:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9317, + "nodeType": "IfStatement", + "src": "21866:90:52", + "trueBody": { + "id": 9316, + "nodeType": "Block", + "src": "21887:69:52", + "statements": [ + { + "expression": { + "id": 9310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9308, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "21905:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 9309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21912:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21905:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9311, + "nodeType": "ExpressionStatement", + "src": "21905:9:52" + }, + { + "expression": { + "id": 9314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9312, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "21932:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3332", + "id": 9313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21939:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21932:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9315, + "nodeType": "ExpressionStatement", + "src": "21932:9:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9318, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "21973:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 9321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21980:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3332", + "id": 9320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21985:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21980:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + } + ], + "id": 9322, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21979:9:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "21973:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9333, + "nodeType": "IfStatement", + "src": "21969:90:52", + "trueBody": { + "id": 9332, + "nodeType": "Block", + "src": "21990:69:52", + "statements": [ + { + "expression": { + "id": 9326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9324, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22008:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 9325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22015:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "22008:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9327, + "nodeType": "ExpressionStatement", + "src": "22008:9:52" + }, + { + "expression": { + "id": 9330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9328, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22035:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3136", + "id": 9329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22042:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22035:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9331, + "nodeType": "ExpressionStatement", + "src": "22035:9:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9334, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22076:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + }, + "id": 9337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22083:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3136", + "id": 9336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22088:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22083:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + } + ], + "id": 9338, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22082:9:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + }, + "src": "22076:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9349, + "nodeType": "IfStatement", + "src": "22072:89:52", + "trueBody": { + "id": 9348, + "nodeType": "Block", + "src": "22093:68:52", + "statements": [ + { + "expression": { + "id": 9342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9340, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22111:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 9341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22118:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22111:9:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9343, + "nodeType": "ExpressionStatement", + "src": "22111:9:52" + }, + { + "expression": { + "id": 9346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9344, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22138:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "38", + "id": 9345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22145:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22138:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9347, + "nodeType": "ExpressionStatement", + "src": "22138:8:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9350, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22178:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 9353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22185:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 9352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22190:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22185:6:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 9354, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22184:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + }, + "src": "22178:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9365, + "nodeType": "IfStatement", + "src": "22174:87:52", + "trueBody": { + "id": 9364, + "nodeType": "Block", + "src": "22194:67:52", + "statements": [ + { + "expression": { + "id": 9358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9356, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22212:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 9357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22219:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22212:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9359, + "nodeType": "ExpressionStatement", + "src": "22212:8:52" + }, + { + "expression": { + "id": 9362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9360, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22238:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "34", + "id": 9361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22245:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22238:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9363, + "nodeType": "ExpressionStatement", + "src": "22238:8:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9366, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22278:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "id": 9369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22285:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 9368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22290:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22285:6:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + } + ], + "id": 9370, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22284:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + }, + "src": "22278:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9381, + "nodeType": "IfStatement", + "src": "22274:87:52", + "trueBody": { + "id": 9380, + "nodeType": "Block", + "src": "22294:67:52", + "statements": [ + { + "expression": { + "id": 9374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9372, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22312:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 9373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22319:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22312:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9375, + "nodeType": "ExpressionStatement", + "src": "22312:8:52" + }, + { + "expression": { + "id": 9378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9376, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22338:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "32", + "id": 9377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22345:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22338:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9379, + "nodeType": "ExpressionStatement", + "src": "22338:8:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9382, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9279, + "src": "22378:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "id": 9385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22385:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 9384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22390:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22385:6:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + } + ], + "id": 9386, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22384:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + }, + "src": "22378:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9393, + "nodeType": "IfStatement", + "src": "22374:61:52", + "trueBody": { + "id": 9392, + "nodeType": "Block", + "src": "22394:41:52", + "statements": [ + { + "expression": { + "id": 9390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9388, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22412:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "31", + "id": 9389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22419:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22412:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9391, + "nodeType": "ExpressionStatement", + "src": "22412:8:52" + } + ] + } + }, + { + "expression": { + "id": 9401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9394, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22855:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 9395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22861:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9396, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "22865:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22861:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9398, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22860:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22872:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22860:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22855:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9402, + "nodeType": "ExpressionStatement", + "src": "22855:18:52" + }, + { + "expression": { + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9403, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24760:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9404, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24766:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9405, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "24771:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9406, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24775:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24771:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24766:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9409, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24765:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24782:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24765:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24760:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9413, + "nodeType": "ExpressionStatement", + "src": "24760:23:52" + }, + { + "expression": { + "id": 9423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9414, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24869:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9415, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24875:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9416, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "24880:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9417, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24884:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24880:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24875:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9420, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24874:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24891:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24874:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24869:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9424, + "nodeType": "ExpressionStatement", + "src": "24869:23:52" + }, + { + "expression": { + "id": 9434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9425, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24980:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9426, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24986:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9427, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "24991:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9428, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "24995:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24991:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24986:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24985:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25002:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24985:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24980:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9435, + "nodeType": "ExpressionStatement", + "src": "24980:23:52" + }, + { + "expression": { + "id": 9445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9436, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25089:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9437, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25095:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9438, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "25100:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9439, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25104:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25100:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25095:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9442, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25094:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25111:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25094:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25089:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9446, + "nodeType": "ExpressionStatement", + "src": "25089:23:52" + }, + { + "expression": { + "id": 9456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9447, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25199:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9448, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25205:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9449, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "25210:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9450, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25214:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25210:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25205:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25204:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25221:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25204:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25199:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9457, + "nodeType": "ExpressionStatement", + "src": "25199:23:52" + }, + { + "expression": { + "id": 9467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9458, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25309:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9459, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25315:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9460, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "25320:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9461, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25324:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25320:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25315:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9464, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25314:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25331:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25314:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25309:23:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9468, + "nodeType": "ExpressionStatement", + "src": "25309:23:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9469, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25698:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9472, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25719:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9473, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9266, + "src": "25724:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9474, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "25728:2:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25724:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25719:11:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9470, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "25703:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25712:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "25703:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25703:28:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25698:33:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9270, + "id": 9479, + "nodeType": "Return", + "src": "25691:40:52" + } + ] + } + ] + }, + "documentation": { + "id": 9264, + "nodeType": "StructuredDocumentation", + "src": "20270:292:52", + "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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations." + }, + "id": 9482, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "20576:4:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9266, + "mutability": "mutable", + "name": "a", + "nameLocation": "20589:1:52", + "nodeType": "VariableDeclaration", + "scope": 9482, + "src": "20581:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20581:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20580:11:52" + }, + "returnParameters": { + "id": 9270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9482, + "src": "20615:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20615:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20614:9:52" + }, + "scope": 9938, + "src": "20567:5181:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9515, + "nodeType": "Block", + "src": "25921:171:52", + "statements": [ + { + "id": 9514, + "nodeType": "UncheckedBlock", + "src": "25931:155:52", + "statements": [ + { + "assignments": [ + 9494 + ], + "declarations": [ + { + "constant": false, + "id": 9494, + "mutability": "mutable", + "name": "result", + "nameLocation": "25963:6:52", + "nodeType": "VariableDeclaration", + "scope": 9514, + "src": "25955:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25955:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9498, + "initialValue": { + "arguments": [ + { + "id": 9496, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9485, + "src": "25977:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9495, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9482, + 9516 + ], + "referencedDeclaration": 9482, + "src": "25972:4:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25972:7:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25955:24:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9499, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9494, + "src": "26000:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9503, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9488, + "src": "26042:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 9502, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "26025:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26025:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9505, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9494, + "src": "26055:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9506, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9494, + "src": "26064:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:15:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9508, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9485, + "src": "26073:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:19:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "26025:49:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9500, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26009:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26018:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26009:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26009:66:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26000:75:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9492, + "id": 9513, + "nodeType": "Return", + "src": "25993:82:52" + } + ] + } + ] + }, + "documentation": { + "id": 9483, + "nodeType": "StructuredDocumentation", + "src": "25754:86:52", + "text": " @dev Calculates sqrt(a), following the selected rounding direction." + }, + "id": 9516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "25854:4:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9485, + "mutability": "mutable", + "name": "a", + "nameLocation": "25867:1:52", + "nodeType": "VariableDeclaration", + "scope": 9516, + "src": "25859:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25859:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9488, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "25879:8:52", + "nodeType": "VariableDeclaration", + "scope": 9516, + "src": "25870:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9487, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9486, + "name": "Rounding", + "nameLocations": [ + "25870:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "25870:8:52" + }, + "referencedDeclaration": 8329, + "src": "25870:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "25858:30:52" + }, + "returnParameters": { + "id": 9492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9491, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9516, + "src": "25912:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25912:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "25911:9:52" + }, + "scope": 9938, + "src": "25845:247:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9606, + "nodeType": "Block", + "src": "26281:2334:52", + "statements": [ + { + "expression": { + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9524, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26363:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9527, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "26383:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 9528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26387:34:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "26383:38:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9525, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26367:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26376:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26367:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26367:55:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 9531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26426:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "26367:60:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26363:64:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9534, + "nodeType": "ExpressionStatement", + "src": "26363:64:52" + }, + { + "expression": { + "id": 9547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9535, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26503:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9538, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "26525:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9539, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26530:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26525:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9541, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26524:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 9542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26535:18:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "26524:29:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9536, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26508:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26517:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26508:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26508:46:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 9545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26558:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "26508:51:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26503:56:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9548, + "nodeType": "ExpressionStatement", + "src": "26503:56:52" + }, + { + "expression": { + "id": 9561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9549, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26634:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "26656:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9553, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26661:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26656:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9555, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26655:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 9556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26666:10:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "26655:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9550, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26639:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26648:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26639:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26639:38:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26681:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "26639:43:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26634:48:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9562, + "nodeType": "ExpressionStatement", + "src": "26634:48:52" + }, + { + "expression": { + "id": 9575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9563, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26757:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9566, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "26779:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9567, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26784:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26779:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9569, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26778:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26789:6:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "26778:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9564, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26762:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26771:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26762:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26762:34:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 9573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26800:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "26762:39:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26757:44:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9576, + "nodeType": "ExpressionStatement", + "src": "26757:44:52" + }, + { + "expression": { + "id": 9589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9577, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26874:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "26896:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9581, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26901:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26896:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9583, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26895:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 9584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26906:4:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "26895:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9578, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26879:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26888:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26879:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26879:32:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 9587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26915:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "26879:37:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26874:42:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9590, + "nodeType": "ExpressionStatement", + "src": "26874:42:52" + }, + { + "expression": { + "id": 9603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9591, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "26988:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9594, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "27010:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9595, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9522, + "src": "27015:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27010:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9597, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27009:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866", + "id": 9598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27020:3:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "27009:14:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9592, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "26993:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "27002:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "26993:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26993:31:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 9601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27028:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "26993:36:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26988:41:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9604, + "nodeType": "ExpressionStatement", + "src": "26988:41:52" + }, + { + "AST": { + "nativeSrc": "28490:119:52", + "nodeType": "YulBlock", + "src": "28490:119:52", + "statements": [ + { + "nativeSrc": "28504:95:52", + "nodeType": "YulAssignment", + "src": "28504:95:52", + "value": { + "arguments": [ + { + "name": "r", + "nativeSrc": "28512:1:52", + "nodeType": "YulIdentifier", + "src": "28512:1:52" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "r", + "nativeSrc": "28524:1:52", + "nodeType": "YulIdentifier", + "src": "28524:1:52" + }, + { + "name": "x", + "nativeSrc": "28527:1:52", + "nodeType": "YulIdentifier", + "src": "28527:1:52" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "28520:3:52", + "nodeType": "YulIdentifier", + "src": "28520:3:52" + }, + "nativeSrc": "28520:9:52", + "nodeType": "YulFunctionCall", + "src": "28520:9:52" + }, + { + "kind": "number", + "nativeSrc": "28531:66:52", + "nodeType": "YulLiteral", + "src": "28531:66:52", + "type": "", + "value": "0x0000010102020202030303030303030300000000000000000000000000000000" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "28515:4:52", + "nodeType": "YulIdentifier", + "src": "28515:4:52" + }, + "nativeSrc": "28515:83:52", + "nodeType": "YulFunctionCall", + "src": "28515:83:52" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "28509:2:52", + "nodeType": "YulIdentifier", + "src": "28509:2:52" + }, + "nativeSrc": "28509:90:52", + "nodeType": "YulFunctionCall", + "src": "28509:90:52" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "28504:1:52", + "nodeType": "YulIdentifier", + "src": "28504:1:52" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9522, + "isOffset": false, + "isSlot": false, + "src": "28504:1:52", + "valueSize": 1 + }, + { + "declaration": 9522, + "isOffset": false, + "isSlot": false, + "src": "28512:1:52", + "valueSize": 1 + }, + { + "declaration": 9522, + "isOffset": false, + "isSlot": false, + "src": "28524:1:52", + "valueSize": 1 + }, + { + "declaration": 9519, + "isOffset": false, + "isSlot": false, + "src": "28527:1:52", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9605, + "nodeType": "InlineAssembly", + "src": "28465:144:52" + } + ] + }, + "documentation": { + "id": 9517, + "nodeType": "StructuredDocumentation", + "src": "26098:119:52", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 9607, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "26231:4:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9519, + "mutability": "mutable", + "name": "x", + "nameLocation": "26244:1:52", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "26236:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26236:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26235:11:52" + }, + "returnParameters": { + "id": 9523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9522, + "mutability": "mutable", + "name": "r", + "nameLocation": "26278:1:52", + "nodeType": "VariableDeclaration", + "scope": 9607, + "src": "26270:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26270:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26269:11:52" + }, + "scope": 9938, + "src": "26222:2393:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9640, + "nodeType": "Block", + "src": "28848:175:52", + "statements": [ + { + "id": 9639, + "nodeType": "UncheckedBlock", + "src": "28858:159:52", + "statements": [ + { + "assignments": [ + 9619 + ], + "declarations": [ + { + "constant": false, + "id": 9619, + "mutability": "mutable", + "name": "result", + "nameLocation": "28890:6:52", + "nodeType": "VariableDeclaration", + "scope": 9639, + "src": "28882:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28882:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9623, + "initialValue": { + "arguments": [ + { + "id": 9621, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9610, + "src": "28904:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9620, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9607, + 9641 + ], + "referencedDeclaration": 9607, + "src": "28899:4:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28899:11:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28882:28:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9624, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9619, + "src": "28931:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9628, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9613, + "src": "28973:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 9627, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "28956:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28956:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28986:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 9631, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9619, + "src": "28991:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9610, + "src": "29000:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:19:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28956:49:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9625, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "28940:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "28949:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "28940:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28940:66:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28931:75:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9617, + "id": 9638, + "nodeType": "Return", + "src": "28924:82:52" + } + ] + } + ] + }, + "documentation": { + "id": 9608, + "nodeType": "StructuredDocumentation", + "src": "28621:142:52", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 9641, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "28777:4:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9610, + "mutability": "mutable", + "name": "value", + "nameLocation": "28790:5:52", + "nodeType": "VariableDeclaration", + "scope": 9641, + "src": "28782:13:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28782:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9613, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "28806:8:52", + "nodeType": "VariableDeclaration", + "scope": 9641, + "src": "28797:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9612, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9611, + "name": "Rounding", + "nameLocations": [ + "28797:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "28797:8:52" + }, + "referencedDeclaration": 8329, + "src": "28797:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "28781:34:52" + }, + "returnParameters": { + "id": 9617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9616, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9641, + "src": "28839:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28839:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "28838:9:52" + }, + "scope": 9938, + "src": "28768:255:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9769, + "nodeType": "Block", + "src": "29216:854:52", + "statements": [ + { + "assignments": [ + 9650 + ], + "declarations": [ + { + "constant": false, + "id": 9650, + "mutability": "mutable", + "name": "result", + "nameLocation": "29234:6:52", + "nodeType": "VariableDeclaration", + "scope": 9769, + "src": "29226:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29226:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9652, + "initialValue": { + "hexValue": "30", + "id": 9651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29243:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "29226:18:52" + }, + { + "id": 9766, + "nodeType": "UncheckedBlock", + "src": "29254:787:52", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9653, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29282:5:52", + "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": 9656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29291:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 9655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29297:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29291:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29282:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9669, + "nodeType": "IfStatement", + "src": "29278:103:52", + "trueBody": { + "id": 9668, + "nodeType": "Block", + "src": "29301:80:52", + "statements": [ + { + "expression": { + "id": 9662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9658, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29319:5:52", + "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": 9661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29328:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 9660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29334:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29328:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29319:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9663, + "nodeType": "ExpressionStatement", + "src": "29319:17:52" + }, + { + "expression": { + "id": 9666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9664, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29354:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 9665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29364:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29354:12:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9667, + "nodeType": "ExpressionStatement", + "src": "29354:12:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9670, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29398:5:52", + "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": 9673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29407:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 9672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29413:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29407:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29398:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9686, + "nodeType": "IfStatement", + "src": "29394:103:52", + "trueBody": { + "id": 9685, + "nodeType": "Block", + "src": "29417:80:52", + "statements": [ + { + "expression": { + "id": 9679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9675, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29435:5:52", + "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": 9678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29444:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 9677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29450:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29444:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29435:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9680, + "nodeType": "ExpressionStatement", + "src": "29435:17:52" + }, + { + "expression": { + "id": 9683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9681, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29470:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 9682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29480:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29470:12:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9684, + "nodeType": "ExpressionStatement", + "src": "29470:12:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9687, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29514:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 9690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29523:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 9689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29529:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29523:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29514:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9703, + "nodeType": "IfStatement", + "src": "29510:103:52", + "trueBody": { + "id": 9702, + "nodeType": "Block", + "src": "29533:80:52", + "statements": [ + { + "expression": { + "id": 9696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9692, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29551:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29560:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 9694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29566:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29560:8:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29551:17:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9697, + "nodeType": "ExpressionStatement", + "src": "29551:17:52" + }, + { + "expression": { + "id": 9700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9698, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29586:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 9699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29596:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29586:12:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9701, + "nodeType": "ExpressionStatement", + "src": "29586:12:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9704, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29630:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 9707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29639:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 9706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29645:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29639:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29630:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9720, + "nodeType": "IfStatement", + "src": "29626:100:52", + "trueBody": { + "id": 9719, + "nodeType": "Block", + "src": "29648:78:52", + "statements": [ + { + "expression": { + "id": 9713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9709, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29666:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 9712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29675:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 9711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29681:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29675:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29666:16:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9714, + "nodeType": "ExpressionStatement", + "src": "29666:16:52" + }, + { + "expression": { + "id": 9717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9715, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29700:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 9716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29710:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29700:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9718, + "nodeType": "ExpressionStatement", + "src": "29700:11:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9721, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29743:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 9724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29752:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 9723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29758:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29752:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29743:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9737, + "nodeType": "IfStatement", + "src": "29739:100:52", + "trueBody": { + "id": 9736, + "nodeType": "Block", + "src": "29761:78:52", + "statements": [ + { + "expression": { + "id": 9730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9726, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29779:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 9729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29788:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 9728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29794:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29788:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29779:16:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9731, + "nodeType": "ExpressionStatement", + "src": "29779:16:52" + }, + { + "expression": { + "id": 9734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9732, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29813:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 9733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29823:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29813:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9735, + "nodeType": "ExpressionStatement", + "src": "29813:11:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9738, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29856:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 9741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29865:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 9740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29871:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29865:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29856:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9754, + "nodeType": "IfStatement", + "src": "29852:100:52", + "trueBody": { + "id": 9753, + "nodeType": "Block", + "src": "29874:78:52", + "statements": [ + { + "expression": { + "id": 9747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9743, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29892:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 9746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29901:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 9745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29907:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29901:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29892:16:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9748, + "nodeType": "ExpressionStatement", + "src": "29892:16:52" + }, + { + "expression": { + "id": 9751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9749, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "29926:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 9750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29936:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29926:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9752, + "nodeType": "ExpressionStatement", + "src": "29926:11:52" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9755, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9644, + "src": "29969:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 9758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29978:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 9757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29984:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29978:7:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "29969:16:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9765, + "nodeType": "IfStatement", + "src": "29965:66:52", + "trueBody": { + "id": 9764, + "nodeType": "Block", + "src": "29987:44:52", + "statements": [ + { + "expression": { + "id": 9762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9760, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "30005:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 9761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30015:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "30005:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9763, + "nodeType": "ExpressionStatement", + "src": "30005:11:52" + } + ] + } + } + ] + }, + { + "expression": { + "id": 9767, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "30057:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9648, + "id": 9768, + "nodeType": "Return", + "src": "30050:13:52" + } + ] + }, + "documentation": { + "id": 9642, + "nodeType": "StructuredDocumentation", + "src": "29029:120:52", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 9770, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "29163:5:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9644, + "mutability": "mutable", + "name": "value", + "nameLocation": "29177:5:52", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "29169:13:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29169:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29168:15:52" + }, + "returnParameters": { + "id": 9648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9647, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9770, + "src": "29207:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29207:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29206:9:52" + }, + "scope": 9938, + "src": "29154:916:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9803, + "nodeType": "Block", + "src": "30305:177:52", + "statements": [ + { + "id": 9802, + "nodeType": "UncheckedBlock", + "src": "30315:161:52", + "statements": [ + { + "assignments": [ + 9782 + ], + "declarations": [ + { + "constant": false, + "id": 9782, + "mutability": "mutable", + "name": "result", + "nameLocation": "30347:6:52", + "nodeType": "VariableDeclaration", + "scope": 9802, + "src": "30339:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30339:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9786, + "initialValue": { + "arguments": [ + { + "id": 9784, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9773, + "src": "30362:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9783, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9770, + 9804 + ], + "referencedDeclaration": 9770, + "src": "30356:5:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30356:12:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "30339:29:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9787, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9782, + "src": "30389:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9791, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9776, + "src": "30431:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 9790, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "30414:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30414:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 9793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30444:2:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 9794, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9782, + "src": "30450:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:12:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9796, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9773, + "src": "30459:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:20:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "30414:50:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9788, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "30398:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30407:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "30398:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30398:67:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30389:76:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9780, + "id": 9801, + "nodeType": "Return", + "src": "30382:83:52" + } + ] + } + ] + }, + "documentation": { + "id": 9771, + "nodeType": "StructuredDocumentation", + "src": "30076:143:52", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 9804, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "30233:5:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9773, + "mutability": "mutable", + "name": "value", + "nameLocation": "30247:5:52", + "nodeType": "VariableDeclaration", + "scope": 9804, + "src": "30239:13:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30239:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9776, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "30263:8:52", + "nodeType": "VariableDeclaration", + "scope": 9804, + "src": "30254:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9775, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9774, + "name": "Rounding", + "nameLocations": [ + "30254:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "30254:8:52" + }, + "referencedDeclaration": 8329, + "src": "30254:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "30238:34:52" + }, + "returnParameters": { + "id": 9780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9804, + "src": "30296:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30296:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30295:9:52" + }, + "scope": 9938, + "src": "30224:258:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9880, + "nodeType": "Block", + "src": "30800:675:52", + "statements": [ + { + "expression": { + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9812, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "30882:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9815, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9807, + "src": "30902:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 9816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30906:34:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "30902:38:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9813, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "30886:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30895:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "30886:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30886:55:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 9819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30945:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "30886:60:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30882:64:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9822, + "nodeType": "ExpressionStatement", + "src": "30882:64:52" + }, + { + "expression": { + "id": 9835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9823, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31022:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9826, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9807, + "src": "31044:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9827, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31049:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31044:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9829, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31043:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 9830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31054:18:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "31043:29:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9824, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "31027:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31036:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "31027:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31027:46:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 9833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31077:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "31027:51:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31022:56:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9836, + "nodeType": "ExpressionStatement", + "src": "31022:56:52" + }, + { + "expression": { + "id": 9849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9837, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31153:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9840, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9807, + "src": "31175:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9841, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31180:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31175:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9843, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31174:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 9844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31185:10:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "31174:21:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9838, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "31158:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31167:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "31158:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31158:38:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 9847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31200:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "31158:43:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31153:48:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9850, + "nodeType": "ExpressionStatement", + "src": "31153:48:52" + }, + { + "expression": { + "id": 9863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9851, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31276:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9854, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9807, + "src": "31298:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9855, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31303:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31298:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31297:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 9858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31308:6:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "31297:17:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9852, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "31281:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31290:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "31281:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31281:34:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 9861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31319:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "31281:39:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31276:44:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9864, + "nodeType": "ExpressionStatement", + "src": "31276:44:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9865, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31426:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "33", + "id": 9866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31431:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31426:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9868, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31425:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9871, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9807, + "src": "31453:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9872, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "31458:1:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31453:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31452:8:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 9875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31463:4:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "31452:15:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9869, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "31436:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31445:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "31436:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31436:32:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31425:43:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9811, + "id": 9879, + "nodeType": "Return", + "src": "31418:50:52" + } + ] + }, + "documentation": { + "id": 9805, + "nodeType": "StructuredDocumentation", + "src": "30488:246:52", + "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": 9881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "30748:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9807, + "mutability": "mutable", + "name": "x", + "nameLocation": "30763:1:52", + "nodeType": "VariableDeclaration", + "scope": 9881, + "src": "30755:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30755:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30754:11:52" + }, + "returnParameters": { + "id": 9811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9810, + "mutability": "mutable", + "name": "r", + "nameLocation": "30797:1:52", + "nodeType": "VariableDeclaration", + "scope": 9881, + "src": "30789:9:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30789:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30788:11:52" + }, + "scope": 9938, + "src": "30739:736:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9917, + "nodeType": "Block", + "src": "31712:184:52", + "statements": [ + { + "id": 9916, + "nodeType": "UncheckedBlock", + "src": "31722:168:52", + "statements": [ + { + "assignments": [ + 9893 + ], + "declarations": [ + { + "constant": false, + "id": 9893, + "mutability": "mutable", + "name": "result", + "nameLocation": "31754:6:52", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "31746:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31746:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9897, + "initialValue": { + "arguments": [ + { + "id": 9895, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9884, + "src": "31770:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9894, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9881, + 9918 + ], + "referencedDeclaration": 9881, + "src": "31763:6:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31763:13:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31746:30:52" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9898, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9893, + "src": "31797:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9902, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9887, + "src": "31839:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 9901, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9937, + "src": "31822:16:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8329_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31822:26:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31852:1:52", + "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": 9907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9905, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9893, + "src": "31858:6:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 9906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31868:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31858:11:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9908, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31857:13:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:18:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9910, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9884, + "src": "31873:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:26:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "31822:56:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9899, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "31806:8:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31815:6:52", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "31806:15:52", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31806:73:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31797:82:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9891, + "id": 9915, + "nodeType": "Return", + "src": "31790:89:52" + } + ] + } + ] + }, + "documentation": { + "id": 9882, + "nodeType": "StructuredDocumentation", + "src": "31481:144:52", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 9918, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "31639:6:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9884, + "mutability": "mutable", + "name": "value", + "nameLocation": "31654:5:52", + "nodeType": "VariableDeclaration", + "scope": 9918, + "src": "31646:13:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31646:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9887, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "31670:8:52", + "nodeType": "VariableDeclaration", + "scope": 9918, + "src": "31661:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9886, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9885, + "name": "Rounding", + "nameLocations": [ + "31661:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "31661:8:52" + }, + "referencedDeclaration": 8329, + "src": "31661:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "31645:34:52" + }, + "returnParameters": { + "id": 9891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9890, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9918, + "src": "31703:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31703:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31702:9:52" + }, + "scope": 9938, + "src": "31630:266:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9936, + "nodeType": "Block", + "src": "32094:48:52", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 9934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9929, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9922, + "src": "32117:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + ], + "id": 9928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32111:5:52", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 9927, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32111:5:52", + "typeDescriptions": {} + } + }, + "id": 9930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32111:15:52", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 9931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32129:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "32111:19:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 9933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32134:1:52", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32111:24:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9926, + "id": 9935, + "nodeType": "Return", + "src": "32104:31:52" + } + ] + }, + "documentation": { + "id": 9919, + "nodeType": "StructuredDocumentation", + "src": "31902:113:52", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 9937, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "32029:16:52", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9922, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "32055:8:52", + "nodeType": "VariableDeclaration", + "scope": 9937, + "src": "32046:17:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9921, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9920, + "name": "Rounding", + "nameLocations": [ + "32046:8:52" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8329, + "src": "32046:8:52" + }, + "referencedDeclaration": 8329, + "src": "32046:8:52", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8329", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "32045:19:52" + }, + "returnParameters": { + "id": 9926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9925, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9937, + "src": "32088:4:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9924, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32088:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32087:6:52" + }, + "scope": 9938, + "src": "32020:122:52", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 9939, + "src": "281:31863:52", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "103:32042:52" + }, + "id": 52 + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "exportedSymbols": { + "SafeCast": [ + 11703 + ] + }, + "id": 11704, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9940, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "192:24:53" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeCast", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 9941, + "nodeType": "StructuredDocumentation", + "src": "218:550:53", + "text": " @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 11703, + "linearizedBaseContracts": [ + 11703 + ], + "name": "SafeCast", + "nameLocation": "777:8:53", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 9942, + "nodeType": "StructuredDocumentation", + "src": "792:68:53", + "text": " @dev Value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "6dfcc650", + "id": 9948, + "name": "SafeCastOverflowedUintDowncast", + "nameLocation": "871:30:53", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 9947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9944, + "mutability": "mutable", + "name": "bits", + "nameLocation": "908:4:53", + "nodeType": "VariableDeclaration", + "scope": 9948, + "src": "902:10:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9943, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "902:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9946, + "mutability": "mutable", + "name": "value", + "nameLocation": "922:5:53", + "nodeType": "VariableDeclaration", + "scope": 9948, + "src": "914:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "901:27:53" + }, + "src": "865:64:53" + }, + { + "documentation": { + "id": 9949, + "nodeType": "StructuredDocumentation", + "src": "935:75:53", + "text": " @dev An int value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "a8ce4432", + "id": 9953, + "name": "SafeCastOverflowedIntToUint", + "nameLocation": "1021:27:53", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 9952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9951, + "mutability": "mutable", + "name": "value", + "nameLocation": "1056:5:53", + "nodeType": "VariableDeclaration", + "scope": 9953, + "src": "1049:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9950, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1049:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1048:14:53" + }, + "src": "1015:48:53" + }, + { + "documentation": { + "id": 9954, + "nodeType": "StructuredDocumentation", + "src": "1069:67:53", + "text": " @dev Value doesn't fit in an int of `bits` size." + }, + "errorSelector": "327269a7", + "id": 9960, + "name": "SafeCastOverflowedIntDowncast", + "nameLocation": "1147:29:53", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 9959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9956, + "mutability": "mutable", + "name": "bits", + "nameLocation": "1183:4:53", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "1177:10:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9955, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1177:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9958, + "mutability": "mutable", + "name": "value", + "nameLocation": "1196:5:53", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "1189:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9957, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1189:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1176:26:53" + }, + "src": "1141:62:53" + }, + { + "documentation": { + "id": 9961, + "nodeType": "StructuredDocumentation", + "src": "1209:75:53", + "text": " @dev An uint value doesn't fit in an int of `bits` size." + }, + "errorSelector": "24775e06", + "id": 9965, + "name": "SafeCastOverflowedUintToInt", + "nameLocation": "1295:27:53", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "mutability": "mutable", + "name": "value", + "nameLocation": "1331:5:53", + "nodeType": "VariableDeclaration", + "scope": 9965, + "src": "1323:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1322:15:53" + }, + "src": "1289:49:53" + }, + { + "body": { + "id": 9992, + "nodeType": "Block", + "src": "1695:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9973, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9968, + "src": "1709:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 9976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1722:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 9975, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1722:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + } + ], + "id": 9974, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1717:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1717:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint248", + "typeString": "type(uint248)" + } + }, + "id": 9978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1731:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "1717:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "src": "1709:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9986, + "nodeType": "IfStatement", + "src": "1705:105:53", + "trueBody": { + "id": 9985, + "nodeType": "Block", + "src": "1736:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 9981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1788:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 9982, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9968, + "src": "1793:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9980, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "1757:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 9983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1757:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 9984, + "nodeType": "RevertStatement", + "src": "1750:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 9989, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9968, + "src": "1834:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1826:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 9987, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1826:7:53", + "typeDescriptions": {} + } + }, + "id": 9990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1826:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "functionReturnParameters": 9972, + "id": 9991, + "nodeType": "Return", + "src": "1819:21:53" + } + ] + }, + "documentation": { + "id": 9966, + "nodeType": "StructuredDocumentation", + "src": "1344:280:53", + "text": " @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 9993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint248", + "nameLocation": "1638:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9968, + "mutability": "mutable", + "name": "value", + "nameLocation": "1656:5:53", + "nodeType": "VariableDeclaration", + "scope": 9993, + "src": "1648:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9967, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1648:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1647:15:53" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9993, + "src": "1686:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 9970, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1686:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" + } + ], + "src": "1685:9:53" + }, + "scope": 11703, + "src": "1629:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10020, + "nodeType": "Block", + "src": "2204:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10001, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "2218:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2231:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 10003, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2231:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + } + ], + "id": 10002, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2226:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2226:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint240", + "typeString": "type(uint240)" + } + }, + "id": 10006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2240:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2226:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "src": "2218:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10014, + "nodeType": "IfStatement", + "src": "2214:105:53", + "trueBody": { + "id": 10013, + "nodeType": "Block", + "src": "2245:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 10009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2297:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 10010, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "2302:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10008, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "2266:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2266:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10012, + "nodeType": "RevertStatement", + "src": "2259:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10017, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "2343:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2335:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 10015, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2335:7:53", + "typeDescriptions": {} + } + }, + "id": 10018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2335:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "functionReturnParameters": 10000, + "id": 10019, + "nodeType": "Return", + "src": "2328:21:53" + } + ] + }, + "documentation": { + "id": 9994, + "nodeType": "StructuredDocumentation", + "src": "1853:280:53", + "text": " @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 10021, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint240", + "nameLocation": "2147:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9996, + "mutability": "mutable", + "name": "value", + "nameLocation": "2165:5:53", + "nodeType": "VariableDeclaration", + "scope": 10021, + "src": "2157:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2157:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2156:15:53" + }, + "returnParameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9999, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10021, + "src": "2195:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + }, + "typeName": { + "id": 9998, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2195:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "visibility": "internal" + } + ], + "src": "2194:9:53" + }, + "scope": 11703, + "src": "2138:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10048, + "nodeType": "Block", + "src": "2713:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10029, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "2727:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2740:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 10031, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2740:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + } + ], + "id": 10030, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2735:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint232", + "typeString": "type(uint232)" + } + }, + "id": 10034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2749:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2735:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "src": "2727:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10042, + "nodeType": "IfStatement", + "src": "2723:105:53", + "trueBody": { + "id": 10041, + "nodeType": "Block", + "src": "2754:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2806:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 10038, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "2811:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10036, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "2775:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2775:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10040, + "nodeType": "RevertStatement", + "src": "2768:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10045, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "2852:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2844:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 10043, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2844:7:53", + "typeDescriptions": {} + } + }, + "id": 10046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2844:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "functionReturnParameters": 10028, + "id": 10047, + "nodeType": "Return", + "src": "2837:21:53" + } + ] + }, + "documentation": { + "id": 10022, + "nodeType": "StructuredDocumentation", + "src": "2362:280:53", + "text": " @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 10049, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint232", + "nameLocation": "2656:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10024, + "mutability": "mutable", + "name": "value", + "nameLocation": "2674:5:53", + "nodeType": "VariableDeclaration", + "scope": 10049, + "src": "2666:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2666:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2665:15:53" + }, + "returnParameters": { + "id": 10028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10027, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10049, + "src": "2704:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + }, + "typeName": { + "id": 10026, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2704:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "visibility": "internal" + } + ], + "src": "2703:9:53" + }, + "scope": 11703, + "src": "2647:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10076, + "nodeType": "Block", + "src": "3222:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10057, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10052, + "src": "3236:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3249:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 10059, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3249:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + } + ], + "id": 10058, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3244:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3244:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint224", + "typeString": "type(uint224)" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3258:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3244:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "3236:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10070, + "nodeType": "IfStatement", + "src": "3232:105:53", + "trueBody": { + "id": 10069, + "nodeType": "Block", + "src": "3263:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 10065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3315:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 10066, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10052, + "src": "3320:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10064, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "3284:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3284:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10068, + "nodeType": "RevertStatement", + "src": "3277:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10073, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10052, + "src": "3361:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3353:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 10071, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3353:7:53", + "typeDescriptions": {} + } + }, + "id": 10074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3353:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "functionReturnParameters": 10056, + "id": 10075, + "nodeType": "Return", + "src": "3346:21:53" + } + ] + }, + "documentation": { + "id": 10050, + "nodeType": "StructuredDocumentation", + "src": "2871:280:53", + "text": " @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 10077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint224", + "nameLocation": "3165:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10052, + "mutability": "mutable", + "name": "value", + "nameLocation": "3183:5:53", + "nodeType": "VariableDeclaration", + "scope": 10077, + "src": "3175:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3175:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3174:15:53" + }, + "returnParameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10055, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10077, + "src": "3213:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 10054, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3213:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "visibility": "internal" + } + ], + "src": "3212:9:53" + }, + "scope": 11703, + "src": "3156:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10104, + "nodeType": "Block", + "src": "3731:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10085, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "3745:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3758:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 10087, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3758:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + } + ], + "id": 10086, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3753:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3753:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint216", + "typeString": "type(uint216)" + } + }, + "id": 10090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3767:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3753:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "src": "3745:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10098, + "nodeType": "IfStatement", + "src": "3741:105:53", + "trueBody": { + "id": 10097, + "nodeType": "Block", + "src": "3772:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3824:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 10094, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "3829:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10092, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "3793:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3793:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10096, + "nodeType": "RevertStatement", + "src": "3786:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10101, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "3870:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3862:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 10099, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3862:7:53", + "typeDescriptions": {} + } + }, + "id": 10102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3862:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "functionReturnParameters": 10084, + "id": 10103, + "nodeType": "Return", + "src": "3855:21:53" + } + ] + }, + "documentation": { + "id": 10078, + "nodeType": "StructuredDocumentation", + "src": "3380:280:53", + "text": " @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 10105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint216", + "nameLocation": "3674:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10080, + "mutability": "mutable", + "name": "value", + "nameLocation": "3692:5:53", + "nodeType": "VariableDeclaration", + "scope": 10105, + "src": "3684:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3684:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:53" + }, + "returnParameters": { + "id": 10084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10083, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10105, + "src": "3722:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + }, + "typeName": { + "id": 10082, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3722:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "visibility": "internal" + } + ], + "src": "3721:9:53" + }, + "scope": 11703, + "src": "3665:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10132, + "nodeType": "Block", + "src": "4240:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10113, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10108, + "src": "4254:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4267:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 10115, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4267:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + } + ], + "id": 10114, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4262:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint208", + "typeString": "type(uint208)" + } + }, + "id": 10118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4276:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4262:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "src": "4254:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10126, + "nodeType": "IfStatement", + "src": "4250:105:53", + "trueBody": { + "id": 10125, + "nodeType": "Block", + "src": "4281:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4333:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 10122, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10108, + "src": "4338:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10120, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "4302:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4302:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10124, + "nodeType": "RevertStatement", + "src": "4295:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10129, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10108, + "src": "4379:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4371:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 10127, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4371:7:53", + "typeDescriptions": {} + } + }, + "id": 10130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4371:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "functionReturnParameters": 10112, + "id": 10131, + "nodeType": "Return", + "src": "4364:21:53" + } + ] + }, + "documentation": { + "id": 10106, + "nodeType": "StructuredDocumentation", + "src": "3889:280:53", + "text": " @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 10133, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint208", + "nameLocation": "4183:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10108, + "mutability": "mutable", + "name": "value", + "nameLocation": "4201:5:53", + "nodeType": "VariableDeclaration", + "scope": 10133, + "src": "4193:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4193:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4192:15:53" + }, + "returnParameters": { + "id": 10112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10111, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10133, + "src": "4231:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + }, + "typeName": { + "id": 10110, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4231:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "visibility": "internal" + } + ], + "src": "4230:9:53" + }, + "scope": 11703, + "src": "4174:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10160, + "nodeType": "Block", + "src": "4749:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10141, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10136, + "src": "4763:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4776:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 10143, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4776:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + } + ], + "id": 10142, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4771:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4771:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint200", + "typeString": "type(uint200)" + } + }, + "id": 10146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4785:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4771:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "src": "4763:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10154, + "nodeType": "IfStatement", + "src": "4759:105:53", + "trueBody": { + "id": 10153, + "nodeType": "Block", + "src": "4790:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 10149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4842:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 10150, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10136, + "src": "4847:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10148, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "4811:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4811:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10152, + "nodeType": "RevertStatement", + "src": "4804:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10157, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10136, + "src": "4888:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4880:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 10155, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4880:7:53", + "typeDescriptions": {} + } + }, + "id": 10158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4880:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "functionReturnParameters": 10140, + "id": 10159, + "nodeType": "Return", + "src": "4873:21:53" + } + ] + }, + "documentation": { + "id": 10134, + "nodeType": "StructuredDocumentation", + "src": "4398:280:53", + "text": " @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 10161, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint200", + "nameLocation": "4692:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10136, + "mutability": "mutable", + "name": "value", + "nameLocation": "4710:5:53", + "nodeType": "VariableDeclaration", + "scope": 10161, + "src": "4702:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4702:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4701:15:53" + }, + "returnParameters": { + "id": 10140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10139, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10161, + "src": "4740:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + }, + "typeName": { + "id": 10138, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4740:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "visibility": "internal" + } + ], + "src": "4739:9:53" + }, + "scope": 11703, + "src": "4683:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10188, + "nodeType": "Block", + "src": "5258:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10164, + "src": "5272:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5285:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 10171, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5285:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + } + ], + "id": 10170, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5280:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5280:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint192", + "typeString": "type(uint192)" + } + }, + "id": 10174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5294:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5280:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "src": "5272:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10182, + "nodeType": "IfStatement", + "src": "5268:105:53", + "trueBody": { + "id": 10181, + "nodeType": "Block", + "src": "5299:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 10177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5351:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 10178, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10164, + "src": "5356:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10176, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "5320:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5320:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10180, + "nodeType": "RevertStatement", + "src": "5313:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10185, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10164, + "src": "5397:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5389:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 10183, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5389:7:53", + "typeDescriptions": {} + } + }, + "id": 10186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5389:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "functionReturnParameters": 10168, + "id": 10187, + "nodeType": "Return", + "src": "5382:21:53" + } + ] + }, + "documentation": { + "id": 10162, + "nodeType": "StructuredDocumentation", + "src": "4907:280:53", + "text": " @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 10189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint192", + "nameLocation": "5201:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10165, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10164, + "mutability": "mutable", + "name": "value", + "nameLocation": "5219:5:53", + "nodeType": "VariableDeclaration", + "scope": 10189, + "src": "5211:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5211:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5210:15:53" + }, + "returnParameters": { + "id": 10168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10167, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10189, + "src": "5249:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + }, + "typeName": { + "id": 10166, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5249:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "visibility": "internal" + } + ], + "src": "5248:9:53" + }, + "scope": 11703, + "src": "5192:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10216, + "nodeType": "Block", + "src": "5767:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10197, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10192, + "src": "5781:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5794:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 10199, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5794:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + } + ], + "id": 10198, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5789:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5789:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint184", + "typeString": "type(uint184)" + } + }, + "id": 10202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5803:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5789:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "src": "5781:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10210, + "nodeType": "IfStatement", + "src": "5777:105:53", + "trueBody": { + "id": 10209, + "nodeType": "Block", + "src": "5808:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 10205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5860:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 10206, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10192, + "src": "5865:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10204, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "5829:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5829:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10208, + "nodeType": "RevertStatement", + "src": "5822:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10213, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10192, + "src": "5906:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5898:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 10211, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5898:7:53", + "typeDescriptions": {} + } + }, + "id": 10214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5898:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "functionReturnParameters": 10196, + "id": 10215, + "nodeType": "Return", + "src": "5891:21:53" + } + ] + }, + "documentation": { + "id": 10190, + "nodeType": "StructuredDocumentation", + "src": "5416:280:53", + "text": " @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 10217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint184", + "nameLocation": "5710:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10192, + "mutability": "mutable", + "name": "value", + "nameLocation": "5728:5:53", + "nodeType": "VariableDeclaration", + "scope": 10217, + "src": "5720:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5720:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5719:15:53" + }, + "returnParameters": { + "id": 10196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10195, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10217, + "src": "5758:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + }, + "typeName": { + "id": 10194, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5758:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "visibility": "internal" + } + ], + "src": "5757:9:53" + }, + "scope": 11703, + "src": "5701:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10244, + "nodeType": "Block", + "src": "6276:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10225, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10220, + "src": "6290:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6303:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 10227, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6303:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + } + ], + "id": 10226, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6298:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6298:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint176", + "typeString": "type(uint176)" + } + }, + "id": 10230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6312:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6298:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "src": "6290:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10238, + "nodeType": "IfStatement", + "src": "6286:105:53", + "trueBody": { + "id": 10237, + "nodeType": "Block", + "src": "6317:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 10233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6369:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 10234, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10220, + "src": "6374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10232, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "6338:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6338:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10236, + "nodeType": "RevertStatement", + "src": "6331:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10241, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10220, + "src": "6415:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6407:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 10239, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6407:7:53", + "typeDescriptions": {} + } + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6407:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "functionReturnParameters": 10224, + "id": 10243, + "nodeType": "Return", + "src": "6400:21:53" + } + ] + }, + "documentation": { + "id": 10218, + "nodeType": "StructuredDocumentation", + "src": "5925:280:53", + "text": " @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 10245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint176", + "nameLocation": "6219:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10220, + "mutability": "mutable", + "name": "value", + "nameLocation": "6237:5:53", + "nodeType": "VariableDeclaration", + "scope": 10245, + "src": "6229:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6229:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6228:15:53" + }, + "returnParameters": { + "id": 10224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10223, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10245, + "src": "6267:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + }, + "typeName": { + "id": 10222, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6267:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "visibility": "internal" + } + ], + "src": "6266:9:53" + }, + "scope": 11703, + "src": "6210:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "6785:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10253, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "6799:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6812:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 10255, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6812:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + } + ], + "id": 10254, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6807:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6807:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint168", + "typeString": "type(uint168)" + } + }, + "id": 10258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6821:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6807:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "src": "6799:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10266, + "nodeType": "IfStatement", + "src": "6795:105:53", + "trueBody": { + "id": 10265, + "nodeType": "Block", + "src": "6826:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6878:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 10262, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "6883:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10260, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "6847:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6847:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10264, + "nodeType": "RevertStatement", + "src": "6840:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10269, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "6924:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6916:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 10267, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6916:7:53", + "typeDescriptions": {} + } + }, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6916:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "functionReturnParameters": 10252, + "id": 10271, + "nodeType": "Return", + "src": "6909:21:53" + } + ] + }, + "documentation": { + "id": 10246, + "nodeType": "StructuredDocumentation", + "src": "6434:280:53", + "text": " @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 10273, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint168", + "nameLocation": "6728:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10248, + "mutability": "mutable", + "name": "value", + "nameLocation": "6746:5:53", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "6738:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6738:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6737:15:53" + }, + "returnParameters": { + "id": 10252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10251, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "6776:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + }, + "typeName": { + "id": 10250, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6776:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "visibility": "internal" + } + ], + "src": "6775:9:53" + }, + "scope": 11703, + "src": "6719:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10300, + "nodeType": "Block", + "src": "7294:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10281, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10276, + "src": "7308:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7321:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10283, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7321:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + } + ], + "id": 10282, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7316:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7316:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint160", + "typeString": "type(uint160)" + } + }, + "id": 10286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7330:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7316:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "src": "7308:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10294, + "nodeType": "IfStatement", + "src": "7304:105:53", + "trueBody": { + "id": 10293, + "nodeType": "Block", + "src": "7335:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 10289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7387:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 10290, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10276, + "src": "7392:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10288, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "7356:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7356:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10292, + "nodeType": "RevertStatement", + "src": "7349:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10297, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10276, + "src": "7433:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7425:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10295, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7425:7:53", + "typeDescriptions": {} + } + }, + "id": 10298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7425:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "functionReturnParameters": 10280, + "id": 10299, + "nodeType": "Return", + "src": "7418:21:53" + } + ] + }, + "documentation": { + "id": 10274, + "nodeType": "StructuredDocumentation", + "src": "6943:280:53", + "text": " @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 10301, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint160", + "nameLocation": "7237:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10276, + "mutability": "mutable", + "name": "value", + "nameLocation": "7255:5:53", + "nodeType": "VariableDeclaration", + "scope": 10301, + "src": "7247:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7247:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7246:15:53" + }, + "returnParameters": { + "id": 10280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10279, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10301, + "src": "7285:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + }, + "typeName": { + "id": 10278, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7285:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "visibility": "internal" + } + ], + "src": "7284:9:53" + }, + "scope": 11703, + "src": "7228:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10328, + "nodeType": "Block", + "src": "7803:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10309, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7817:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7830:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 10311, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7830:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + } + ], + "id": 10310, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7825:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7825:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint152", + "typeString": "type(uint152)" + } + }, + "id": 10314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7839:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7825:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "src": "7817:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10322, + "nodeType": "IfStatement", + "src": "7813:105:53", + "trueBody": { + "id": 10321, + "nodeType": "Block", + "src": "7844:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 10317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7896:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 10318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7901:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10316, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "7865:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7865:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10320, + "nodeType": "RevertStatement", + "src": "7858:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10325, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7942:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7934:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 10323, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7934:7:53", + "typeDescriptions": {} + } + }, + "id": 10326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7934:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "functionReturnParameters": 10308, + "id": 10327, + "nodeType": "Return", + "src": "7927:21:53" + } + ] + }, + "documentation": { + "id": 10302, + "nodeType": "StructuredDocumentation", + "src": "7452:280:53", + "text": " @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 10329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint152", + "nameLocation": "7746:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10304, + "mutability": "mutable", + "name": "value", + "nameLocation": "7764:5:53", + "nodeType": "VariableDeclaration", + "scope": 10329, + "src": "7756:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7755:15:53" + }, + "returnParameters": { + "id": 10308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10329, + "src": "7794:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + }, + "typeName": { + "id": 10306, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7794:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "visibility": "internal" + } + ], + "src": "7793:9:53" + }, + "scope": 11703, + "src": "7737:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10356, + "nodeType": "Block", + "src": "8312:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10332, + "src": "8326:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8339:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 10339, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8339:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + } + ], + "id": 10338, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8334:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8334:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint144", + "typeString": "type(uint144)" + } + }, + "id": 10342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8348:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8334:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "src": "8326:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10350, + "nodeType": "IfStatement", + "src": "8322:105:53", + "trueBody": { + "id": 10349, + "nodeType": "Block", + "src": "8353:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 10345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8405:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 10346, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10332, + "src": "8410:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10344, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "8374:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8374:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10348, + "nodeType": "RevertStatement", + "src": "8367:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10353, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10332, + "src": "8451:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8443:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 10351, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8443:7:53", + "typeDescriptions": {} + } + }, + "id": 10354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8443:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "functionReturnParameters": 10336, + "id": 10355, + "nodeType": "Return", + "src": "8436:21:53" + } + ] + }, + "documentation": { + "id": 10330, + "nodeType": "StructuredDocumentation", + "src": "7961:280:53", + "text": " @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 10357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint144", + "nameLocation": "8255:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10332, + "mutability": "mutable", + "name": "value", + "nameLocation": "8273:5:53", + "nodeType": "VariableDeclaration", + "scope": 10357, + "src": "8265:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8265:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8264:15:53" + }, + "returnParameters": { + "id": 10336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10335, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10357, + "src": "8303:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + }, + "typeName": { + "id": 10334, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8303:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "visibility": "internal" + } + ], + "src": "8302:9:53" + }, + "scope": 11703, + "src": "8246:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10384, + "nodeType": "Block", + "src": "8821:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10365, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "8835:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8848:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 10367, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8848:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + } + ], + "id": 10366, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8843:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8843:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint136", + "typeString": "type(uint136)" + } + }, + "id": 10370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8857:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8843:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "src": "8835:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10378, + "nodeType": "IfStatement", + "src": "8831:105:53", + "trueBody": { + "id": 10377, + "nodeType": "Block", + "src": "8862:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 10373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8914:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 10374, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "8919:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10372, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "8883:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8883:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10376, + "nodeType": "RevertStatement", + "src": "8876:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10381, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "8960:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8952:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 10379, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8952:7:53", + "typeDescriptions": {} + } + }, + "id": 10382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8952:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "functionReturnParameters": 10364, + "id": 10383, + "nodeType": "Return", + "src": "8945:21:53" + } + ] + }, + "documentation": { + "id": 10358, + "nodeType": "StructuredDocumentation", + "src": "8470:280:53", + "text": " @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 10385, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint136", + "nameLocation": "8764:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10360, + "mutability": "mutable", + "name": "value", + "nameLocation": "8782:5:53", + "nodeType": "VariableDeclaration", + "scope": 10385, + "src": "8774:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8774:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8773:15:53" + }, + "returnParameters": { + "id": 10364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10363, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10385, + "src": "8812:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + }, + "typeName": { + "id": 10362, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8812:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "visibility": "internal" + } + ], + "src": "8811:9:53" + }, + "scope": 11703, + "src": "8755:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10412, + "nodeType": "Block", + "src": "9330:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10393, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10388, + "src": "9344:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9357:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 10395, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9357:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + } + ], + "id": 10394, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9352:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9352:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint128", + "typeString": "type(uint128)" + } + }, + "id": 10398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9366:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9352:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "9344:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10406, + "nodeType": "IfStatement", + "src": "9340:105:53", + "trueBody": { + "id": 10405, + "nodeType": "Block", + "src": "9371:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 10401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9423:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 10402, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10388, + "src": "9428:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10400, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "9392:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10404, + "nodeType": "RevertStatement", + "src": "9385:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10388, + "src": "9469:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9461:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 10407, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9461:7:53", + "typeDescriptions": {} + } + }, + "id": 10410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9461:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 10392, + "id": 10411, + "nodeType": "Return", + "src": "9454:21:53" + } + ] + }, + "documentation": { + "id": 10386, + "nodeType": "StructuredDocumentation", + "src": "8979:280:53", + "text": " @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 10413, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint128", + "nameLocation": "9273:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10388, + "mutability": "mutable", + "name": "value", + "nameLocation": "9291:5:53", + "nodeType": "VariableDeclaration", + "scope": 10413, + "src": "9283:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9283:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9282:15:53" + }, + "returnParameters": { + "id": 10392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10391, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10413, + "src": "9321:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 10390, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9321:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "9320:9:53" + }, + "scope": 11703, + "src": "9264:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10440, + "nodeType": "Block", + "src": "9839:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10421, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10416, + "src": "9853:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9866:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 10423, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9866:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + } + ], + "id": 10422, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9861:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9861:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint120", + "typeString": "type(uint120)" + } + }, + "id": 10426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9875:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9861:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "src": "9853:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10434, + "nodeType": "IfStatement", + "src": "9849:105:53", + "trueBody": { + "id": 10433, + "nodeType": "Block", + "src": "9880:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 10429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9932:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 10430, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10416, + "src": "9937:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10428, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "9901:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9901:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10432, + "nodeType": "RevertStatement", + "src": "9894:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10416, + "src": "9978:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9970:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 10435, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9970:7:53", + "typeDescriptions": {} + } + }, + "id": 10438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9970:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "functionReturnParameters": 10420, + "id": 10439, + "nodeType": "Return", + "src": "9963:21:53" + } + ] + }, + "documentation": { + "id": 10414, + "nodeType": "StructuredDocumentation", + "src": "9488:280:53", + "text": " @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 10441, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint120", + "nameLocation": "9782:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10416, + "mutability": "mutable", + "name": "value", + "nameLocation": "9800:5:53", + "nodeType": "VariableDeclaration", + "scope": 10441, + "src": "9792:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9792:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9791:15:53" + }, + "returnParameters": { + "id": 10420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10419, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10441, + "src": "9830:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + }, + "typeName": { + "id": 10418, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9830:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "visibility": "internal" + } + ], + "src": "9829:9:53" + }, + "scope": 11703, + "src": "9773:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10468, + "nodeType": "Block", + "src": "10348:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10449, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10444, + "src": "10362:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10375:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 10451, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10375:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + } + ], + "id": 10450, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10370:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10370:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint112", + "typeString": "type(uint112)" + } + }, + "id": 10454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10384:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10370:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "10362:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10462, + "nodeType": "IfStatement", + "src": "10358:105:53", + "trueBody": { + "id": 10461, + "nodeType": "Block", + "src": "10389:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 10457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10441:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 10458, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10444, + "src": "10446:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10456, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "10410:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10410:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10460, + "nodeType": "RevertStatement", + "src": "10403:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10444, + "src": "10487:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10479:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 10463, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10479:7:53", + "typeDescriptions": {} + } + }, + "id": 10466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10479:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "functionReturnParameters": 10448, + "id": 10467, + "nodeType": "Return", + "src": "10472:21:53" + } + ] + }, + "documentation": { + "id": 10442, + "nodeType": "StructuredDocumentation", + "src": "9997:280:53", + "text": " @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 10469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint112", + "nameLocation": "10291:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10444, + "mutability": "mutable", + "name": "value", + "nameLocation": "10309:5:53", + "nodeType": "VariableDeclaration", + "scope": 10469, + "src": "10301:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10301:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10300:15:53" + }, + "returnParameters": { + "id": 10448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10447, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10469, + "src": "10339:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 10446, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10339:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "10338:9:53" + }, + "scope": 11703, + "src": "10282:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10496, + "nodeType": "Block", + "src": "10857:152:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10477, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10472, + "src": "10871:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10884:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 10479, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10884:7:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + } + ], + "id": 10478, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10879:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10879:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint104", + "typeString": "type(uint104)" + } + }, + "id": 10482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10893:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10879:17:53", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "src": "10871:25:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10490, + "nodeType": "IfStatement", + "src": "10867:105:53", + "trueBody": { + "id": 10489, + "nodeType": "Block", + "src": "10898:74:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 10485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10950:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 10486, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10472, + "src": "10955:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10484, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "10919:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10919:42:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10488, + "nodeType": "RevertStatement", + "src": "10912:49:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10493, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10472, + "src": "10996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10988:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 10491, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10988:7:53", + "typeDescriptions": {} + } + }, + "id": 10494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10988:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "functionReturnParameters": 10476, + "id": 10495, + "nodeType": "Return", + "src": "10981:21:53" + } + ] + }, + "documentation": { + "id": 10470, + "nodeType": "StructuredDocumentation", + "src": "10506:280:53", + "text": " @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 10497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint104", + "nameLocation": "10800:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10472, + "mutability": "mutable", + "name": "value", + "nameLocation": "10818:5:53", + "nodeType": "VariableDeclaration", + "scope": 10497, + "src": "10810:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10471, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10810:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10809:15:53" + }, + "returnParameters": { + "id": 10476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10475, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10497, + "src": "10848:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 10474, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10848:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + } + ], + "src": "10847:9:53" + }, + "scope": 11703, + "src": "10791:218:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10524, + "nodeType": "Block", + "src": "11360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10505, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10500, + "src": "11374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 10507, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + } + ], + "id": 10506, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint96", + "typeString": "type(uint96)" + } + }, + "id": 10510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10518, + "nodeType": "IfStatement", + "src": "11370:103:53", + "trueBody": { + "id": 10517, + "nodeType": "Block", + "src": "11400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 10513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 10514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10500, + "src": "11456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10512, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "11421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10516, + "nodeType": "RevertStatement", + "src": "11414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10521, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10500, + "src": "11496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 10519, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11489:6:53", + "typeDescriptions": {} + } + }, + "id": 10522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 10504, + "id": 10523, + "nodeType": "Return", + "src": "11482:20:53" + } + ] + }, + "documentation": { + "id": 10498, + "nodeType": "StructuredDocumentation", + "src": "11015:276:53", + "text": " @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 10525, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint96", + "nameLocation": "11305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10500, + "mutability": "mutable", + "name": "value", + "nameLocation": "11322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10525, + "src": "11314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11313:15:53" + }, + "returnParameters": { + "id": 10504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10503, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10525, + "src": "11352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 10502, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "11351:8:53" + }, + "scope": 11703, + "src": "11296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10552, + "nodeType": "Block", + "src": "11860:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10533, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10528, + "src": "11874:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11887:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 10535, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11887:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + } + ], + "id": 10534, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11882:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11882:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint88", + "typeString": "type(uint88)" + } + }, + "id": 10538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11895:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11882:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "src": "11874:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10546, + "nodeType": "IfStatement", + "src": "11870:103:53", + "trueBody": { + "id": 10545, + "nodeType": "Block", + "src": "11900:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 10541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11952:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 10542, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10528, + "src": "11956:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10540, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "11921:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11921:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10544, + "nodeType": "RevertStatement", + "src": "11914:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10528, + "src": "11996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 10547, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11989:6:53", + "typeDescriptions": {} + } + }, + "id": 10550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "functionReturnParameters": 10532, + "id": 10551, + "nodeType": "Return", + "src": "11982:20:53" + } + ] + }, + "documentation": { + "id": 10526, + "nodeType": "StructuredDocumentation", + "src": "11515:276:53", + "text": " @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 10553, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint88", + "nameLocation": "11805:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10528, + "mutability": "mutable", + "name": "value", + "nameLocation": "11822:5:53", + "nodeType": "VariableDeclaration", + "scope": 10553, + "src": "11814:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11814:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11813:15:53" + }, + "returnParameters": { + "id": 10532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10531, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10553, + "src": "11852:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + }, + "typeName": { + "id": 10530, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11852:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "visibility": "internal" + } + ], + "src": "11851:8:53" + }, + "scope": 11703, + "src": "11796:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10580, + "nodeType": "Block", + "src": "12360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10561, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10556, + "src": "12374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 10563, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + } + ], + "id": 10562, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint80", + "typeString": "type(uint80)" + } + }, + "id": 10566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "src": "12374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10574, + "nodeType": "IfStatement", + "src": "12370:103:53", + "trueBody": { + "id": 10573, + "nodeType": "Block", + "src": "12400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 10569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 10570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10556, + "src": "12456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10568, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "12421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10572, + "nodeType": "RevertStatement", + "src": "12414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10556, + "src": "12496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 10575, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12489:6:53", + "typeDescriptions": {} + } + }, + "id": 10578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "functionReturnParameters": 10560, + "id": 10579, + "nodeType": "Return", + "src": "12482:20:53" + } + ] + }, + "documentation": { + "id": 10554, + "nodeType": "StructuredDocumentation", + "src": "12015:276:53", + "text": " @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 10581, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint80", + "nameLocation": "12305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10556, + "mutability": "mutable", + "name": "value", + "nameLocation": "12322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10581, + "src": "12314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12313:15:53" + }, + "returnParameters": { + "id": 10560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10559, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10581, + "src": "12352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + }, + "typeName": { + "id": 10558, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "visibility": "internal" + } + ], + "src": "12351:8:53" + }, + "scope": 11703, + "src": "12296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10608, + "nodeType": "Block", + "src": "12860:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10584, + "src": "12874:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12887:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 10591, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12887:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + } + ], + "id": 10590, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12882:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12882:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint72", + "typeString": "type(uint72)" + } + }, + "id": 10594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12895:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12882:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "12874:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10602, + "nodeType": "IfStatement", + "src": "12870:103:53", + "trueBody": { + "id": 10601, + "nodeType": "Block", + "src": "12900:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 10597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12952:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 10598, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10584, + "src": "12956:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10596, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "12921:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12921:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10600, + "nodeType": "RevertStatement", + "src": "12914:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10605, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10584, + "src": "12996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 10603, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12989:6:53", + "typeDescriptions": {} + } + }, + "id": 10606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "functionReturnParameters": 10588, + "id": 10607, + "nodeType": "Return", + "src": "12982:20:53" + } + ] + }, + "documentation": { + "id": 10582, + "nodeType": "StructuredDocumentation", + "src": "12515:276:53", + "text": " @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 10609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint72", + "nameLocation": "12805:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10584, + "mutability": "mutable", + "name": "value", + "nameLocation": "12822:5:53", + "nodeType": "VariableDeclaration", + "scope": 10609, + "src": "12814:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12814:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12813:15:53" + }, + "returnParameters": { + "id": 10588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10587, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10609, + "src": "12852:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 10586, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12852:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "12851:8:53" + }, + "scope": 11703, + "src": "12796:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10636, + "nodeType": "Block", + "src": "13360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10617, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10612, + "src": "13374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 10619, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 10618, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 10622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "13374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10630, + "nodeType": "IfStatement", + "src": "13370:103:53", + "trueBody": { + "id": 10629, + "nodeType": "Block", + "src": "13400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 10625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 10626, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10612, + "src": "13456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10624, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "13421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10628, + "nodeType": "RevertStatement", + "src": "13414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10612, + "src": "13496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 10631, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13489:6:53", + "typeDescriptions": {} + } + }, + "id": 10634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 10616, + "id": 10635, + "nodeType": "Return", + "src": "13482:20:53" + } + ] + }, + "documentation": { + "id": 10610, + "nodeType": "StructuredDocumentation", + "src": "13015:276:53", + "text": " @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 10637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint64", + "nameLocation": "13305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10612, + "mutability": "mutable", + "name": "value", + "nameLocation": "13322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "13314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13313:15:53" + }, + "returnParameters": { + "id": 10616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10615, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "13352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 10614, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13351:8:53" + }, + "scope": 11703, + "src": "13296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10664, + "nodeType": "Block", + "src": "13860:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10645, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "13874:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13887:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 10647, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13887:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + } + ], + "id": 10646, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13882:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13882:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint56", + "typeString": "type(uint56)" + } + }, + "id": 10650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13895:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13882:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "src": "13874:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10658, + "nodeType": "IfStatement", + "src": "13870:103:53", + "trueBody": { + "id": 10657, + "nodeType": "Block", + "src": "13900:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 10653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13952:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 10654, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "13956:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10652, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "13921:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10656, + "nodeType": "RevertStatement", + "src": "13914:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10661, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "13996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 10659, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13989:6:53", + "typeDescriptions": {} + } + }, + "id": 10662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "functionReturnParameters": 10644, + "id": 10663, + "nodeType": "Return", + "src": "13982:20:53" + } + ] + }, + "documentation": { + "id": 10638, + "nodeType": "StructuredDocumentation", + "src": "13515:276:53", + "text": " @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 10665, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint56", + "nameLocation": "13805:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10640, + "mutability": "mutable", + "name": "value", + "nameLocation": "13822:5:53", + "nodeType": "VariableDeclaration", + "scope": 10665, + "src": "13814:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13814:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13813:15:53" + }, + "returnParameters": { + "id": 10644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10643, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10665, + "src": "13852:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + }, + "typeName": { + "id": 10642, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13852:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "visibility": "internal" + } + ], + "src": "13851:8:53" + }, + "scope": 11703, + "src": "13796:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10692, + "nodeType": "Block", + "src": "14360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10673, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10668, + "src": "14374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10675, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + } + ], + "id": 10674, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint48", + "typeString": "type(uint48)" + } + }, + "id": 10678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10686, + "nodeType": "IfStatement", + "src": "14370:103:53", + "trueBody": { + "id": 10685, + "nodeType": "Block", + "src": "14400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 10681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 10682, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10668, + "src": "14456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10680, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "14421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10684, + "nodeType": "RevertStatement", + "src": "14414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10689, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10668, + "src": "14496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10687, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14489:6:53", + "typeDescriptions": {} + } + }, + "id": 10690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 10672, + "id": 10691, + "nodeType": "Return", + "src": "14482:20:53" + } + ] + }, + "documentation": { + "id": 10666, + "nodeType": "StructuredDocumentation", + "src": "14015:276:53", + "text": " @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 10693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint48", + "nameLocation": "14305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10668, + "mutability": "mutable", + "name": "value", + "nameLocation": "14322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10693, + "src": "14314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14313:15:53" + }, + "returnParameters": { + "id": 10672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10671, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10693, + "src": "14352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 10670, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14351:8:53" + }, + "scope": 11703, + "src": "14296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10720, + "nodeType": "Block", + "src": "14860:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10701, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10696, + "src": "14874:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14887:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 10703, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14887:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + } + ], + "id": 10702, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14882:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14882:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint40", + "typeString": "type(uint40)" + } + }, + "id": 10706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14895:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14882:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "14874:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10714, + "nodeType": "IfStatement", + "src": "14870:103:53", + "trueBody": { + "id": 10713, + "nodeType": "Block", + "src": "14900:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 10709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14952:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 10710, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10696, + "src": "14956:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10708, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "14921:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14921:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10712, + "nodeType": "RevertStatement", + "src": "14914:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10717, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10696, + "src": "14996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 10715, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14989:6:53", + "typeDescriptions": {} + } + }, + "id": 10718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "functionReturnParameters": 10700, + "id": 10719, + "nodeType": "Return", + "src": "14982:20:53" + } + ] + }, + "documentation": { + "id": 10694, + "nodeType": "StructuredDocumentation", + "src": "14515:276:53", + "text": " @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 10721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint40", + "nameLocation": "14805:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10696, + "mutability": "mutable", + "name": "value", + "nameLocation": "14822:5:53", + "nodeType": "VariableDeclaration", + "scope": 10721, + "src": "14814:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14814:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14813:15:53" + }, + "returnParameters": { + "id": 10700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10699, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10721, + "src": "14852:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 10698, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14852:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "src": "14851:8:53" + }, + "scope": 11703, + "src": "14796:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10748, + "nodeType": "Block", + "src": "15360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10729, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10724, + "src": "15374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 10731, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 10730, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 10734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10742, + "nodeType": "IfStatement", + "src": "15370:103:53", + "trueBody": { + "id": 10741, + "nodeType": "Block", + "src": "15400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 10737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 10738, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10724, + "src": "15456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10736, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "15421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10740, + "nodeType": "RevertStatement", + "src": "15414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10745, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10724, + "src": "15496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 10743, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15489:6:53", + "typeDescriptions": {} + } + }, + "id": 10746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 10728, + "id": 10747, + "nodeType": "Return", + "src": "15482:20:53" + } + ] + }, + "documentation": { + "id": 10722, + "nodeType": "StructuredDocumentation", + "src": "15015:276:53", + "text": " @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 10749, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint32", + "nameLocation": "15305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10724, + "mutability": "mutable", + "name": "value", + "nameLocation": "15322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10749, + "src": "15314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15313:15:53" + }, + "returnParameters": { + "id": 10728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10727, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10749, + "src": "15352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 10726, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "15351:8:53" + }, + "scope": 11703, + "src": "15296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10776, + "nodeType": "Block", + "src": "15860:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10757, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10752, + "src": "15874:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15887:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 10759, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15887:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + } + ], + "id": 10758, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15882:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15882:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint24", + "typeString": "type(uint24)" + } + }, + "id": 10762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15895:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15882:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "src": "15874:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10770, + "nodeType": "IfStatement", + "src": "15870:103:53", + "trueBody": { + "id": 10769, + "nodeType": "Block", + "src": "15900:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 10765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15952:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 10766, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10752, + "src": "15956:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10764, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "15921:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15921:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10768, + "nodeType": "RevertStatement", + "src": "15914:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10773, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10752, + "src": "15996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 10771, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15989:6:53", + "typeDescriptions": {} + } + }, + "id": 10774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "functionReturnParameters": 10756, + "id": 10775, + "nodeType": "Return", + "src": "15982:20:53" + } + ] + }, + "documentation": { + "id": 10750, + "nodeType": "StructuredDocumentation", + "src": "15515:276:53", + "text": " @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 10777, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint24", + "nameLocation": "15805:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10752, + "mutability": "mutable", + "name": "value", + "nameLocation": "15822:5:53", + "nodeType": "VariableDeclaration", + "scope": 10777, + "src": "15814:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15814:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15813:15:53" + }, + "returnParameters": { + "id": 10756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10755, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10777, + "src": "15852:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "typeName": { + "id": 10754, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15852:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "visibility": "internal" + } + ], + "src": "15851:8:53" + }, + "scope": 11703, + "src": "15796:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10804, + "nodeType": "Block", + "src": "16360:149:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10785, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10780, + "src": "16374:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16387:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 10787, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16387:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + } + ], + "id": 10786, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16382:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16382:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint16", + "typeString": "type(uint16)" + } + }, + "id": 10790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16395:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16382:16:53", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "16374:24:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10798, + "nodeType": "IfStatement", + "src": "16370:103:53", + "trueBody": { + "id": 10797, + "nodeType": "Block", + "src": "16400:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 10793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16452:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 10794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10780, + "src": "16456:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10792, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "16421:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16421:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10796, + "nodeType": "RevertStatement", + "src": "16414:48:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10801, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10780, + "src": "16496:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16489:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 10799, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16489:6:53", + "typeDescriptions": {} + } + }, + "id": 10802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16489:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 10784, + "id": 10803, + "nodeType": "Return", + "src": "16482:20:53" + } + ] + }, + "documentation": { + "id": 10778, + "nodeType": "StructuredDocumentation", + "src": "16015:276:53", + "text": " @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 10805, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint16", + "nameLocation": "16305:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10780, + "mutability": "mutable", + "name": "value", + "nameLocation": "16322:5:53", + "nodeType": "VariableDeclaration", + "scope": 10805, + "src": "16314:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10779, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16314:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16313:15:53" + }, + "returnParameters": { + "id": 10784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10783, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10805, + "src": "16352:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 10782, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16352:6:53", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "16351:8:53" + }, + "scope": 11703, + "src": "16296:213:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10832, + "nodeType": "Block", + "src": "16854:146:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10813, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10808, + "src": "16868:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 10815, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16881:5:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 10814, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16876:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16876:11:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 10818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16888:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16876:15:53", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16868:23:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10826, + "nodeType": "IfStatement", + "src": "16864:101:53", + "trueBody": { + "id": 10825, + "nodeType": "Block", + "src": "16893:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 10821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16945:1:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 10822, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10808, + "src": "16948:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10820, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9948, + "src": "16914:30:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16914:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10824, + "nodeType": "RevertStatement", + "src": "16907:47:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10829, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10808, + "src": "16987:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16981:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 10827, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16981:5:53", + "typeDescriptions": {} + } + }, + "id": 10830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16981:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 10812, + "id": 10831, + "nodeType": "Return", + "src": "16974:19:53" + } + ] + }, + "documentation": { + "id": 10806, + "nodeType": "StructuredDocumentation", + "src": "16515:272:53", + "text": " @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 10833, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint8", + "nameLocation": "16801:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10808, + "mutability": "mutable", + "name": "value", + "nameLocation": "16817:5:53", + "nodeType": "VariableDeclaration", + "scope": 10833, + "src": "16809:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16809:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16808:15:53" + }, + "returnParameters": { + "id": 10812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10811, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10833, + "src": "16847:5:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10810, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16847:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16846:7:53" + }, + "scope": 11703, + "src": "16792:208:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10855, + "nodeType": "Block", + "src": "17236:128:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10836, + "src": "17250:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 10842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17258:1:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17250:9:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10849, + "nodeType": "IfStatement", + "src": "17246:81:53", + "trueBody": { + "id": 10848, + "nodeType": "Block", + "src": "17261:66:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10845, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10836, + "src": "17310:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10844, + "name": "SafeCastOverflowedIntToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9953, + "src": "17282:27:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$", + "typeString": "function (int256) pure returns (error)" + } + }, + "id": 10846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17282:34:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10847, + "nodeType": "RevertStatement", + "src": "17275:41:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10852, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10836, + "src": "17351:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17343:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 10850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17343:7:53", + "typeDescriptions": {} + } + }, + "id": 10853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17343:14:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10840, + "id": 10854, + "nodeType": "Return", + "src": "17336:21:53" + } + ] + }, + "documentation": { + "id": 10834, + "nodeType": "StructuredDocumentation", + "src": "17006:160:53", + "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." + }, + "id": 10856, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint256", + "nameLocation": "17180:9:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10836, + "mutability": "mutable", + "name": "value", + "nameLocation": "17197:5:53", + "nodeType": "VariableDeclaration", + "scope": 10856, + "src": "17190:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10835, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17190:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17189:14:53" + }, + "returnParameters": { + "id": 10840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10839, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10856, + "src": "17227:7:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17227:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17226:9:53" + }, + "scope": 11703, + "src": "17171:193:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10881, + "nodeType": "Block", + "src": "17761:150:53", + "statements": [ + { + "expression": { + "id": 10869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10864, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10862, + "src": "17771:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10867, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10859, + "src": "17791:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17784:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int248_$", + "typeString": "type(int248)" + }, + "typeName": { + "id": 10865, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17784:6:53", + "typeDescriptions": {} + } + }, + "id": 10868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17784:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "src": "17771:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "id": 10870, + "nodeType": "ExpressionStatement", + "src": "17771:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10871, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10862, + "src": "17811:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10872, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10859, + "src": "17825:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "17811:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10880, + "nodeType": "IfStatement", + "src": "17807:98:53", + "trueBody": { + "id": 10879, + "nodeType": "Block", + "src": "17832:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 10875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17883:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 10876, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10859, + "src": "17888:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10874, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "17853:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 10877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17853:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10878, + "nodeType": "RevertStatement", + "src": "17846:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10857, + "nodeType": "StructuredDocumentation", + "src": "17370:312:53", + "text": " @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 10882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt248", + "nameLocation": "17696:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10859, + "mutability": "mutable", + "name": "value", + "nameLocation": "17712:5:53", + "nodeType": "VariableDeclaration", + "scope": 10882, + "src": "17705:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10858, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17705:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17704:14:53" + }, + "returnParameters": { + "id": 10863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10862, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "17749:10:53", + "nodeType": "VariableDeclaration", + "scope": 10882, + "src": "17742:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + }, + "typeName": { + "id": 10861, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17742:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "visibility": "internal" + } + ], + "src": "17741:19:53" + }, + "scope": 11703, + "src": "17687:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10907, + "nodeType": "Block", + "src": "18308:150:53", + "statements": [ + { + "expression": { + "id": 10895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10890, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "18318:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10893, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10885, + "src": "18338:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18331:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int240_$", + "typeString": "type(int240)" + }, + "typeName": { + "id": 10891, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18331:6:53", + "typeDescriptions": {} + } + }, + "id": 10894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18331:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "src": "18318:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "id": 10896, + "nodeType": "ExpressionStatement", + "src": "18318:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10897, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "18358:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10898, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10885, + "src": "18372:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18358:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10906, + "nodeType": "IfStatement", + "src": "18354:98:53", + "trueBody": { + "id": 10905, + "nodeType": "Block", + "src": "18379:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 10901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18430:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 10902, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10885, + "src": "18435:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10900, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "18400:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 10903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18400:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10904, + "nodeType": "RevertStatement", + "src": "18393:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10883, + "nodeType": "StructuredDocumentation", + "src": "17917:312:53", + "text": " @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 10908, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt240", + "nameLocation": "18243:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10885, + "mutability": "mutable", + "name": "value", + "nameLocation": "18259:5:53", + "nodeType": "VariableDeclaration", + "scope": 10908, + "src": "18252:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10884, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18252:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18251:14:53" + }, + "returnParameters": { + "id": 10889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10888, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18296:10:53", + "nodeType": "VariableDeclaration", + "scope": 10908, + "src": "18289:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + }, + "typeName": { + "id": 10887, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18289:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "visibility": "internal" + } + ], + "src": "18288:19:53" + }, + "scope": 11703, + "src": "18234:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10933, + "nodeType": "Block", + "src": "18855:150:53", + "statements": [ + { + "expression": { + "id": 10921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10916, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10914, + "src": "18865:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10919, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10911, + "src": "18885:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18878:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int232_$", + "typeString": "type(int232)" + }, + "typeName": { + "id": 10917, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18878:6:53", + "typeDescriptions": {} + } + }, + "id": 10920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18878:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "src": "18865:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "id": 10922, + "nodeType": "ExpressionStatement", + "src": "18865:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10923, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10914, + "src": "18905:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10924, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10911, + "src": "18919:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18905:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10932, + "nodeType": "IfStatement", + "src": "18901:98:53", + "trueBody": { + "id": 10931, + "nodeType": "Block", + "src": "18926:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 10927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18977:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 10928, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10911, + "src": "18982:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10926, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "18947:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 10929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18947:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10930, + "nodeType": "RevertStatement", + "src": "18940:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10909, + "nodeType": "StructuredDocumentation", + "src": "18464:312:53", + "text": " @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 10934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt232", + "nameLocation": "18790:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10911, + "mutability": "mutable", + "name": "value", + "nameLocation": "18806:5:53", + "nodeType": "VariableDeclaration", + "scope": 10934, + "src": "18799:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10910, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18799:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18798:14:53" + }, + "returnParameters": { + "id": 10915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10914, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18843:10:53", + "nodeType": "VariableDeclaration", + "scope": 10934, + "src": "18836:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + }, + "typeName": { + "id": 10913, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18836:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "visibility": "internal" + } + ], + "src": "18835:19:53" + }, + "scope": 11703, + "src": "18781:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10959, + "nodeType": "Block", + "src": "19402:150:53", + "statements": [ + { + "expression": { + "id": 10947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10942, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10940, + "src": "19412:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10945, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "19432:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19425:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int224_$", + "typeString": "type(int224)" + }, + "typeName": { + "id": 10943, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19425:6:53", + "typeDescriptions": {} + } + }, + "id": 10946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19425:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "src": "19412:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "id": 10948, + "nodeType": "ExpressionStatement", + "src": "19412:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10949, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10940, + "src": "19452:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10950, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "19466:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19452:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10958, + "nodeType": "IfStatement", + "src": "19448:98:53", + "trueBody": { + "id": 10957, + "nodeType": "Block", + "src": "19473:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 10953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19524:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 10954, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "19529:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10952, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "19494:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 10955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19494:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10956, + "nodeType": "RevertStatement", + "src": "19487:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10935, + "nodeType": "StructuredDocumentation", + "src": "19011:312:53", + "text": " @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 10960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt224", + "nameLocation": "19337:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10937, + "mutability": "mutable", + "name": "value", + "nameLocation": "19353:5:53", + "nodeType": "VariableDeclaration", + "scope": 10960, + "src": "19346:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10936, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19346:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19345:14:53" + }, + "returnParameters": { + "id": 10941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10940, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19390:10:53", + "nodeType": "VariableDeclaration", + "scope": 10960, + "src": "19383:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + }, + "typeName": { + "id": 10939, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19383:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "visibility": "internal" + } + ], + "src": "19382:19:53" + }, + "scope": 11703, + "src": "19328:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10985, + "nodeType": "Block", + "src": "19949:150:53", + "statements": [ + { + "expression": { + "id": 10973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10968, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10966, + "src": "19959:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10971, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10963, + "src": "19979:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19972:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int216_$", + "typeString": "type(int216)" + }, + "typeName": { + "id": 10969, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19972:6:53", + "typeDescriptions": {} + } + }, + "id": 10972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19972:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "src": "19959:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "id": 10974, + "nodeType": "ExpressionStatement", + "src": "19959:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 10977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10975, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10966, + "src": "19999:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10976, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10963, + "src": "20013:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19999:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10984, + "nodeType": "IfStatement", + "src": "19995:98:53", + "trueBody": { + "id": 10983, + "nodeType": "Block", + "src": "20020:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 10979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20071:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 10980, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10963, + "src": "20076:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10978, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "20041:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 10981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20041:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10982, + "nodeType": "RevertStatement", + "src": "20034:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10961, + "nodeType": "StructuredDocumentation", + "src": "19558:312:53", + "text": " @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 10986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt216", + "nameLocation": "19884:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10963, + "mutability": "mutable", + "name": "value", + "nameLocation": "19900:5:53", + "nodeType": "VariableDeclaration", + "scope": 10986, + "src": "19893:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10962, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19893:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19892:14:53" + }, + "returnParameters": { + "id": 10967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10966, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19937:10:53", + "nodeType": "VariableDeclaration", + "scope": 10986, + "src": "19930:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + }, + "typeName": { + "id": 10965, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19930:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "visibility": "internal" + } + ], + "src": "19929:19:53" + }, + "scope": 11703, + "src": "19875:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11011, + "nodeType": "Block", + "src": "20496:150:53", + "statements": [ + { + "expression": { + "id": 10999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10994, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "20506:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10997, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10989, + "src": "20526:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 10996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20519:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int208_$", + "typeString": "type(int208)" + }, + "typeName": { + "id": 10995, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20519:6:53", + "typeDescriptions": {} + } + }, + "id": 10998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20519:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "src": "20506:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "id": 11000, + "nodeType": "ExpressionStatement", + "src": "20506:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11001, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "20546:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11002, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10989, + "src": "20560:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "20546:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11010, + "nodeType": "IfStatement", + "src": "20542:98:53", + "trueBody": { + "id": 11009, + "nodeType": "Block", + "src": "20567:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 11005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20618:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 11006, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10989, + "src": "20623:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11004, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "20588:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20588:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11008, + "nodeType": "RevertStatement", + "src": "20581:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 10987, + "nodeType": "StructuredDocumentation", + "src": "20105:312:53", + "text": " @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 11012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt208", + "nameLocation": "20431:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10989, + "mutability": "mutable", + "name": "value", + "nameLocation": "20447:5:53", + "nodeType": "VariableDeclaration", + "scope": 11012, + "src": "20440:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10988, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20440:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20439:14:53" + }, + "returnParameters": { + "id": 10993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10992, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "20484:10:53", + "nodeType": "VariableDeclaration", + "scope": 11012, + "src": "20477:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + }, + "typeName": { + "id": 10991, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20477:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "visibility": "internal" + } + ], + "src": "20476:19:53" + }, + "scope": 11703, + "src": "20422:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11037, + "nodeType": "Block", + "src": "21043:150:53", + "statements": [ + { + "expression": { + "id": 11025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11020, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11018, + "src": "21053:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11023, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11015, + "src": "21073:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21066:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int200_$", + "typeString": "type(int200)" + }, + "typeName": { + "id": 11021, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21066:6:53", + "typeDescriptions": {} + } + }, + "id": 11024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21066:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "src": "21053:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "id": 11026, + "nodeType": "ExpressionStatement", + "src": "21053:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11027, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11018, + "src": "21093:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11028, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11015, + "src": "21107:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21093:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11036, + "nodeType": "IfStatement", + "src": "21089:98:53", + "trueBody": { + "id": 11035, + "nodeType": "Block", + "src": "21114:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 11031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21165:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 11032, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11015, + "src": "21170:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11030, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "21135:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21135:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11034, + "nodeType": "RevertStatement", + "src": "21128:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11013, + "nodeType": "StructuredDocumentation", + "src": "20652:312:53", + "text": " @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 11038, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt200", + "nameLocation": "20978:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11015, + "mutability": "mutable", + "name": "value", + "nameLocation": "20994:5:53", + "nodeType": "VariableDeclaration", + "scope": 11038, + "src": "20987:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11014, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20987:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20986:14:53" + }, + "returnParameters": { + "id": 11019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11018, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21031:10:53", + "nodeType": "VariableDeclaration", + "scope": 11038, + "src": "21024:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + }, + "typeName": { + "id": 11017, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21024:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "visibility": "internal" + } + ], + "src": "21023:19:53" + }, + "scope": 11703, + "src": "20969:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11063, + "nodeType": "Block", + "src": "21590:150:53", + "statements": [ + { + "expression": { + "id": 11051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11046, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11044, + "src": "21600:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11049, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11041, + "src": "21620:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21613:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int192_$", + "typeString": "type(int192)" + }, + "typeName": { + "id": 11047, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21613:6:53", + "typeDescriptions": {} + } + }, + "id": 11050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21613:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "src": "21600:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "id": 11052, + "nodeType": "ExpressionStatement", + "src": "21600:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11053, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11044, + "src": "21640:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11054, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11041, + "src": "21654:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21640:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11062, + "nodeType": "IfStatement", + "src": "21636:98:53", + "trueBody": { + "id": 11061, + "nodeType": "Block", + "src": "21661:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 11057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21712:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 11058, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11041, + "src": "21717:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11056, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "21682:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21682:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11060, + "nodeType": "RevertStatement", + "src": "21675:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11039, + "nodeType": "StructuredDocumentation", + "src": "21199:312:53", + "text": " @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 11064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt192", + "nameLocation": "21525:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11041, + "mutability": "mutable", + "name": "value", + "nameLocation": "21541:5:53", + "nodeType": "VariableDeclaration", + "scope": 11064, + "src": "21534:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11040, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "21534:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "21533:14:53" + }, + "returnParameters": { + "id": 11045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11044, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21578:10:53", + "nodeType": "VariableDeclaration", + "scope": 11064, + "src": "21571:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + }, + "typeName": { + "id": 11043, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21571:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "visibility": "internal" + } + ], + "src": "21570:19:53" + }, + "scope": 11703, + "src": "21516:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11089, + "nodeType": "Block", + "src": "22137:150:53", + "statements": [ + { + "expression": { + "id": 11077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11072, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11070, + "src": "22147:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11075, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11067, + "src": "22167:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22160:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int184_$", + "typeString": "type(int184)" + }, + "typeName": { + "id": 11073, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22160:6:53", + "typeDescriptions": {} + } + }, + "id": 11076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22160:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "src": "22147:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "id": 11078, + "nodeType": "ExpressionStatement", + "src": "22147:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11079, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11070, + "src": "22187:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11080, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11067, + "src": "22201:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22187:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11088, + "nodeType": "IfStatement", + "src": "22183:98:53", + "trueBody": { + "id": 11087, + "nodeType": "Block", + "src": "22208:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 11083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22259:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 11084, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11067, + "src": "22264:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11082, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "22229:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22229:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11086, + "nodeType": "RevertStatement", + "src": "22222:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11065, + "nodeType": "StructuredDocumentation", + "src": "21746:312:53", + "text": " @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 11090, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt184", + "nameLocation": "22072:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11067, + "mutability": "mutable", + "name": "value", + "nameLocation": "22088:5:53", + "nodeType": "VariableDeclaration", + "scope": 11090, + "src": "22081:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11066, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22081:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:14:53" + }, + "returnParameters": { + "id": 11071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11070, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22125:10:53", + "nodeType": "VariableDeclaration", + "scope": 11090, + "src": "22118:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + }, + "typeName": { + "id": 11069, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22118:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "visibility": "internal" + } + ], + "src": "22117:19:53" + }, + "scope": 11703, + "src": "22063:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11115, + "nodeType": "Block", + "src": "22684:150:53", + "statements": [ + { + "expression": { + "id": 11103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11098, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11096, + "src": "22694:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11101, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11093, + "src": "22714:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22707:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int176_$", + "typeString": "type(int176)" + }, + "typeName": { + "id": 11099, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22707:6:53", + "typeDescriptions": {} + } + }, + "id": 11102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22707:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "src": "22694:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "id": 11104, + "nodeType": "ExpressionStatement", + "src": "22694:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11105, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11096, + "src": "22734:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11106, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11093, + "src": "22748:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22734:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11114, + "nodeType": "IfStatement", + "src": "22730:98:53", + "trueBody": { + "id": 11113, + "nodeType": "Block", + "src": "22755:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 11109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22806:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 11110, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11093, + "src": "22811:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11108, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "22776:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22776:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11112, + "nodeType": "RevertStatement", + "src": "22769:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11091, + "nodeType": "StructuredDocumentation", + "src": "22293:312:53", + "text": " @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 11116, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt176", + "nameLocation": "22619:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11093, + "mutability": "mutable", + "name": "value", + "nameLocation": "22635:5:53", + "nodeType": "VariableDeclaration", + "scope": 11116, + "src": "22628:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11092, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22628:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22627:14:53" + }, + "returnParameters": { + "id": 11097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11096, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22672:10:53", + "nodeType": "VariableDeclaration", + "scope": 11116, + "src": "22665:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + }, + "typeName": { + "id": 11095, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22665:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "visibility": "internal" + } + ], + "src": "22664:19:53" + }, + "scope": 11703, + "src": "22610:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11141, + "nodeType": "Block", + "src": "23231:150:53", + "statements": [ + { + "expression": { + "id": 11129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11124, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11122, + "src": "23241:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11127, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11119, + "src": "23261:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23254:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int168_$", + "typeString": "type(int168)" + }, + "typeName": { + "id": 11125, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23254:6:53", + "typeDescriptions": {} + } + }, + "id": 11128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23254:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "src": "23241:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "id": 11130, + "nodeType": "ExpressionStatement", + "src": "23241:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11131, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11122, + "src": "23281:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11132, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11119, + "src": "23295:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23281:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11140, + "nodeType": "IfStatement", + "src": "23277:98:53", + "trueBody": { + "id": 11139, + "nodeType": "Block", + "src": "23302:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 11135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23353:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 11136, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11119, + "src": "23358:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11134, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "23323:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23323:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11138, + "nodeType": "RevertStatement", + "src": "23316:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11117, + "nodeType": "StructuredDocumentation", + "src": "22840:312:53", + "text": " @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 11142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt168", + "nameLocation": "23166:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11119, + "mutability": "mutable", + "name": "value", + "nameLocation": "23182:5:53", + "nodeType": "VariableDeclaration", + "scope": 11142, + "src": "23175:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11118, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23175:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23174:14:53" + }, + "returnParameters": { + "id": 11123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11122, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23219:10:53", + "nodeType": "VariableDeclaration", + "scope": 11142, + "src": "23212:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + }, + "typeName": { + "id": 11121, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23212:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "visibility": "internal" + } + ], + "src": "23211:19:53" + }, + "scope": 11703, + "src": "23157:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11167, + "nodeType": "Block", + "src": "23778:150:53", + "statements": [ + { + "expression": { + "id": 11155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11150, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11148, + "src": "23788:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11153, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11145, + "src": "23808:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23801:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int160_$", + "typeString": "type(int160)" + }, + "typeName": { + "id": 11151, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23801:6:53", + "typeDescriptions": {} + } + }, + "id": 11154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23801:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "src": "23788:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "id": 11156, + "nodeType": "ExpressionStatement", + "src": "23788:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11157, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11148, + "src": "23828:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11158, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11145, + "src": "23842:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23828:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11166, + "nodeType": "IfStatement", + "src": "23824:98:53", + "trueBody": { + "id": 11165, + "nodeType": "Block", + "src": "23849:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 11161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23900:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 11162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11145, + "src": "23905:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11160, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "23870:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23870:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11164, + "nodeType": "RevertStatement", + "src": "23863:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11143, + "nodeType": "StructuredDocumentation", + "src": "23387:312:53", + "text": " @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 11168, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt160", + "nameLocation": "23713:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11145, + "mutability": "mutable", + "name": "value", + "nameLocation": "23729:5:53", + "nodeType": "VariableDeclaration", + "scope": 11168, + "src": "23722:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11144, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23722:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23721:14:53" + }, + "returnParameters": { + "id": 11149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11148, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23766:10:53", + "nodeType": "VariableDeclaration", + "scope": 11168, + "src": "23759:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + }, + "typeName": { + "id": 11147, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23759:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "visibility": "internal" + } + ], + "src": "23758:19:53" + }, + "scope": 11703, + "src": "23704:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11193, + "nodeType": "Block", + "src": "24325:150:53", + "statements": [ + { + "expression": { + "id": 11181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11176, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "24335:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11179, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11171, + "src": "24355:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24348:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int152_$", + "typeString": "type(int152)" + }, + "typeName": { + "id": 11177, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24348:6:53", + "typeDescriptions": {} + } + }, + "id": 11180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24348:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "src": "24335:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "id": 11182, + "nodeType": "ExpressionStatement", + "src": "24335:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11183, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "24375:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11184, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11171, + "src": "24389:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24375:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11192, + "nodeType": "IfStatement", + "src": "24371:98:53", + "trueBody": { + "id": 11191, + "nodeType": "Block", + "src": "24396:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 11187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24447:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 11188, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11171, + "src": "24452:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11186, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "24417:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24417:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11190, + "nodeType": "RevertStatement", + "src": "24410:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11169, + "nodeType": "StructuredDocumentation", + "src": "23934:312:53", + "text": " @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 11194, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt152", + "nameLocation": "24260:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11171, + "mutability": "mutable", + "name": "value", + "nameLocation": "24276:5:53", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "24269:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11170, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24269:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24268:14:53" + }, + "returnParameters": { + "id": 11175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11174, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24313:10:53", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "24306:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + }, + "typeName": { + "id": 11173, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24306:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "visibility": "internal" + } + ], + "src": "24305:19:53" + }, + "scope": 11703, + "src": "24251:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11219, + "nodeType": "Block", + "src": "24872:150:53", + "statements": [ + { + "expression": { + "id": 11207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11202, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11200, + "src": "24882:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11197, + "src": "24902:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24895:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int144_$", + "typeString": "type(int144)" + }, + "typeName": { + "id": 11203, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24895:6:53", + "typeDescriptions": {} + } + }, + "id": 11206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24895:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "src": "24882:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "id": 11208, + "nodeType": "ExpressionStatement", + "src": "24882:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11209, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11200, + "src": "24922:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11210, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11197, + "src": "24936:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24922:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11218, + "nodeType": "IfStatement", + "src": "24918:98:53", + "trueBody": { + "id": 11217, + "nodeType": "Block", + "src": "24943:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 11213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24994:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 11214, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11197, + "src": "24999:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11212, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "24964:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24964:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11216, + "nodeType": "RevertStatement", + "src": "24957:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11195, + "nodeType": "StructuredDocumentation", + "src": "24481:312:53", + "text": " @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 11220, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt144", + "nameLocation": "24807:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11197, + "mutability": "mutable", + "name": "value", + "nameLocation": "24823:5:53", + "nodeType": "VariableDeclaration", + "scope": 11220, + "src": "24816:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11196, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24816:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24815:14:53" + }, + "returnParameters": { + "id": 11201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11200, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24860:10:53", + "nodeType": "VariableDeclaration", + "scope": 11220, + "src": "24853:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + }, + "typeName": { + "id": 11199, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24853:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "visibility": "internal" + } + ], + "src": "24852:19:53" + }, + "scope": 11703, + "src": "24798:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11245, + "nodeType": "Block", + "src": "25419:150:53", + "statements": [ + { + "expression": { + "id": 11233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11228, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11226, + "src": "25429:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11231, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11223, + "src": "25449:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25442:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int136_$", + "typeString": "type(int136)" + }, + "typeName": { + "id": 11229, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25442:6:53", + "typeDescriptions": {} + } + }, + "id": 11232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25442:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "src": "25429:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "id": 11234, + "nodeType": "ExpressionStatement", + "src": "25429:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11235, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11226, + "src": "25469:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11236, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11223, + "src": "25483:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "25469:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11244, + "nodeType": "IfStatement", + "src": "25465:98:53", + "trueBody": { + "id": 11243, + "nodeType": "Block", + "src": "25490:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 11239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25541:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 11240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11223, + "src": "25546:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11238, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "25511:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25511:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11242, + "nodeType": "RevertStatement", + "src": "25504:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11221, + "nodeType": "StructuredDocumentation", + "src": "25028:312:53", + "text": " @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 11246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt136", + "nameLocation": "25354:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11223, + "mutability": "mutable", + "name": "value", + "nameLocation": "25370:5:53", + "nodeType": "VariableDeclaration", + "scope": 11246, + "src": "25363:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11222, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25363:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25362:14:53" + }, + "returnParameters": { + "id": 11227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11226, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25407:10:53", + "nodeType": "VariableDeclaration", + "scope": 11246, + "src": "25400:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + }, + "typeName": { + "id": 11225, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25400:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "visibility": "internal" + } + ], + "src": "25399:19:53" + }, + "scope": 11703, + "src": "25345:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11271, + "nodeType": "Block", + "src": "25966:150:53", + "statements": [ + { + "expression": { + "id": 11259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11254, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11252, + "src": "25976:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11257, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11249, + "src": "25996:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25989:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int128_$", + "typeString": "type(int128)" + }, + "typeName": { + "id": 11255, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25989:6:53", + "typeDescriptions": {} + } + }, + "id": 11258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25989:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "src": "25976:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "id": 11260, + "nodeType": "ExpressionStatement", + "src": "25976:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11261, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11252, + "src": "26016:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11262, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11249, + "src": "26030:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26016:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11270, + "nodeType": "IfStatement", + "src": "26012:98:53", + "trueBody": { + "id": 11269, + "nodeType": "Block", + "src": "26037:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 11265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26088:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 11266, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11249, + "src": "26093:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11264, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "26058:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26058:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11268, + "nodeType": "RevertStatement", + "src": "26051:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11247, + "nodeType": "StructuredDocumentation", + "src": "25575:312:53", + "text": " @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 11272, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt128", + "nameLocation": "25901:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11249, + "mutability": "mutable", + "name": "value", + "nameLocation": "25917:5:53", + "nodeType": "VariableDeclaration", + "scope": 11272, + "src": "25910:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11248, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25910:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25909:14:53" + }, + "returnParameters": { + "id": 11253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11252, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25954:10:53", + "nodeType": "VariableDeclaration", + "scope": 11272, + "src": "25947:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + }, + "typeName": { + "id": 11251, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25947:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "visibility": "internal" + } + ], + "src": "25946:19:53" + }, + "scope": 11703, + "src": "25892:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11297, + "nodeType": "Block", + "src": "26513:150:53", + "statements": [ + { + "expression": { + "id": 11285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11280, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11278, + "src": "26523:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11275, + "src": "26543:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26536:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int120_$", + "typeString": "type(int120)" + }, + "typeName": { + "id": 11281, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26536:6:53", + "typeDescriptions": {} + } + }, + "id": 11284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26536:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "src": "26523:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "id": 11286, + "nodeType": "ExpressionStatement", + "src": "26523:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11287, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11278, + "src": "26563:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11288, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11275, + "src": "26577:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26563:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11296, + "nodeType": "IfStatement", + "src": "26559:98:53", + "trueBody": { + "id": 11295, + "nodeType": "Block", + "src": "26584:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 11291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26635:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 11292, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11275, + "src": "26640:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11290, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "26605:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26605:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11294, + "nodeType": "RevertStatement", + "src": "26598:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11273, + "nodeType": "StructuredDocumentation", + "src": "26122:312:53", + "text": " @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 11298, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt120", + "nameLocation": "26448:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11275, + "mutability": "mutable", + "name": "value", + "nameLocation": "26464:5:53", + "nodeType": "VariableDeclaration", + "scope": 11298, + "src": "26457:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11274, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "26457:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "26456:14:53" + }, + "returnParameters": { + "id": 11279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11278, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "26501:10:53", + "nodeType": "VariableDeclaration", + "scope": 11298, + "src": "26494:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + }, + "typeName": { + "id": 11277, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26494:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "visibility": "internal" + } + ], + "src": "26493:19:53" + }, + "scope": 11703, + "src": "26439:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11323, + "nodeType": "Block", + "src": "27060:150:53", + "statements": [ + { + "expression": { + "id": 11311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11306, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11304, + "src": "27070:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11309, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11301, + "src": "27090:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27083:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int112_$", + "typeString": "type(int112)" + }, + "typeName": { + "id": 11307, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27083:6:53", + "typeDescriptions": {} + } + }, + "id": 11310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27083:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "src": "27070:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "id": 11312, + "nodeType": "ExpressionStatement", + "src": "27070:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11313, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11304, + "src": "27110:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11314, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11301, + "src": "27124:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27110:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11322, + "nodeType": "IfStatement", + "src": "27106:98:53", + "trueBody": { + "id": 11321, + "nodeType": "Block", + "src": "27131:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 11317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27182:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 11318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11301, + "src": "27187:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11316, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "27152:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27152:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11320, + "nodeType": "RevertStatement", + "src": "27145:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11299, + "nodeType": "StructuredDocumentation", + "src": "26669:312:53", + "text": " @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 11324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt112", + "nameLocation": "26995:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11301, + "mutability": "mutable", + "name": "value", + "nameLocation": "27011:5:53", + "nodeType": "VariableDeclaration", + "scope": 11324, + "src": "27004:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11300, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27004:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27003:14:53" + }, + "returnParameters": { + "id": 11305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11304, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27048:10:53", + "nodeType": "VariableDeclaration", + "scope": 11324, + "src": "27041:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + }, + "typeName": { + "id": 11303, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27041:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "visibility": "internal" + } + ], + "src": "27040:19:53" + }, + "scope": 11703, + "src": "26986:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11349, + "nodeType": "Block", + "src": "27607:150:53", + "statements": [ + { + "expression": { + "id": 11337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11332, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11330, + "src": "27617:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11335, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11327, + "src": "27637:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27630:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int104_$", + "typeString": "type(int104)" + }, + "typeName": { + "id": 11333, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27630:6:53", + "typeDescriptions": {} + } + }, + "id": 11336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27630:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "src": "27617:26:53", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "id": 11338, + "nodeType": "ExpressionStatement", + "src": "27617:26:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11339, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11330, + "src": "27657:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11340, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11327, + "src": "27671:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27657:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11348, + "nodeType": "IfStatement", + "src": "27653:98:53", + "trueBody": { + "id": 11347, + "nodeType": "Block", + "src": "27678:73:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 11343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27729:3:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 11344, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11327, + "src": "27734:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11342, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "27699:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27699:41:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11346, + "nodeType": "RevertStatement", + "src": "27692:48:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11325, + "nodeType": "StructuredDocumentation", + "src": "27216:312:53", + "text": " @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 11350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt104", + "nameLocation": "27542:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11327, + "mutability": "mutable", + "name": "value", + "nameLocation": "27558:5:53", + "nodeType": "VariableDeclaration", + "scope": 11350, + "src": "27551:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11326, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27551:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27550:14:53" + }, + "returnParameters": { + "id": 11331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11330, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27595:10:53", + "nodeType": "VariableDeclaration", + "scope": 11350, + "src": "27588:17:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + }, + "typeName": { + "id": 11329, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27588:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "visibility": "internal" + } + ], + "src": "27587:19:53" + }, + "scope": 11703, + "src": "27533:224:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11375, + "nodeType": "Block", + "src": "28147:148:53", + "statements": [ + { + "expression": { + "id": 11363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11358, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "28157:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11361, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11353, + "src": "28176:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28170:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int96_$", + "typeString": "type(int96)" + }, + "typeName": { + "id": 11359, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28170:5:53", + "typeDescriptions": {} + } + }, + "id": 11362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28170:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "src": "28157:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "id": 11364, + "nodeType": "ExpressionStatement", + "src": "28157:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11365, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "28196:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11366, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11353, + "src": "28210:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28196:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11374, + "nodeType": "IfStatement", + "src": "28192:97:53", + "trueBody": { + "id": 11373, + "nodeType": "Block", + "src": "28217:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 11369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28268:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 11370, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11353, + "src": "28272:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11368, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "28238:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28238:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11372, + "nodeType": "RevertStatement", + "src": "28231:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11351, + "nodeType": "StructuredDocumentation", + "src": "27763:307:53", + "text": " @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 11376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt96", + "nameLocation": "28084:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11353, + "mutability": "mutable", + "name": "value", + "nameLocation": "28099:5:53", + "nodeType": "VariableDeclaration", + "scope": 11376, + "src": "28092:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11352, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28092:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28091:14:53" + }, + "returnParameters": { + "id": 11357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11356, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28135:10:53", + "nodeType": "VariableDeclaration", + "scope": 11376, + "src": "28129:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + }, + "typeName": { + "id": 11355, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28129:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "visibility": "internal" + } + ], + "src": "28128:18:53" + }, + "scope": 11703, + "src": "28075:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11401, + "nodeType": "Block", + "src": "28685:148:53", + "statements": [ + { + "expression": { + "id": 11389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11384, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11382, + "src": "28695:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11387, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11379, + "src": "28714:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28708:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int88_$", + "typeString": "type(int88)" + }, + "typeName": { + "id": 11385, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28708:5:53", + "typeDescriptions": {} + } + }, + "id": 11388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28708:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "src": "28695:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "id": 11390, + "nodeType": "ExpressionStatement", + "src": "28695:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11391, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11382, + "src": "28734:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11392, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11379, + "src": "28748:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28734:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11400, + "nodeType": "IfStatement", + "src": "28730:97:53", + "trueBody": { + "id": 11399, + "nodeType": "Block", + "src": "28755:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 11395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28806:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 11396, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11379, + "src": "28810:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11394, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "28776:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28776:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11398, + "nodeType": "RevertStatement", + "src": "28769:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11377, + "nodeType": "StructuredDocumentation", + "src": "28301:307:53", + "text": " @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 11402, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt88", + "nameLocation": "28622:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11379, + "mutability": "mutable", + "name": "value", + "nameLocation": "28637:5:53", + "nodeType": "VariableDeclaration", + "scope": 11402, + "src": "28630:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11378, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28630:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28629:14:53" + }, + "returnParameters": { + "id": 11383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11382, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28673:10:53", + "nodeType": "VariableDeclaration", + "scope": 11402, + "src": "28667:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + }, + "typeName": { + "id": 11381, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28667:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "visibility": "internal" + } + ], + "src": "28666:18:53" + }, + "scope": 11703, + "src": "28613:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11427, + "nodeType": "Block", + "src": "29223:148:53", + "statements": [ + { + "expression": { + "id": 11415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11410, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11408, + "src": "29233:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11413, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11405, + "src": "29252:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29246:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int80_$", + "typeString": "type(int80)" + }, + "typeName": { + "id": 11411, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29246:5:53", + "typeDescriptions": {} + } + }, + "id": 11414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29246:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "src": "29233:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "id": 11416, + "nodeType": "ExpressionStatement", + "src": "29233:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11417, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11408, + "src": "29272:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11418, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11405, + "src": "29286:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29272:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11426, + "nodeType": "IfStatement", + "src": "29268:97:53", + "trueBody": { + "id": 11425, + "nodeType": "Block", + "src": "29293:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 11421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29344:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 11422, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11405, + "src": "29348:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11420, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "29314:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29314:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11424, + "nodeType": "RevertStatement", + "src": "29307:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11403, + "nodeType": "StructuredDocumentation", + "src": "28839:307:53", + "text": " @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 11428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt80", + "nameLocation": "29160:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11405, + "mutability": "mutable", + "name": "value", + "nameLocation": "29175:5:53", + "nodeType": "VariableDeclaration", + "scope": 11428, + "src": "29168:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11404, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29168:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29167:14:53" + }, + "returnParameters": { + "id": 11409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11408, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29211:10:53", + "nodeType": "VariableDeclaration", + "scope": 11428, + "src": "29205:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + }, + "typeName": { + "id": 11407, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29205:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "visibility": "internal" + } + ], + "src": "29204:18:53" + }, + "scope": 11703, + "src": "29151:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11453, + "nodeType": "Block", + "src": "29761:148:53", + "statements": [ + { + "expression": { + "id": 11441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11436, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11434, + "src": "29771:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11439, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11431, + "src": "29790:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29784:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int72_$", + "typeString": "type(int72)" + }, + "typeName": { + "id": 11437, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29784:5:53", + "typeDescriptions": {} + } + }, + "id": 11440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29784:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "src": "29771:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "id": 11442, + "nodeType": "ExpressionStatement", + "src": "29771:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11443, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11434, + "src": "29810:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11431, + "src": "29824:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29810:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11452, + "nodeType": "IfStatement", + "src": "29806:97:53", + "trueBody": { + "id": 11451, + "nodeType": "Block", + "src": "29831:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 11447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29882:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 11448, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11431, + "src": "29886:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11446, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "29852:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29852:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11450, + "nodeType": "RevertStatement", + "src": "29845:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11429, + "nodeType": "StructuredDocumentation", + "src": "29377:307:53", + "text": " @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 11454, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt72", + "nameLocation": "29698:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11431, + "mutability": "mutable", + "name": "value", + "nameLocation": "29713:5:53", + "nodeType": "VariableDeclaration", + "scope": 11454, + "src": "29706:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11430, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29706:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29705:14:53" + }, + "returnParameters": { + "id": 11435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11434, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29749:10:53", + "nodeType": "VariableDeclaration", + "scope": 11454, + "src": "29743:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + }, + "typeName": { + "id": 11433, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29743:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "visibility": "internal" + } + ], + "src": "29742:18:53" + }, + "scope": 11703, + "src": "29689:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11479, + "nodeType": "Block", + "src": "30299:148:53", + "statements": [ + { + "expression": { + "id": 11467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11462, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11460, + "src": "30309:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11457, + "src": "30328:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30322:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int64_$", + "typeString": "type(int64)" + }, + "typeName": { + "id": 11463, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30322:5:53", + "typeDescriptions": {} + } + }, + "id": 11466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30322:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "src": "30309:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "id": 11468, + "nodeType": "ExpressionStatement", + "src": "30309:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11469, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11460, + "src": "30348:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11470, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11457, + "src": "30362:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30348:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11478, + "nodeType": "IfStatement", + "src": "30344:97:53", + "trueBody": { + "id": 11477, + "nodeType": "Block", + "src": "30369:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 11473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30420:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 11474, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11457, + "src": "30424:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11472, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "30390:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30390:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11476, + "nodeType": "RevertStatement", + "src": "30383:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11455, + "nodeType": "StructuredDocumentation", + "src": "29915:307:53", + "text": " @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 11480, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt64", + "nameLocation": "30236:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11457, + "mutability": "mutable", + "name": "value", + "nameLocation": "30251:5:53", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "30244:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11456, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30244:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30243:14:53" + }, + "returnParameters": { + "id": 11461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11460, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30287:10:53", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "30281:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + }, + "typeName": { + "id": 11459, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30281:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "visibility": "internal" + } + ], + "src": "30280:18:53" + }, + "scope": 11703, + "src": "30227:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11505, + "nodeType": "Block", + "src": "30837:148:53", + "statements": [ + { + "expression": { + "id": 11493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11488, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11486, + "src": "30847:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11491, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11483, + "src": "30866:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30860:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int56_$", + "typeString": "type(int56)" + }, + "typeName": { + "id": 11489, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30860:5:53", + "typeDescriptions": {} + } + }, + "id": 11492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30860:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "src": "30847:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "id": 11494, + "nodeType": "ExpressionStatement", + "src": "30847:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11495, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11486, + "src": "30886:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11496, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11483, + "src": "30900:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30886:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11504, + "nodeType": "IfStatement", + "src": "30882:97:53", + "trueBody": { + "id": 11503, + "nodeType": "Block", + "src": "30907:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 11499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30958:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 11500, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11483, + "src": "30962:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11498, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "30928:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30928:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11502, + "nodeType": "RevertStatement", + "src": "30921:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11481, + "nodeType": "StructuredDocumentation", + "src": "30453:307:53", + "text": " @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 11506, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt56", + "nameLocation": "30774:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11483, + "mutability": "mutable", + "name": "value", + "nameLocation": "30789:5:53", + "nodeType": "VariableDeclaration", + "scope": 11506, + "src": "30782:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11482, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30782:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30781:14:53" + }, + "returnParameters": { + "id": 11487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11486, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30825:10:53", + "nodeType": "VariableDeclaration", + "scope": 11506, + "src": "30819:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + }, + "typeName": { + "id": 11485, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30819:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "visibility": "internal" + } + ], + "src": "30818:18:53" + }, + "scope": 11703, + "src": "30765:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11531, + "nodeType": "Block", + "src": "31375:148:53", + "statements": [ + { + "expression": { + "id": 11519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11514, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11512, + "src": "31385:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11517, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "31404:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31398:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int48_$", + "typeString": "type(int48)" + }, + "typeName": { + "id": 11515, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31398:5:53", + "typeDescriptions": {} + } + }, + "id": 11518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31398:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "src": "31385:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "id": 11520, + "nodeType": "ExpressionStatement", + "src": "31385:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11521, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11512, + "src": "31424:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11522, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "31438:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31424:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11530, + "nodeType": "IfStatement", + "src": "31420:97:53", + "trueBody": { + "id": 11529, + "nodeType": "Block", + "src": "31445:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 11525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31496:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 11526, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "31500:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11524, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "31466:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31466:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11528, + "nodeType": "RevertStatement", + "src": "31459:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11507, + "nodeType": "StructuredDocumentation", + "src": "30991:307:53", + "text": " @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 11532, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt48", + "nameLocation": "31312:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11509, + "mutability": "mutable", + "name": "value", + "nameLocation": "31327:5:53", + "nodeType": "VariableDeclaration", + "scope": 11532, + "src": "31320:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11508, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31320:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31319:14:53" + }, + "returnParameters": { + "id": 11513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11512, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31363:10:53", + "nodeType": "VariableDeclaration", + "scope": 11532, + "src": "31357:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + }, + "typeName": { + "id": 11511, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31357:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "visibility": "internal" + } + ], + "src": "31356:18:53" + }, + "scope": 11703, + "src": "31303:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11557, + "nodeType": "Block", + "src": "31913:148:53", + "statements": [ + { + "expression": { + "id": 11545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11540, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "31923:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11543, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11535, + "src": "31942:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31936:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int40_$", + "typeString": "type(int40)" + }, + "typeName": { + "id": 11541, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31936:5:53", + "typeDescriptions": {} + } + }, + "id": 11544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31936:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "src": "31923:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "id": 11546, + "nodeType": "ExpressionStatement", + "src": "31923:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11547, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "31962:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11548, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11535, + "src": "31976:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31962:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11556, + "nodeType": "IfStatement", + "src": "31958:97:53", + "trueBody": { + "id": 11555, + "nodeType": "Block", + "src": "31983:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 11551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32034:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 11552, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11535, + "src": "32038:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11550, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "32004:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32004:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11554, + "nodeType": "RevertStatement", + "src": "31997:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11533, + "nodeType": "StructuredDocumentation", + "src": "31529:307:53", + "text": " @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 11558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt40", + "nameLocation": "31850:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11535, + "mutability": "mutable", + "name": "value", + "nameLocation": "31865:5:53", + "nodeType": "VariableDeclaration", + "scope": 11558, + "src": "31858:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11534, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31858:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31857:14:53" + }, + "returnParameters": { + "id": 11539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11538, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31901:10:53", + "nodeType": "VariableDeclaration", + "scope": 11558, + "src": "31895:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + }, + "typeName": { + "id": 11537, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31895:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "visibility": "internal" + } + ], + "src": "31894:18:53" + }, + "scope": 11703, + "src": "31841:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11583, + "nodeType": "Block", + "src": "32451:148:53", + "statements": [ + { + "expression": { + "id": 11571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11566, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11564, + "src": "32461:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11569, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11561, + "src": "32480:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32474:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int32_$", + "typeString": "type(int32)" + }, + "typeName": { + "id": 11567, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32474:5:53", + "typeDescriptions": {} + } + }, + "id": 11570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32474:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "src": "32461:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "id": 11572, + "nodeType": "ExpressionStatement", + "src": "32461:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11573, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11564, + "src": "32500:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11574, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11561, + "src": "32514:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "32500:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11582, + "nodeType": "IfStatement", + "src": "32496:97:53", + "trueBody": { + "id": 11581, + "nodeType": "Block", + "src": "32521:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 11577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32572:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 11578, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11561, + "src": "32576:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11576, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "32542:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32542:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11580, + "nodeType": "RevertStatement", + "src": "32535:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11559, + "nodeType": "StructuredDocumentation", + "src": "32067:307:53", + "text": " @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 11584, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt32", + "nameLocation": "32388:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11561, + "mutability": "mutable", + "name": "value", + "nameLocation": "32403:5:53", + "nodeType": "VariableDeclaration", + "scope": 11584, + "src": "32396:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11560, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32396:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32395:14:53" + }, + "returnParameters": { + "id": 11565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11564, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32439:10:53", + "nodeType": "VariableDeclaration", + "scope": 11584, + "src": "32433:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + }, + "typeName": { + "id": 11563, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32433:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "visibility": "internal" + } + ], + "src": "32432:18:53" + }, + "scope": 11703, + "src": "32379:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11609, + "nodeType": "Block", + "src": "32989:148:53", + "statements": [ + { + "expression": { + "id": 11597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11592, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "32999:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11595, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "33018:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33012:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int24_$", + "typeString": "type(int24)" + }, + "typeName": { + "id": 11593, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "33012:5:53", + "typeDescriptions": {} + } + }, + "id": 11596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33012:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "src": "32999:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "id": 11598, + "nodeType": "ExpressionStatement", + "src": "32999:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11599, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "33038:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "33052:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33038:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11608, + "nodeType": "IfStatement", + "src": "33034:97:53", + "trueBody": { + "id": 11607, + "nodeType": "Block", + "src": "33059:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 11603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33110:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 11604, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "33114:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11602, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "33080:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33080:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11606, + "nodeType": "RevertStatement", + "src": "33073:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11585, + "nodeType": "StructuredDocumentation", + "src": "32605:307:53", + "text": " @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 11610, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt24", + "nameLocation": "32926:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11587, + "mutability": "mutable", + "name": "value", + "nameLocation": "32941:5:53", + "nodeType": "VariableDeclaration", + "scope": 11610, + "src": "32934:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11586, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32934:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32933:14:53" + }, + "returnParameters": { + "id": 11591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11590, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32977:10:53", + "nodeType": "VariableDeclaration", + "scope": 11610, + "src": "32971:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + }, + "typeName": { + "id": 11589, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "32971:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "visibility": "internal" + } + ], + "src": "32970:18:53" + }, + "scope": 11703, + "src": "32917:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11635, + "nodeType": "Block", + "src": "33527:148:53", + "statements": [ + { + "expression": { + "id": 11623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11618, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11616, + "src": "33537:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11621, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11613, + "src": "33556:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33550:5:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int16_$", + "typeString": "type(int16)" + }, + "typeName": { + "id": 11619, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33550:5:53", + "typeDescriptions": {} + } + }, + "id": 11622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33550:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "src": "33537:25:53", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "id": 11624, + "nodeType": "ExpressionStatement", + "src": "33537:25:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11625, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11616, + "src": "33576:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11626, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11613, + "src": "33590:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33576:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11634, + "nodeType": "IfStatement", + "src": "33572:97:53", + "trueBody": { + "id": 11633, + "nodeType": "Block", + "src": "33597:72:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 11629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33648:2:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 11630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11613, + "src": "33652:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11628, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "33618:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33618:40:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11632, + "nodeType": "RevertStatement", + "src": "33611:47:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11611, + "nodeType": "StructuredDocumentation", + "src": "33143:307:53", + "text": " @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 11636, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt16", + "nameLocation": "33464:7:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11613, + "mutability": "mutable", + "name": "value", + "nameLocation": "33479:5:53", + "nodeType": "VariableDeclaration", + "scope": 11636, + "src": "33472:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11612, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "33472:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "33471:14:53" + }, + "returnParameters": { + "id": 11617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11616, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "33515:10:53", + "nodeType": "VariableDeclaration", + "scope": 11636, + "src": "33509:16:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + }, + "typeName": { + "id": 11615, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33509:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "visibility": "internal" + } + ], + "src": "33508:18:53" + }, + "scope": 11703, + "src": "33455:220:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11661, + "nodeType": "Block", + "src": "34058:146:53", + "statements": [ + { + "expression": { + "id": 11649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11644, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11642, + "src": "34068:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11647, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11639, + "src": "34086:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34081:4:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int8_$", + "typeString": "type(int8)" + }, + "typeName": { + "id": 11645, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34081:4:53", + "typeDescriptions": {} + } + }, + "id": 11648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34081:11:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "src": "34068:24:53", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "id": 11650, + "nodeType": "ExpressionStatement", + "src": "34068:24:53" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11651, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11642, + "src": "34106:10:53", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11652, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11639, + "src": "34120:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "34106:19:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11660, + "nodeType": "IfStatement", + "src": "34102:96:53", + "trueBody": { + "id": 11659, + "nodeType": "Block", + "src": "34127:71:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 11655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34178:1:53", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 11656, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11639, + "src": "34181:5:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11654, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "34148:29:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34148:39:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11658, + "nodeType": "RevertStatement", + "src": "34141:46:53" + } + ] + } + } + ] + }, + "documentation": { + "id": 11637, + "nodeType": "StructuredDocumentation", + "src": "33681:302:53", + "text": " @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 11662, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt8", + "nameLocation": "33997:6:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11639, + "mutability": "mutable", + "name": "value", + "nameLocation": "34011:5:53", + "nodeType": "VariableDeclaration", + "scope": 11662, + "src": "34004:12:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11638, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34004:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34003:14:53" + }, + "returnParameters": { + "id": 11643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11642, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "34046:10:53", + "nodeType": "VariableDeclaration", + "scope": 11662, + "src": "34041:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + }, + "typeName": { + "id": 11641, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34041:4:53", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "visibility": "internal" + } + ], + "src": "34040:17:53" + }, + "scope": 11703, + "src": "33988:216:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11691, + "nodeType": "Block", + "src": "34444:250:53", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11670, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11665, + "src": "34557:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 11675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34578:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 11674, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34578:6:53", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 11673, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "34573:4:53", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34573:12:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 11677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "34586:3:53", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "34573:16:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34565:7:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34565:7:53", + "typeDescriptions": {} + } + }, + "id": 11678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34565:25:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34557:33:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11685, + "nodeType": "IfStatement", + "src": "34553:105:53", + "trueBody": { + "id": 11684, + "nodeType": "Block", + "src": "34592:66:53", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 11681, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11665, + "src": "34641:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11680, + "name": "SafeCastOverflowedUintToInt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9965, + "src": "34613:27:53", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 11682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34613:34:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11683, + "nodeType": "RevertStatement", + "src": "34606:41:53" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11688, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11665, + "src": "34681:5:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34674:6:53", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 11686, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34674:6:53", + "typeDescriptions": {} + } + }, + "id": 11689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34674:13:53", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 11669, + "id": 11690, + "nodeType": "Return", + "src": "34667:20:53" + } + ] + }, + "documentation": { + "id": 11663, + "nodeType": "StructuredDocumentation", + "src": "34210:165:53", + "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." + }, + "id": 11692, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt256", + "nameLocation": "34389:8:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11665, + "mutability": "mutable", + "name": "value", + "nameLocation": "34406:5:53", + "nodeType": "VariableDeclaration", + "scope": 11692, + "src": "34398:13:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34398:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34397:15:53" + }, + "returnParameters": { + "id": 11669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11668, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11692, + "src": "34436:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11667, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34436:6:53", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34435:8:53" + }, + "scope": 11703, + "src": "34380:314:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11701, + "nodeType": "Block", + "src": "34853:87:53", + "statements": [ + { + "AST": { + "nativeSrc": "34888:46:53", + "nodeType": "YulBlock", + "src": "34888:46:53", + "statements": [ + { + "nativeSrc": "34902:22:53", + "nodeType": "YulAssignment", + "src": "34902:22:53", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "b", + "nativeSrc": "34921:1:53", + "nodeType": "YulIdentifier", + "src": "34921:1:53" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34914:6:53", + "nodeType": "YulIdentifier", + "src": "34914:6:53" + }, + "nativeSrc": "34914:9:53", + "nodeType": "YulFunctionCall", + "src": "34914:9:53" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34907:6:53", + "nodeType": "YulIdentifier", + "src": "34907:6:53" + }, + "nativeSrc": "34907:17:53", + "nodeType": "YulFunctionCall", + "src": "34907:17:53" + }, + "variableNames": [ + { + "name": "u", + "nativeSrc": "34902:1:53", + "nodeType": "YulIdentifier", + "src": "34902:1:53" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 11695, + "isOffset": false, + "isSlot": false, + "src": "34921:1:53", + "valueSize": 1 + }, + { + "declaration": 11698, + "isOffset": false, + "isSlot": false, + "src": "34902:1:53", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 11700, + "nodeType": "InlineAssembly", + "src": "34863:71:53" + } + ] + }, + "documentation": { + "id": 11693, + "nodeType": "StructuredDocumentation", + "src": "34700:90:53", + "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump." + }, + "id": 11702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint", + "nameLocation": "34804:6:53", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11695, + "mutability": "mutable", + "name": "b", + "nameLocation": "34816:1:53", + "nodeType": "VariableDeclaration", + "scope": 11702, + "src": "34811:6:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11694, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34811:4:53", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34810:8:53" + }, + "returnParameters": { + "id": 11699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11698, + "mutability": "mutable", + "name": "u", + "nameLocation": "34850:1:53", + "nodeType": "VariableDeclaration", + "scope": 11702, + "src": "34842:9:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34842:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34841:11:53" + }, + "scope": 11703, + "src": "34795:145:53", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11704, + "src": "769:34173:53", + "usedErrors": [ + 9948, + 9953, + 9960, + 9965 + ], + "usedEvents": [] + } + ], + "src": "192:34751:53" + }, + "id": 53 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SafeCast": [ + 11703 + ], + "SignedMath": [ + 11847 + ] + }, + "id": 11848, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11705, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:54" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 11707, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11848, + "sourceUnit": 11704, + "src": "135:40:54", + "symbolAliases": [ + { + "foreign": { + "id": 11706, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "143:8:54", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 11708, + "nodeType": "StructuredDocumentation", + "src": "177:80:54", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 11847, + "linearizedBaseContracts": [ + 11847 + ], + "name": "SignedMath", + "nameLocation": "266:10:54", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 11737, + "nodeType": "Block", + "src": "746:215:54", + "statements": [ + { + "id": 11736, + "nodeType": "UncheckedBlock", + "src": "756:199:54", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11720, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11715, + "src": "894:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11721, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11713, + "src": "900:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 11722, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11715, + "src": "904:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "900:5:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11724, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "899:7:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 11729, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11711, + "src": "932:9:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 11727, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "916:8:54", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$11703_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 11728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "925:6:54", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11702, + "src": "916:15:54", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 11730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:26:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "909:6:54", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 11725, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "909:6:54", + "typeDescriptions": {} + } + }, + "id": 11731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "909:34:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "899:44:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11733, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "898:46:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "894:50:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 11719, + "id": 11735, + "nodeType": "Return", + "src": "887:57:54" + } + ] + } + ] + }, + "documentation": { + "id": 11709, + "nodeType": "StructuredDocumentation", + "src": "283:374:54", + "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." + }, + "id": 11738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "671:7:54", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11711, + "mutability": "mutable", + "name": "condition", + "nameLocation": "684:9:54", + "nodeType": "VariableDeclaration", + "scope": 11738, + "src": "679:14:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11710, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "679:4:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11713, + "mutability": "mutable", + "name": "a", + "nameLocation": "702:1:54", + "nodeType": "VariableDeclaration", + "scope": 11738, + "src": "695:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11712, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "695:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11715, + "mutability": "mutable", + "name": "b", + "nameLocation": "712:1:54", + "nodeType": "VariableDeclaration", + "scope": 11738, + "src": "705:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11714, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "705:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "678:36:54" + }, + "returnParameters": { + "id": 11719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11718, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11738, + "src": "738:6:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11717, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "738:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "737:8:54" + }, + "scope": 11847, + "src": "662:299:54", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11756, + "nodeType": "Block", + "src": "1102:44:54", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11749, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11741, + "src": "1127:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 11750, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11743, + "src": "1131:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1127:5:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 11752, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11741, + "src": "1134:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 11753, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11743, + "src": "1137:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11748, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11738, + "src": "1119:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 11754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1119:20:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 11747, + "id": 11755, + "nodeType": "Return", + "src": "1112:27:54" + } + ] + }, + "documentation": { + "id": 11739, + "nodeType": "StructuredDocumentation", + "src": "967:66:54", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 11757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "1047:3:54", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11741, + "mutability": "mutable", + "name": "a", + "nameLocation": "1058:1:54", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1051:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11740, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1051:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11743, + "mutability": "mutable", + "name": "b", + "nameLocation": "1068:1:54", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1061:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11742, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:20:54" + }, + "returnParameters": { + "id": 11747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1094:6:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11745, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1094:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:8:54" + }, + "scope": 11847, + "src": "1038:108:54", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11775, + "nodeType": "Block", + "src": "1288:44:54", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11768, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11760, + "src": "1313:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 11769, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11762, + "src": "1317:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1313:5:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 11771, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11760, + "src": "1320:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 11772, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11762, + "src": "1323:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11767, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11738, + "src": "1305:7:54", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 11773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1305:20:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 11766, + "id": 11774, + "nodeType": "Return", + "src": "1298:27:54" + } + ] + }, + "documentation": { + "id": 11758, + "nodeType": "StructuredDocumentation", + "src": "1152:67:54", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 11776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "1233:3:54", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11760, + "mutability": "mutable", + "name": "a", + "nameLocation": "1244:1:54", + "nodeType": "VariableDeclaration", + "scope": 11776, + "src": "1237:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11759, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1237:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11762, + "mutability": "mutable", + "name": "b", + "nameLocation": "1254:1:54", + "nodeType": "VariableDeclaration", + "scope": 11776, + "src": "1247:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11761, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1247:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1236:20:54" + }, + "returnParameters": { + "id": 11766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11765, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11776, + "src": "1280:6:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11764, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1280:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1279:8:54" + }, + "scope": 11847, + "src": "1224:108:54", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11819, + "nodeType": "Block", + "src": "1537:162:54", + "statements": [ + { + "assignments": [ + 11787 + ], + "declarations": [ + { + "constant": false, + "id": 11787, + "mutability": "mutable", + "name": "x", + "nameLocation": "1606:1:54", + "nodeType": "VariableDeclaration", + "scope": 11819, + "src": "1599:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11786, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1599:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 11800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11788, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11779, + "src": "1611:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 11789, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11781, + "src": "1615:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1611:5:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11791, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1610:7:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11792, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11779, + "src": "1622:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 11793, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11781, + "src": "1626:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1622:5:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11795, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1621:7:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 11796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1632:1:54", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1621:12:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11798, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1620:14:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1610:24:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1599:35:54" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11801, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11787, + "src": "1651:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 11806, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11787, + "src": "1671:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1663:7:54", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1663:7:54", + "typeDescriptions": {} + } + }, + "id": 11807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1663:10:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 11808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:3:54", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "1663:17:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1656:6:54", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 11802, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1656:6:54", + "typeDescriptions": {} + } + }, + "id": 11810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1656:25:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11811, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11779, + "src": "1685:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 11812, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11781, + "src": "1689:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1685:5:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11814, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1684:7:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1656:35:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11816, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1655:37:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1651:41:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 11785, + "id": 11818, + "nodeType": "Return", + "src": "1644:48:54" + } + ] + }, + "documentation": { + "id": 11777, + "nodeType": "StructuredDocumentation", + "src": "1338:126:54", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 11820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "1478:7:54", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11779, + "mutability": "mutable", + "name": "a", + "nameLocation": "1493:1:54", + "nodeType": "VariableDeclaration", + "scope": 11820, + "src": "1486:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11778, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1486:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11781, + "mutability": "mutable", + "name": "b", + "nameLocation": "1503:1:54", + "nodeType": "VariableDeclaration", + "scope": 11820, + "src": "1496:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11780, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1496:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1485:20:54" + }, + "returnParameters": { + "id": 11785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11784, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11820, + "src": "1529:6:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11783, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1529:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1528:8:54" + }, + "scope": 11847, + "src": "1469:230:54", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11845, + "nodeType": "Block", + "src": "1843:767:54", + "statements": [ + { + "id": 11844, + "nodeType": "UncheckedBlock", + "src": "1853:751:54", + "statements": [ + { + "assignments": [ + 11829 + ], + "declarations": [ + { + "constant": false, + "id": 11829, + "mutability": "mutable", + "name": "mask", + "nameLocation": "2424:4:54", + "nodeType": "VariableDeclaration", + "scope": 11844, + "src": "2417:11:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11828, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2417:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 11833, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11830, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11823, + "src": "2431:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 11831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2436:3:54", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "2431:8:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2417:22:54" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11836, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11823, + "src": "2576:1:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 11837, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11829, + "src": "2580:4:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2576:8:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 11839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2575:10:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 11840, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11829, + "src": "2588:4:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2575:17:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2567:7:54", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2567:7:54", + "typeDescriptions": {} + } + }, + "id": 11842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2567:26:54", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11827, + "id": 11843, + "nodeType": "Return", + "src": "2560:33:54" + } + ] + } + ] + }, + "documentation": { + "id": 11821, + "nodeType": "StructuredDocumentation", + "src": "1705:78:54", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 11846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1797:3:54", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11823, + "mutability": "mutable", + "name": "n", + "nameLocation": "1808:1:54", + "nodeType": "VariableDeclaration", + "scope": 11846, + "src": "1801:8:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11822, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1801:6:54", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1800:10:54" + }, + "returnParameters": { + "id": 11827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11826, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11846, + "src": "1834:7:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1834:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1833:9:54" + }, + "scope": 11847, + "src": "1788:822:54", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11848, + "src": "258:2354:54", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:2504:54" + }, + "id": 54 + }, + "contracts/DisputeManager.sol": { + "ast": { + "absolutePath": "contracts/DisputeManager.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "Attestation": [ + 16290 + ], + "AttestationManager": [ + 17555 + ], + "DisputeManager": [ + 13542 + ], + "DisputeManagerV1Storage": [ + 13575 + ], + "GraphDirectory": [ + 4928 + ], + "IDisputeManager": [ + 15373 + ], + "IGraphToken": [ + 758 + ], + "IHorizonStaking": [ + 2625 + ], + "ISubgraphService": [ + 15634 + ], + "Initializable": [ + 5391 + ], + "MathUtils": [ + 4445 + ], + "OwnableUpgradeable": [ + 5123 + ], + "PPMMath": [ + 4539 + ], + "TokenUtils": [ + 840 + ] + }, + "id": 13543, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11849, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:55" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "id": 11851, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 759, + "src": "70:87:55", + "symbolAliases": [ + { + "foreign": { + "id": 11850, + "name": "IGraphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "79:11:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "id": 11853, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 2626, + "src": "158:98:55", + "symbolAliases": [ + { + "foreign": { + "id": 11852, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "167:15:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IDisputeManager.sol", + "file": "./interfaces/IDisputeManager.sol", + "id": 11855, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 15374, + "src": "257:67:55", + "symbolAliases": [ + { + "foreign": { + "id": 11854, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "266:15:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "file": "./interfaces/ISubgraphService.sol", + "id": 11857, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 15635, + "src": "325:69:55", + "symbolAliases": [ + { + "foreign": { + "id": 11856, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "334:16:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "id": 11859, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 841, + "src": "396:85:55", + "symbolAliases": [ + { + "foreign": { + "id": 11858, + "name": "TokenUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "405:10:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "id": 11861, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 4540, + "src": "482:81:55", + "symbolAliases": [ + { + "foreign": { + "id": 11860, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "491:7:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", + "file": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", + "id": 11863, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 4446, + "src": "564:85:55", + "symbolAliases": [ + { + "foreign": { + "id": 11862, + "name": "MathUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4445, + "src": "573:9:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Allocation.sol", + "file": "./libraries/Allocation.sol", + "id": 11865, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 16034, + "src": "650:56:55", + "symbolAliases": [ + { + "foreign": { + "id": 11864, + "name": "Allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16033, + "src": "659:10:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Attestation.sol", + "file": "./libraries/Attestation.sol", + "id": 11867, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 16291, + "src": "707:58:55", + "symbolAliases": [ + { + "foreign": { + "id": 11866, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "716:11:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "id": 11869, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 5124, + "src": "767:103:55", + "symbolAliases": [ + { + "foreign": { + "id": 11868, + "name": "OwnableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5123, + "src": "776:18:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 11871, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 5392, + "src": "871:98:55", + "symbolAliases": [ + { + "foreign": { + "id": 11870, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "880:13:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "file": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "id": 11873, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 4929, + "src": "970:95:55", + "symbolAliases": [ + { + "foreign": { + "id": 11872, + "name": "GraphDirectory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "979:14:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/DisputeManagerStorage.sol", + "file": "./DisputeManagerStorage.sol", + "id": 11875, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 13576, + "src": "1066:70:55", + "symbolAliases": [ + { + "foreign": { + "id": 11874, + "name": "DisputeManagerV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13575, + "src": "1075:23:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/utilities/AttestationManager.sol", + "file": "./utilities/AttestationManager.sol", + "id": 11877, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13543, + "sourceUnit": 17556, + "src": "1137:72:55", + "symbolAliases": [ + { + "foreign": { + "id": 11876, + "name": "AttestationManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17555, + "src": "1146:18:55", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 11879, + "name": "Initializable", + "nameLocations": [ + "2354:13:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "2354:13:55" + }, + "id": 11880, + "nodeType": "InheritanceSpecifier", + "src": "2354:13:55" + }, + { + "baseName": { + "id": 11881, + "name": "OwnableUpgradeable", + "nameLocations": [ + "2373:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5123, + "src": "2373:18:55" + }, + "id": 11882, + "nodeType": "InheritanceSpecifier", + "src": "2373:18:55" + }, + { + "baseName": { + "id": 11883, + "name": "GraphDirectory", + "nameLocations": [ + "2397:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "2397:14:55" + }, + "id": 11884, + "nodeType": "InheritanceSpecifier", + "src": "2397:14:55" + }, + { + "baseName": { + "id": 11885, + "name": "AttestationManager", + "nameLocations": [ + "2417:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17555, + "src": "2417:18:55" + }, + "id": 11886, + "nodeType": "InheritanceSpecifier", + "src": "2417:18:55" + }, + { + "baseName": { + "id": 11887, + "name": "DisputeManagerV1Storage", + "nameLocations": [ + "2441:23:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 13575, + "src": "2441:23:55" + }, + "id": 11888, + "nodeType": "InheritanceSpecifier", + "src": "2441:23:55" + }, + { + "baseName": { + "id": 11889, + "name": "IDisputeManager", + "nameLocations": [ + "2470:15:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15373, + "src": "2470:15:55" + }, + "id": 11890, + "nodeType": "InheritanceSpecifier", + "src": "2470:15:55" + } + ], + "canonicalName": "DisputeManager", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11878, + "nodeType": "StructuredDocumentation", + "src": "1211:1111:55", + "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 periodically present a Proof of Indexing (POI) to prove they are indexing a subgraph.\n The Subgraph Service contract emits that proof which includes the POI. Any fisherman can dispute the\n validity of a POI by submitting a dispute to this contract 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": 13542, + "linearizedBaseContracts": [ + 13542, + 15373, + 13575, + 17555, + 17567, + 4928, + 5123, + 5437, + 5391 + ], + "name": "DisputeManager", + "nameLocation": "2332:14:55", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 11894, + "libraryName": { + "id": 11891, + "name": "TokenUtils", + "nameLocations": [ + "2498:10:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 840, + "src": "2498:10:55" + }, + "nodeType": "UsingForDirective", + "src": "2492:33:55", + "typeName": { + "id": 11893, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11892, + "name": "IGraphToken", + "nameLocations": [ + "2513:11:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "2513:11:55" + }, + "referencedDeclaration": 758, + "src": "2513:11:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + } + }, + { + "global": false, + "id": 11897, + "libraryName": { + "id": 11895, + "name": "PPMMath", + "nameLocations": [ + "2536:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4539, + "src": "2536:7:55" + }, + "nodeType": "UsingForDirective", + "src": "2530:26:55", + "typeName": { + "id": 11896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2548:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "documentation": { + "id": 11898, + "nodeType": "StructuredDocumentation", + "src": "2586:57:55", + "text": "@notice Maximum value for fisherman reward cut in PPM" + }, + "functionSelector": "17337b46", + "id": 11901, + "mutability": "constant", + "name": "MAX_FISHERMAN_REWARD_CUT", + "nameLocation": "2671:24:55", + "nodeType": "VariableDeclaration", + "scope": 13542, + "src": "2648:56:55", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11899, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2648:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "hexValue": "353030303030", + "id": 11900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2698:6:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_500000_by_1", + "typeString": "int_const 500000" + }, + "value": "500000" + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 11902, + "nodeType": "StructuredDocumentation", + "src": "2718:45:55", + "text": "@notice Minimum value for dispute deposit" + }, + "functionSelector": "cc2d55cd", + "id": 11905, + "mutability": "constant", + "name": "MIN_DISPUTE_DEPOSIT", + "nameLocation": "2792:19:55", + "nodeType": "VariableDeclaration", + "scope": 13542, + "src": "2768:50:55", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2768:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31653138", + "id": 11904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2814:4:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "visibility": "public" + }, + { + "body": { + "id": 11918, + "nodeType": "Block", + "src": "2954:92:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 11909, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2972:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2976:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2972:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 11911, + "name": "arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13556, + "src": "2986:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2972:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11913, + "name": "DisputeManagerNotArbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15080, + "src": "2998:27:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 11914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2998:29:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 11908, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2964:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 11915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2964:64:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11916, + "nodeType": "ExpressionStatement", + "src": "2964:64:55" + }, + { + "id": 11917, + "nodeType": "PlaceholderStatement", + "src": "3038:1:55" + } + ] + }, + "documentation": { + "id": 11906, + "nodeType": "StructuredDocumentation", + "src": "2858:65:55", + "text": " @notice Check if the caller is the arbitrator." + }, + "id": 11919, + "name": "onlyArbitrator", + "nameLocation": "2937:14:55", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 11907, + "nodeType": "ParameterList", + "parameters": [], + "src": "2951:2:55" + }, + "src": "2928:118:55", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11951, + "nodeType": "Block", + "src": "3213:286:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 11926, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11922, + "src": "3248:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 11925, + "name": "isDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12801, + "src": "3231:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 11927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3231:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 11929, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11922, + "src": "3289:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 11928, + "name": "DisputeManagerInvalidDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15097, + "src": "3260:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 11930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3260:39:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 11924, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3223:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 11931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3223:77:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11932, + "nodeType": "ExpressionStatement", + "src": "3223:77:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + "id": 11941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 11934, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "3331:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 11936, + "indexExpression": { + "id": 11935, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11922, + "src": "3340:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3331:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 11937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "3331:26:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 11938, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "3361:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 11939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3377:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "3361:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 11940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3391:7:55", + "memberName": "Pending", + "nodeType": "MemberAccess", + "referencedDeclaration": 14919, + "src": "3361:37:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "3331:67:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 11943, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "3444:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 11945, + "indexExpression": { + "id": 11944, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11922, + "src": "3453:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3444:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 11946, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3464:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "3444:26:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + ], + "id": 11942, + "name": "DisputeManagerDisputeNotPending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15125, + "src": "3412:31:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_enum$_DisputeStatus_$14921_$returns$_t_error_$", + "typeString": "function (enum IDisputeManager.DisputeStatus) pure returns (error)" + } + }, + "id": 11947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3412:59:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 11933, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3310:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 11948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3310:171:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11949, + "nodeType": "ExpressionStatement", + "src": "3310:171:55" + }, + { + "id": 11950, + "nodeType": "PlaceholderStatement", + "src": "3491:1:55" + } + ] + }, + "documentation": { + "id": 11920, + "nodeType": "StructuredDocumentation", + "src": "3052:109:55", + "text": " @notice Check if the dispute exists and is pending.\n @param disputeId The dispute Id" + }, + "id": 11952, + "name": "onlyPendingDispute", + "nameLocation": "3175:18:55", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 11923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11922, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "3202:9:55", + "nodeType": "VariableDeclaration", + "scope": 11952, + "src": "3194:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11921, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3194:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3193:19:55" + }, + "src": "3166:333:55", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11979, + "nodeType": "Block", + "src": "3670:197:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 11959, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "3705:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 11958, + "name": "isDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12801, + "src": "3688:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 11960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3688:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 11962, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "3746:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 11961, + "name": "DisputeManagerInvalidDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15097, + "src": "3717:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 11963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3717:39:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 11957, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3680:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 11964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3680:77:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11965, + "nodeType": "ExpressionStatement", + "src": "3680:77:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 11967, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3775:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3779:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3775:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "baseExpression": { + "id": 11969, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "3789:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 11971, + "indexExpression": { + "id": 11970, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "3798:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3789:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 11972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3809:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "3789:29:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3775:43:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11974, + "name": "DisputeManagerNotFisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15083, + "src": "3820:26:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 11975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3820:28:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 11966, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3767:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 11976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3767:82:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11977, + "nodeType": "ExpressionStatement", + "src": "3767:82:55" + }, + { + "id": 11978, + "nodeType": "PlaceholderStatement", + "src": "3859:1:55" + } + ] + }, + "documentation": { + "id": 11953, + "nodeType": "StructuredDocumentation", + "src": "3505:118:55", + "text": " @notice Check if the caller is the fisherman of the dispute.\n @param disputeId The dispute Id" + }, + "id": 11980, + "name": "onlyFisherman", + "nameLocation": "3637:13:55", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 11956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11955, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "3659:9:55", + "nodeType": "VariableDeclaration", + "scope": 11980, + "src": "3651:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11954, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3651:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3650:19:55" + }, + "src": "3628:239:55", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11992, + "nodeType": "Block", + "src": "4035:39:55", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11989, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "4045:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4045:22:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11991, + "nodeType": "ExpressionStatement", + "src": "4045:22:55" + } + ] + }, + "documentation": { + "id": 11981, + "nodeType": "StructuredDocumentation", + "src": "3873:98:55", + "text": " @notice Contract constructor\n @param controller Address of the controller" + }, + "id": 11993, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 11986, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11983, + "src": "4023:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 11987, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 11985, + "name": "GraphDirectory", + "nameLocations": [ + "4008:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "4008:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "4008:26:55" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11983, + "mutability": "mutable", + "name": "controller", + "nameLocation": "3996:10:55", + "nodeType": "VariableDeclaration", + "scope": 11993, + "src": "3988:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3988:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3987:20:55" + }, + "returnParameters": { + "id": 11988, + "nodeType": "ParameterList", + "parameters": [], + "src": "4035:0:55" + }, + "scope": 13542, + "src": "3976:98:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 15196 + ], + "body": { + "id": 12039, + "nodeType": "Block", + "src": "4356:299:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12013, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11996, + "src": "4381:5:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12012, + "name": "__Ownable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4983, + "src": "4366:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4366:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12015, + "nodeType": "ExpressionStatement", + "src": "4366:21:55" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12016, + "name": "__AttestationManager_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17454, + "src": "4397:25:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 12017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4397:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12018, + "nodeType": "ExpressionStatement", + "src": "4397:27:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12020, + "name": "arbitrator_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11998, + "src": "4450:11:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12019, + "name": "_setArbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13346, + "src": "4435:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4435:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12022, + "nodeType": "ExpressionStatement", + "src": "4435:27:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12024, + "name": "disputePeriod_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12000, + "src": "4490:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 12023, + "name": "_setDisputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13369, + "src": "4472:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 12025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4472:33:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12026, + "nodeType": "ExpressionStatement", + "src": "4472:33:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12028, + "name": "disputeDeposit_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12002, + "src": "4534:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12027, + "name": "_setDisputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13393, + "src": "4515:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4515:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12030, + "nodeType": "ExpressionStatement", + "src": "4515:35:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12032, + "name": "fishermanRewardCut_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12004, + "src": "4583:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 12031, + "name": "_setFishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13417, + "src": "4560:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 12033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4560:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12034, + "nodeType": "ExpressionStatement", + "src": "4560:43:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12036, + "name": "maxSlashingCut_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12006, + "src": "4632:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 12035, + "name": "_setMaxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13442, + "src": "4613:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 12037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4613:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12038, + "nodeType": "ExpressionStatement", + "src": "4613:35:55" + } + ] + }, + "documentation": { + "id": 11994, + "nodeType": "StructuredDocumentation", + "src": "4080:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "0bc7344b", + "id": 12040, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12010, + "kind": "modifierInvocation", + "modifierName": { + "id": 12009, + "name": "initializer", + "nameLocations": [ + "4344:11:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5231, + "src": "4344:11:55" + }, + "nodeType": "ModifierInvocation", + "src": "4344:11:55" + } + ], + "name": "initialize", + "nameLocation": "4125:10:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12008, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4335:8:55" + }, + "parameters": { + "id": 12007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11996, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4153:5:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4145:13:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4145:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11998, + "mutability": "mutable", + "name": "arbitrator_", + "nameLocation": "4176:11:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4168:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4168:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12000, + "mutability": "mutable", + "name": "disputePeriod_", + "nameLocation": "4204:14:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4197:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 11999, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4197:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12002, + "mutability": "mutable", + "name": "disputeDeposit_", + "nameLocation": "4236:15:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4228:23:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4228:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12004, + "mutability": "mutable", + "name": "fishermanRewardCut_", + "nameLocation": "4268:19:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4261:26:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12003, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4261:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12006, + "mutability": "mutable", + "name": "maxSlashingCut_", + "nameLocation": "4304:15:55", + "nodeType": "VariableDeclaration", + "scope": 12040, + "src": "4297:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12005, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4297:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "4135:190:55" + }, + "returnParameters": { + "id": 12011, + "nodeType": "ParameterList", + "parameters": [], + "src": "4356:0:55" + }, + "scope": 13542, + "src": "4116:539:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15262 + ], + "body": { + "id": 12067, + "nodeType": "Block", + "src": "4799:234:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12054, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4870:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4874:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4870:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12056, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "4882:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12051, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "4845:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 12052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4845:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 12053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4859:10:55", + "memberName": "pullTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "4845:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 12057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4845:52:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12058, + "nodeType": "ExpressionStatement", + "src": "4845:52:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12060, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4980:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4984:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4980:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12062, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "4992:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12063, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12043, + "src": "5008:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12064, + "name": "poi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12045, + "src": "5022:3:55", + "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": 12059, + "name": "_createIndexingDisputeWithAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "4943:36:55", + "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": 12065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4943:83:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12050, + "id": 12066, + "nodeType": "Return", + "src": "4936:90:55" + } + ] + }, + "documentation": { + "id": 12041, + "nodeType": "StructuredDocumentation", + "src": "4661:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "4bc5839a", + "id": 12068, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createIndexingDispute", + "nameLocation": "4706:21:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12047, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4772:8:55" + }, + "parameters": { + "id": 12046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12043, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4736:12:55", + "nodeType": "VariableDeclaration", + "scope": 12068, + "src": "4728:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4728:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12045, + "mutability": "mutable", + "name": "poi", + "nameLocation": "4758:3:55", + "nodeType": "VariableDeclaration", + "scope": 12068, + "src": "4750:11:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12044, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4750:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4727:35:55" + }, + "returnParameters": { + "id": 12050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12049, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12068, + "src": "4790:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12048, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4790:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4789:9:55" + }, + "scope": 13542, + "src": "4697:336:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15240 + ], + "body": { + "id": 12096, + "nodeType": "Block", + "src": "5171:356:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12080, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5242:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5246:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5242:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12082, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "5254:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12077, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "5217:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 12078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5217:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5231:10:55", + "memberName": "pullTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "5217:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 12083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5217:52:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12084, + "nodeType": "ExpressionStatement", + "src": "5217:52:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12086, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5379:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5383:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5379:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12088, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "5407:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 12091, + "name": "attestationData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12071, + "src": "5457:15:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 12089, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "5439:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 12090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5451:5:55", + "memberName": "parse", + "nodeType": "MemberAccess", + "referencedDeclaration": 16223, + "src": "5439:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$16058_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" + } + }, + "id": 12092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5439:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + { + "id": 12093, + "name": "attestationData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12071, + "src": "5491:15:55", + "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_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 12085, + "name": "_createQueryDisputeWithAttestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12923, + "src": "5327:34:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$16058_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" + } + }, + "id": 12094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5327:193:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12076, + "id": 12095, + "nodeType": "Return", + "src": "5308:212:55" + } + ] + }, + "documentation": { + "id": 12069, + "nodeType": "StructuredDocumentation", + "src": "5039:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "c50a77b1", + "id": 12097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createQueryDispute", + "nameLocation": "5084:18:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12073, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5144:8:55" + }, + "parameters": { + "id": 12072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12071, + "mutability": "mutable", + "name": "attestationData", + "nameLocation": "5118:15:55", + "nodeType": "VariableDeclaration", + "scope": 12097, + "src": "5103:30:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 12070, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5103:5:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5102:32:55" + }, + "returnParameters": { + "id": 12076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12075, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12097, + "src": "5162:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12074, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5162:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5161:9:55" + }, + "scope": 13542, + "src": "5075:452:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15252 + ], + "body": { + "id": 12210, + "nodeType": "Block", + "src": "5738:1563:55", + "statements": [ + { + "assignments": [ + 12111 + ], + "declarations": [ + { + "constant": false, + "id": 12111, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "5756:9:55", + "nodeType": "VariableDeclaration", + "scope": 12210, + "src": "5748:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5748:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12114, + "initialValue": { + "expression": { + "id": 12112, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5768:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5772:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5768:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5748:30:55" + }, + { + "assignments": [ + 12119 + ], + "declarations": [ + { + "constant": false, + "id": 12119, + "mutability": "mutable", + "name": "attestation1", + "nameLocation": "5848:12:55", + "nodeType": "VariableDeclaration", + "scope": 12210, + "src": "5823:37:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12117, + "name": "Attestation.State", + "nameLocations": [ + "5823:11:55", + "5835:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "5823:17:55" + }, + "referencedDeclaration": 16058, + "src": "5823:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "id": 12124, + "initialValue": { + "arguments": [ + { + "id": 12122, + "name": "attestationData1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12100, + "src": "5881:16:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 12120, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "5863:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 12121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5875:5:55", + "memberName": "parse", + "nodeType": "MemberAccess", + "referencedDeclaration": 16223, + "src": "5863:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$16058_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" + } + }, + "id": 12123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5863:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5823:75:55" + }, + { + "assignments": [ + 12129 + ], + "declarations": [ + { + "constant": false, + "id": 12129, + "mutability": "mutable", + "name": "attestation2", + "nameLocation": "5933:12:55", + "nodeType": "VariableDeclaration", + "scope": 12210, + "src": "5908:37:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12128, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12127, + "name": "Attestation.State", + "nameLocations": [ + "5908:11:55", + "5920:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "5908:17:55" + }, + "referencedDeclaration": 16058, + "src": "5908:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "id": 12134, + "initialValue": { + "arguments": [ + { + "id": 12132, + "name": "attestationData2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12102, + "src": "5966:16:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 12130, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "5948:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 12131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5960:5:55", + "memberName": "parse", + "nodeType": "MemberAccess", + "referencedDeclaration": 16223, + "src": "5948:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$16058_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" + } + }, + "id": 12133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5948:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5908:75:55" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 12138, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12119, + "src": "6092:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + { + "id": 12139, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12129, + "src": "6106:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + }, + { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + ], + "expression": { + "id": 12136, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "6065:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 12137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6077:14:55", + "memberName": "areConflicting", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "6065:26:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$16058_memory_ptr_$_t_struct$_State_$16058_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct Attestation.State memory,struct Attestation.State memory) pure returns (bool)" + } + }, + "id": 12140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6065:54:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 12142, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12119, + "src": "6191:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6204:10:55", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "6191:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12144, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12119, + "src": "6232:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6245:11:55", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "6232:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12146, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12119, + "src": "6274:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6287:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "6274:33:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12148, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12129, + "src": "6325:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6338:10:55", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "6325:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12150, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12129, + "src": "6366:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12151, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6379:11:55", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "6366:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12152, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12129, + "src": "6408:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6421:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "6408:33:55", + "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": 12141, + "name": "DisputeManagerNonConflictingAttestations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15177, + "src": "6133:40:55", + "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": 12154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6133:322:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6044:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6044:421:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12156, + "nodeType": "ExpressionStatement", + "src": "6044:421:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12160, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6537:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6541:6:55", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6537:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12162, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "6549:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12157, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "6512:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 12158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6512:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 12159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6526:10:55", + "memberName": "pullTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "6512:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 12163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6512:52:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12164, + "nodeType": "ExpressionStatement", + "src": "6512:52:55" + }, + { + "assignments": [ + 12166 + ], + "declarations": [ + { + "constant": false, + "id": 12166, + "mutability": "mutable", + "name": "dId1", + "nameLocation": "6674:4:55", + "nodeType": "VariableDeclaration", + "scope": 12210, + "src": "6666:12:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12165, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6666:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12175, + "initialValue": { + "arguments": [ + { + "id": 12168, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12111, + "src": "6729:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12169, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "6752:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 12170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6769:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6752:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12172, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12119, + "src": "6784:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + { + "id": 12173, + "name": "attestationData1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12100, + "src": "6810:16:55", + "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_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 12167, + "name": "_createQueryDisputeWithAttestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12923, + "src": "6681:34:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$16058_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" + } + }, + "id": 12174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6681:155:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6666:170:55" + }, + { + "assignments": [ + 12177 + ], + "declarations": [ + { + "constant": false, + "id": 12177, + "mutability": "mutable", + "name": "dId2", + "nameLocation": "6854:4:55", + "nodeType": "VariableDeclaration", + "scope": 12210, + "src": "6846:12:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12176, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6846:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12186, + "initialValue": { + "arguments": [ + { + "id": 12179, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12111, + "src": "6909:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12180, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "6932:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 12181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6949:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6932:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12183, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12129, + "src": "6964:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + { + "id": 12184, + "name": "attestationData2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12102, + "src": "6990:16:55", + "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_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 12178, + "name": "_createQueryDisputeWithAttestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12923, + "src": "6861:34:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$16058_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" + } + }, + "id": 12185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6861:155:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6846:170:55" + }, + { + "expression": { + "id": 12192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 12187, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "7079:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12189, + "indexExpression": { + "id": 12188, + "name": "dId1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12166, + "src": "7088:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7079:14:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 12190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7094:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "7079:31:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 12191, + "name": "dId2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12177, + "src": "7113:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "7079:38:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12193, + "nodeType": "ExpressionStatement", + "src": "7079:38:55" + }, + { + "expression": { + "id": 12199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 12194, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "7127:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12196, + "indexExpression": { + "id": 12195, + "name": "dId2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12177, + "src": "7136:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7127:14:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 12197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7142:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "7127:31:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 12198, + "name": "dId1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12166, + "src": "7161:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "7127:38:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12200, + "nodeType": "ExpressionStatement", + "src": "7127:38:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 12202, + "name": "dId1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12166, + "src": "7253:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12203, + "name": "dId2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12177, + "src": "7259:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12201, + "name": "DisputeLinked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15066, + "src": "7239:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 12204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7239:25:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12205, + "nodeType": "EmitStatement", + "src": "7234:30:55" + }, + { + "expression": { + "components": [ + { + "id": 12206, + "name": "dId1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12166, + "src": "7283:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12207, + "name": "dId2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12177, + "src": "7289:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12208, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7282:12:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 12109, + "id": 12209, + "nodeType": "Return", + "src": "7275:19:55" + } + ] + }, + "documentation": { + "id": 12098, + "nodeType": "StructuredDocumentation", + "src": "5533:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "c894222e", + "id": 12211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createQueryDisputeConflict", + "nameLocation": "5578:26:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12104, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5702:8:55" + }, + "parameters": { + "id": 12103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12100, + "mutability": "mutable", + "name": "attestationData1", + "nameLocation": "5629:16:55", + "nodeType": "VariableDeclaration", + "scope": 12211, + "src": "5614:31:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 12099, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5614:5:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12102, + "mutability": "mutable", + "name": "attestationData2", + "nameLocation": "5670:16:55", + "nodeType": "VariableDeclaration", + "scope": 12211, + "src": "5655:31:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 12101, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5655:5:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5604:88:55" + }, + "returnParameters": { + "id": 12109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12106, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12211, + "src": "5720:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12105, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5720:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12108, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12211, + "src": "5729:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12107, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5729:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5719:18:55" + }, + "scope": 13542, + "src": "5569:1732:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15276 + ], + "body": { + "id": 12324, + "nodeType": "Block", + "src": "7555:1148:55", + "statements": [ + { + "assignments": [ + 12229 + ], + "declarations": [ + { + "constant": false, + "id": 12229, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "7603:9:55", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "7595:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12228, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7595:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12237, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 12233, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12214, + "src": "7642:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "6c6567616379", + "id": 12234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7656:8:55", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7ccb6878fbded310d2d05350bca9c84568ecb568d4b626c83e0508c3193ce89", + "typeString": "literal_string \"legacy\"" + }, + "value": "legacy" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_b7ccb6878fbded310d2d05350bca9c84568ecb568d4b626c83e0508c3193ce89", + "typeString": "literal_string \"legacy\"" + } + ], + "expression": { + "id": 12231, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7625:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 12232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7629:12:55", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "7625:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 12235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7625:40:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 12230, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7615:9:55", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 12236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7615:51:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7595:71:55" + }, + { + "assignments": [ + 12239 + ], + "declarations": [ + { + "constant": false, + "id": 12239, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7738:7:55", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "7730:15:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7730:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12246, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 12243, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12214, + "src": "7778:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12240, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "7748:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 12241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7748:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 12242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7764:13:55", + "memberName": "getAllocation", + "nodeType": "MemberAccess", + "referencedDeclaration": 3196, + "src": "7748:29:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_Allocation_$3073_memory_ptr_$", + "typeString": "function (address) view external returns (struct IHorizonStakingExtension.Allocation memory)" + } + }, + "id": 12244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7748:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Allocation_$3073_memory_ptr", + "typeString": "struct IHorizonStakingExtension.Allocation memory" + } + }, + "id": 12245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7792:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3056, + "src": "7748:51:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7730:69:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12248, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12239, + "src": "7817:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 12251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7836:1:55", + "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": 12250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7828:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7828:7:55", + "typeDescriptions": {} + } + }, + "id": 12252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7828:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7817:21:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12255, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12214, + "src": "7870:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12254, + "name": "DisputeManagerIndexerNotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15155, + "src": "7840:29:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 12256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7840:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7809:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7809:75:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12258, + "nodeType": "ExpressionStatement", + "src": "7809:75:55" + }, + { + "expression": { + "id": 12280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 12259, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "7920:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12261, + "indexExpression": { + "id": 12260, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "7929:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7920:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 12263, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12239, + "src": "7963:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12264, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12216, + "src": "7984:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 12265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8007:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 12266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8022:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "id": 12267, + "name": "DisputeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14913, + "src": "8037:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeType_$14913_$", + "typeString": "type(enum IDisputeManager.DisputeType)" + } + }, + "id": 12268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8049:13:55", + "memberName": "LegacyDispute", + "nodeType": "MemberAccess", + "referencedDeclaration": 14912, + "src": "8037:25:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + } + }, + { + "expression": { + "expression": { + "id": 12269, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "8076:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 12270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8092:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "8076:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 12271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8106:8:55", + "memberName": "Accepted", + "nodeType": "MemberAccess", + "referencedDeclaration": 14916, + "src": "8076:38:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + { + "expression": { + "id": 12272, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8128:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8134:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "8128:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12274, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8157:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8163:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "8157:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 12276, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13559, + "src": "8175:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8157:31:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 12278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8202:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + }, + { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 12262, + "name": "Dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14943, + "src": "7942:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Dispute_$14943_storage_ptr_$", + "typeString": "type(struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7942:271:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_memory_ptr", + "typeString": "struct IDisputeManager.Dispute memory" + } + }, + "src": "7920:293:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 12281, + "nodeType": "ExpressionStatement", + "src": "7920:293:55" + }, + { + "assignments": [ + 12284 + ], + "declarations": [ + { + "constant": false, + "id": 12284, + "mutability": "mutable", + "name": "subgraphService_", + "nameLocation": "8270:16:55", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "8253:33:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 12283, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12282, + "name": "ISubgraphService", + "nameLocations": [ + "8253:16:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "8253:16:55" + }, + "referencedDeclaration": 15634, + "src": "8253:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "internal" + } + ], + "id": 12287, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12285, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "8289:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 12286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8289:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8253:57:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12291, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12239, + "src": "8343:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 12294, + "name": "tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12218, + "src": "8363:11:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12295, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12220, + "src": "8376:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 12292, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8352:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 12293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8356:6:55", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "8352:10:55", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 12296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8352:38:55", + "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": 12288, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12284, + "src": "8320:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 12290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8337:5:55", + "memberName": "slash", + "nodeType": "MemberAccess", + "referencedDeclaration": 1526, + "src": "8320:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory) external" + } + }, + "id": 12297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8320:71:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12298, + "nodeType": "ExpressionStatement", + "src": "8320:71:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12302, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12216, + "src": "8459:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12303, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12220, + "src": "8470:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12299, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "8434:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 12300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8434:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 12301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8448:10:55", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "8434:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 12304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8434:50:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12305, + "nodeType": "ExpressionStatement", + "src": "8434:50:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 12307, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "8521:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12308, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12239, + "src": "8532:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12309, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12216, + "src": "8541:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12310, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12214, + "src": "8552:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12311, + "name": "tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12218, + "src": "8566:11:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12312, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12220, + "src": "8579:13:55", + "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_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12306, + "name": "LegacyDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15026, + "src": "8500:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,address,uint256,uint256)" + } + }, + "id": 12313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8500:93:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12314, + "nodeType": "EmitStatement", + "src": "8495:98:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 12316, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "8624:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12317, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12239, + "src": "8635:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12318, + "name": "fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12216, + "src": "8644:9:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12319, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12220, + "src": "8655:13:55", + "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": 12315, + "name": "DisputeAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15037, + "src": "8608:15:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256)" + } + }, + "id": 12320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8608:61:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12321, + "nodeType": "EmitStatement", + "src": "8603:66:55" + }, + { + "expression": { + "id": 12322, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12229, + "src": "8687:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12227, + "id": 12323, + "nodeType": "Return", + "src": "8680:16:55" + } + ] + }, + "documentation": { + "id": 12212, + "nodeType": "StructuredDocumentation", + "src": "7307:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "8d4e9008", + "id": 12325, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12224, + "kind": "modifierInvocation", + "modifierName": { + "id": 12223, + "name": "onlyArbitrator", + "nameLocations": [ + "7522:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11919, + "src": "7522:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "7522:14:55" + } + ], + "name": "createAndAcceptLegacyDispute", + "nameLocation": "7352:28:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12222, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7513:8:55" + }, + "parameters": { + "id": 12221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12214, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "7398:12:55", + "nodeType": "VariableDeclaration", + "scope": 12325, + "src": "7390:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7390:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12216, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "7428:9:55", + "nodeType": "VariableDeclaration", + "scope": 12325, + "src": "7420:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7420:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12218, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "7455:11:55", + "nodeType": "VariableDeclaration", + "scope": 12325, + "src": "7447:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7447:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12220, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "7484:13:55", + "nodeType": "VariableDeclaration", + "scope": 12325, + "src": "7476:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7476:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7380:123:55" + }, + "returnParameters": { + "id": 12227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12226, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12325, + "src": "7546:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7546:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7545:9:55" + }, + "scope": 13542, + "src": "7343:1360:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15284 + ], + "body": { + "id": 12364, + "nodeType": "Block", + "src": "8893:224:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8911:42:55", + "subExpression": { + "arguments": [ + { + "baseExpression": { + "id": 12341, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "8933:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12343, + "indexExpression": { + "id": 12342, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "8942:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8933:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + ], + "id": 12340, + "name": "_isDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13512, + "src": "8912:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$14943_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct IDisputeManager.Dispute storage pointer) view returns (bool)" + } + }, + "id": 12344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8912:41:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12347, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "8987:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12346, + "name": "DisputeManagerDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15138, + "src": "8955:31:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 12348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8955:42:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12339, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8903:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8903:95:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12350, + "nodeType": "ExpressionStatement", + "src": "8903:95:55" + }, + { + "assignments": [ + 12353 + ], + "declarations": [ + { + "constant": false, + "id": 12353, + "mutability": "mutable", + "name": "dispute", + "nameLocation": "9024:7:55", + "nodeType": "VariableDeclaration", + "scope": 12364, + "src": "9008:23:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 12352, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12351, + "name": "Dispute", + "nameLocations": [ + "9008:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "9008:7:55" + }, + "referencedDeclaration": 14943, + "src": "9008:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "id": 12357, + "initialValue": { + "baseExpression": { + "id": 12354, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "9034:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12356, + "indexExpression": { + "id": 12355, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "9043:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9034:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9008:45:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12359, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "9078:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12360, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12353, + "src": "9089:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + { + "id": 12361, + "name": "tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12330, + "src": "9098:11:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12358, + "name": "_acceptDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "9063:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer,uint256)" + } + }, + "id": 12362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9063:47:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12363, + "nodeType": "ExpressionStatement", + "src": "9063:47:55" + } + ] + }, + "documentation": { + "id": 12326, + "nodeType": "StructuredDocumentation", + "src": "8709:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "050b17ad", + "id": 12365, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12334, + "kind": "modifierInvocation", + "modifierName": { + "id": 12333, + "name": "onlyArbitrator", + "nameLocations": [ + "8848:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11919, + "src": "8848:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "8848:14:55" + }, + { + "arguments": [ + { + "id": 12336, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "8882:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12337, + "kind": "modifierInvocation", + "modifierName": { + "id": 12335, + "name": "onlyPendingDispute", + "nameLocations": [ + "8863:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11952, + "src": "8863:18:55" + }, + "nodeType": "ModifierInvocation", + "src": "8863:29:55" + } + ], + "name": "acceptDispute", + "nameLocation": "8754:13:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12332, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "8839:8:55" + }, + "parameters": { + "id": 12331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12328, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "8785:9:55", + "nodeType": "VariableDeclaration", + "scope": 12365, + "src": "8777:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12327, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8777:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12330, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "8812:11:55", + "nodeType": "VariableDeclaration", + "scope": 12365, + "src": "8804:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8804:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8767:62:55" + }, + "returnParameters": { + "id": 12338, + "nodeType": "ParameterList", + "parameters": [], + "src": "8893:0:55" + }, + "scope": 13542, + "src": "8745:372:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15296 + ], + "body": { + "id": 12430, + "nodeType": "Block", + "src": "9389:491:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "baseExpression": { + "id": 12385, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "9428:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12387, + "indexExpression": { + "id": 12386, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12368, + "src": "9437:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9428:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + ], + "id": 12384, + "name": "_isDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13512, + "src": "9407:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$14943_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct IDisputeManager.Dispute storage pointer) view returns (bool)" + } + }, + "id": 12388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9407:41:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12390, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12368, + "src": "9485:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12389, + "name": "DisputeManagerDisputeNotInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15143, + "src": "9450:34:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 12391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9450:45:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12383, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9399:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9399:97:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12393, + "nodeType": "ExpressionStatement", + "src": "9399:97:55" + }, + { + "assignments": [ + 12396 + ], + "declarations": [ + { + "constant": false, + "id": 12396, + "mutability": "mutable", + "name": "dispute", + "nameLocation": "9522:7:55", + "nodeType": "VariableDeclaration", + "scope": 12430, + "src": "9506:23:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 12395, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12394, + "name": "Dispute", + "nameLocations": [ + "9506:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "9506:7:55" + }, + "referencedDeclaration": 14943, + "src": "9506:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "id": 12400, + "initialValue": { + "baseExpression": { + "id": 12397, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "9532:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12399, + "indexExpression": { + "id": 12398, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12368, + "src": "9541:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9532:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9506:45:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12402, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12368, + "src": "9576:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12403, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "9587:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + { + "id": 12404, + "name": "tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12370, + "src": "9596:11:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12401, + "name": "_acceptDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "9561:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer,uint256)" + } + }, + "id": 12405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9561:47:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12406, + "nodeType": "ExpressionStatement", + "src": "9561:47:55" + }, + { + "condition": { + "id": 12407, + "name": "acceptDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12372, + "src": "9623:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 12428, + "nodeType": "Block", + "src": "9775:99:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12420, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "9802:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12421, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9810:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "9802:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 12422, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "9828:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12425, + "indexExpression": { + "expression": { + "id": 12423, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "9837:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12424, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9845:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "9837:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9828:34:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + ], + "id": 12419, + "name": "_drawDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13190, + "src": "9789:12:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9789:74:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12427, + "nodeType": "ExpressionStatement", + "src": "9789:74:55" + } + ] + }, + "id": 12429, + "nodeType": "IfStatement", + "src": "9619:255:55", + "trueBody": { + "id": 12418, + "nodeType": "Block", + "src": "9648:121:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12409, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "9677:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9685:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "9677:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 12411, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "9703:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12414, + "indexExpression": { + "expression": { + "id": 12412, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12396, + "src": "9712:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12413, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9720:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "9712:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9703:34:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + { + "id": 12415, + "name": "tokensSlashRelated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12374, + "src": "9739:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12408, + "name": "_acceptDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "9662:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer,uint256)" + } + }, + "id": 12416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9662:96:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12417, + "nodeType": "ExpressionStatement", + "src": "9662:96:55" + } + ] + } + } + ] + }, + "documentation": { + "id": 12366, + "nodeType": "StructuredDocumentation", + "src": "9123:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "b0e2f7e9", + "id": 12431, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12378, + "kind": "modifierInvocation", + "modifierName": { + "id": 12377, + "name": "onlyArbitrator", + "nameLocations": [ + "9344:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11919, + "src": "9344:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "9344:14:55" + }, + { + "arguments": [ + { + "id": 12380, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12368, + "src": "9378:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12381, + "kind": "modifierInvocation", + "modifierName": { + "id": 12379, + "name": "onlyPendingDispute", + "nameLocations": [ + "9359:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11952, + "src": "9359:18:55" + }, + "nodeType": "ModifierInvocation", + "src": "9359:29:55" + } + ], + "name": "acceptDisputeConflict", + "nameLocation": "9168:21:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12376, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9335:8:55" + }, + "parameters": { + "id": 12375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12368, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "9207:9:55", + "nodeType": "VariableDeclaration", + "scope": 12431, + "src": "9199:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12367, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9199:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12370, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "9234:11:55", + "nodeType": "VariableDeclaration", + "scope": 12431, + "src": "9226:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9226:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12372, + "mutability": "mutable", + "name": "acceptDisputeInConflict", + "nameLocation": "9260:23:55", + "nodeType": "VariableDeclaration", + "scope": 12431, + "src": "9255:28:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12371, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9255:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12374, + "mutability": "mutable", + "name": "tokensSlashRelated", + "nameLocation": "9301:18:55", + "nodeType": "VariableDeclaration", + "scope": 12431, + "src": "9293:26:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9293:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9189:136:55" + }, + "returnParameters": { + "id": 12382, + "nodeType": "ParameterList", + "parameters": [], + "src": "9389:0:55" + }, + "scope": 13542, + "src": "9159:721:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15302 + ], + "body": { + "id": 12465, + "nodeType": "Block", + "src": "10027:199:55", + "statements": [ + { + "assignments": [ + 12445 + ], + "declarations": [ + { + "constant": false, + "id": 12445, + "mutability": "mutable", + "name": "dispute", + "nameLocation": "10053:7:55", + "nodeType": "VariableDeclaration", + "scope": 12465, + "src": "10037:23:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 12444, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12443, + "name": "Dispute", + "nameLocations": [ + "10037:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "10037:7:55" + }, + "referencedDeclaration": 14943, + "src": "10037:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "id": 12449, + "initialValue": { + "baseExpression": { + "id": 12446, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "10063:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12448, + "indexExpression": { + "id": 12447, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12434, + "src": "10072:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10063:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10037:45:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10100:30:55", + "subExpression": { + "arguments": [ + { + "id": 12452, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12445, + "src": "10122:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12451, + "name": "_isDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13512, + "src": "10101:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$14943_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct IDisputeManager.Dispute storage pointer) view returns (bool)" + } + }, + "id": 12453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10101:29:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12456, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12434, + "src": "10164:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12455, + "name": "DisputeManagerDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15138, + "src": "10132:31:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 12457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10132:42:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12450, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10092:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10092:83:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12459, + "nodeType": "ExpressionStatement", + "src": "10092:83:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12461, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12434, + "src": "10200:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12462, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12445, + "src": "10211:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12460, + "name": "_rejectDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13153, + "src": "10185:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10185:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12464, + "nodeType": "ExpressionStatement", + "src": "10185:34:55" + } + ] + }, + "documentation": { + "id": 12432, + "nodeType": "StructuredDocumentation", + "src": "9886:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "36167e03", + "id": 12466, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12438, + "kind": "modifierInvocation", + "modifierName": { + "id": 12437, + "name": "onlyArbitrator", + "nameLocations": [ + "9982:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11919, + "src": "9982:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "9982:14:55" + }, + { + "arguments": [ + { + "id": 12440, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12434, + "src": "10016:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12441, + "kind": "modifierInvocation", + "modifierName": { + "id": 12439, + "name": "onlyPendingDispute", + "nameLocations": [ + "9997:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11952, + "src": "9997:18:55" + }, + "nodeType": "ModifierInvocation", + "src": "9997:29:55" + } + ], + "name": "rejectDispute", + "nameLocation": "9931:13:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12436, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9973:8:55" + }, + "parameters": { + "id": 12435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12434, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "9953:9:55", + "nodeType": "VariableDeclaration", + "scope": 12466, + "src": "9945:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9945:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "9944:19:55" + }, + "returnParameters": { + "id": 12442, + "nodeType": "ParameterList", + "parameters": [], + "src": "10027:0:55" + }, + "scope": 13542, + "src": "9922:304:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15308 + ], + "body": { + "id": 12504, + "nodeType": "Block", + "src": "10371:248:55", + "statements": [ + { + "assignments": [ + 12480 + ], + "declarations": [ + { + "constant": false, + "id": 12480, + "mutability": "mutable", + "name": "dispute", + "nameLocation": "10397:7:55", + "nodeType": "VariableDeclaration", + "scope": 12504, + "src": "10381:23:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 12479, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12478, + "name": "Dispute", + "nameLocations": [ + "10381:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "10381:7:55" + }, + "referencedDeclaration": 14943, + "src": "10381:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "id": 12484, + "initialValue": { + "baseExpression": { + "id": 12481, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "10407:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12483, + "indexExpression": { + "id": 12482, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12469, + "src": "10416:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10407:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10381:45:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12486, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12469, + "src": "10449:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12487, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12480, + "src": "10460:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12485, + "name": "_drawDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13190, + "src": "10436:12:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10436:32:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12489, + "nodeType": "ExpressionStatement", + "src": "10436:32:55" + }, + { + "condition": { + "arguments": [ + { + "id": 12491, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12480, + "src": "10504:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12490, + "name": "_isDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13512, + "src": "10483:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$14943_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct IDisputeManager.Dispute storage pointer) view returns (bool)" + } + }, + "id": 12492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10483:29:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12503, + "nodeType": "IfStatement", + "src": "10479:134:55", + "trueBody": { + "id": 12502, + "nodeType": "Block", + "src": "10514:99:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12494, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12480, + "src": "10541:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12495, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10549:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "10541:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 12496, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "10567:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12499, + "indexExpression": { + "expression": { + "id": 12497, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12480, + "src": "10576:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10584:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "10576:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10567:34:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + ], + "id": 12493, + "name": "_drawDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13190, + "src": "10528:12:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10528:74:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12501, + "nodeType": "ExpressionStatement", + "src": "10528:74:55" + } + ] + } + } + ] + }, + "documentation": { + "id": 12467, + "nodeType": "StructuredDocumentation", + "src": "10232:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "9334ea52", + "id": 12505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12473, + "kind": "modifierInvocation", + "modifierName": { + "id": 12472, + "name": "onlyArbitrator", + "nameLocations": [ + "10326:14:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11919, + "src": "10326:14:55" + }, + "nodeType": "ModifierInvocation", + "src": "10326:14:55" + }, + { + "arguments": [ + { + "id": 12475, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12469, + "src": "10360:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12476, + "kind": "modifierInvocation", + "modifierName": { + "id": 12474, + "name": "onlyPendingDispute", + "nameLocations": [ + "10341:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11952, + "src": "10341:18:55" + }, + "nodeType": "ModifierInvocation", + "src": "10341:29:55" + } + ], + "name": "drawDispute", + "nameLocation": "10277:11:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12471, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10317:8:55" + }, + "parameters": { + "id": 12470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12469, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10297:9:55", + "nodeType": "VariableDeclaration", + "scope": 12505, + "src": "10289:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10289:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10288:19:55" + }, + "returnParameters": { + "id": 12477, + "nodeType": "ParameterList", + "parameters": [], + "src": "10371:0:55" + }, + "scope": 13542, + "src": "10268:351:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15314 + ], + "body": { + "id": 12554, + "nodeType": "Block", + "src": "10776:402:55", + "statements": [ + { + "assignments": [ + 12520 + ], + "declarations": [ + { + "constant": false, + "id": 12520, + "mutability": "mutable", + "name": "dispute", + "nameLocation": "10802:7:55", + "nodeType": "VariableDeclaration", + "scope": 12554, + "src": "10786:23:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 12519, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12518, + "name": "Dispute", + "nameLocations": [ + "10786:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "10786:7:55" + }, + "referencedDeclaration": 14943, + "src": "10786:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "id": 12524, + "initialValue": { + "baseExpression": { + "id": 12521, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "10812:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12523, + "indexExpression": { + "id": 12522, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12508, + "src": "10821:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10812:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10786:45:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12526, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12520, + "src": "10898:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10906:13:55", + "memberName": "cancellableAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 14940, + "src": "10898:21:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 12528, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10923:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10929:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "10923:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10898:40:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12531, + "name": "DisputeManagerDisputePeriodNotFinished", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15133, + "src": "10940:38:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 12532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10940:40:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10890:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10890:91:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12534, + "nodeType": "ExpressionStatement", + "src": "10890:91:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12536, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12508, + "src": "11006:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12537, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12520, + "src": "11017:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12535, + "name": "_cancelDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13227, + "src": "10991:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10991:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12539, + "nodeType": "ExpressionStatement", + "src": "10991:34:55" + }, + { + "condition": { + "arguments": [ + { + "id": 12541, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12520, + "src": "11061:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + ], + "id": 12540, + "name": "_isDisputeInConflict", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13512, + "src": "11040:20:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$14943_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct IDisputeManager.Dispute storage pointer) view returns (bool)" + } + }, + "id": 12542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11040:29:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12553, + "nodeType": "IfStatement", + "src": "11036:136:55", + "trueBody": { + "id": 12552, + "nodeType": "Block", + "src": "11071:101:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12544, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12520, + "src": "11100:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11108:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "11100:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 12546, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "11126:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12549, + "indexExpression": { + "expression": { + "id": 12547, + "name": "dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12520, + "src": "11135:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 12548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11143:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "11135:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11126:34:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + ], + "id": 12543, + "name": "_cancelDispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13227, + "src": "11085:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Dispute_$14943_storage_ptr_$returns$__$", + "typeString": "function (bytes32,struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11085:76:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12551, + "nodeType": "ExpressionStatement", + "src": "11085:76:55" + } + ] + } + } + ] + }, + "documentation": { + "id": 12506, + "nodeType": "StructuredDocumentation", + "src": "10625:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "1792f194", + "id": 12555, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 12512, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12508, + "src": "10735:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12513, + "kind": "modifierInvocation", + "modifierName": { + "id": 12511, + "name": "onlyFisherman", + "nameLocations": [ + "10721:13:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11980, + "src": "10721:13:55" + }, + "nodeType": "ModifierInvocation", + "src": "10721:24:55" + }, + { + "arguments": [ + { + "id": 12515, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12508, + "src": "10765:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 12516, + "kind": "modifierInvocation", + "modifierName": { + "id": 12514, + "name": "onlyPendingDispute", + "nameLocations": [ + "10746:18:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11952, + "src": "10746:18:55" + }, + "nodeType": "ModifierInvocation", + "src": "10746:29:55" + } + ], + "name": "cancelDispute", + "nameLocation": "10670:13:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12510, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "10712:8:55" + }, + "parameters": { + "id": 12509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12508, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10692:9:55", + "nodeType": "VariableDeclaration", + "scope": 12555, + "src": "10684:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12507, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10684:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10683:19:55" + }, + "returnParameters": { + "id": 12517, + "nodeType": "ParameterList", + "parameters": [], + "src": "10776:0:55" + }, + "scope": 13542, + "src": "10661:517:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15208 + ], + "body": { + "id": 12568, + "nodeType": "Block", + "src": "11291:43:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12565, + "name": "arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12558, + "src": "11316:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12564, + "name": "_setArbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13346, + "src": "11301:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11301:26:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12567, + "nodeType": "ExpressionStatement", + "src": "11301:26:55" + } + ] + }, + "documentation": { + "id": 12556, + "nodeType": "StructuredDocumentation", + "src": "11184:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "b0eefabe", + "id": 12569, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12562, + "kind": "modifierInvocation", + "modifierName": { + "id": 12561, + "name": "onlyOwner", + "nameLocations": [ + "11281:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "11281:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "11281:9:55" + } + ], + "name": "setArbitrator", + "nameLocation": "11229:13:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12560, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11272:8:55" + }, + "parameters": { + "id": 12559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12558, + "mutability": "mutable", + "name": "arbitrator", + "nameLocation": "11251:10:55", + "nodeType": "VariableDeclaration", + "scope": 12569, + "src": "11243:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11243:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11242:20:55" + }, + "returnParameters": { + "id": 12563, + "nodeType": "ParameterList", + "parameters": [], + "src": "11291:0:55" + }, + "scope": 13542, + "src": "11220:114:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15202 + ], + "body": { + "id": 12582, + "nodeType": "Block", + "src": "11452:49:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12579, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12572, + "src": "11480:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 12578, + "name": "_setDisputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13369, + "src": "11462:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 12580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11462:32:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12581, + "nodeType": "ExpressionStatement", + "src": "11462:32:55" + } + ] + }, + "documentation": { + "id": 12570, + "nodeType": "StructuredDocumentation", + "src": "11340:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "d76f62d1", + "id": 12583, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12576, + "kind": "modifierInvocation", + "modifierName": { + "id": 12575, + "name": "onlyOwner", + "nameLocations": [ + "11442:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "11442:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "11442:9:55" + } + ], + "name": "setDisputePeriod", + "nameLocation": "11385:16:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12574, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11433:8:55" + }, + "parameters": { + "id": 12573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12572, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "11409:13:55", + "nodeType": "VariableDeclaration", + "scope": 12583, + "src": "11402:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 12571, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11402:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "11401:22:55" + }, + "returnParameters": { + "id": 12577, + "nodeType": "ParameterList", + "parameters": [], + "src": "11452:0:55" + }, + "scope": 13542, + "src": "11376:125:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15214 + ], + "body": { + "id": 12596, + "nodeType": "Block", + "src": "11622:51:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12593, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12586, + "src": "11651:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12592, + "name": "_setDisputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13393, + "src": "11632:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11632:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12595, + "nodeType": "ExpressionStatement", + "src": "11632:34:55" + } + ] + }, + "documentation": { + "id": 12584, + "nodeType": "StructuredDocumentation", + "src": "11507:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "16972978", + "id": 12597, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12590, + "kind": "modifierInvocation", + "modifierName": { + "id": 12589, + "name": "onlyOwner", + "nameLocations": [ + "11612:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "11612:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "11612:9:55" + } + ], + "name": "setDisputeDeposit", + "nameLocation": "11552:17:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12588, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11603:8:55" + }, + "parameters": { + "id": 12587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12586, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "11578:14:55", + "nodeType": "VariableDeclaration", + "scope": 12597, + "src": "11570:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11570:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11569:24:55" + }, + "returnParameters": { + "id": 12591, + "nodeType": "ParameterList", + "parameters": [], + "src": "11622:0:55" + }, + "scope": 13542, + "src": "11543:130:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15220 + ], + "body": { + "id": 12610, + "nodeType": "Block", + "src": "11802:60:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12607, + "name": "fishermanRewardCut_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12600, + "src": "11835:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 12606, + "name": "_setFishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13417, + "src": "11812:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 12608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11812:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12609, + "nodeType": "ExpressionStatement", + "src": "11812:43:55" + } + ] + }, + "documentation": { + "id": 12598, + "nodeType": "StructuredDocumentation", + "src": "11679:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "76c993ae", + "id": 12611, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12604, + "kind": "modifierInvocation", + "modifierName": { + "id": 12603, + "name": "onlyOwner", + "nameLocations": [ + "11792:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "11792:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "11792:9:55" + } + ], + "name": "setFishermanRewardCut", + "nameLocation": "11724:21:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12602, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11783:8:55" + }, + "parameters": { + "id": 12601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12600, + "mutability": "mutable", + "name": "fishermanRewardCut_", + "nameLocation": "11753:19:55", + "nodeType": "VariableDeclaration", + "scope": 12611, + "src": "11746:26:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12599, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11746:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "11745:28:55" + }, + "returnParameters": { + "id": 12605, + "nodeType": "ParameterList", + "parameters": [], + "src": "11802:0:55" + }, + "scope": 13542, + "src": "11715:147:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15226 + ], + "body": { + "id": 12624, + "nodeType": "Block", + "src": "11983:52:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12621, + "name": "maxSlashingCut_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12614, + "src": "12012:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 12620, + "name": "_setMaxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13442, + "src": "11993:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 12622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11993:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12623, + "nodeType": "ExpressionStatement", + "src": "11993:35:55" + } + ] + }, + "documentation": { + "id": 12612, + "nodeType": "StructuredDocumentation", + "src": "11868:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "9f81a7cf", + "id": 12625, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12618, + "kind": "modifierInvocation", + "modifierName": { + "id": 12617, + "name": "onlyOwner", + "nameLocations": [ + "11973:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "11973:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "11973:9:55" + } + ], + "name": "setMaxSlashingCut", + "nameLocation": "11913:17:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12616, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11964:8:55" + }, + "parameters": { + "id": 12615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12614, + "mutability": "mutable", + "name": "maxSlashingCut_", + "nameLocation": "11938:15:55", + "nodeType": "VariableDeclaration", + "scope": 12625, + "src": "11931:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12613, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11931:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "11930:24:55" + }, + "returnParameters": { + "id": 12619, + "nodeType": "ParameterList", + "parameters": [], + "src": "11983:0:55" + }, + "scope": 13542, + "src": "11904:131:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15232 + ], + "body": { + "id": 12638, + "nodeType": "Block", + "src": "12159:54:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12635, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12628, + "src": "12189:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12634, + "name": "_setSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13470, + "src": "12169:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 12636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12169:37:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12637, + "nodeType": "ExpressionStatement", + "src": "12169:37:55" + } + ] + }, + "documentation": { + "id": 12626, + "nodeType": "StructuredDocumentation", + "src": "12041:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "93a90a1e", + "id": 12639, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12632, + "kind": "modifierInvocation", + "modifierName": { + "id": 12631, + "name": "onlyOwner", + "nameLocations": [ + "12149:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "12149:9:55" + }, + "nodeType": "ModifierInvocation", + "src": "12149:9:55" + } + ], + "name": "setSubgraphService", + "nameLocation": "12086:18:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12630, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12140:8:55" + }, + "parameters": { + "id": 12629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12628, + "mutability": "mutable", + "name": "subgraphService_", + "nameLocation": "12113:16:55", + "nodeType": "VariableDeclaration", + "scope": 12639, + "src": "12105:24:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12105:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12104:26:55" + }, + "returnParameters": { + "id": 12633, + "nodeType": "ParameterList", + "parameters": [], + "src": "12159:0:55" + }, + "scope": 13542, + "src": "12077:136:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15343 + ], + "body": { + "id": 12653, + "nodeType": "Block", + "src": "12357:47:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12650, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12643, + "src": "12389:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_calldata_ptr", + "typeString": "struct Attestation.Receipt calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Receipt_$16044_calldata_ptr", + "typeString": "struct Attestation.Receipt calldata" + } + ], + "id": 12649, + "name": "_encodeReceipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17554, + "src": "12374:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Receipt_$16044_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct Attestation.Receipt memory) view returns (bytes32)" + } + }, + "id": 12651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12374:23:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12648, + "id": 12652, + "nodeType": "Return", + "src": "12367:30:55" + } + ] + }, + "documentation": { + "id": 12640, + "nodeType": "StructuredDocumentation", + "src": "12219:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "6369df6b", + "id": 12654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encodeReceipt", + "nameLocation": "12264:13:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12645, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12330:8:55" + }, + "parameters": { + "id": 12644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12643, + "mutability": "mutable", + "name": "receipt", + "nameLocation": "12307:7:55", + "nodeType": "VariableDeclaration", + "scope": 12654, + "src": "12278:36:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_calldata_ptr", + "typeString": "struct Attestation.Receipt" + }, + "typeName": { + "id": 12642, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12641, + "name": "Attestation.Receipt", + "nameLocations": [ + "12278:11:55", + "12290:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16044, + "src": "12278:19:55" + }, + "referencedDeclaration": 16044, + "src": "12278:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_storage_ptr", + "typeString": "struct Attestation.Receipt" + } + }, + "visibility": "internal" + } + ], + "src": "12277:38:55" + }, + "returnParameters": { + "id": 12648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12647, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12654, + "src": "12348:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12646, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12348:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "12347:9:55" + }, + "scope": 13542, + "src": "12255:149:55", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15320 + ], + "body": { + "id": 12663, + "nodeType": "Block", + "src": "12519:42:55", + "statements": [ + { + "expression": { + "id": 12661, + "name": "fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13565, + "src": "12536:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 12660, + "id": 12662, + "nodeType": "Return", + "src": "12529:25:55" + } + ] + }, + "documentation": { + "id": 12655, + "nodeType": "StructuredDocumentation", + "src": "12410:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "bb2a2b47", + "id": 12664, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getFishermanRewardCut", + "nameLocation": "12455:21:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12657, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12493:8:55" + }, + "parameters": { + "id": 12656, + "nodeType": "ParameterList", + "parameters": [], + "src": "12476:2:55" + }, + "returnParameters": { + "id": 12660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12659, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12664, + "src": "12511:6:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12658, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12511:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "12510:8:55" + }, + "scope": 13542, + "src": "12446:115:55", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15326 + ], + "body": { + "id": 12673, + "nodeType": "Block", + "src": "12671:37:55", + "statements": [ + { + "expression": { + "id": 12671, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13559, + "src": "12688:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 12670, + "id": 12672, + "nodeType": "Return", + "src": "12681:20:55" + } + ] + }, + "documentation": { + "id": 12665, + "nodeType": "StructuredDocumentation", + "src": "12567:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "5aea0ec4", + "id": 12674, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDisputePeriod", + "nameLocation": "12612:16:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12667, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12645:8:55" + }, + "parameters": { + "id": 12666, + "nodeType": "ParameterList", + "parameters": [], + "src": "12628:2:55" + }, + "returnParameters": { + "id": 12670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12669, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12674, + "src": "12663:6:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 12668, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12663:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "12662:8:55" + }, + "scope": 13542, + "src": "12603:105:55", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15360 + ], + "body": { + "id": 12705, + "nodeType": "Block", + "src": "12834:226:55", + "statements": [ + { + "assignments": [ + 12687 + ], + "declarations": [ + { + "constant": false, + "id": 12687, + "mutability": "mutable", + "name": "provision", + "nameLocation": "12877:9:55", + "nodeType": "VariableDeclaration", + "scope": 12705, + "src": "12844:42:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 12686, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12685, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "12844:15:55", + "12860:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "12844:25:55" + }, + "referencedDeclaration": 3962, + "src": "12844:25:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 12698, + "initialValue": { + "arguments": [ + { + "id": 12691, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12677, + "src": "12931:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12694, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "12960:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 12695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12960:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 12693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12952:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12952:7:55", + "typeDescriptions": {} + } + }, + "id": 12696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12952:30:55", + "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": 12688, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "12889:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 12689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12889:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 12690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12905:12:55", + "memberName": "getProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 2950, + "src": "12889:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 12697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12889:103:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12844:148:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12700, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12677, + "src": "13027:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 12701, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12687, + "src": "13036:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 12702, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13046:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "13036:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12699, + "name": "_getStakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13541, + "src": "13009:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 12703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13009:44:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12682, + "id": 12704, + "nodeType": "Return", + "src": "13002:51:55" + } + ] + }, + "documentation": { + "id": 12675, + "nodeType": "StructuredDocumentation", + "src": "12714:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "c133b429", + "id": 12706, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStakeSnapshot", + "nameLocation": "12759:16:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12679, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12807:8:55" + }, + "parameters": { + "id": 12678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12677, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "12784:7:55", + "nodeType": "VariableDeclaration", + "scope": 12706, + "src": "12776:15:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12776:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12775:17:55" + }, + "returnParameters": { + "id": 12682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12681, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12706, + "src": "12825:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12825:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12824:9:55" + }, + "scope": 13542, + "src": "12750:310:55", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15372 + ], + "body": { + "id": 12725, + "nodeType": "Block", + "src": "13280:78:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12721, + "name": "attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12710, + "src": "13324:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State calldata" + } + }, + { + "id": 12722, + "name": "attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12713, + "src": "13338:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State calldata" + }, + { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State calldata" + } + ], + "expression": { + "id": 12719, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "13297:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 12720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13309:14:55", + "memberName": "areConflicting", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "13297:26:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$16058_memory_ptr_$_t_struct$_State_$16058_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct Attestation.State memory,struct Attestation.State memory) pure returns (bool)" + } + }, + "id": 12723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13297:54:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12718, + "id": 12724, + "nodeType": "Return", + "src": "13290:61:55" + } + ] + }, + "documentation": { + "id": 12707, + "nodeType": "StructuredDocumentation", + "src": "13066:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "d36fc9d4", + "id": 12726, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "areConflictingAttestations", + "nameLocation": "13111:26:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "13256:8:55" + }, + "parameters": { + "id": 12714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12710, + "mutability": "mutable", + "name": "attestation1", + "nameLocation": "13174:12:55", + "nodeType": "VariableDeclaration", + "scope": 12726, + "src": "13147:39:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12709, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12708, + "name": "Attestation.State", + "nameLocations": [ + "13147:11:55", + "13159:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "13147:17:55" + }, + "referencedDeclaration": 16058, + "src": "13147:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12713, + "mutability": "mutable", + "name": "attestation2", + "nameLocation": "13223:12:55", + "nodeType": "VariableDeclaration", + "scope": 12726, + "src": "13196:39:55", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_calldata_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12712, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12711, + "name": "Attestation.State", + "nameLocations": [ + "13196:11:55", + "13208:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "13196:17:55" + }, + "referencedDeclaration": 16058, + "src": "13196:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "13137:104:55" + }, + "returnParameters": { + "id": 12718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12717, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12726, + "src": "13274:4:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12716, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13274:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13273:6:55" + }, + "scope": 13542, + "src": "13102:256:55", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15352 + ], + "body": { + "id": 12782, + "nodeType": "Block", + "src": "13499:574:55", + "statements": [ + { + "assignments": [ + 12736 + ], + "declarations": [ + { + "constant": false, + "id": 12736, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "13589:12:55", + "nodeType": "VariableDeclaration", + "scope": 12782, + "src": "13581:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13581:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12740, + "initialValue": { + "arguments": [ + { + "id": 12738, + "name": "attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12730, + "src": "13619:11:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + ], + "id": 12737, + "name": "_recoverSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17524, + "src": "13604:14:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_State_$16058_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct Attestation.State memory) view returns (address)" + } + }, + "id": 12739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13604:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13581:50:55" + }, + { + "assignments": [ + 12745 + ], + "declarations": [ + { + "constant": false, + "id": 12745, + "mutability": "mutable", + "name": "alloc", + "nameLocation": "13666:5:55", + "nodeType": "VariableDeclaration", + "scope": 12782, + "src": "13642:29:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 12744, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12743, + "name": "Allocation.State", + "nameLocations": [ + "13642:10:55", + "13653:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "13642:16:55" + }, + "referencedDeclaration": 15663, + "src": "13642:16:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 12751, + "initialValue": { + "arguments": [ + { + "id": 12749, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12736, + "src": "13710:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12746, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "13674:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 12747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13674:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 12748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13696:13:55", + "memberName": "getAllocation", + "nodeType": "MemberAccess", + "referencedDeclaration": 15588, + "src": "13674:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (address) view external returns (struct Allocation.State memory)" + } + }, + "id": 12750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13674:49:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13642:81:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12753, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12745, + "src": "13741:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 12754, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13747:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "13741:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 12757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13766:1:55", + "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": 12756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13758:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13758:7:55", + "typeDescriptions": {} + } + }, + "id": 12758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13758:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13741:27:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12761, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12736, + "src": "13800:12:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12760, + "name": "DisputeManagerIndexerNotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15155, + "src": "13770:29:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 12762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13770:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12752, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13733:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13733:81:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12764, + "nodeType": "ExpressionStatement", + "src": "13733:81:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 12770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12766, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12745, + "src": "13845:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 12767, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13851:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "13845:26:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 12768, + "name": "attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12730, + "src": "13875:11:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13887:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "13875:32:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "13845:62:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 12772, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12745, + "src": "13965:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 12773, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13971:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "13965:26:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12774, + "name": "attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12730, + "src": "13993:11:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12775, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14005:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "13993:32:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12771, + "name": "DisputeManagerNonMatchingSubgraphDeployment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15162, + "src": "13921:43:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32,bytes32) pure returns (error)" + } + }, + "id": 12776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:105:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12765, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13824:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13824:212:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12778, + "nodeType": "ExpressionStatement", + "src": "13824:212:55" + }, + { + "expression": { + "expression": { + "id": 12779, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12745, + "src": "14053:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 12780, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14059:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "14053:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 12734, + "id": 12781, + "nodeType": "Return", + "src": "14046:20:55" + } + ] + }, + "documentation": { + "id": 12727, + "nodeType": "StructuredDocumentation", + "src": "13364:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "c9747f51", + "id": 12783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAttestationIndexer", + "nameLocation": "13409:21:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12730, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "13456:11:55", + "nodeType": "VariableDeclaration", + "scope": 12783, + "src": "13431:36:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12729, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12728, + "name": "Attestation.State", + "nameLocations": [ + "13431:11:55", + "13443:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "13431:17:55" + }, + "referencedDeclaration": 16058, + "src": "13431:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "13430:38:55" + }, + "returnParameters": { + "id": 12734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12783, + "src": "13490:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13490:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "13489:9:55" + }, + "scope": 13542, + "src": "13400:673:55", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 15334 + ], + "body": { + "id": 12800, + "nodeType": "Block", + "src": "14196:72:55", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + "id": 12798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 12792, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "14213:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12794, + "indexExpression": { + "id": 12793, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12786, + "src": "14222:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14213:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 12795, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14233:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "14213:26:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 12796, + "name": "DisputeStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14921, + "src": "14243:13:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 12797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14257:4:55", + "memberName": "Null", + "nodeType": "MemberAccess", + "referencedDeclaration": 14915, + "src": "14243:18:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "14213:48:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12791, + "id": 12799, + "nodeType": "Return", + "src": "14206:55:55" + } + ] + }, + "documentation": { + "id": 12784, + "nodeType": "StructuredDocumentation", + "src": "14079:31:55", + "text": "@inheritdoc IDisputeManager" + }, + "functionSelector": "be41f384", + "id": 12801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDisputeCreated", + "nameLocation": "14124:16:55", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12788, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14172:8:55" + }, + "parameters": { + "id": 12787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12786, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "14149:9:55", + "nodeType": "VariableDeclaration", + "scope": 12801, + "src": "14141:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12785, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14141:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "14140:19:55" + }, + "returnParameters": { + "id": 12791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12790, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12801, + "src": "14190:4:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12789, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14190:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14189:6:55" + }, + "scope": 13542, + "src": "14115:153:55", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12922, + "nodeType": "Block", + "src": "15030:1622:55", + "statements": [ + { + "assignments": [ + 12817 + ], + "declarations": [ + { + "constant": false, + "id": 12817, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "15103:7:55", + "nodeType": "VariableDeclaration", + "scope": 12922, + "src": "15095:15:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15095:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12821, + "initialValue": { + "arguments": [ + { + "id": 12819, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "15135:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + ], + "id": 12818, + "name": "getAttestationIndexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12783, + "src": "15113:21:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_State_$16058_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct Attestation.State memory) view returns (address)" + } + }, + "id": 12820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15113:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15095:53:55" + }, + { + "assignments": [ + 12826 + ], + "declarations": [ + { + "constant": false, + "id": 12826, + "mutability": "mutable", + "name": "provision", + "nameLocation": "15229:9:55", + "nodeType": "VariableDeclaration", + "scope": 12922, + "src": "15196:42:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 12825, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12824, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "15196:15:55", + "15212:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "15196:25:55" + }, + "referencedDeclaration": 3962, + "src": "15196:25:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 12837, + "initialValue": { + "arguments": [ + { + "id": 12830, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12817, + "src": "15283:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12833, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "15312:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 12834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15312:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 12832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15304:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15304:7:55", + "typeDescriptions": {} + } + }, + "id": 12835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15304:30:55", + "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": 12827, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "15241:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 12828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15241:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 12829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15257:12:55", + "memberName": "getProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 2950, + "src": "15241:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 12836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15241:103:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15196:148:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12839, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12826, + "src": "15362:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 12840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15372:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "15362:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 12841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15382:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15362:21:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12843, + "name": "DisputeManagerZeroTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15092, + "src": "15385:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 12844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15385:26:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12838, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15354:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15354:58:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12846, + "nodeType": "ExpressionStatement", + "src": "15354:58:55" + }, + { + "assignments": [ + 12848 + ], + "declarations": [ + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "15461:9:55", + "nodeType": "VariableDeclaration", + "scope": 12922, + "src": "15453:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12847, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15453:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12862, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 12852, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "15530:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12853, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15543:10:55", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "15530:23:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12854, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "15571:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12855, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15584:11:55", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "15571:24:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 12856, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "15613:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15626:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "15613:33:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12858, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12817, + "src": "15664:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12859, + "name": "_fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12804, + "src": "15689:10:55", + "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": 12850, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "15496:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 12851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15500:12:55", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "15496:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 12860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15496:217:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 12849, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "15473:9:55", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15473:250:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15453:270:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15780:28:55", + "subExpression": { + "arguments": [ + { + "id": 12865, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "15798:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12864, + "name": "isDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12801, + "src": "15781:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 12866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15781:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12869, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "15846:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12868, + "name": "DisputeManagerDisputeAlreadyCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15130, + "src": "15810:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15810:46:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12863, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15772:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15772:85:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12872, + "nodeType": "ExpressionStatement", + "src": "15772:85:55" + }, + { + "assignments": [ + 12874 + ], + "declarations": [ + { + "constant": false, + "id": 12874, + "mutability": "mutable", + "name": "stakeSnapshot", + "nameLocation": "15901:13:55", + "nodeType": "VariableDeclaration", + "scope": 12922, + "src": "15893:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15893:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12880, + "initialValue": { + "arguments": [ + { + "id": 12876, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12817, + "src": "15935:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 12877, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12826, + "src": "15944:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 12878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15954:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "15944:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12875, + "name": "_getStakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13541, + "src": "15917:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 12879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15917:44:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15893:68:55" + }, + { + "assignments": [ + 12882 + ], + "declarations": [ + { + "constant": false, + "id": 12882, + "mutability": "mutable", + "name": "cancellableAt", + "nameLocation": "15979:13:55", + "nodeType": "VariableDeclaration", + "scope": 12922, + "src": "15971:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15971:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12887, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 12883, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "15995:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16001:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "15995:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 12885, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13559, + "src": "16013:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "15995:31:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15971:55:55" + }, + { + "expression": { + "id": 12906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 12888, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "16036:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 12890, + "indexExpression": { + "id": 12889, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "16045:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16036:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 12892, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12817, + "src": "16079:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12893, + "name": "_fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12804, + "src": "16100:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12894, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12806, + "src": "16124:8:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 12895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16146:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "id": 12896, + "name": "DisputeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14913, + "src": "16184:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeType_$14913_$", + "typeString": "type(enum IDisputeManager.DisputeType)" + } + }, + "id": 12897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16196:12:55", + "memberName": "QueryDispute", + "nodeType": "MemberAccess", + "referencedDeclaration": 14911, + "src": "16184:24:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + } + }, + { + "expression": { + "expression": { + "id": 12898, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "16222:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 12899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16238:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "16222:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 12900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16252:7:55", + "memberName": "Pending", + "nodeType": "MemberAccess", + "referencedDeclaration": 14919, + "src": "16222:37:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + { + "expression": { + "id": 12901, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "16273:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16279:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "16273:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12903, + "name": "cancellableAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12882, + "src": "16302:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12904, + "name": "stakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "16329:13:55", + "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_$14913", + "typeString": "enum IDisputeManager.DisputeType" + }, + { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12891, + "name": "Dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14943, + "src": "16058:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Dispute_$14943_storage_ptr_$", + "typeString": "type(struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 12905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16058:294:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_memory_ptr", + "typeString": "struct IDisputeManager.Dispute memory" + } + }, + "src": "16036:316:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 12907, + "nodeType": "ExpressionStatement", + "src": "16036:316:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 12909, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "16401:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12910, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12817, + "src": "16424:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12911, + "name": "_fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12804, + "src": "16445:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12912, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12806, + "src": "16469:8:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 12913, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12809, + "src": "16491:12:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 12914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16504:20:55", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "16491:33:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 12915, + "name": "_attestationData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12811, + "src": "16538:16:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 12916, + "name": "cancellableAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12882, + "src": "16568:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12917, + "name": "stakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "16595:13:55", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12908, + "name": "QueryDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14992, + "src": "16368:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256,bytes32,bytes memory,uint256,uint256)" + } + }, + "id": 12918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16368:250:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12919, + "nodeType": "EmitStatement", + "src": "16363:255:55" + }, + { + "expression": { + "id": 12920, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "16636:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12815, + "id": 12921, + "nodeType": "Return", + "src": "16629:16:55" + } + ] + }, + "documentation": { + "id": 12802, + "nodeType": "StructuredDocumentation", + "src": "14274:535:55", + "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": 12923, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createQueryDisputeWithAttestation", + "nameLocation": "14823:34:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12804, + "mutability": "mutable", + "name": "_fisherman", + "nameLocation": "14875:10:55", + "nodeType": "VariableDeclaration", + "scope": 12923, + "src": "14867:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14867:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12806, + "mutability": "mutable", + "name": "_deposit", + "nameLocation": "14903:8:55", + "nodeType": "VariableDeclaration", + "scope": 12923, + "src": "14895:16:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14895:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12809, + "mutability": "mutable", + "name": "_attestation", + "nameLocation": "14946:12:55", + "nodeType": "VariableDeclaration", + "scope": 12923, + "src": "14921:37:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 12808, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12807, + "name": "Attestation.State", + "nameLocations": [ + "14921:11:55", + "14933:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "14921:17:55" + }, + "referencedDeclaration": 16058, + "src": "14921:17:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12811, + "mutability": "mutable", + "name": "_attestationData", + "nameLocation": "14981:16:55", + "nodeType": "VariableDeclaration", + "scope": 12923, + "src": "14968:29:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 12810, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14968:5:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14857:146:55" + }, + "returnParameters": { + "id": 12815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12814, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12923, + "src": "15021:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12813, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15021:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "15020:9:55" + }, + "scope": 13542, + "src": "14814:1838:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13064, + "nodeType": "Block", + "src": "17155:1565:55", + "statements": [ + { + "assignments": [ + 12938 + ], + "declarations": [ + { + "constant": false, + "id": 12938, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "17203:9:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17195:17:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12937, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17195:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12946, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 12942, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12930, + "src": "17242:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12943, + "name": "_poi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12932, + "src": "17257:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 12940, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "17225:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 12941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17229:12:55", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "17225:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 12944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17225:37:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 12939, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "17215:9:55", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 12945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17215:48:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17195:68:55" + }, + { + "expression": { + "arguments": [ + { + "id": 12951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "17340:28:55", + "subExpression": { + "arguments": [ + { + "id": 12949, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12938, + "src": "17358:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12948, + "name": "isDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12801, + "src": "17341:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 12950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17341:27:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12953, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12938, + "src": "17406:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12952, + "name": "DisputeManagerDisputeAlreadyCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15130, + "src": "17370:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 12954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17370:46:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12947, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17332:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17332:85:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12956, + "nodeType": "ExpressionStatement", + "src": "17332:85:55" + }, + { + "assignments": [ + 12959 + ], + "declarations": [ + { + "constant": false, + "id": 12959, + "mutability": "mutable", + "name": "subgraphService_", + "nameLocation": "17478:16:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17461:33:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 12958, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12957, + "name": "ISubgraphService", + "nameLocations": [ + "17461:16:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "17461:16:55" + }, + "referencedDeclaration": 15634, + "src": "17461:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "internal" + } + ], + "id": 12962, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12960, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "17497:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 12961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17497:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17461:57:55" + }, + { + "assignments": [ + 12967 + ], + "declarations": [ + { + "constant": false, + "id": 12967, + "mutability": "mutable", + "name": "alloc", + "nameLocation": "17552:5:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17528:29:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 12966, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12965, + "name": "Allocation.State", + "nameLocations": [ + "17528:10:55", + "17539:5:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "17528:16:55" + }, + "referencedDeclaration": 15663, + "src": "17528:16:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 12972, + "initialValue": { + "arguments": [ + { + "id": 12970, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12930, + "src": "17591:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 12968, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12959, + "src": "17560:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 12969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17577:13:55", + "memberName": "getAllocation", + "nodeType": "MemberAccess", + "referencedDeclaration": 15588, + "src": "17560:30:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (address) view external returns (struct Allocation.State memory)" + } + }, + "id": 12971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17560:45:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17528:77:55" + }, + { + "assignments": [ + 12974 + ], + "declarations": [ + { + "constant": false, + "id": 12974, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "17623:7:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17615:15:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12973, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17615:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12977, + "initialValue": { + "expression": { + "id": 12975, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12967, + "src": "17633:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 12976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17639:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "17633:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17615:31:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12979, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12974, + "src": "17664:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 12982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17683:1:55", + "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": 12981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17675:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17675:7:55", + "typeDescriptions": {} + } + }, + "id": 12983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17675:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17664:21:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 12986, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12930, + "src": "17717:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12985, + "name": "DisputeManagerIndexerNotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15155, + "src": "17687:29:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 12987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17687:44:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 12978, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17656:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 12988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17656:76:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12989, + "nodeType": "ExpressionStatement", + "src": "17656:76:55" + }, + { + "assignments": [ + 12994 + ], + "declarations": [ + { + "constant": false, + "id": 12994, + "mutability": "mutable", + "name": "provision", + "nameLocation": "17818:9:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17785:42:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 12993, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12992, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "17785:15:55", + "17801:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "17785:25:55" + }, + "referencedDeclaration": 3962, + "src": "17785:25:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 13004, + "initialValue": { + "arguments": [ + { + "id": 12998, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12974, + "src": "17859:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 13001, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12959, + "src": "17876:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 13000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17868:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12999, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17868:7:55", + "typeDescriptions": {} + } + }, + "id": 13002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17868:25:55", + "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": 12995, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "17830:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 12996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17830:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 12997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17846:12:55", + "memberName": "getProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 2950, + "src": "17830:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 13003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17830:64:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17785:109:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 13006, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12994, + "src": "17912:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 13007, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17922:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "17912:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 13008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17932:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17912:21:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13010, + "name": "DisputeManagerZeroTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15092, + "src": "17935:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17935:26:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13005, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17904:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17904:58:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13013, + "nodeType": "ExpressionStatement", + "src": "17904:58:55" + }, + { + "assignments": [ + 13015 + ], + "declarations": [ + { + "constant": false, + "id": 13015, + "mutability": "mutable", + "name": "stakeSnapshot", + "nameLocation": "18006:13:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "17998:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17998:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13021, + "initialValue": { + "arguments": [ + { + "id": 13017, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12974, + "src": "18040:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13018, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12994, + "src": "18049:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 13019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18059:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "18049:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13016, + "name": "_getStakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13541, + "src": "18022:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 13020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18022:44:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17998:68:55" + }, + { + "assignments": [ + 13023 + ], + "declarations": [ + { + "constant": false, + "id": 13023, + "mutability": "mutable", + "name": "cancellableAt", + "nameLocation": "18084:13:55", + "nodeType": "VariableDeclaration", + "scope": 13064, + "src": "18076:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18076:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13028, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 13024, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "18100:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18106:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "18100:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13026, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13559, + "src": "18118:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "18100:31:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18076:55:55" + }, + { + "expression": { + "id": 13048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 13029, + "name": "disputes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13574, + "src": "18141:8:55", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" + } + }, + "id": 13031, + "indexExpression": { + "id": 13030, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12938, + "src": "18150:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18141:19:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 13033, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12967, + "src": "18184:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 13034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18190:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "18184:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13035, + "name": "_fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12926, + "src": "18211:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13036, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12928, + "src": "18235:8:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 13037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18257:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "id": 13038, + "name": "DisputeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14913, + "src": "18272:11:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeType_$14913_$", + "typeString": "type(enum IDisputeManager.DisputeType)" + } + }, + "id": 13039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18284:15:55", + "memberName": "IndexingDispute", + "nodeType": "MemberAccess", + "referencedDeclaration": 14910, + "src": "18272:27:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + } + }, + { + "expression": { + "expression": { + "id": 13040, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "18313:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 13041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18329:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "18313:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 13042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18343:7:55", + "memberName": "Pending", + "nodeType": "MemberAccess", + "referencedDeclaration": 14919, + "src": "18313:37:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + { + "expression": { + "id": 13043, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "18364:5:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18370:9:55", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "18364:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13045, + "name": "cancellableAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13023, + "src": "18393:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13046, + "name": "stakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13015, + "src": "18420:13:55", + "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_$14913", + "typeString": "enum IDisputeManager.DisputeType" + }, + { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13032, + "name": "Dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14943, + "src": "18163:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Dispute_$14943_storage_ptr_$", + "typeString": "type(struct IDisputeManager.Dispute storage pointer)" + } + }, + "id": 13047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18163:280:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_memory_ptr", + "typeString": "struct IDisputeManager.Dispute memory" + } + }, + "src": "18141:302:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage", + "typeString": "struct IDisputeManager.Dispute storage ref" + } + }, + "id": 13049, + "nodeType": "ExpressionStatement", + "src": "18141:302:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13051, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12938, + "src": "18495:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 13052, + "name": "alloc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12967, + "src": "18518:5:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 13053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18524:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "18518:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13054, + "name": "_fisherman", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12926, + "src": "18545:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13055, + "name": "_deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12928, + "src": "18569:8:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13056, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12930, + "src": "18591:13:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13057, + "name": "_poi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12932, + "src": "18618:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 13058, + "name": "stakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13015, + "src": "18636:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13059, + "name": "cancellableAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13023, + "src": "18663:13:55", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13050, + "name": "IndexingDisputeCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15011, + "src": "18459:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256,address,bytes32,uint256,uint256)" + } + }, + "id": 13060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18459:227:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13061, + "nodeType": "EmitStatement", + "src": "18454:232:55" + }, + { + "expression": { + "id": 13062, + "name": "disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12938, + "src": "18704:9:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12936, + "id": 13063, + "nodeType": "Return", + "src": "18697:16:55" + } + ] + }, + "documentation": { + "id": 12924, + "nodeType": "StructuredDocumentation", + "src": "16658:307:55", + "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\n @return The dispute id" + }, + "id": 13065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createIndexingDisputeWithAllocation", + "nameLocation": "16979:36:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12926, + "mutability": "mutable", + "name": "_fisherman", + "nameLocation": "17033:10:55", + "nodeType": "VariableDeclaration", + "scope": 13065, + "src": "17025:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17025:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12928, + "mutability": "mutable", + "name": "_deposit", + "nameLocation": "17061:8:55", + "nodeType": "VariableDeclaration", + "scope": 13065, + "src": "17053:16:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17053:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12930, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "17087:13:55", + "nodeType": "VariableDeclaration", + "scope": 13065, + "src": "17079:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17079:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12932, + "mutability": "mutable", + "name": "_poi", + "nameLocation": "17118:4:55", + "nodeType": "VariableDeclaration", + "scope": 13065, + "src": "17110:12:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12931, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17110:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17015:113:55" + }, + "returnParameters": { + "id": 12936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12935, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13065, + "src": "17146:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12934, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17146:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17145:9:55" + }, + "scope": 13542, + "src": "16970:1750:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13117, + "nodeType": "Block", + "src": "19017:384:55", + "statements": [ + { + "assignments": [ + 13077 + ], + "declarations": [ + { + "constant": false, + "id": 13077, + "mutability": "mutable", + "name": "tokensToReward", + "nameLocation": "19035:14:55", + "nodeType": "VariableDeclaration", + "scope": 13117, + "src": "19027:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19027:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13085, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 13079, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19066:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19075:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 14924, + "src": "19066:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13081, + "name": "_tokensSlashed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13073, + "src": "19084:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 13082, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19100:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19109:13:55", + "memberName": "stakeSnapshot", + "nodeType": "MemberAccess", + "referencedDeclaration": 14942, + "src": "19100:22:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13078, + "name": "_slashIndexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13320, + "src": "19052:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256,uint256) returns (uint256)" + } + }, + "id": 13084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19052:71:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19027:96:55" + }, + { + "expression": { + "id": 13092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 13086, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19133:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "19142:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "19133:15:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 13089, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "19151:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 13090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19167:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "19151:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 13091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19181:8:55", + "memberName": "Accepted", + "nodeType": "MemberAccess", + "referencedDeclaration": 14916, + "src": "19151:38:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "19133:56:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "id": 13093, + "nodeType": "ExpressionStatement", + "src": "19133:56:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 13097, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19224:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19233:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "19224:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13099, + "name": "tokensToReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13077, + "src": "19244:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 13100, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19261:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13101, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19270:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "19261:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19244:33:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13094, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "19199:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 13095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19199:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 13096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19213:10:55", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "19199:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 13103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19199:79:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13104, + "nodeType": "ExpressionStatement", + "src": "19199:79:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13106, + "name": "_disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13068, + "src": "19310:10:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 13107, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19322:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13108, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19331:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 14924, + "src": "19322:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13109, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19340:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19349:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "19340:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 13111, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13071, + "src": "19360:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19369:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "19360:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13113, + "name": "tokensToReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13077, + "src": "19379:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19360:33:55", + "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": 13105, + "name": "DisputeAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15037, + "src": "19294:15:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256)" + } + }, + "id": 13115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19294:100:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13116, + "nodeType": "EmitStatement", + "src": "19289:105:55" + } + ] + }, + "documentation": { + "id": 13066, + "nodeType": "StructuredDocumentation", + "src": "18726:184:55", + "text": " @notice Accept a dispute\n @param _disputeId The id of the dispute\n @param _dispute The dispute\n @param _tokensSlashed The amount of tokens to slash" + }, + "id": 13118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_acceptDispute", + "nameLocation": "18924:14:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13068, + "mutability": "mutable", + "name": "_disputeId", + "nameLocation": "18947:10:55", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "18939:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 13067, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18939:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13071, + "mutability": "mutable", + "name": "_dispute", + "nameLocation": "18975:8:55", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "18959:24:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 13070, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13069, + "name": "Dispute", + "nameLocations": [ + "18959:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "18959:7:55" + }, + "referencedDeclaration": 14943, + "src": "18959:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13073, + "mutability": "mutable", + "name": "_tokensSlashed", + "nameLocation": "18993:14:55", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "18985:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18985:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18938:70:55" + }, + "returnParameters": { + "id": 13075, + "nodeType": "ParameterList", + "parameters": [], + "src": "19017:0:55" + }, + "scope": 13542, + "src": "18915:486:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13152, + "nodeType": "Block", + "src": "19615:224:55", + "statements": [ + { + "expression": { + "id": 13133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 13127, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13124, + "src": "19625:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "19634:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "19625:15:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 13130, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "19643:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 13131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19659:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "19643:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 13132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19673:8:55", + "memberName": "Rejected", + "nodeType": "MemberAccess", + "referencedDeclaration": 14917, + "src": "19643:38:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "19625:56:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "id": 13134, + "nodeType": "ExpressionStatement", + "src": "19625:56:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 13138, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13124, + "src": "19716:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19725:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "19716:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13135, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "19691:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 13136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19691:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 13137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19705:10:55", + "memberName": "burnTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 839, + "src": "19691:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,uint256)" + } + }, + "id": 13140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19691:42:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13141, + "nodeType": "ExpressionStatement", + "src": "19691:42:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13143, + "name": "_disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13121, + "src": "19765:10:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 13144, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13124, + "src": "19777:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19786:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 14924, + "src": "19777:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13146, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13124, + "src": "19795:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19804:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "19795:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13148, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13124, + "src": "19815:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19824:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "19815:16:55", + "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": 13142, + "name": "DisputeRejected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15048, + "src": "19749:15:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256)" + } + }, + "id": 13150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19749:83:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13151, + "nodeType": "EmitStatement", + "src": "19744:88:55" + } + ] + }, + "documentation": { + "id": 13119, + "nodeType": "StructuredDocumentation", + "src": "19407:125:55", + "text": " @notice Reject a dispute\n @param _disputeId The id of the dispute\n @param _dispute The dispute" + }, + "id": 13153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_rejectDispute", + "nameLocation": "19546:14:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13121, + "mutability": "mutable", + "name": "_disputeId", + "nameLocation": "19569:10:55", + "nodeType": "VariableDeclaration", + "scope": 13153, + "src": "19561:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 13120, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19561:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13124, + "mutability": "mutable", + "name": "_dispute", + "nameLocation": "19597:8:55", + "nodeType": "VariableDeclaration", + "scope": 13153, + "src": "19581:24:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 13123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13122, + "name": "Dispute", + "nameLocations": [ + "19581:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "19581:7:55" + }, + "referencedDeclaration": 14943, + "src": "19581:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "src": "19560:46:55" + }, + "returnParameters": { + "id": 13126, + "nodeType": "ParameterList", + "parameters": [], + "src": "19615:0:55" + }, + "scope": 13542, + "src": "19537:302:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13189, + "nodeType": "Block", + "src": "20049:238:55", + "statements": [ + { + "expression": { + "id": 13168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 13162, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20059:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13164, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "20068:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "20059:15:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 13165, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "20077:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 13166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20093:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "20077:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 13167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "20107:5:55", + "memberName": "Drawn", + "nodeType": "MemberAccess", + "referencedDeclaration": 14918, + "src": "20077:35:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "20059:53:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "id": 13169, + "nodeType": "ExpressionStatement", + "src": "20059:53:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 13173, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20147:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20156:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "20147:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13175, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20167:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20176:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "20167:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13170, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "20122:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 13171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20122:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 13172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20136:10:55", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "20122:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 13177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20122:62:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13178, + "nodeType": "ExpressionStatement", + "src": "20122:62:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13180, + "name": "_disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13156, + "src": "20213:10:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 13181, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20225:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20234:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 14924, + "src": "20225:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13183, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20243:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13184, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20252:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "20243:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13185, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13159, + "src": "20263:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20272:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "20263:16:55", + "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": 13179, + "name": "DisputeDrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15059, + "src": "20200:12:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256)" + } + }, + "id": 13187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20200:80:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13188, + "nodeType": "EmitStatement", + "src": "20195:85:55" + } + ] + }, + "documentation": { + "id": 13154, + "nodeType": "StructuredDocumentation", + "src": "19845:123:55", + "text": " @notice Draw a dispute\n @param _disputeId The id of the dispute\n @param _dispute The dispute" + }, + "id": 13190, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_drawDispute", + "nameLocation": "19982:12:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13156, + "mutability": "mutable", + "name": "_disputeId", + "nameLocation": "20003:10:55", + "nodeType": "VariableDeclaration", + "scope": 13190, + "src": "19995:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 13155, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19995:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13159, + "mutability": "mutable", + "name": "_dispute", + "nameLocation": "20031:8:55", + "nodeType": "VariableDeclaration", + "scope": 13190, + "src": "20015:24:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 13158, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13157, + "name": "Dispute", + "nameLocations": [ + "20015:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "20015:7:55" + }, + "referencedDeclaration": 14943, + "src": "20015:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "src": "19994:46:55" + }, + "returnParameters": { + "id": 13161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20049:0:55" + }, + "scope": 13542, + "src": "19973:314:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13226, + "nodeType": "Block", + "src": "20501:246:55", + "statements": [ + { + "expression": { + "id": 13205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 13199, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20511:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "20520:6:55", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 14936, + "src": "20511:15:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 13202, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "20529:15:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 13203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20545:13:55", + "memberName": "DisputeStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 14921, + "src": "20529:29:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$14921_$", + "typeString": "type(enum IDisputeManager.DisputeStatus)" + } + }, + "id": 13204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "20559:9:55", + "memberName": "Cancelled", + "nodeType": "MemberAccess", + "referencedDeclaration": 14920, + "src": "20529:39:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "src": "20511:57:55", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "id": 13206, + "nodeType": "ExpressionStatement", + "src": "20511:57:55" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 13210, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20603:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20612:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "20603:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13212, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20623:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20632:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "20623:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13207, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "20578:11:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 13208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20578:13:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 13209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20592:10:55", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "20578:24:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 13214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20578:62:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13215, + "nodeType": "ExpressionStatement", + "src": "20578:62:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13217, + "name": "_disputeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13193, + "src": "20673:10:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 13218, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20685:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20694:7:55", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 14924, + "src": "20685:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13220, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20703:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13221, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20712:9:55", + "memberName": "fisherman", + "nodeType": "MemberAccess", + "referencedDeclaration": 14926, + "src": "20703:18:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 13222, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "20723:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20732:7:55", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 14928, + "src": "20723:16:55", + "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": 13216, + "name": "DisputeCancelled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15077, + "src": "20656:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,address,uint256)" + } + }, + "id": 13224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20656:84:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13225, + "nodeType": "EmitStatement", + "src": "20651:89:55" + } + ] + }, + "documentation": { + "id": 13191, + "nodeType": "StructuredDocumentation", + "src": "20293:125:55", + "text": " @notice Cancel a dispute\n @param _disputeId The id of the dispute\n @param _dispute The dispute" + }, + "id": 13227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_cancelDispute", + "nameLocation": "20432:14:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13193, + "mutability": "mutable", + "name": "_disputeId", + "nameLocation": "20455:10:55", + "nodeType": "VariableDeclaration", + "scope": 13227, + "src": "20447:18:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 13192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20447:7:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13196, + "mutability": "mutable", + "name": "_dispute", + "nameLocation": "20483:8:55", + "nodeType": "VariableDeclaration", + "scope": 13227, + "src": "20467:24:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 13195, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13194, + "name": "Dispute", + "nameLocations": [ + "20467:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "20467:7:55" + }, + "referencedDeclaration": 14943, + "src": "20467:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "src": "20446:46:55" + }, + "returnParameters": { + "id": 13198, + "nodeType": "ParameterList", + "parameters": [], + "src": "20501:0:55" + }, + "scope": 13542, + "src": "20423:324:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13319, + "nodeType": "Block", + "src": "21378:1390:55", + "statements": [ + { + "assignments": [ + 13241 + ], + "declarations": [ + { + "constant": false, + "id": 13241, + "mutability": "mutable", + "name": "subgraphService_", + "nameLocation": "21405:16:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "21388:33:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 13240, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13239, + "name": "ISubgraphService", + "nameLocations": [ + "21388:16:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "21388:16:55" + }, + "referencedDeclaration": 15634, + "src": "21388:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "internal" + } + ], + "id": 13244, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13242, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "21424:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 13243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21424:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21388:57:55" + }, + { + "assignments": [ + 13249 + ], + "declarations": [ + { + "constant": false, + "id": 13249, + "mutability": "mutable", + "name": "provision", + "nameLocation": "21533:9:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "21500:42:55", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + }, + "typeName": { + "id": 13248, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13247, + "name": "IHorizonStaking.Provision", + "nameLocations": [ + "21500:15:55", + "21516:9:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3962, + "src": "21500:25:55" + }, + "referencedDeclaration": 3962, + "src": "21500:25:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_storage_ptr", + "typeString": "struct IHorizonStakingTypes.Provision" + } + }, + "visibility": "internal" + } + ], + "id": 13259, + "initialValue": { + "arguments": [ + { + "id": 13253, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13230, + "src": "21574:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 13256, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13241, + "src": "21592:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 13255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21584:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21584:7:55", + "typeDescriptions": {} + } + }, + "id": 13257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21584:25:55", + "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": 13250, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "21545:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 13251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21545:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 13252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21561:12:55", + "memberName": "getProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 2950, + "src": "21545:28:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3962_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" + } + }, + "id": 13258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21545:65:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21500:110:55" + }, + { + "assignments": [ + 13261 + ], + "declarations": [ + { + "constant": false, + "id": 13261, + "mutability": "mutable", + "name": "maxTokensSlash", + "nameLocation": "21678:14:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "21670:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21670:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13266, + "initialValue": { + "arguments": [ + { + "id": 13264, + "name": "maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13568, + "src": "21723:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 13262, + "name": "_tokensStakeSnapshot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13234, + "src": "21695:20:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21716:6:55", + "memberName": "mulPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4496, + "src": "21695:27:55", + "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": 13265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21695:43:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21670:68:55" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13268, + "name": "_tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13232, + "src": "21769:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 13269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21785:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21769:17:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13271, + "name": "_tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13232, + "src": "21790:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 13272, + "name": "maxTokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13261, + "src": "21806:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21790:30:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21769:51:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13276, + "name": "_tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13232, + "src": "21867:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13277, + "name": "maxTokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13261, + "src": "21881:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13275, + "name": "DisputeManagerInvalidTokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15119, + "src": "21834:32:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 13278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21834:62:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13267, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "21748:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21748:158:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13280, + "nodeType": "ExpressionStatement", + "src": "21748:158:55" + }, + { + "assignments": [ + 13282 + ], + "declarations": [ + { + "constant": false, + "id": 13282, + "mutability": "mutable", + "name": "maxRewardableTokens", + "nameLocation": "22414:19:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "22406:27:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22406:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13289, + "initialValue": { + "arguments": [ + { + "id": 13285, + "name": "_tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13232, + "src": "22450:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 13286, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13249, + "src": "22464:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 13287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22474:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3943, + "src": "22464:16:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 13283, + "name": "MathUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4445, + "src": "22436:9:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MathUtils_$4445_$", + "typeString": "type(library MathUtils)" + } + }, + "id": 13284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22446:3:55", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 4423, + "src": "22436:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22436:45:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22406:75:55" + }, + { + "assignments": [ + 13291 + ], + "declarations": [ + { + "constant": false, + "id": 13291, + "mutability": "mutable", + "name": "effectiveCut", + "nameLocation": "22499:12:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "22491:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22491:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13298, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 13294, + "name": "provision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13249, + "src": "22528:9:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Provision_$3962_memory_ptr", + "typeString": "struct IHorizonStakingTypes.Provision memory" + } + }, + "id": 13295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22538:14:55", + "memberName": "maxVerifierCut", + "nodeType": "MemberAccess", + "referencedDeclaration": 3949, + "src": "22528:24:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 13296, + "name": "fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13565, + "src": "22554:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 13292, + "name": "MathUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4445, + "src": "22514:9:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MathUtils_$4445_$", + "typeString": "type(library MathUtils)" + } + }, + "id": 13293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22524:3:55", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 4423, + "src": "22514:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22514:59:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22491:82:55" + }, + { + "assignments": [ + 13300 + ], + "declarations": [ + { + "constant": false, + "id": 13300, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "22591:13:55", + "nodeType": "VariableDeclaration", + "scope": 13319, + "src": "22583:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22583:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13305, + "initialValue": { + "arguments": [ + { + "id": 13303, + "name": "maxRewardableTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13282, + "src": "22627:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 13301, + "name": "effectiveCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "22607:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22620:6:55", + "memberName": "mulPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4496, + "src": "22607:19:55", + "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": 13304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22607:40:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22583:64:55" + }, + { + "expression": { + "arguments": [ + { + "id": 13309, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13230, + "src": "22681:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 13312, + "name": "_tokensSlash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13232, + "src": "22702:12:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13313, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13300, + "src": "22716:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 13310, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "22691:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 13311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "22695:6:55", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "22691:10:55", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 13314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22691:39:55", + "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": 13306, + "name": "subgraphService_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13241, + "src": "22658:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 13308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22675:5:55", + "memberName": "slash", + "nodeType": "MemberAccess", + "referencedDeclaration": 1526, + "src": "22658:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory) external" + } + }, + "id": 13315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22658:73:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13316, + "nodeType": "ExpressionStatement", + "src": "22658:73:55" + }, + { + "expression": { + "id": 13317, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13300, + "src": "22748:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13238, + "id": 13318, + "nodeType": "Return", + "src": "22741:20:55" + } + ] + }, + "documentation": { + "id": 13228, + "nodeType": "StructuredDocumentation", + "src": "20753:471:55", + "text": " @notice Make the subgraph service contract slash the indexer and reward the fisherman.\n Give the fisherman a reward equal to the fishermanRewardCut 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 @return The amount of tokens rewarded to the fisherman" + }, + "id": 13320, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_slashIndexer", + "nameLocation": "21238:13:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13230, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "21269:8:55", + "nodeType": "VariableDeclaration", + "scope": 13320, + "src": "21261:16:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21261:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13232, + "mutability": "mutable", + "name": "_tokensSlash", + "nameLocation": "21295:12:55", + "nodeType": "VariableDeclaration", + "scope": 13320, + "src": "21287:20:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21287:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13234, + "mutability": "mutable", + "name": "_tokensStakeSnapshot", + "nameLocation": "21325:20:55", + "nodeType": "VariableDeclaration", + "scope": 13320, + "src": "21317:28:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21317:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21251:100:55" + }, + "returnParameters": { + "id": 13238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13320, + "src": "21369:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21369:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21368:9:55" + }, + "scope": 13542, + "src": "21229:1539:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13345, + "nodeType": "Block", + "src": "23012:162:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13327, + "name": "_arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13323, + "src": "23030:11:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 13330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23053:1:55", + "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": 13329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23045:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23045:7:55", + "typeDescriptions": {} + } + }, + "id": 13331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23045:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "23030:25:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13333, + "name": "DisputeManagerInvalidZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15086, + "src": "23057:32:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23057:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13326, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "23022:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23022:70:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13336, + "nodeType": "ExpressionStatement", + "src": "23022:70:55" + }, + { + "expression": { + "id": 13339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13337, + "name": "arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13556, + "src": "23102:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13338, + "name": "_arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13323, + "src": "23115:11:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "23102:24:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13340, + "nodeType": "ExpressionStatement", + "src": "23102:24:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13342, + "name": "_arbitrator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13323, + "src": "23155:11:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13341, + "name": "ArbitratorSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14948, + "src": "23141:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 13343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23141:26:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13344, + "nodeType": "EmitStatement", + "src": "23136:31:55" + } + ] + }, + "documentation": { + "id": 13321, + "nodeType": "StructuredDocumentation", + "src": "22774:180:55", + "text": " @notice Set the arbitrator address.\n @dev Update the arbitrator to `_arbitrator`\n @param _arbitrator The address of the arbitration contract or party" + }, + "id": 13346, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setArbitrator", + "nameLocation": "22968:14:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13323, + "mutability": "mutable", + "name": "_arbitrator", + "nameLocation": "22991:11:55", + "nodeType": "VariableDeclaration", + "scope": 13346, + "src": "22983:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22983:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "22982:21:55" + }, + "returnParameters": { + "id": 13325, + "nodeType": "ParameterList", + "parameters": [], + "src": "23012:0:55" + }, + "scope": 13542, + "src": "22959:215:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13368, + "nodeType": "Block", + "src": "23417:167:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 13355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13353, + "name": "_disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "23435:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 13354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23453:1:55", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "23435:19:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13356, + "name": "DisputeManagerDisputePeriodZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15089, + "src": "23456:31:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23456:33:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13352, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "23427:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23427:63:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13359, + "nodeType": "ExpressionStatement", + "src": "23427:63:55" + }, + { + "expression": { + "id": 13362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13360, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13559, + "src": "23500:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13361, + "name": "_disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "23516:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "23500:30:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 13363, + "nodeType": "ExpressionStatement", + "src": "23500:30:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13365, + "name": "_disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "23562:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 13364, + "name": "DisputePeriodSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14953, + "src": "23545:16:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 13366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23545:32:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13367, + "nodeType": "EmitStatement", + "src": "23540:37:55" + } + ] + }, + "documentation": { + "id": 13347, + "nodeType": "StructuredDocumentation", + "src": "23180:174:55", + "text": " @notice Set the dispute period.\n @dev Update the dispute period to `_disputePeriod` in seconds\n @param _disputePeriod Dispute period in seconds" + }, + "id": 13369, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setDisputePeriod", + "nameLocation": "23368:17:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13349, + "mutability": "mutable", + "name": "_disputePeriod", + "nameLocation": "23393:14:55", + "nodeType": "VariableDeclaration", + "scope": 13369, + "src": "23386:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 13348, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "23386:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "23385:23:55" + }, + "returnParameters": { + "id": 13351, + "nodeType": "ParameterList", + "parameters": [], + "src": "23417:0:55" + }, + "scope": 13542, + "src": "23359:225:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13392, + "nodeType": "Block", + "src": "23875:209:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13376, + "name": "_disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13372, + "src": "23893:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13377, + "name": "MIN_DISPUTE_DEPOSIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11905, + "src": "23912:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23893:38:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13380, + "name": "_disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13372, + "src": "23969:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13379, + "name": "DisputeManagerInvalidDisputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15102, + "src": "23933:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 13381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23933:52:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "23885:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23885:101:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13383, + "nodeType": "ExpressionStatement", + "src": "23885:101:55" + }, + { + "expression": { + "id": 13386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13384, + "name": "disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13562, + "src": "23996:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13385, + "name": "_disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13372, + "src": "24013:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23996:32:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13387, + "nodeType": "ExpressionStatement", + "src": "23996:32:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13389, + "name": "_disputeDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13372, + "src": "24061:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13388, + "name": "DisputeDepositSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14958, + "src": "24043:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 13390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24043:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13391, + "nodeType": "EmitStatement", + "src": "24038:39:55" + } + ] + }, + "documentation": { + "id": 13370, + "nodeType": "StructuredDocumentation", + "src": "23590:219:55", + "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" + }, + "id": 13393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setDisputeDeposit", + "nameLocation": "23823:18:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13372, + "mutability": "mutable", + "name": "_disputeDeposit", + "nameLocation": "23850:15:55", + "nodeType": "VariableDeclaration", + "scope": 13393, + "src": "23842:23:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23842:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23841:25:55" + }, + "returnParameters": { + "id": 13374, + "nodeType": "ParameterList", + "parameters": [], + "src": "23875:0:55" + }, + "scope": 13542, + "src": "23814:270:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13416, + "nodeType": "Block", + "src": "24380:273:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13400, + "name": "_fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13396, + "src": "24411:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 13401, + "name": "MAX_FISHERMAN_REWARD_CUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11901, + "src": "24434:24:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "24411:47:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13404, + "name": "_fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13396, + "src": "24509:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13403, + "name": "DisputeManagerInvalidFishermanReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15107, + "src": "24472:36:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$_t_error_$", + "typeString": "function (uint32) pure returns (error)" + } + }, + "id": 13405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24472:57:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13399, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "24390:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24390:149:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13407, + "nodeType": "ExpressionStatement", + "src": "24390:149:55" + }, + { + "expression": { + "id": 13410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13408, + "name": "fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13565, + "src": "24549:18:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13409, + "name": "_fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13396, + "src": "24570:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "24549:40:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 13411, + "nodeType": "ExpressionStatement", + "src": "24549:40:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13413, + "name": "_fishermanRewardCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13396, + "src": "24626:19:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13412, + "name": "FishermanRewardCutSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14968, + "src": "24604:21:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 13414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24604:42:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13415, + "nodeType": "EmitStatement", + "src": "24599:47:55" + } + ] + }, + "documentation": { + "id": 13394, + "nodeType": "StructuredDocumentation", + "src": "24090:217:55", + "text": " @notice Set the reward cut that the fisherman gets when slashing occurs.\n @dev Update the reward cut to `_fishermanRewardCut`\n @param _fishermanRewardCut The fisherman reward cut, in PPM" + }, + "id": 13417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setFishermanRewardCut", + "nameLocation": "24321:22:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13396, + "mutability": "mutable", + "name": "_fishermanRewardCut", + "nameLocation": "24351:19:55", + "nodeType": "VariableDeclaration", + "scope": 13417, + "src": "24344:26:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13395, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "24344:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "24343:28:55" + }, + "returnParameters": { + "id": 13398, + "nodeType": "ParameterList", + "parameters": [], + "src": "24380:0:55" + }, + "scope": 13542, + "src": "24312:341:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13441, + "nodeType": "Block", + "src": "24865:205:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 13426, + "name": "_maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13420, + "src": "24902:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 13424, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "24883:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PPMMath_$4539_$", + "typeString": "type(library PPMMath)" + } + }, + "id": 13425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24891:10:55", + "memberName": "isValidPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4538, + "src": "24883:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 13427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24883:35:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13429, + "name": "_maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13420, + "src": "24956:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13428, + "name": "DisputeManagerInvalidMaxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15112, + "src": "24920:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$_t_error_$", + "typeString": "function (uint32) pure returns (error)" + } + }, + "id": 13430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24920:52:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13423, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "24875:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24875:98:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13432, + "nodeType": "ExpressionStatement", + "src": "24875:98:55" + }, + { + "expression": { + "id": 13435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13433, + "name": "maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13568, + "src": "24983:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13434, + "name": "_maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13420, + "src": "25000:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "24983:32:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 13436, + "nodeType": "ExpressionStatement", + "src": "24983:32:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13438, + "name": "maxSlashingCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13568, + "src": "25048:14:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13437, + "name": "MaxSlashingCutSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14963, + "src": "25030:17:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 13439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25030:33:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13440, + "nodeType": "EmitStatement", + "src": "25025:38:55" + } + ] + }, + "documentation": { + "id": 13418, + "nodeType": "StructuredDocumentation", + "src": "24659:141:55", + "text": " @notice Set the maximum cut that can be used for slashing indexers.\n @param _maxSlashingCut Max slashing cut, in PPM" + }, + "id": 13442, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setMaxSlashingCut", + "nameLocation": "24814:18:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13420, + "mutability": "mutable", + "name": "_maxSlashingCut", + "nameLocation": "24840:15:55", + "nodeType": "VariableDeclaration", + "scope": 13442, + "src": "24833:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13419, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "24833:6:55", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "24832:24:55" + }, + "returnParameters": { + "id": 13422, + "nodeType": "ParameterList", + "parameters": [], + "src": "24865:0:55" + }, + "scope": 13542, + "src": "24805:265:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13469, + "nodeType": "Block", + "src": "25342:205:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13449, + "name": "_subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13445, + "src": "25360:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 13452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25388:1:55", + "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": 13451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25380:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25380:7:55", + "typeDescriptions": {} + } + }, + "id": 13453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25380:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "25360:30:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13455, + "name": "DisputeManagerInvalidZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15086, + "src": "25392:32:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25392:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13448, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "25352:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25352:75:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13458, + "nodeType": "ExpressionStatement", + "src": "25352:75:55" + }, + { + "expression": { + "id": 13463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13459, + "name": "subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13553, + "src": "25437:15:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13461, + "name": "_subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13445, + "src": "25472:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13460, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "25455:16:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISubgraphService_$15634_$", + "typeString": "type(contract ISubgraphService)" + } + }, + "id": 13462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25455:34:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "src": "25437:52:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 13464, + "nodeType": "ExpressionStatement", + "src": "25437:52:55" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13466, + "name": "_subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13445, + "src": "25523:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13465, + "name": "SubgraphServiceSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14973, + "src": "25504:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 13467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25504:36:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13468, + "nodeType": "EmitStatement", + "src": "25499:41:55" + } + ] + }, + "documentation": { + "id": 13443, + "nodeType": "StructuredDocumentation", + "src": "25076:198:55", + "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" + }, + "id": 13470, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setSubgraphService", + "nameLocation": "25288:19:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13445, + "mutability": "mutable", + "name": "_subgraphService", + "nameLocation": "25316:16:55", + "nodeType": "VariableDeclaration", + "scope": 13470, + "src": "25308:24:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25308:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "25307:26:55" + }, + "returnParameters": { + "id": 13447, + "nodeType": "ParameterList", + "parameters": [], + "src": "25342:0:55" + }, + "scope": 13542, + "src": "25279:268:55", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13493, + "nodeType": "Block", + "src": "25798:135:55", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13480, + "name": "subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13553, + "src": "25824:15:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 13479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25816:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25816:7:55", + "typeDescriptions": {} + } + }, + "id": 13481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25816:24:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 13484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25852:1:55", + "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": 13483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25844:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25844:7:55", + "typeDescriptions": {} + } + }, + "id": 13485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25844:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "25816:38:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13487, + "name": "DisputeManagerSubgraphServiceNotSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15180, + "src": "25856:35:55", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25856:37:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13477, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "25808:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25808:86:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13490, + "nodeType": "ExpressionStatement", + "src": "25808:86:55" + }, + { + "expression": { + "id": 13491, + "name": "subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13553, + "src": "25911:15:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "functionReturnParameters": 13476, + "id": 13492, + "nodeType": "Return", + "src": "25904:22:55" + } + ] + }, + "documentation": { + "id": 13471, + "nodeType": "StructuredDocumentation", + "src": "25553:169:55", + "text": " @notice Get the address of the subgraph service\n @dev Will revert if the subgraph service is not set\n @return The subgraph service address" + }, + "id": 13494, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getSubgraphService", + "nameLocation": "25736:19:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13472, + "nodeType": "ParameterList", + "parameters": [], + "src": "25755:2:55" + }, + "returnParameters": { + "id": 13476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13475, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "25780:16:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 13474, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13473, + "name": "ISubgraphService", + "nameLocations": [ + "25780:16:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "25780:16:55" + }, + "referencedDeclaration": 15634, + "src": "25780:16:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "internal" + } + ], + "src": "25779:18:55" + }, + "scope": 13542, + "src": "25727:206:55", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13511, + "nodeType": "Block", + "src": "26206:63:55", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 13509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 13503, + "name": "_dispute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13498, + "src": "26223:8:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute storage pointer" + } + }, + "id": 13504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26232:16:55", + "memberName": "relatedDisputeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14930, + "src": "26223:25:55", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 13507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26260:1:55", + "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": 13506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26252:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 13505, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "26252:7:55", + "typeDescriptions": {} + } + }, + "id": 13508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26252:10:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "26223:39:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 13502, + "id": 13510, + "nodeType": "Return", + "src": "26216:46:55" + } + ] + }, + "documentation": { + "id": 13495, + "nodeType": "StructuredDocumentation", + "src": "25939:178:55", + "text": " @notice Returns whether the dispute is for a conflicting attestation or not.\n @param _dispute Dispute\n @return True conflicting attestation dispute" + }, + "id": 13512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isDisputeInConflict", + "nameLocation": "26131:20:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13498, + "mutability": "mutable", + "name": "_dispute", + "nameLocation": "26168:8:55", + "nodeType": "VariableDeclaration", + "scope": 13512, + "src": "26152:24:55", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + }, + "typeName": { + "id": 13497, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13496, + "name": "Dispute", + "nameLocations": [ + "26152:7:55" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "26152:7:55" + }, + "referencedDeclaration": 14943, + "src": "26152:7:55", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + }, + "visibility": "internal" + } + ], + "src": "26151:26:55" + }, + "returnParameters": { + "id": 13502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13501, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13512, + "src": "26200:4:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13500, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "26200:4:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "26199:6:55" + }, + "scope": 13542, + "src": "26122:147:55", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 13540, + "nodeType": "Block", + "src": "27164:173:55", + "statements": [ + { + "assignments": [ + 13523 + ], + "declarations": [ + { + "constant": false, + "id": 13523, + "mutability": "mutable", + "name": "delegatorsStake", + "nameLocation": "27182:15:55", + "nodeType": "VariableDeclaration", + "scope": 13540, + "src": "27174:23:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27174:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13535, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 13527, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13515, + "src": "27234:8:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13530, + "name": "_getSubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13494, + "src": "27252:19:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ISubgraphService_$15634_$", + "typeString": "function () view returns (contract ISubgraphService)" + } + }, + "id": 13531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27252:21:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + ], + "id": 13529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27244:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27244:7:55", + "typeDescriptions": {} + } + }, + "id": 13532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27244:30:55", + "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": 13524, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "27200:13:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 13525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27200:15:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 13526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "27216:17:55", + "memberName": "getDelegationPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2913, + "src": "27200:33:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_DelegationPool_$3992_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.DelegationPool memory)" + } + }, + "id": 13533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27200:75:55", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_memory_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool memory" + } + }, + "id": 13534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "27276:6:55", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 3983, + "src": "27200:82:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "27174:108:55" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13536, + "name": "_indexerStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13517, + "src": "27299:13:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13537, + "name": "delegatorsStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13523, + "src": "27315:15:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27299:31:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13521, + "id": 13539, + "nodeType": "Return", + "src": "27292:38:55" + } + ] + }, + "documentation": { + "id": 13513, + "nodeType": "StructuredDocumentation", + "src": "26275:785:55", + "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 Note that the snapshot can be inflated by delegators front-running the dispute creation with a delegation\n to the indexer. Given the snapshot is a cap, the dispute outcome is uncertain and considering the cost of capital\n and slashing risk, this is not a concern.\n @param _indexer Indexer address\n @param _indexerStake Indexer's stake\n @return Total stake snapshot" + }, + "id": 13541, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getStakeSnapshot", + "nameLocation": "27074:17:55", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13515, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "27100:8:55", + "nodeType": "VariableDeclaration", + "scope": 13541, + "src": "27092:16:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27092:7:55", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13517, + "mutability": "mutable", + "name": "_indexerStake", + "nameLocation": "27118:13:55", + "nodeType": "VariableDeclaration", + "scope": 13541, + "src": "27110:21:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27110:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "27091:41:55" + }, + "returnParameters": { + "id": 13521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13520, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13541, + "src": "27155:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27155:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "27154:9:55" + }, + "scope": 13542, + "src": "27065:272:55", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 13543, + "src": "2323:25016:55", + "usedErrors": [ + 4464, + 4655, + 4959, + 4964, + 5140, + 5143, + 7894, + 7899, + 7904, + 15080, + 15083, + 15086, + 15089, + 15092, + 15097, + 15102, + 15107, + 15112, + 15119, + 15125, + 15130, + 15133, + 15138, + 15143, + 15150, + 15155, + 15162, + 15177, + 15180, + 16121 + ], + "usedEvents": [ + 4650, + 4970, + 5148, + 14948, + 14953, + 14958, + 14963, + 14968, + 14973, + 14992, + 15011, + 15026, + 15037, + 15048, + 15059, + 15066, + 15077 + ] + } + ], + "src": "45:27295:55" + }, + "id": 55 + }, + "contracts/DisputeManagerStorage.sol": { + "ast": { + "absolutePath": "contracts/DisputeManagerStorage.sol", + "exportedSymbols": { + "DisputeManagerV1Storage": [ + 13575 + ], + "IDisputeManager": [ + 15373 + ], + "ISubgraphService": [ + 15634 + ] + }, + "id": 13576, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13544, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:56" + }, + { + "absolutePath": "contracts/interfaces/IDisputeManager.sol", + "file": "./interfaces/IDisputeManager.sol", + "id": 13546, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13576, + "sourceUnit": 15374, + "src": "71:67:56", + "symbolAliases": [ + { + "foreign": { + "id": 13545, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "80:15:56", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "file": "./interfaces/ISubgraphService.sol", + "id": 13548, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 13576, + "sourceUnit": 15635, + "src": "139:69:56", + "symbolAliases": [ + { + "foreign": { + "id": 13547, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "148:16:56", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "DisputeManagerV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 13549, + "nodeType": "StructuredDocumentation", + "src": "210:270:56", + "text": " @title DisputeManagerStorage\n @notice This contract holds all the storage variables for the Dispute Manager 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": 13575, + "linearizedBaseContracts": [ + 13575 + ], + "name": "DisputeManagerV1Storage", + "nameLocation": "499:23:56", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 13550, + "nodeType": "StructuredDocumentation", + "src": "529:49:56", + "text": "@notice The Subgraph Service contract address" + }, + "functionSelector": "26058249", + "id": 13553, + "mutability": "mutable", + "name": "subgraphService", + "nameLocation": "607:15:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "583:39:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 13552, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13551, + "name": "ISubgraphService", + "nameLocations": [ + "583:16:56" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "583:16:56" + }, + "referencedDeclaration": 15634, + "src": "583:16:56", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13554, + "nodeType": "StructuredDocumentation", + "src": "629:71:56", + "text": "@notice The arbitrator is solely in control of arbitrating disputes" + }, + "functionSelector": "6cc6cde1", + "id": 13556, + "mutability": "mutable", + "name": "arbitrator", + "nameLocation": "720:10:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "705:25:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "705:7:56", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13557, + "nodeType": "StructuredDocumentation", + "src": "737:37:56", + "text": "@notice dispute period in seconds" + }, + "functionSelector": "5bf31d4d", + "id": 13559, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "793:13:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "779:27:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 13558, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "779:6:56", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13560, + "nodeType": "StructuredDocumentation", + "src": "813:48:56", + "text": "@notice Deposit required to create a Dispute" + }, + "functionSelector": "29e03ff1", + "id": 13562, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "881:14:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "866:29:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13563, + "nodeType": "StructuredDocumentation", + "src": "902:113:56", + "text": "@notice Percentage of indexer slashed funds to assign as a reward to fisherman in successful dispute. In PPM." + }, + "functionSelector": "902a4938", + "id": 13565, + "mutability": "mutable", + "name": "fishermanRewardCut", + "nameLocation": "1034:18:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "1020:32:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13564, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1020:6:56", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13566, + "nodeType": "StructuredDocumentation", + "src": "1059:89:56", + "text": "@notice Maximum percentage of indexer stake that can be slashed on a dispute. In PPM." + }, + "functionSelector": "0533e1ba", + "id": 13568, + "mutability": "mutable", + "name": "maxSlashingCut", + "nameLocation": "1167:14:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "1153:28:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13567, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1153:6:56", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 13569, + "nodeType": "StructuredDocumentation", + "src": "1188:36:56", + "text": "@notice List of disputes created" + }, + "functionSelector": "11be1997", + "id": 13574, + "mutability": "mutable", + "name": "disputes", + "nameLocation": "1298:8:56", + "nodeType": "VariableDeclaration", + "scope": 13575, + "src": "1229:77:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute)" + }, + "typeName": { + "id": 13573, + "keyName": "disputeId", + "keyNameLocation": "1245:9:56", + "keyType": { + "id": 13570, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1237:7:56", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1229:61:56", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$14943_storage_$", + "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute)" + }, + "valueName": "dispute", + "valueNameLocation": "1282:7:56", + "valueType": { + "id": 13572, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13571, + "name": "IDisputeManager.Dispute", + "nameLocations": [ + "1258:15:56", + "1274:7:56" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14943, + "src": "1258:23:56" + }, + "referencedDeclaration": 14943, + "src": "1258:23:56", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Dispute_$14943_storage_ptr", + "typeString": "struct IDisputeManager.Dispute" + } + } + }, + "visibility": "public" + } + ], + "scope": 13576, + "src": "481:828:56", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "46:1264:56" + }, + "id": 56 + }, + "contracts/SubgraphService.sol": { + "ast": { + "absolutePath": "contracts/SubgraphService.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "AllocationManager": [ + 17363 + ], + "DataService": [ + 936 + ], + "DataServiceFees": [ + 1278 + ], + "DataServicePausableUpgradeable": [ + 1425 + ], + "Directory": [ + 17720 + ], + "IDataService": [ + 1557 + ], + "IGraphPayments": [ + 2489 + ], + "IGraphTallyCollector": [ + 2605 + ], + "IGraphToken": [ + 758 + ], + "IRewardsIssuer": [ + 561 + ], + "ISubgraphService": [ + 15634 + ], + "Initializable": [ + 5391 + ], + "LegacyAllocation": [ + 16462 + ], + "MulticallUpgradeable": [ + 5540 + ], + "OwnableUpgradeable": [ + 5123 + ], + "PPMMath": [ + 4539 + ], + "SubgraphService": [ + 14879 + ], + "SubgraphServiceV1Storage": [ + 14902 + ], + "TokenUtils": [ + 840 + ] + }, + "id": 14880, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13577, + "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": 13579, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 2490, + "src": "70:96:57", + "symbolAliases": [ + { + "foreign": { + "id": 13578, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "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": 13581, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 759, + "src": "167:87:57", + "symbolAliases": [ + { + "foreign": { + "id": 13580, + "name": "IGraphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "176:11:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", + "id": 13583, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 2606, + "src": "255:108:57", + "symbolAliases": [ + { + "foreign": { + "id": 13582, + "name": "IGraphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2605, + "src": "264:20:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", + "file": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", + "id": 13585, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 562, + "src": "364:95:57", + "symbolAliases": [ + { + "foreign": { + "id": 13584, + "name": "IRewardsIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "373:14:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "file": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", + "id": 13587, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 1558, + "src": "460:105:57", + "symbolAliases": [ + { + "foreign": { + "id": 13586, + "name": "IDataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "469:12:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "file": "./interfaces/ISubgraphService.sol", + "id": 13589, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 15635, + "src": "566:69:57", + "symbolAliases": [ + { + "foreign": { + "id": 13588, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "575:16:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "id": 13591, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 5124, + "src": "637:103:57", + "symbolAliases": [ + { + "foreign": { + "id": 13590, + "name": "OwnableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5123, + "src": "646:18:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "id": 13593, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 5541, + "src": "741:106:57", + "symbolAliases": [ + { + "foreign": { + "id": 13592, + "name": "MulticallUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5540, + "src": "750:20:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 13595, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 5392, + "src": "848:98:57", + "symbolAliases": [ + { + "foreign": { + "id": 13594, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "857:13:57", + "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": 13597, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 1426, + "src": "947:141:57", + "symbolAliases": [ + { + "foreign": { + "id": 13596, + "name": "DataServicePausableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "956:30:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", + "file": "@graphprotocol/horizon/contracts/data-service/DataService.sol", + "id": 13599, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 937, + "src": "1089:92:57", + "symbolAliases": [ + { + "foreign": { + "id": 13598, + "name": "DataService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "1098:11:57", + "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": 13601, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 1279, + "src": "1182:111:57", + "symbolAliases": [ + { + "foreign": { + "id": 13600, + "name": "DataServiceFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "1191:15:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/utilities/Directory.sol", + "file": "./utilities/Directory.sol", + "id": 13603, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 17721, + "src": "1294:54:57", + "symbolAliases": [ + { + "foreign": { + "id": 13602, + "name": "Directory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17720, + "src": "1303:9:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/utilities/AllocationManager.sol", + "file": "./utilities/AllocationManager.sol", + "id": 13605, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 17364, + "src": "1349:70:57", + "symbolAliases": [ + { + "foreign": { + "id": 13604, + "name": "AllocationManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17363, + "src": "1358:17:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SubgraphServiceStorage.sol", + "file": "./SubgraphServiceStorage.sol", + "id": 13607, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 14903, + "src": "1420:72:57", + "symbolAliases": [ + { + "foreign": { + "id": 13606, + "name": "SubgraphServiceV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14902, + "src": "1429:24:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "id": 13609, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 841, + "src": "1494:85:57", + "symbolAliases": [ + { + "foreign": { + "id": 13608, + "name": "TokenUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "1503:10:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "id": 13611, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 4540, + "src": "1580:81:57", + "symbolAliases": [ + { + "foreign": { + "id": 13610, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "1589:7:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Allocation.sol", + "file": "./libraries/Allocation.sol", + "id": 13613, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 16034, + "src": "1662:56:57", + "symbolAliases": [ + { + "foreign": { + "id": 13612, + "name": "Allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16033, + "src": "1671:10:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/LegacyAllocation.sol", + "file": "./libraries/LegacyAllocation.sol", + "id": 13615, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14880, + "sourceUnit": 16463, + "src": "1719:68:57", + "symbolAliases": [ + { + "foreign": { + "id": 13614, + "name": "LegacyAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16462, + "src": "1728:16:57", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 13617, + "name": "Initializable", + "nameLocations": [ + "2004:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "2004:13:57" + }, + "id": 13618, + "nodeType": "InheritanceSpecifier", + "src": "2004:13:57" + }, + { + "baseName": { + "id": 13619, + "name": "OwnableUpgradeable", + "nameLocations": [ + "2023:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5123, + "src": "2023:18:57" + }, + "id": 13620, + "nodeType": "InheritanceSpecifier", + "src": "2023:18:57" + }, + { + "baseName": { + "id": 13621, + "name": "MulticallUpgradeable", + "nameLocations": [ + "2047:20:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5540, + "src": "2047:20:57" + }, + "id": 13622, + "nodeType": "InheritanceSpecifier", + "src": "2047:20:57" + }, + { + "baseName": { + "id": 13623, + "name": "DataService", + "nameLocations": [ + "2073:11:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 936, + "src": "2073:11:57" + }, + "id": 13624, + "nodeType": "InheritanceSpecifier", + "src": "2073:11:57" + }, + { + "baseName": { + "id": 13625, + "name": "DataServicePausableUpgradeable", + "nameLocations": [ + "2090:30:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1425, + "src": "2090:30:57" + }, + "id": 13626, + "nodeType": "InheritanceSpecifier", + "src": "2090:30:57" + }, + { + "baseName": { + "id": 13627, + "name": "DataServiceFees", + "nameLocations": [ + "2126:15:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1278, + "src": "2126:15:57" + }, + "id": 13628, + "nodeType": "InheritanceSpecifier", + "src": "2126:15:57" + }, + { + "baseName": { + "id": 13629, + "name": "Directory", + "nameLocations": [ + "2147:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17720, + "src": "2147:9:57" + }, + "id": 13630, + "nodeType": "InheritanceSpecifier", + "src": "2147:9:57" + }, + { + "baseName": { + "id": 13631, + "name": "AllocationManager", + "nameLocations": [ + "2162:17:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17363, + "src": "2162:17:57" + }, + "id": 13632, + "nodeType": "InheritanceSpecifier", + "src": "2162:17:57" + }, + { + "baseName": { + "id": 13633, + "name": "SubgraphServiceV1Storage", + "nameLocations": [ + "2185:24:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14902, + "src": "2185:24:57" + }, + "id": 13634, + "nodeType": "InheritanceSpecifier", + "src": "2185:24:57" + }, + { + "baseName": { + "id": 13635, + "name": "IRewardsIssuer", + "nameLocations": [ + "2215:14:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 561, + "src": "2215:14:57" + }, + "id": 13636, + "nodeType": "InheritanceSpecifier", + "src": "2215:14:57" + }, + { + "baseName": { + "id": 13637, + "name": "ISubgraphService", + "nameLocations": [ + "2235:16:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "2235:16:57" + }, + "id": 13638, + "nodeType": "InheritanceSpecifier", + "src": "2235:16:57" + } + ], + "canonicalName": "SubgraphService", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 13616, + "nodeType": "StructuredDocumentation", + "src": "1789:182:57", + "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": 14879, + "internalFunctionIDs": { + "1199": 1, + "1211": 2, + "1254": 3 + }, + "linearizedBaseContracts": [ + 14879, + 15634, + 561, + 14902, + 17363, + 17401, + 17720, + 1278, + 1620, + 1308, + 1425, + 1655, + 936, + 1557, + 945, + 2395, + 2425, + 4928, + 6044, + 6069, + 5700, + 5540, + 5123, + 5437, + 5391 + ], + "name": "SubgraphService", + "nameLocation": "1981:15:57", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 13641, + "libraryName": { + "id": 13639, + "name": "PPMMath", + "nameLocations": [ + "2264:7:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4539, + "src": "2264:7:57" + }, + "nodeType": "UsingForDirective", + "src": "2258:26:57", + "typeName": { + "id": 13640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2276:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "global": false, + "id": 13647, + "libraryName": { + "id": 13642, + "name": "Allocation", + "nameLocations": [ + "2295:10:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16033, + "src": "2295:10:57" + }, + "nodeType": "UsingForDirective", + "src": "2289:58:57", + "typeName": { + "id": 13646, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 13643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2318:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2310:36:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 13645, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13644, + "name": "Allocation.State", + "nameLocations": [ + "2329:10:57", + "2340:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "2329:16:57" + }, + "referencedDeclaration": 15663, + "src": "2329:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + } + }, + { + "global": false, + "id": 13651, + "libraryName": { + "id": 13648, + "name": "Allocation", + "nameLocations": [ + "2358:10:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16033, + "src": "2358:10:57" + }, + "nodeType": "UsingForDirective", + "src": "2352:38:57", + "typeName": { + "id": 13650, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13649, + "name": "Allocation.State", + "nameLocations": [ + "2373:10:57", + "2384:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "2373:16:57" + }, + "referencedDeclaration": 15663, + "src": "2373:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + { + "global": false, + "id": 13655, + "libraryName": { + "id": 13652, + "name": "TokenUtils", + "nameLocations": [ + "2401:10:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 840, + "src": "2401:10:57" + }, + "nodeType": "UsingForDirective", + "src": "2395:33:57", + "typeName": { + "id": 13654, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13653, + "name": "IGraphToken", + "nameLocations": [ + "2416:11:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "2416:11:57" + }, + "referencedDeclaration": 758, + "src": "2416:11:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + } + }, + { + "body": { + "id": 13673, + "nodeType": "Block", + "src": "2599:118:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 13661, + "name": "indexers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14890, + "src": "2617:8:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$15394_storage_$", + "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" + } + }, + "id": 13663, + "indexExpression": { + "id": 13662, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13658, + "src": "2626:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2617:17:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_storage", + "typeString": "struct ISubgraphService.Indexer storage ref" + } + }, + "id": 13664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2635:12:57", + "memberName": "registeredAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15389, + "src": "2617:30:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 13665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2651:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2617:35:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13668, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13658, + "src": "2690:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13667, + "name": "SubgraphServiceIndexerNotRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15445, + "src": "2654:35:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 13669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2654:44:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13660, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2609:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:90:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13671, + "nodeType": "ExpressionStatement", + "src": "2609:90:57" + }, + { + "id": 13672, + "nodeType": "PlaceholderStatement", + "src": "2709:1:57" + } + ] + }, + "documentation": { + "id": 13656, + "nodeType": "StructuredDocumentation", + "src": "2434:112:57", + "text": " @notice Checks that an indexer is registered\n @param indexer The address of the indexer" + }, + "id": 13674, + "name": "onlyRegisteredIndexer", + "nameLocation": "2560:21:57", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 13659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13658, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "2590:7:57", + "nodeType": "VariableDeclaration", + "scope": 13674, + "src": "2582:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2582:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2581:17:57" + }, + "src": "2551:166:57", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13701, + "nodeType": "Block", + "src": "3421:39:57", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13698, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "3431:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3431:22:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13700, + "nodeType": "ExpressionStatement", + "src": "3431:22:57" + } + ] + }, + "documentation": { + "id": 13675, + "nodeType": "StructuredDocumentation", + "src": "2723:446:57", + "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 graphTallyCollector The address of the GraphTallyCollector contract\n @param curation The address of the Curation contract" + }, + "id": 13702, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 13686, + "name": "graphController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13677, + "src": "3332:15:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13687, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 13685, + "name": "DataService", + "nameLocations": [ + "3320:11:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 936, + "src": "3320:11:57" + }, + "nodeType": "ModifierInvocation", + "src": "3320:28:57" + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 13691, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3367:4:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + ], + "id": 13690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3359:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3359:7:57", + "typeDescriptions": {} + } + }, + "id": 13692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3359:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13693, + "name": "disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13679, + "src": "3374:14:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13694, + "name": "graphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13681, + "src": "3390:19:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13695, + "name": "curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13683, + "src": "3411:8:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13696, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 13688, + "name": "Directory", + "nameLocations": [ + "3349:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17720, + "src": "3349:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "3349:71:57" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13677, + "mutability": "mutable", + "name": "graphController", + "nameLocation": "3203:15:57", + "nodeType": "VariableDeclaration", + "scope": 13702, + "src": "3195:23:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3195:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13679, + "mutability": "mutable", + "name": "disputeManager", + "nameLocation": "3236:14:57", + "nodeType": "VariableDeclaration", + "scope": 13702, + "src": "3228:22:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3228:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13681, + "mutability": "mutable", + "name": "graphTallyCollector", + "nameLocation": "3268:19:57", + "nodeType": "VariableDeclaration", + "scope": 13702, + "src": "3260:27:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3260:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13683, + "mutability": "mutable", + "name": "curation", + "nameLocation": "3305:8:57", + "nodeType": "VariableDeclaration", + "scope": 13702, + "src": "3297:16:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3297:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3185:134:57" + }, + "returnParameters": { + "id": 13697, + "nodeType": "ParameterList", + "parameters": [], + "src": "3421:0:57" + }, + "scope": 14879, + "src": "3174:286:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 15509 + ], + "body": { + "id": 13751, + "nodeType": "Block", + "src": "3687:374:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 13717, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13705, + "src": "3712:5:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13716, + "name": "__Ownable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4983, + "src": "3697:14:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 13718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3697:21:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13719, + "nodeType": "ExpressionStatement", + "src": "3697:21:57" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13720, + "name": "__Multicall_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5456, + "src": "3728:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3728:18:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13722, + "nodeType": "ExpressionStatement", + "src": "3728:18:57" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13723, + "name": "__DataService_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "3756:18:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3756:20:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13725, + "nodeType": "ExpressionStatement", + "src": "3756:20:57" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13726, + "name": "__DataServicePausable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "3786:26:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3786:28:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13728, + "nodeType": "ExpressionStatement", + "src": "3786:28:57" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "537562677261706853657276696365", + "id": 13730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3849:17:57", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_de968410163c85e985eeb4fbd7957aae2a5a7499745e7a8f1fd22402a4e5c8b0", + "typeString": "literal_string \"SubgraphService\"" + }, + "value": "SubgraphService" + }, + { + "hexValue": "312e30", + "id": 13731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3868:5:57", + "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": 13729, + "name": "__AllocationManager_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16649, + "src": "3824:24:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 13732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3824:50:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13733, + "nodeType": "ExpressionStatement", + "src": "3824:50:57" + }, + { + "expression": { + "arguments": [ + { + "id": 13735, + "name": "minimumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13707, + "src": "3910:22:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 13738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3939:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3939:7:57", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 13736, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3934:4:57", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 13739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3934:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 13740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3948:3:57", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3934:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13734, + "name": "_setProvisionTokensRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2089, + "src": "3885:24:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 13741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3885:67:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13742, + "nodeType": "ExpressionStatement", + "src": "3885:67:57" + }, + { + "expression": { + "arguments": [ + { + "id": 13744, + "name": "maximumDelegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13709, + "src": "3982:22:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13743, + "name": "_setDelegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2057, + "src": "3962:19:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 13745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3962:43:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13746, + "nodeType": "ExpressionStatement", + "src": "3962:43:57" + }, + { + "expression": { + "arguments": [ + { + "id": 13748, + "name": "stakeToFeesRatio_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13711, + "src": "4036:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13747, + "name": "_setStakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "4015:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 13749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4015:39:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13750, + "nodeType": "ExpressionStatement", + "src": "4015:39:57" + } + ] + }, + "documentation": { + "id": 13703, + "nodeType": "StructuredDocumentation", + "src": "3466:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "c84a5ef3", + "id": 13752, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 13714, + "kind": "modifierInvocation", + "modifierName": { + "id": 13713, + "name": "initializer", + "nameLocations": [ + "3675:11:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5231, + "src": "3675:11:57" + }, + "nodeType": "ModifierInvocation", + "src": "3675:11:57" + } + ], + "name": "initialize", + "nameLocation": "3512:10:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13705, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3540:5:57", + "nodeType": "VariableDeclaration", + "scope": 13752, + "src": "3532:13:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3532:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13707, + "mutability": "mutable", + "name": "minimumProvisionTokens", + "nameLocation": "3563:22:57", + "nodeType": "VariableDeclaration", + "scope": 13752, + "src": "3555:30:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3555:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13709, + "mutability": "mutable", + "name": "maximumDelegationRatio", + "nameLocation": "3602:22:57", + "nodeType": "VariableDeclaration", + "scope": 13752, + "src": "3595:29:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13708, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3595:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13711, + "mutability": "mutable", + "name": "stakeToFeesRatio_", + "nameLocation": "3642:17:57", + "nodeType": "VariableDeclaration", + "scope": 13752, + "src": "3634:25:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3634:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3522:143:57" + }, + "returnParameters": { + "id": 13715, + "nodeType": "ParameterList", + "parameters": [], + "src": "3687:0:57" + }, + "scope": 14879, + "src": "3503:558:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1481 + ], + "body": { + "id": 13851, + "nodeType": "Block", + "src": "4979:726:57", + "statements": [ + { + "assignments": [ + 13770, + 13772, + 13774 + ], + "declarations": [ + { + "constant": false, + "id": 13770, + "mutability": "mutable", + "name": "url", + "nameLocation": "5004:3:57", + "nodeType": "VariableDeclaration", + "scope": 13851, + "src": "4990:17:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 13769, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4990:6:57", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13772, + "mutability": "mutable", + "name": "geohash", + "nameLocation": "5023:7:57", + "nodeType": "VariableDeclaration", + "scope": 13851, + "src": "5009:21:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 13771, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5009:6:57", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13774, + "mutability": "mutable", + "name": "paymentsDestination_", + "nameLocation": "5040:20:57", + "nodeType": "VariableDeclaration", + "scope": 13851, + "src": "5032:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5032:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 13786, + "initialValue": { + "arguments": [ + { + "id": 13777, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13757, + "src": "5088:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 13779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5107:6:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 13778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5107:6:57", + "typeDescriptions": {} + } + }, + { + "id": 13781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5115:6:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 13780, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5115:6:57", + "typeDescriptions": {} + } + }, + { + "id": 13783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5123:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5123:7:57", + "typeDescriptions": {} + } + } + ], + "id": 13784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5106:25:57", + "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": 13775, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "5064:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 13776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5068:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "5064:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 13785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5064:77:57", + "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": "4989:152:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 13790, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13770, + "src": "5166:3:57", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 13789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5160:5:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 13788, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5160:5:57", + "typeDescriptions": {} + } + }, + "id": 13791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5160:10:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 13792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5171:6:57", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5160:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 13793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5180:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5160:21:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13795, + "name": "SubgraphServiceEmptyUrl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15434, + "src": "5183:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5183:25:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13787, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5152:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5152:57:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13798, + "nodeType": "ExpressionStatement", + "src": "5152:57:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 13802, + "name": "geohash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13772, + "src": "5233:7:57", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 13801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5227:5:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 13800, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5227:5:57", + "typeDescriptions": {} + } + }, + "id": 13803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5227:14:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 13804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5242:6:57", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5227:21:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 13805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5251:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5227:25:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13807, + "name": "SubgraphServiceEmptyGeohash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15437, + "src": "5254:27:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5254:29:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13799, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5219:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5219:65:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13810, + "nodeType": "ExpressionStatement", + "src": "5219:65:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 13812, + "name": "indexers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14890, + "src": "5302:8:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$15394_storage_$", + "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" + } + }, + "id": 13814, + "indexExpression": { + "id": 13813, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "5311:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5302:17:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_storage", + "typeString": "struct ISubgraphService.Indexer storage ref" + } + }, + "id": 13815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5320:12:57", + "memberName": "registeredAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15389, + "src": "5302:30:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 13816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5336:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5302:35:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13818, + "name": "SubgraphServiceIndexerAlreadyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15440, + "src": "5339:39:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 13819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5339:41:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13811, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5294:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5294:87:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13821, + "nodeType": "ExpressionStatement", + "src": "5294:87:57" + }, + { + "expression": { + "id": 13831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 13822, + "name": "indexers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14890, + "src": "5424:8:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$15394_storage_$", + "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" + } + }, + "id": 13824, + "indexExpression": { + "id": 13823, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "5433:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5424:17:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_storage", + "typeString": "struct ISubgraphService.Indexer storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 13826, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5468:5:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5474:9:57", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5468:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13828, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13770, + "src": "5490:3:57", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 13829, + "name": "geohash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13772, + "src": "5504:7:57", + "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": 13825, + "name": "Indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15394, + "src": "5444:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Indexer_$15394_storage_ptr_$", + "typeString": "type(struct ISubgraphService.Indexer storage pointer)" + } + }, + "id": 13830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5454:12:57", + "5485:3:57", + "5495:7:57" + ], + "names": [ + "registeredAt", + "url", + "geoHash" + ], + "nodeType": "FunctionCall", + "src": "5444:70:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_memory_ptr", + "typeString": "struct ISubgraphService.Indexer memory" + } + }, + "src": "5424:90:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_storage", + "typeString": "struct ISubgraphService.Indexer storage ref" + } + }, + "id": 13832, + "nodeType": "ExpressionStatement", + "src": "5424:90:57" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13833, + "name": "paymentsDestination_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13774, + "src": "5528:20:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 13836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5560: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": 13835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5552:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5552:7:57", + "typeDescriptions": {} + } + }, + "id": 13837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5552:10:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5528:34:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13845, + "nodeType": "IfStatement", + "src": "5524:119:57", + "trueBody": { + "id": 13844, + "nodeType": "Block", + "src": "5564:79:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 13840, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "5602:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13841, + "name": "paymentsDestination_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13774, + "src": "5611:20:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13839, + "name": "_setPaymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14832, + "src": "5578:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 13842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5578:54:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13843, + "nodeType": "ExpressionStatement", + "src": "5578:54:57" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 13847, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "5684:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13848, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13757, + "src": "5693:4:57", + "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": 13846, + "name": "ServiceProviderRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1437, + "src": "5658:25:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 13849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5658:40:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13850, + "nodeType": "EmitStatement", + "src": "5653:45:57" + } + ] + }, + "documentation": { + "id": 13753, + "nodeType": "StructuredDocumentation", + "src": "4772:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "24b8fbf6", + "id": 13852, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 13761, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "4928:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13762, + "kind": "modifierInvocation", + "modifierName": { + "id": 13760, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "4901:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "4901:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "4901:35:57" + }, + { + "arguments": [ + { + "id": 13764, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13755, + "src": "4956:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13765, + "kind": "modifierInvocation", + "modifierName": { + "id": 13763, + "name": "onlyValidProvision", + "nameLocations": [ + "4937:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1988, + "src": "4937:18:57" + }, + "nodeType": "ModifierInvocation", + "src": "4937:27:57" + }, + { + "id": 13767, + "kind": "modifierInvocation", + "modifierName": { + "id": 13766, + "name": "whenNotPaused", + "nameLocations": [ + "4965:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "4965:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "4965:13:57" + } + ], + "name": "register", + "nameLocation": "4814:8:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 13759, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4892:8:57" + }, + "parameters": { + "id": 13758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13755, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "4840:7:57", + "nodeType": "VariableDeclaration", + "scope": 13852, + "src": "4832:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4832:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13757, + "mutability": "mutable", + "name": "data", + "nameLocation": "4872:4:57", + "nodeType": "VariableDeclaration", + "scope": 13852, + "src": "4857:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13756, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4857:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4822:60:57" + }, + "returnParameters": { + "id": 13768, + "nodeType": "ParameterList", + "parameters": [], + "src": "4979:0:57" + }, + "scope": 14879, + "src": "4805:900:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1489 + ], + "body": { + "id": 13874, + "nodeType": "Block", + "src": "6490:110:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 13867, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13855, + "src": "6527:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13866, + "name": "_acceptProvisionParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "6500:26:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 13868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6500:35:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13869, + "nodeType": "ExpressionStatement", + "src": "6500:35:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13871, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13855, + "src": "6585:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13870, + "name": "ProvisionPendingParametersAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "6550:34:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 13872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6550:43:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13873, + "nodeType": "EmitStatement", + "src": "6545:48:57" + } + ] + }, + "documentation": { + "id": 13853, + "nodeType": "StructuredDocumentation", + "src": "6292:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "ce0fc0cc", + "id": 13875, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 13861, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13855, + "src": "6467:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13862, + "kind": "modifierInvocation", + "modifierName": { + "id": 13860, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "6440:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "6440:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "6440:35:57" + }, + { + "id": 13864, + "kind": "modifierInvocation", + "modifierName": { + "id": 13863, + "name": "whenNotPaused", + "nameLocations": [ + "6476:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "6476:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "6476:13:57" + } + ], + "name": "acceptProvisionPendingParameters", + "nameLocation": "6334:32:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 13859, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6431:8:57" + }, + "parameters": { + "id": 13858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13855, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "6384:7:57", + "nodeType": "VariableDeclaration", + "scope": 13875, + "src": "6376:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6376:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13857, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 13875, + "src": "6401:14:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13856, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6401:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6366:55:57" + }, + "returnParameters": { + "id": 13865, + "nodeType": "ParameterList", + "parameters": [], + "src": "6490:0:57" + }, + "scope": 14879, + "src": "6325:275:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1497 + ], + "body": { + "id": 13931, + "nodeType": "Block", + "src": "8058:355:57", + "statements": [ + { + "assignments": [ + 13896, + 13898, + 13900, + 13902 + ], + "declarations": [ + { + "constant": false, + "id": 13896, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "8077:20:57", + "nodeType": "VariableDeclaration", + "scope": 13931, + "src": "8069:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 13895, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8069:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13898, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "8107:6:57", + "nodeType": "VariableDeclaration", + "scope": 13931, + "src": "8099:14:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8099:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13900, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "8123:12:57", + "nodeType": "VariableDeclaration", + "scope": 13931, + "src": "8115:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8115:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13902, + "mutability": "mutable", + "name": "allocationProof", + "nameLocation": "8150:15:57", + "nodeType": "VariableDeclaration", + "scope": 13931, + "src": "8137:28:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13901, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8137:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 13916, + "initialValue": { + "arguments": [ + { + "id": 13905, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13880, + "src": "8193:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 13907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8212:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 13906, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8212:7:57", + "typeDescriptions": {} + } + }, + { + "id": 13909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8221:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8221:7:57", + "typeDescriptions": {} + } + }, + { + "id": 13911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8230:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8230:7:57", + "typeDescriptions": {} + } + }, + { + "id": 13913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8239:5:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 13912, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8239:5:57", + "typeDescriptions": {} + } + } + ], + "id": 13914, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8211:34:57", + "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": 13903, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8169:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 13904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8173:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "8169:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 13915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8169:86:57", + "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": "8068:187:57" + }, + { + "expression": { + "arguments": [ + { + "id": 13918, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13878, + "src": "8275:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13919, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13900, + "src": "8284:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13920, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13896, + "src": "8298:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 13921, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13898, + "src": "8320:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13922, + "name": "allocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13902, + "src": "8328:15:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 13923, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "8345:16:57", + "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": 13917, + "name": "_allocate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16781, + "src": "8265:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$", + "typeString": "function (address,address,bytes32,uint256,bytes memory,uint32)" + } + }, + "id": 13924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8265:97:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13925, + "nodeType": "ExpressionStatement", + "src": "8265:97:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13927, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13878, + "src": "8392:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13928, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13880, + "src": "8401:4:57", + "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": 13926, + "name": "ServiceStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1449, + "src": "8377:14:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 13929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8377:29:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13930, + "nodeType": "EmitStatement", + "src": "8372:34:57" + } + ] + }, + "documentation": { + "id": 13876, + "nodeType": "StructuredDocumentation", + "src": "7764:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "dedf6726", + "id": 13932, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 13884, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13878, + "src": "7948:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13885, + "kind": "modifierInvocation", + "modifierName": { + "id": 13883, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "7921:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "7921:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "7921:35:57" + }, + { + "arguments": [ + { + "id": 13887, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13878, + "src": "7984:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13888, + "kind": "modifierInvocation", + "modifierName": { + "id": 13886, + "name": "onlyValidProvision", + "nameLocations": [ + "7965:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1988, + "src": "7965:18:57" + }, + "nodeType": "ModifierInvocation", + "src": "7965:27:57" + }, + { + "arguments": [ + { + "id": 13890, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13878, + "src": "8023:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13891, + "kind": "modifierInvocation", + "modifierName": { + "id": 13889, + "name": "onlyRegisteredIndexer", + "nameLocations": [ + "8001:21:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 13674, + "src": "8001:21:57" + }, + "nodeType": "ModifierInvocation", + "src": "8001:30:57" + }, + { + "id": 13893, + "kind": "modifierInvocation", + "modifierName": { + "id": 13892, + "name": "whenNotPaused", + "nameLocations": [ + "8040:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "8040:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "8040:13:57" + } + ], + "name": "startService", + "nameLocation": "7806:12:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 13882, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7904:8:57" + }, + "parameters": { + "id": 13881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13878, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7836:7:57", + "nodeType": "VariableDeclaration", + "scope": 13932, + "src": "7828:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7828:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13880, + "mutability": "mutable", + "name": "data", + "nameLocation": "7868:4:57", + "nodeType": "VariableDeclaration", + "scope": 13932, + "src": "7853:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13879, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7853:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7818:60:57" + }, + "returnParameters": { + "id": 13894, + "nodeType": "ParameterList", + "parameters": [], + "src": "8058:0:57" + }, + "scope": 14879, + "src": "7797:616:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1505 + ], + "body": { + "id": 13983, + "nodeType": "Block", + "src": "9664:323:57", + "statements": [ + { + "assignments": [ + 13950 + ], + "declarations": [ + { + "constant": false, + "id": 13950, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "9682:12:57", + "nodeType": "VariableDeclaration", + "scope": 13983, + "src": "9674:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9674:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 13958, + "initialValue": { + "arguments": [ + { + "id": 13953, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13937, + "src": "9708:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 13955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9715:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9715:7:57", + "typeDescriptions": {} + } + } + ], + "id": 13956, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9714:9:57", + "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": 13951, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "9697:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 13952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9701:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "9697:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 13957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9697:27:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9674:50:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 13962, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13950, + "src": "9772:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 13960, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "9755:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 13961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9768:3:57", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "9755:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 13963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9755:30:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 13964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9786:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "9755:38:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 13965, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13935, + "src": "9797:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9755:49:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 13968, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13935, + "src": "9857:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13969, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13950, + "src": "9866:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13967, + "name": "SubgraphServiceAllocationNotAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15472, + "src": "9818:38:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 13970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9818:61:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 13959, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9734:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 13971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9734:155:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13972, + "nodeType": "ExpressionStatement", + "src": "9734:155:57" + }, + { + "expression": { + "arguments": [ + { + "id": 13974, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13950, + "src": "9916:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 13975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13973, + "name": "_closeAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17273, + "src": "9899:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 13976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9899:37:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13977, + "nodeType": "ExpressionStatement", + "src": "9899:37:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 13979, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13935, + "src": "9966:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 13980, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13937, + "src": "9975:4:57", + "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": 13978, + "name": "ServiceStopped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1456, + "src": "9951:14:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 13981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9951:29:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13982, + "nodeType": "EmitStatement", + "src": "9946:34:57" + } + ] + }, + "documentation": { + "id": 13933, + "nodeType": "StructuredDocumentation", + "src": "9451:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "8180083b", + "id": 13984, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 13941, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13935, + "src": "9610:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13942, + "kind": "modifierInvocation", + "modifierName": { + "id": 13940, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "9583:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "9583:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "9583:35:57" + }, + { + "arguments": [ + { + "id": 13944, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13935, + "src": "9641:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13945, + "kind": "modifierInvocation", + "modifierName": { + "id": 13943, + "name": "onlyRegisteredIndexer", + "nameLocations": [ + "9619:21:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 13674, + "src": "9619:21:57" + }, + "nodeType": "ModifierInvocation", + "src": "9619:30:57" + }, + { + "id": 13947, + "kind": "modifierInvocation", + "modifierName": { + "id": 13946, + "name": "whenNotPaused", + "nameLocations": [ + "9650:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "9650:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "9650:13:57" + } + ], + "name": "stopService", + "nameLocation": "9493:11:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 13939, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9574:8:57" + }, + "parameters": { + "id": 13938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13935, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "9522:7:57", + "nodeType": "VariableDeclaration", + "scope": 13984, + "src": "9514:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9514:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13937, + "mutability": "mutable", + "name": "data", + "nameLocation": "9554:4:57", + "nodeType": "VariableDeclaration", + "scope": 13984, + "src": "9539:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13936, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9539:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9504:60:57" + }, + "returnParameters": { + "id": 13948, + "nodeType": "ParameterList", + "parameters": [], + "src": "9664:0:57" + }, + "scope": 14879, + "src": "9484:503:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1518 + ], + "body": { + "id": 14054, + "nodeType": "Block", + "src": "11826:536:57", + "statements": [ + { + "assignments": [ + 14010 + ], + "declarations": [ + { + "constant": false, + "id": 14010, + "mutability": "mutable", + "name": "paymentCollected", + "nameLocation": "11844:16:57", + "nodeType": "VariableDeclaration", + "scope": 14054, + "src": "11836:24:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11836:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14012, + "initialValue": { + "hexValue": "30", + "id": 14011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11863:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11836:28:57" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "id": 14017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14013, + "name": "paymentType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13990, + "src": "11879:11:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 14014, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "11894:14:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2489_$", + "typeString": "type(contract IGraphPayments)" + } + }, + "id": 14015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11909:12:57", + "memberName": "PaymentTypes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2433, + "src": "11894:27:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2433_$", + "typeString": "type(enum IGraphPayments.PaymentTypes)" + } + }, + "id": 14016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11922:8:57", + "memberName": "QueryFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2430, + "src": "11894:36:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "src": "11879:51:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "id": 14030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14026, + "name": "paymentType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13990, + "src": "12018:11:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 14027, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "12033:14:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2489_$", + "typeString": "type(contract IGraphPayments)" + } + }, + "id": 14028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12048:12:57", + "memberName": "PaymentTypes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2433, + "src": "12033:27:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2433_$", + "typeString": "type(enum IGraphPayments.PaymentTypes)" + } + }, + "id": 14029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12061:15:57", + "memberName": "IndexingRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 2432, + "src": "12033:43:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "src": "12018:58:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 14043, + "nodeType": "Block", + "src": "12166:78:57", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 14040, + "name": "paymentType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13990, + "src": "12221:11:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + ], + "id": 14039, + "name": "SubgraphServiceInvalidPaymentType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15451, + "src": "12187:33:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_enum$_PaymentTypes_$2433_$returns$_t_error_$", + "typeString": "function (enum IGraphPayments.PaymentTypes) pure returns (error)" + } + }, + "id": 14041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12187:46:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 14042, + "nodeType": "RevertStatement", + "src": "12180:53:57" + } + ] + }, + "id": 14044, + "nodeType": "IfStatement", + "src": "12014:230:57", + "trueBody": { + "id": 14038, + "nodeType": "Block", + "src": "12078:82:57", + "statements": [ + { + "expression": { + "id": 14036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14031, + "name": "paymentCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14010, + "src": "12092:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 14033, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "12135:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14034, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13992, + "src": "12144:4:57", + "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": 14032, + "name": "_collectIndexingRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14812, + "src": "12111:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$_t_uint256_$", + "typeString": "function (address,bytes calldata) returns (uint256)" + } + }, + "id": 14035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12111:38:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12092:57:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14037, + "nodeType": "ExpressionStatement", + "src": "12092:57:57" + } + ] + } + }, + "id": 14045, + "nodeType": "IfStatement", + "src": "11875:369:57", + "trueBody": { + "id": 14025, + "nodeType": "Block", + "src": "11932:76:57", + "statements": [ + { + "expression": { + "id": 14023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14018, + "name": "paymentCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14010, + "src": "11946:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 14020, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "11983:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14021, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13992, + "src": "11992:4:57", + "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": 14019, + "name": "_collectQueryFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14759, + "src": "11965:17:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$_t_uint256_$", + "typeString": "function (address,bytes calldata) returns (uint256)" + } + }, + "id": 14022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11965:32:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11946:51:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14024, + "nodeType": "ExpressionStatement", + "src": "11946:51:57" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 14047, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "12283:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14048, + "name": "paymentType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13990, + "src": "12292:11:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + { + "id": 14049, + "name": "paymentCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14010, + "src": "12305:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14046, + "name": "ServicePaymentCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1466, + "src": "12259:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_enum$_PaymentTypes_$2433_$_t_uint256_$returns$__$", + "typeString": "function (address,enum IGraphPayments.PaymentTypes,uint256)" + } + }, + "id": 14050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12259:63:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14051, + "nodeType": "EmitStatement", + "src": "12254:68:57" + }, + { + "expression": { + "id": 14052, + "name": "paymentCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14010, + "src": "12339:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14008, + "id": 14053, + "nodeType": "Return", + "src": "12332:23:57" + } + ] + }, + "documentation": { + "id": 13985, + "nodeType": "StructuredDocumentation", + "src": "11462:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "b15d2a2c", + "id": 14055, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 13996, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "11690:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 13997, + "kind": "modifierInvocation", + "modifierName": { + "id": 13995, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "11663:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "11663:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "11663:35:57" + }, + { + "arguments": [ + { + "id": 13999, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "11726:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 14000, + "kind": "modifierInvocation", + "modifierName": { + "id": 13998, + "name": "onlyValidProvision", + "nameLocations": [ + "11707:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1988, + "src": "11707:18:57" + }, + "nodeType": "ModifierInvocation", + "src": "11707:27:57" + }, + { + "arguments": [ + { + "id": 14002, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13987, + "src": "11765:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 14003, + "kind": "modifierInvocation", + "modifierName": { + "id": 14001, + "name": "onlyRegisteredIndexer", + "nameLocations": [ + "11743:21:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 13674, + "src": "11743:21:57" + }, + "nodeType": "ModifierInvocation", + "src": "11743:30:57" + }, + { + "id": 14005, + "kind": "modifierInvocation", + "modifierName": { + "id": 14004, + "name": "whenNotPaused", + "nameLocations": [ + "11782:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "11782:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "11782:13:57" + } + ], + "name": "collect", + "nameLocation": "11504:7:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 13994, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11646:8:57" + }, + "parameters": { + "id": 13993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13987, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "11529:7:57", + "nodeType": "VariableDeclaration", + "scope": 14055, + "src": "11521:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13986, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11521:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13990, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "11574:11:57", + "nodeType": "VariableDeclaration", + "scope": 14055, + "src": "11546:39:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 13989, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 13988, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "11546:14:57", + "11561:12:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "11546:27:57" + }, + "referencedDeclaration": 2433, + "src": "11546:27:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13992, + "mutability": "mutable", + "name": "data", + "nameLocation": "11610:4:57", + "nodeType": "VariableDeclaration", + "scope": 14055, + "src": "11595:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 13991, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11595:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "11511:109:57" + }, + "returnParameters": { + "id": 14008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14007, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14055, + "src": "11813:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11813:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11812:9:57" + }, + "scope": 14879, + "src": "11495:867:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1526 + ], + "body": { + "id": 14098, + "nodeType": "Block", + "src": "12693:226:57", + "statements": [ + { + "assignments": [ + 14067, + 14069 + ], + "declarations": [ + { + "constant": false, + "id": 14067, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "12712:6:57", + "nodeType": "VariableDeclaration", + "scope": 14098, + "src": "12704:14:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12704:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14069, + "mutability": "mutable", + "name": "reward", + "nameLocation": "12728:6:57", + "nodeType": "VariableDeclaration", + "scope": 14098, + "src": "12720:14:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12720:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14079, + "initialValue": { + "arguments": [ + { + "id": 14072, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14060, + "src": "12749:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 14074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12756:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 14073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12756:7:57", + "typeDescriptions": {} + } + }, + { + "id": 14076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12765:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 14075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12765:7:57", + "typeDescriptions": {} + } + } + ], + "id": 14077, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12755:18:57", + "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": 14070, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12738:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 14071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12742:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "12738:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 14078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12738:36:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12703:71:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14083, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14058, + "src": "12806:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14084, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14067, + "src": "12815:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14085, + "name": "reward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14069, + "src": "12823:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14088, + "name": "_disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17699, + "src": "12839:15:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$15373_$", + "typeString": "function () view returns (contract IDisputeManager)" + } + }, + "id": 14089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12839:17:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + ], + "id": 14087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12831:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12831:7:57", + "typeDescriptions": {} + } + }, + "id": 14090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12831:26:57", + "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": 14080, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "12784:13:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 14081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12784:15:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 14082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12800:5:57", + "memberName": "slash", + "nodeType": "MemberAccess", + "referencedDeclaration": 3862, + "src": "12784:21:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address) external" + } + }, + "id": 14091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12784:74:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14092, + "nodeType": "ExpressionStatement", + "src": "12784:74:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 14094, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14058, + "src": "12896:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14095, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14067, + "src": "12905:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14093, + "name": "ServiceProviderSlashed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1473, + "src": "12873:22:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 14096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12873:39:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14097, + "nodeType": "EmitStatement", + "src": "12868:44:57" + } + ] + }, + "documentation": { + "id": 14056, + "nodeType": "StructuredDocumentation", + "src": "12570:28:57", + "text": "@inheritdoc IDataService" + }, + "functionSelector": "cb8347fe", + "id": 14099, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14064, + "kind": "modifierInvocation", + "modifierName": { + "id": 14063, + "name": "onlyDisputeManager", + "nameLocations": [ + "12674:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17635, + "src": "12674:18:57" + }, + "nodeType": "ModifierInvocation", + "src": "12674:18:57" + } + ], + "name": "slash", + "nameLocation": "12612:5:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14062, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "12665:8:57" + }, + "parameters": { + "id": 14061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14058, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "12626:7:57", + "nodeType": "VariableDeclaration", + "scope": 14099, + "src": "12618:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14057, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12618:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14060, + "mutability": "mutable", + "name": "data", + "nameLocation": "12650:4:57", + "nodeType": "VariableDeclaration", + "scope": 14099, + "src": "12635:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14059, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12635:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "12617:38:57" + }, + "returnParameters": { + "id": 14065, + "nodeType": "ParameterList", + "parameters": [], + "src": "12693:0:57" + }, + "scope": 14879, + "src": "12603:316:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15515 + ], + "body": { + "id": 14143, + "nodeType": "Block", + "src": "13046:339:57", + "statements": [ + { + "assignments": [ + 14112 + ], + "declarations": [ + { + "constant": false, + "id": 14112, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "13080:10:57", + "nodeType": "VariableDeclaration", + "scope": 14143, + "src": "13056:34:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 14111, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14110, + "name": "Allocation.State", + "nameLocations": [ + "13056:10:57", + "13067:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "13056:16:57" + }, + "referencedDeclaration": 15663, + "src": "13056:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 14117, + "initialValue": { + "arguments": [ + { + "id": 14115, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14102, + "src": "13110:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 14113, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "13093:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13106:3:57", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "13093:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 14116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13093:30:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13056:67:57" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 14121, + "name": "maxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17390, + "src": "13160:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 14119, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "13141:10:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14120, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13152:7:57", + "memberName": "isStale", + "nodeType": "MemberAccess", + "referencedDeclaration": 15946, + "src": "13141:18:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_State_$15663_memory_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory,uint256) view returns (bool)" + } + }, + "id": 14122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13141:35:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14124, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14102, + "src": "13220:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14123, + "name": "SubgraphServiceCannotForceCloseAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15484, + "src": "13178:41:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 14125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13178:55:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14118, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13133:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13133:101:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14127, + "nodeType": "ExpressionStatement", + "src": "13133:101:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13252:26:57", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 14129, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "13253:10:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13264:12:57", + "memberName": "isAltruistic", + "nodeType": "MemberAccess", + "referencedDeclaration": 15999, + "src": "13253:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 14131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13253:25:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14134, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14102, + "src": "13318:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14133, + "name": "SubgraphServiceAllocationIsAltruistic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15489, + "src": "13280:37:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 14135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13280:51:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14128, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13244:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13244:88:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14137, + "nodeType": "ExpressionStatement", + "src": "13244:88:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14139, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14102, + "src": "13359:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 14140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13373:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14138, + "name": "_closeAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17273, + "src": "13342:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 14141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13342:36:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14142, + "nodeType": "ExpressionStatement", + "src": "13342:36:57" + } + ] + }, + "documentation": { + "id": 14100, + "nodeType": "StructuredDocumentation", + "src": "12925:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "ec9c218d", + "id": 14144, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14106, + "kind": "modifierInvocation", + "modifierName": { + "id": 14105, + "name": "whenNotPaused", + "nameLocations": [ + "13032:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "13032:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "13032:13:57" + } + ], + "name": "closeStaleAllocation", + "nameLocation": "12971:20:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14104, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "13023:8:57" + }, + "parameters": { + "id": 14103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14102, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "13000:12:57", + "nodeType": "VariableDeclaration", + "scope": 14144, + "src": "12992:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12992:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12991:22:57" + }, + "returnParameters": { + "id": 14107, + "nodeType": "ParameterList", + "parameters": [], + "src": "13046:0:57" + }, + "scope": 14879, + "src": "12962:423:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15525 + ], + "body": { + "id": 14185, + "nodeType": "Block", + "src": "13701:239:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 14168, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14149, + "src": "13749:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 14166, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "13732:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13745:3:57", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "13732:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 14169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13732:30:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14170, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13763:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "13732:38:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 14171, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14147, + "src": "13774:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13732:49:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14174, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14147, + "src": "13834:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14175, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14149, + "src": "13843:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14173, + "name": "SubgraphServiceAllocationNotAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15472, + "src": "13795:38:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 14176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13795:61:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14165, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13711:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13711:155:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14178, + "nodeType": "ExpressionStatement", + "src": "13711:155:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14180, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14149, + "src": "13894:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14181, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14151, + "src": "13908:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14182, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "13916:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14179, + "name": "_resizeAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17203, + "src": "13876:17:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (address,uint256,uint32)" + } + }, + "id": 14183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13876:57:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14184, + "nodeType": "ExpressionStatement", + "src": "13876:57:57" + } + ] + }, + "documentation": { + "id": 14145, + "nodeType": "StructuredDocumentation", + "src": "13391:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "81e777a7", + "id": 14186, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 14154, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14147, + "src": "13591:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 14155, + "kind": "modifierInvocation", + "modifierName": { + "id": 14153, + "name": "onlyAuthorizedForProvision", + "nameLocations": [ + "13564:26:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1963, + "src": "13564:26:57" + }, + "nodeType": "ModifierInvocation", + "src": "13564:35:57" + }, + { + "arguments": [ + { + "id": 14157, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14147, + "src": "13627:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 14158, + "kind": "modifierInvocation", + "modifierName": { + "id": 14156, + "name": "onlyValidProvision", + "nameLocations": [ + "13608:18:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1988, + "src": "13608:18:57" + }, + "nodeType": "ModifierInvocation", + "src": "13608:27:57" + }, + { + "arguments": [ + { + "id": 14160, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14147, + "src": "13666:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 14161, + "kind": "modifierInvocation", + "modifierName": { + "id": 14159, + "name": "onlyRegisteredIndexer", + "nameLocations": [ + "13644:21:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 13674, + "src": "13644:21:57" + }, + "nodeType": "ModifierInvocation", + "src": "13644:30:57" + }, + { + "id": 14163, + "kind": "modifierInvocation", + "modifierName": { + "id": 14162, + "name": "whenNotPaused", + "nameLocations": [ + "13683:13:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5590, + "src": "13683:13:57" + }, + "nodeType": "ModifierInvocation", + "src": "13683:13:57" + } + ], + "name": "resizeAllocation", + "nameLocation": "13437:16:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14147, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "13471:7:57", + "nodeType": "VariableDeclaration", + "scope": 14186, + "src": "13463:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13463:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14149, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "13496:12:57", + "nodeType": "VariableDeclaration", + "scope": 14186, + "src": "13488:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13488:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14151, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "13526:6:57", + "nodeType": "VariableDeclaration", + "scope": 14186, + "src": "13518:14:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13518:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13453:85:57" + }, + "returnParameters": { + "id": 14164, + "nodeType": "ParameterList", + "parameters": [], + "src": "13701:0:57" + }, + "scope": 14879, + "src": "13428:512:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15535 + ], + "body": { + "id": 14205, + "nodeType": "Block", + "src": "14143:86:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14200, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14189, + "src": "14178:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14201, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14191, + "src": "14187:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14202, + "name": "subgraphDeploymentID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14193, + "src": "14201:20: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": 14199, + "name": "_migrateLegacyAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16681, + "src": "14153:24:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,bytes32)" + } + }, + "id": 14203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14153:69:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14204, + "nodeType": "ExpressionStatement", + "src": "14153:69:57" + } + ] + }, + "documentation": { + "id": 14187, + "nodeType": "StructuredDocumentation", + "src": "13946:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "7dfe6d28", + "id": 14206, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14197, + "kind": "modifierInvocation", + "modifierName": { + "id": 14196, + "name": "onlyOwner", + "nameLocations": [ + "14133:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "14133:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "14133:9:57" + } + ], + "name": "migrateLegacyAllocation", + "nameLocation": "13992:23:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14195, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14124:8:57" + }, + "parameters": { + "id": 14194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14189, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "14033:7:57", + "nodeType": "VariableDeclaration", + "scope": 14206, + "src": "14025:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14025:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14191, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "14058:12:57", + "nodeType": "VariableDeclaration", + "scope": 14206, + "src": "14050:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14050:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14193, + "mutability": "mutable", + "name": "subgraphDeploymentID", + "nameLocation": "14088:20:57", + "nodeType": "VariableDeclaration", + "scope": 14206, + "src": "14080:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14080:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "14015:99:57" + }, + "returnParameters": { + "id": 14198, + "nodeType": "ParameterList", + "parameters": [], + "src": "14143:0:57" + }, + "scope": 14879, + "src": "13983:246:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15543 + ], + "body": { + "id": 14222, + "nodeType": "Block", + "src": "14363:58:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14218, + "name": "pauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14209, + "src": "14391:13:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14219, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14211, + "src": "14406:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14217, + "name": "_setPauseGuardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1424, + "src": "14373:17:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 14220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14373:41:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14221, + "nodeType": "ExpressionStatement", + "src": "14373:41:57" + } + ] + }, + "documentation": { + "id": 14207, + "nodeType": "StructuredDocumentation", + "src": "14235:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "35577962", + "id": 14223, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14215, + "kind": "modifierInvocation", + "modifierName": { + "id": 14214, + "name": "onlyOwner", + "nameLocations": [ + "14353:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "14353:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "14353:9:57" + } + ], + "name": "setPauseGuardian", + "nameLocation": "14281:16:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14213, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14344:8:57" + }, + "parameters": { + "id": 14212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14209, + "mutability": "mutable", + "name": "pauseGuardian", + "nameLocation": "14306:13:57", + "nodeType": "VariableDeclaration", + "scope": 14223, + "src": "14298:21:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14298:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14211, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "14326:7:57", + "nodeType": "VariableDeclaration", + "scope": 14223, + "src": "14321:12:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14210, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14321:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14297:37:57" + }, + "returnParameters": { + "id": 14216, + "nodeType": "ParameterList", + "parameters": [], + "src": "14363:0:57" + }, + "scope": 14879, + "src": "14272:149:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15579 + ], + "body": { + "id": 14236, + "nodeType": "Block", + "src": "14544:74:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 14231, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14578:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 14232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14582:6:57", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "14578:10:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14233, + "name": "paymentsDestination_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14226, + "src": "14590:20:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14230, + "name": "_setPaymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14832, + "src": "14554:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 14234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14554:57:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14235, + "nodeType": "ExpressionStatement", + "src": "14554:57:57" + } + ] + }, + "documentation": { + "id": 14224, + "nodeType": "StructuredDocumentation", + "src": "14427:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "6ccec5b8", + "id": 14237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setPaymentsDestination", + "nameLocation": "14473:22:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14228, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14535:8:57" + }, + "parameters": { + "id": 14227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14226, + "mutability": "mutable", + "name": "paymentsDestination_", + "nameLocation": "14504:20:57", + "nodeType": "VariableDeclaration", + "scope": 14237, + "src": "14496:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14496:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14495:30:57" + }, + "returnParameters": { + "id": 14229, + "nodeType": "ParameterList", + "parameters": [], + "src": "14544:0:57" + }, + "scope": 14879, + "src": "14464:154:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15549 + ], + "body": { + "id": 14251, + "nodeType": "Block", + "src": "14756:95:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14247, + "name": "minimumProvisionTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14240, + "src": "14791:22:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14248, + "name": "DEFAULT_MAX_PROVISION_TOKENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "14815:28:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14246, + "name": "_setProvisionTokensRange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2089, + "src": "14766:24:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 14249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14766:78:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14250, + "nodeType": "ExpressionStatement", + "src": "14766:78:57" + } + ] + }, + "documentation": { + "id": 14238, + "nodeType": "StructuredDocumentation", + "src": "14624:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "832bc923", + "id": 14252, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14244, + "kind": "modifierInvocation", + "modifierName": { + "id": 14243, + "name": "onlyOwner", + "nameLocations": [ + "14746:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "14746:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "14746:9:57" + } + ], + "name": "setMinimumProvisionTokens", + "nameLocation": "14670:25:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14242, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14737:8:57" + }, + "parameters": { + "id": 14241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14240, + "mutability": "mutable", + "name": "minimumProvisionTokens", + "nameLocation": "14704:22:57", + "nodeType": "VariableDeclaration", + "scope": 14252, + "src": "14696:30:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14696:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14695:32:57" + }, + "returnParameters": { + "id": 14245, + "nodeType": "ParameterList", + "parameters": [], + "src": "14756:0:57" + }, + "scope": 14879, + "src": "14661:190:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15555 + ], + "body": { + "id": 14265, + "nodeType": "Block", + "src": "14974:53:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14262, + "name": "delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14255, + "src": "15004:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14261, + "name": "_setDelegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2057, + "src": "14984:19:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 14263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14984:36:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14264, + "nodeType": "ExpressionStatement", + "src": "14984:36:57" + } + ] + }, + "documentation": { + "id": 14253, + "nodeType": "StructuredDocumentation", + "src": "14857:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "1dd42f60", + "id": 14266, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14259, + "kind": "modifierInvocation", + "modifierName": { + "id": 14258, + "name": "onlyOwner", + "nameLocations": [ + "14964:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "14964:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "14964:9:57" + } + ], + "name": "setDelegationRatio", + "nameLocation": "14903:18:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14257, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "14955:8:57" + }, + "parameters": { + "id": 14256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14255, + "mutability": "mutable", + "name": "delegationRatio", + "nameLocation": "14929:15:57", + "nodeType": "VariableDeclaration", + "scope": 14266, + "src": "14922:22:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14254, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14922:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "14921:24:57" + }, + "returnParameters": { + "id": 14260, + "nodeType": "ParameterList", + "parameters": [], + "src": "14974:0:57" + }, + "scope": 14879, + "src": "14894:133:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15561 + ], + "body": { + "id": 14279, + "nodeType": "Block", + "src": "15154:56:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14276, + "name": "stakeToFeesRatio_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14269, + "src": "15185:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14275, + "name": "_setStakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "15164:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 14277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15164:39:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14278, + "nodeType": "ExpressionStatement", + "src": "15164:39:57" + } + ] + }, + "documentation": { + "id": 14267, + "nodeType": "StructuredDocumentation", + "src": "15033:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "e6f50054", + "id": 14280, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14273, + "kind": "modifierInvocation", + "modifierName": { + "id": 14272, + "name": "onlyOwner", + "nameLocations": [ + "15144:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "15144:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "15144:9:57" + } + ], + "name": "setStakeToFeesRatio", + "nameLocation": "15079:19:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14271, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "15135:8:57" + }, + "parameters": { + "id": 14270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14269, + "mutability": "mutable", + "name": "stakeToFeesRatio_", + "nameLocation": "15107:17:57", + "nodeType": "VariableDeclaration", + "scope": 14280, + "src": "15099:25:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15099:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15098:27:57" + }, + "returnParameters": { + "id": 14274, + "nodeType": "ParameterList", + "parameters": [], + "src": "15154:0:57" + }, + "scope": 14879, + "src": "15070:140:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15567 + ], + "body": { + "id": 14293, + "nodeType": "Block", + "src": "15335:54:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14290, + "name": "maxPOIStaleness_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14283, + "src": "15365:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14289, + "name": "_setMaxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17288, + "src": "15345:19:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 14291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15345:37:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14292, + "nodeType": "ExpressionStatement", + "src": "15345:37:57" + } + ] + }, + "documentation": { + "id": 14281, + "nodeType": "StructuredDocumentation", + "src": "15216:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "7aa31bce", + "id": 14294, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14287, + "kind": "modifierInvocation", + "modifierName": { + "id": 14286, + "name": "onlyOwner", + "nameLocations": [ + "15325:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "15325:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "15325:9:57" + } + ], + "name": "setMaxPOIStaleness", + "nameLocation": "15262:18:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14285, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "15316:8:57" + }, + "parameters": { + "id": 14284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14283, + "mutability": "mutable", + "name": "maxPOIStaleness_", + "nameLocation": "15289:16:57", + "nodeType": "VariableDeclaration", + "scope": 14294, + "src": "15281:24:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15281:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15280:26:57" + }, + "returnParameters": { + "id": 14288, + "nodeType": "ParameterList", + "parameters": [], + "src": "15335:0:57" + }, + "scope": 14879, + "src": "15253:136:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15573 + ], + "body": { + "id": 14321, + "nodeType": "Block", + "src": "15505:186:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 14306, + "name": "curationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14297, + "src": "15542:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 14304, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "15523:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PPMMath_$4539_$", + "typeString": "type(library PPMMath)" + } + }, + "id": 14305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15531:10:57", + "memberName": "isValidPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4538, + "src": "15523:18:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 14307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15523:31:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14309, + "name": "curationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14297, + "src": "15590:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14308, + "name": "SubgraphServiceInvalidCurationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15431, + "src": "15556:33:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 14310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15556:46:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14303, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15515:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15515:88:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14312, + "nodeType": "ExpressionStatement", + "src": "15515:88:57" + }, + { + "expression": { + "id": 14315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14313, + "name": "curationFeesCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14896, + "src": "15613:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14314, + "name": "curationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14297, + "src": "15631:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15613:29:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14316, + "nodeType": "ExpressionStatement", + "src": "15613:29:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 14318, + "name": "curationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14297, + "src": "15672:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14317, + "name": "CurationCutSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15426, + "src": "15657:14:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 14319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15657:27:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14320, + "nodeType": "EmitStatement", + "src": "15652:32:57" + } + ] + }, + "documentation": { + "id": 14295, + "nodeType": "StructuredDocumentation", + "src": "15395:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "7e89bac3", + "id": 14322, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14301, + "kind": "modifierInvocation", + "modifierName": { + "id": 14300, + "name": "onlyOwner", + "nameLocations": [ + "15495:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5018, + "src": "15495:9:57" + }, + "nodeType": "ModifierInvocation", + "src": "15495:9:57" + } + ], + "name": "setCurationCut", + "nameLocation": "15441:14:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14299, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "15486:8:57" + }, + "parameters": { + "id": 14298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14297, + "mutability": "mutable", + "name": "curationCut", + "nameLocation": "15464:11:57", + "nodeType": "VariableDeclaration", + "scope": 14322, + "src": "15456:19:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15456:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15455:21:57" + }, + "returnParameters": { + "id": 14302, + "nodeType": "ParameterList", + "parameters": [], + "src": "15505:0:57" + }, + "scope": 14879, + "src": "15432:259:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15588 + ], + "body": { + "id": 14336, + "nodeType": "Block", + "src": "15836:50:57", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 14332, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "15853:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14334, + "indexExpression": { + "id": 14333, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14325, + "src": "15866:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15853:26:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "functionReturnParameters": 14331, + "id": 14335, + "nodeType": "Return", + "src": "15846:33:57" + } + ] + }, + "documentation": { + "id": 14323, + "nodeType": "StructuredDocumentation", + "src": "15697:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "0e022923", + "id": 14337, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAllocation", + "nameLocation": "15743:13:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14327, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "15793:8:57" + }, + "parameters": { + "id": 14326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14325, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "15765:12:57", + "nodeType": "VariableDeclaration", + "scope": 14337, + "src": "15757:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15757:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15756:22:57" + }, + "returnParameters": { + "id": 14331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14330, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14337, + "src": "15811:23:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 14329, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14328, + "name": "Allocation.State", + "nameLocations": [ + "15811:10:57", + "15822:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "15811:16:57" + }, + "referencedDeclaration": 15663, + "src": "15811:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "15810:25:57" + }, + "scope": 14879, + "src": "15734:152:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 552 + ], + "body": { + "id": 14380, + "nodeType": "Block", + "src": "16073:300:57", + "statements": [ + { + "assignments": [ + 14360 + ], + "declarations": [ + { + "constant": false, + "id": 14360, + "mutability": "mutable", + "name": "allo", + "nameLocation": "16107:4:57", + "nodeType": "VariableDeclaration", + "scope": 14380, + "src": "16083:28:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 14359, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14358, + "name": "Allocation.State", + "nameLocations": [ + "16083:10:57", + "16094:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "16083:16:57" + }, + "referencedDeclaration": 15663, + "src": "16083:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 14364, + "initialValue": { + "baseExpression": { + "id": 14361, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "16114:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14363, + "indexExpression": { + "id": 14362, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14340, + "src": "16127:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16114:26:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16083:57:57" + }, + { + "expression": { + "components": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 14365, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16171:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14366, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16176:6:57", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "16171:11:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 14367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16171:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 14368, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16198:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16203:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "16198:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 14370, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16224:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14371, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16229:20:57", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "16224:25:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 14372, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16263:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14373, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16268:6:57", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "16263:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 14374, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16288:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16293:27:57", + "memberName": "accRewardsPerAllocatedToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 15658, + "src": "16288:32:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 14376, + "name": "allo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14360, + "src": "16334:4:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14377, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16339:17:57", + "memberName": "accRewardsPending", + "nodeType": "MemberAccess", + "referencedDeclaration": 15660, + "src": "16334:22:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14378, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16157:209:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(bool,address,bytes32,uint256,uint256,uint256)" + } + }, + "functionReturnParameters": 14355, + "id": 14379, + "nodeType": "Return", + "src": "16150:216:57" + } + ] + }, + "documentation": { + "id": 14338, + "nodeType": "StructuredDocumentation", + "src": "15892:30:57", + "text": "@inheritdoc IRewardsIssuer" + }, + "functionSelector": "55c85269", + "id": 14381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAllocationData", + "nameLocation": "15936:17:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14342, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "16004:8:57" + }, + "parameters": { + "id": 14341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14340, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "15971:12:57", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "15963:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15963:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15953:36:57" + }, + "returnParameters": { + "id": 14355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16022:4:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14343, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16022:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14346, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16028:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16028:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14348, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16037:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16037:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14350, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16046:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16046:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14352, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16055:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16055:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14354, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14381, + "src": "16064:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16064:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16021:51:57" + }, + "scope": 14879, + "src": "15927:446:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 560 + ], + "body": { + "id": 14394, + "nodeType": "Block", + "src": "16521:70:57", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 14390, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "16538:24:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 14392, + "indexExpression": { + "id": 14391, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14384, + "src": "16563:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16538:46:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14389, + "id": 14393, + "nodeType": "Return", + "src": "16531:53:57" + } + ] + }, + "documentation": { + "id": 14382, + "nodeType": "StructuredDocumentation", + "src": "16379:30:57", + "text": "@inheritdoc IRewardsIssuer" + }, + "functionSelector": "e2e1e8e9", + "id": 14395, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSubgraphAllocatedTokens", + "nameLocation": "16423:26:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14386, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "16494:8:57" + }, + "parameters": { + "id": 14385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14384, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "16458:20:57", + "nodeType": "VariableDeclaration", + "scope": 14395, + "src": "16450:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14383, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16450:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "16449:30:57" + }, + "returnParameters": { + "id": 14389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14395, + "src": "16512:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16512:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16511:9:57" + }, + "scope": 14879, + "src": "16414:177:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15597 + ], + "body": { + "id": 14409, + "nodeType": "Block", + "src": "16748:56:57", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 14405, + "name": "_legacyAllocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17382, + "src": "16765:18:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 14407, + "indexExpression": { + "id": 14406, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14398, + "src": "16784:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16765:32:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "functionReturnParameters": 14404, + "id": 14408, + "nodeType": "Return", + "src": "16758:39:57" + } + ] + }, + "documentation": { + "id": 14396, + "nodeType": "StructuredDocumentation", + "src": "16597:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "6d9a3951", + "id": 14410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLegacyAllocation", + "nameLocation": "16643:19:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14400, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "16699:8:57" + }, + "parameters": { + "id": 14399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14398, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "16671:12:57", + "nodeType": "VariableDeclaration", + "scope": 14410, + "src": "16663:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16663:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16662:22:57" + }, + "returnParameters": { + "id": 14404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14403, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14410, + "src": "16717:29:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 14402, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14401, + "name": "LegacyAllocation.State", + "nameLocations": [ + "16717:16:57", + "16734:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "16717:22:57" + }, + "referencedDeclaration": 16305, + "src": "16717:22:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "16716:31:57" + }, + "scope": 14879, + "src": "16634:170:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15621 + ], + "body": { + "id": 14423, + "nodeType": "Block", + "src": "16917:50:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14419, + "name": "_disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17699, + "src": "16942:15:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$15373_$", + "typeString": "function () view returns (contract IDisputeManager)" + } + }, + "id": 14420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16942:17:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + ], + "id": 14418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16934:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16934:7:57", + "typeDescriptions": {} + } + }, + "id": 14421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16934:26:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 14416, + "id": 14422, + "nodeType": "Return", + "src": "16927:33:57" + } + ] + }, + "documentation": { + "id": 14411, + "nodeType": "StructuredDocumentation", + "src": "16810:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "db9bee46", + "id": 14424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDisputeManager", + "nameLocation": "16856:17:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14413, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "16890:8:57" + }, + "parameters": { + "id": 14412, + "nodeType": "ParameterList", + "parameters": [], + "src": "16873:2:57" + }, + "returnParameters": { + "id": 14416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14415, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14424, + "src": "16908:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16908:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16907:9:57" + }, + "scope": 14879, + "src": "16847:120:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15627 + ], + "body": { + "id": 14437, + "nodeType": "Block", + "src": "17085:55:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14433, + "name": "_graphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17709, + "src": "17110:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphTallyCollector_$2605_$", + "typeString": "function () view returns (contract IGraphTallyCollector)" + } + }, + "id": 14434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17110:22:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + ], + "id": 14432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17102:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17102:7:57", + "typeDescriptions": {} + } + }, + "id": 14435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17102:31:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 14430, + "id": 14436, + "nodeType": "Return", + "src": "17095:38:57" + } + ] + }, + "documentation": { + "id": 14425, + "nodeType": "StructuredDocumentation", + "src": "16973:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "ebf6ddaf", + "id": 14438, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getGraphTallyCollector", + "nameLocation": "17019:22:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14427, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "17058:8:57" + }, + "parameters": { + "id": 14426, + "nodeType": "ParameterList", + "parameters": [], + "src": "17041:2:57" + }, + "returnParameters": { + "id": 14430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14429, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14438, + "src": "17076:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17076:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17075:9:57" + }, + "scope": 14879, + "src": "17010:130:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15633 + ], + "body": { + "id": 14451, + "nodeType": "Block", + "src": "17247:44:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14447, + "name": "_curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17719, + "src": "17272:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", + "typeString": "function () view returns (contract ICuration)" + } + }, + "id": 14448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17272:11:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + ], + "id": 14446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17264:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17264:7:57", + "typeDescriptions": {} + } + }, + "id": 14449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17264:20:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 14444, + "id": 14450, + "nodeType": "Return", + "src": "17257:27:57" + } + ] + }, + "documentation": { + "id": 14439, + "nodeType": "StructuredDocumentation", + "src": "17146:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "c0f47497", + "id": 14452, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCuration", + "nameLocation": "17192:11:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14441, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "17220:8:57" + }, + "parameters": { + "id": 14440, + "nodeType": "ParameterList", + "parameters": [], + "src": "17203:2:57" + }, + "returnParameters": { + "id": 14444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14443, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14452, + "src": "17238:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17238:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17237:9:57" + }, + "scope": 14879, + "src": "17183:108:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15607 + ], + "body": { + "id": 14468, + "nodeType": "Block", + "src": "17445:69:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14464, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14455, + "src": "17485:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14465, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14457, + "src": "17494:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14463, + "name": "_encodeAllocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17310, + "src": "17462:22:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) view returns (bytes32)" + } + }, + "id": 14466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17462:45:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 14462, + "id": 14467, + "nodeType": "Return", + "src": "17455:52:57" + } + ] + }, + "documentation": { + "id": 14453, + "nodeType": "StructuredDocumentation", + "src": "17297:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "ce56c98b", + "id": 14469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encodeAllocationProof", + "nameLocation": "17343:21:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14459, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "17418:8:57" + }, + "parameters": { + "id": 14458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14455, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "17373:7:57", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "17365:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17365:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14457, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "17390:12:57", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "17382:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17382:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17364:39:57" + }, + "returnParameters": { + "id": 14462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14461, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "17436:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14460, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17436:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17435:9:57" + }, + "scope": 14879, + "src": "17334:180:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 15615 + ], + "body": { + "id": 14483, + "nodeType": "Block", + "src": "17637:67:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14479, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14472, + "src": "17671:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14480, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "17680:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14478, + "name": "_isOverAllocated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17330, + "src": "17654:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint32) view returns (bool)" + } + }, + "id": 14481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17654:43:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 14477, + "id": 14482, + "nodeType": "Return", + "src": "17647:50:57" + } + ] + }, + "documentation": { + "id": 14470, + "nodeType": "StructuredDocumentation", + "src": "17520:32:57", + "text": "@inheritdoc ISubgraphService" + }, + "functionSelector": "ba38f67d", + "id": 14484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOverAllocated", + "nameLocation": "17566:15:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14474, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "17613:8:57" + }, + "parameters": { + "id": 14473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14472, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "17590:7:57", + "nodeType": "VariableDeclaration", + "scope": 14484, + "src": "17582:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17582:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17581:17:57" + }, + "returnParameters": { + "id": 14477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14484, + "src": "17631:4:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14475, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17631:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "17630:6:57" + }, + "scope": 14879, + "src": "17557:147:57", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 2317 + ], + "body": { + "id": 14504, + "nodeType": "Block", + "src": "18254:123:57", + "statements": [ + { + "assignments": [ + 14494 + ], + "declarations": [ + { + "constant": false, + "id": 14494, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "18271:13:57", + "nodeType": "VariableDeclaration", + "scope": 14504, + "src": "18264:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14493, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "18264:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 14499, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14495, + "name": "_disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17699, + "src": "18287:15:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$15373_$", + "typeString": "function () view returns (contract IDisputeManager)" + } + }, + "id": 14496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18287:17:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "id": 14497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18305:16:57", + "memberName": "getDisputePeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 15326, + "src": "18287:34:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", + "typeString": "function () view external returns (uint64)" + } + }, + "id": 14498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18287:36:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18264:59:57" + }, + { + "expression": { + "components": [ + { + "id": 14500, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14494, + "src": "18341:13:57", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 14501, + "name": "disputePeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14494, + "src": "18356:13:57", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "id": 14502, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18340:30:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64)" + } + }, + "functionReturnParameters": 14492, + "id": 14503, + "nodeType": "Return", + "src": "18333:37:57" + } + ] + }, + "documentation": { + "id": 14485, + "nodeType": "StructuredDocumentation", + "src": "17754:413:57", + "text": " @notice Getter for the accepted thawing period range for provisions\n The accepted range is just the dispute period defined by {DisputeManager-getDisputePeriod}\n @dev This override ensures {ProvisionManager} uses the thawing period from the {DisputeManager}\n @return The minimum thawing period - the dispute period\n @return The maximum thawing period - the dispute period" + }, + "id": 14505, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getThawingPeriodRange", + "nameLocation": "18181:22:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14487, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "18220:8:57" + }, + "parameters": { + "id": 14486, + "nodeType": "ParameterList", + "parameters": [], + "src": "18203:2:57" + }, + "returnParameters": { + "id": 14492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14489, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "18238:6:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14488, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "18238:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14491, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "18246:6:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14490, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "18246:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "18237:16:57" + }, + "scope": 14879, + "src": "18172:205:57", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2330 + ], + "body": { + "id": 14521, + "nodeType": "Block", + "src": "18718:93:57", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14514, + "name": "_disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17699, + "src": "18736:15:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$15373_$", + "typeString": "function () view returns (contract IDisputeManager)" + } + }, + "id": 14515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18736:17:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "id": 14516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18754:21:57", + "memberName": "getFishermanRewardCut", + "nodeType": "MemberAccess", + "referencedDeclaration": 15320, + "src": "18736:39:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", + "typeString": "function () view external returns (uint32)" + } + }, + "id": 14517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18736:41:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 14518, + "name": "DEFAULT_MAX_VERIFIER_CUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "18779:24:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 14519, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18735:69:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 14513, + "id": 14520, + "nodeType": "Return", + "src": "18728:76:57" + } + ] + }, + "documentation": { + "id": 14506, + "nodeType": "StructuredDocumentation", + "src": "18383:250:57", + "text": " @notice Getter for the accepted verifier cut range for provisions\n @return The minimum verifier cut which is defined by the fisherman reward cut {DisputeManager-getFishermanRewardCut}\n @return The maximum is 100% in PPM" + }, + "id": 14522, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getVerifierCutRange", + "nameLocation": "18647:20:57", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 14508, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "18684:8:57" + }, + "parameters": { + "id": 14507, + "nodeType": "ParameterList", + "parameters": [], + "src": "18667:2:57" + }, + "returnParameters": { + "id": 14513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14522, + "src": "18702:6:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14509, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "18702:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14512, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14522, + "src": "18710:6:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14511, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "18710:6:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "18701:16:57" + }, + "scope": 14879, + "src": "18638:173:57", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14758, + "nodeType": "Block", + "src": "20565:2975:57", + "statements": [ + { + "assignments": [ + 14536, + 14538 + ], + "declarations": [ + { + "constant": false, + "id": 14536, + "mutability": "mutable", + "name": "signedRav", + "nameLocation": "20614:9:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "20576:47:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + }, + "typeName": { + "id": 14535, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14534, + "name": "IGraphTallyCollector.SignedRAV", + "nameLocations": [ + "20576:20:57", + "20597:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2525, + "src": "20576:30:57" + }, + "referencedDeclaration": 2525, + "src": "20576:30:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_storage_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14538, + "mutability": "mutable", + "name": "tokensToCollect", + "nameLocation": "20633:15:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "20625:23:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20625:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14548, + "initialValue": { + "arguments": [ + { + "id": 14541, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14527, + "src": "20676:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "expression": { + "id": 14542, + "name": "IGraphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2605, + "src": "20695:20:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphTallyCollector_$2605_$", + "typeString": "type(contract IGraphTallyCollector)" + } + }, + "id": 14543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20716:9:57", + "memberName": "SignedRAV", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "20695:30:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_SignedRAV_$2525_storage_ptr_$", + "typeString": "type(struct IGraphTallyCollector.SignedRAV storage pointer)" + } + }, + { + "id": 14545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20727:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 14544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20727:7:57", + "typeDescriptions": {} + } + } + ], + "id": 14546, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20694:41:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_struct$_SignedRAV_$2525_storage_ptr_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(struct IGraphTallyCollector.SignedRAV storage pointer),type(uint256))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_struct$_SignedRAV_$2525_storage_ptr_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(struct IGraphTallyCollector.SignedRAV storage pointer),type(uint256))" + } + ], + "expression": { + "id": 14539, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "20652:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 14540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "20656:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "20652:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 14547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20652:93:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_SignedRAV_$2525_memory_ptr_$_t_uint256_$", + "typeString": "tuple(struct IGraphTallyCollector.SignedRAV memory,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20575:170:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 14550, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "20776:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14551, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20786:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "20776:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20790:15:57", + "memberName": "serviceProvider", + "nodeType": "MemberAccess", + "referencedDeclaration": 2509, + "src": "20776:29:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 14553, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "20809:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20776:40:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 14556, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "20861:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14557, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20871:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "20861:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14558, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20875:15:57", + "memberName": "serviceProvider", + "nodeType": "MemberAccess", + "referencedDeclaration": 2509, + "src": "20861:29:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14559, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "20892:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14555, + "name": "SubgraphServiceIndexerMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15465, + "src": "20830:30:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 14560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20830:70:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14549, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20755:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20755:155:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14562, + "nodeType": "ExpressionStatement", + "src": "20755:155:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 14566, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "21122:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21132:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "21122:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14568, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21136:12:57", + "memberName": "collectionId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "21122:26:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21114:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 14564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21114:7:57", + "typeDescriptions": {} + } + }, + "id": 14569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21114:35:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 14572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21158:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 14571, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "21158:7:57", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + } + ], + "id": 14570, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "21153:4:57", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 14573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21153:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint160", + "typeString": "type(uint160)" + } + }, + "id": 14574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "21167:3:57", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "21153:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "src": "21114:56:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 14577, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "21219:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14578, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21229:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "21219:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21233:12:57", + "memberName": "collectionId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "21219:26:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14576, + "name": "SubgraphServiceInvalidCollectionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "21184:34:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 14580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21184:62:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14563, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "21093:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21093:163:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14582, + "nodeType": "ExpressionStatement", + "src": "21093:163:57" + }, + { + "assignments": [ + 14584 + ], + "declarations": [ + { + "constant": false, + "id": 14584, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "21274:12:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "21266:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21266:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 14597, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "id": 14591, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "21313:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21323:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "21313:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21327:12:57", + "memberName": "collectionId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "21313:26:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21305:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 14589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21305:7:57", + "typeDescriptions": {} + } + }, + "id": 14594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21305:35:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21297:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 14587, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "21297:7:57", + "typeDescriptions": {} + } + }, + "id": 14595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21297:44:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 14586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21289:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21289:7:57", + "typeDescriptions": {} + } + }, + "id": 14596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21289:53:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21266:76:57" + }, + { + "assignments": [ + 14602 + ], + "declarations": [ + { + "constant": false, + "id": 14602, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "21376:10:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "21352:34:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 14601, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14600, + "name": "Allocation.State", + "nameLocations": [ + "21352:10:57", + "21363:5:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "21352:16:57" + }, + "referencedDeclaration": 15663, + "src": "21352:16:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 14607, + "initialValue": { + "arguments": [ + { + "id": 14605, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14584, + "src": "21406:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 14603, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "21389:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21402:3:57", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "21389:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 14606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21389:30:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21352:67:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 14609, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14602, + "src": "21523:10:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21534:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "21523:18:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 14611, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "21545:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21523:29:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14614, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "21580:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 14615, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14602, + "src": "21589:10:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14616, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21600:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "21589:18:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14613, + "name": "SubgraphServiceInvalidRAV", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15479, + "src": "21554:25:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 14617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21554:54:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14608, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "21515:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21515:94:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14619, + "nodeType": "ExpressionStatement", + "src": "21515:94:57" + }, + { + "assignments": [ + 14621 + ], + "declarations": [ + { + "constant": false, + "id": 14621, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "21627:20:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "21619:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14620, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21619:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 14624, + "initialValue": { + "expression": { + "id": 14622, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14602, + "src": "21650:10:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21661:20:57", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "21650:31:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21619:62:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14626, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "21746:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 14627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21755:1:57", + "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": 14625, + "name": "_releaseStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "21732:13:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 14628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21732:25:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14629, + "nodeType": "ExpressionStatement", + "src": "21732:25:57" + }, + { + "assignments": [ + 14631 + ], + "declarations": [ + { + "constant": false, + "id": 14631, + "mutability": "mutable", + "name": "tokensCollected", + "nameLocation": "21871:15:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "21863:23:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21863:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14632, + "nodeType": "VariableDeclarationStatement", + "src": "21863:23:57" + }, + { + "assignments": [ + 14634 + ], + "declarations": [ + { + "constant": false, + "id": 14634, + "mutability": "mutable", + "name": "tokensCurators", + "nameLocation": "21904:14:57", + "nodeType": "VariableDeclaration", + "scope": 14758, + "src": "21896:22:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21896:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14635, + "nodeType": "VariableDeclarationStatement", + "src": "21896:22:57" + }, + { + "id": 14696, + "nodeType": "Block", + "src": "21928:623:57", + "statements": [ + { + "assignments": [ + 14637 + ], + "declarations": [ + { + "constant": false, + "id": 14637, + "mutability": "mutable", + "name": "balanceBefore", + "nameLocation": "21950:13:57", + "nodeType": "VariableDeclaration", + "scope": 14696, + "src": "21942:21:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21942:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14646, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 14643, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21998:4:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + ], + "id": 14642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21990:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21990:7:57", + "typeDescriptions": {} + } + }, + "id": 14644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21990:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14638, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "21966:11:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 14639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21966:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 14640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21980:9:57", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6104, + "src": "21966:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 14645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21966:38:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21942:62:57" + }, + { + "expression": { + "id": 14667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14647, + "name": "tokensCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14631, + "src": "22019:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "expression": { + "id": 14651, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "22085:14:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2489_$", + "typeString": "type(contract IGraphPayments)" + } + }, + "id": 14652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22100:12:57", + "memberName": "PaymentTypes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2433, + "src": "22085:27:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2433_$", + "typeString": "type(enum IGraphPayments.PaymentTypes)" + } + }, + "id": 14653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "22113:8:57", + "memberName": "QueryFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2430, + "src": "22085:36:57", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + { + "arguments": [ + { + "id": 14655, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "22161:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + { + "condition": { + "arguments": [ + { + "id": 14659, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14621, + "src": "22194:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14656, + "name": "_curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17719, + "src": "22172:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", + "typeString": "function () view returns (contract ICuration)" + } + }, + "id": 14657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22172:11:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "id": 14658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22184:9:57", + "memberName": "isCurated", + "nodeType": "MemberAccess", + "referencedDeclaration": 110, + "src": "22172:21:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 14660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22172:43:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 14662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22236:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 14663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "22172:65:57", + "trueExpression": { + "id": 14661, + "name": "curationFeesCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14896, + "src": "22218:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14654, + "name": "_encodeGraphTallyData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14878, + "src": "22139:21:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SignedRAV_$2525_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (struct IGraphTallyCollector.SignedRAV memory,uint256) view returns (bytes memory)" + } + }, + "id": 14664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22139:99:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 14665, + "name": "tokensToCollect", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14538, + "src": "22256:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14648, + "name": "_graphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17709, + "src": "22037:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphTallyCollector_$2605_$", + "typeString": "function () view returns (contract IGraphTallyCollector)" + } + }, + "id": 14649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22037:22:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "id": 14650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22060:7:57", + "memberName": "collect", + "nodeType": "MemberAccess", + "referencedDeclaration": 2586, + "src": "22037:30:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_enum$_PaymentTypes_$2433_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (enum IGraphPayments.PaymentTypes,bytes memory,uint256) external returns (uint256)" + } + }, + "id": 14666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22037:248:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22019:266:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14668, + "nodeType": "ExpressionStatement", + "src": "22019:266:57" + }, + { + "assignments": [ + 14670 + ], + "declarations": [ + { + "constant": false, + "id": 14670, + "mutability": "mutable", + "name": "balanceAfter", + "nameLocation": "22308:12:57", + "nodeType": "VariableDeclaration", + "scope": 14696, + "src": "22300:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22300:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14679, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 14676, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "22355:4:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SubgraphService_$14879", + "typeString": "contract SubgraphService" + } + ], + "id": 14675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22347:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22347:7:57", + "typeDescriptions": {} + } + }, + "id": 14677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22347:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14671, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "22323:11:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 14672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22323:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 14673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22337:9:57", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 6104, + "src": "22323:23:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 14678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22323:38:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22300:61:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14681, + "name": "balanceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14670, + "src": "22383:12:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 14682, + "name": "balanceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14637, + "src": "22399:13:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22383:29:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14685, + "name": "balanceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14637, + "src": "22452:13:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14686, + "name": "balanceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14670, + "src": "22467:12:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14684, + "name": "SubgraphServiceInconsistentCollection", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15458, + "src": "22414:37:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 14687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22414:66:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14680, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "22375:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22375:106:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14689, + "nodeType": "ExpressionStatement", + "src": "22375:106:57" + }, + { + "expression": { + "id": 14694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14690, + "name": "tokensCurators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "22495:14:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14691, + "name": "balanceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14670, + "src": "22512:12:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14692, + "name": "balanceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14637, + "src": "22527:13:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22512:28:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22495:45:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14695, + "nodeType": "ExpressionStatement", + "src": "22495:45:57" + } + ] + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14697, + "name": "tokensCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14631, + "src": "22565:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 14698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22583:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22565:19:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14744, + "nodeType": "IfStatement", + "src": "22561:726:57", + "trueBody": { + "id": 14743, + "nodeType": "Block", + "src": "22586:701:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14701, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "22684:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14702, + "name": "tokensCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14631, + "src": "22709:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14703, + "name": "stakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14893, + "src": "22727:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22709:34:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 14705, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "22761:5:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 14706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22767:9:57", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "22761:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14707, + "name": "_disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17699, + "src": "22779:15:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$15373_$", + "typeString": "function () view returns (contract IDisputeManager)" + } + }, + "id": 14708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22779:17:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "id": 14709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22797:16:57", + "memberName": "getDisputePeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 15326, + "src": "22779:34:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", + "typeString": "function () view external returns (uint64)" + } + }, + "id": 14710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22779:36:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "22761:54:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14700, + "name": "_lockStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "22656:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 14712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22656:173:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14713, + "nodeType": "ExpressionStatement", + "src": "22656:173:57" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14714, + "name": "tokensCurators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "22848:14:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 14715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22865:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22848:18:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14742, + "nodeType": "IfStatement", + "src": "22844:433:57", + "trueBody": { + "id": 14741, + "nodeType": "Block", + "src": "22868:409:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14720, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14621, + "src": "23023:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14717, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "22977:20:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 14718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22977:22:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 14719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23000:22:57", + "memberName": "onSubgraphSignalUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 670, + "src": "22977:45:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) external returns (uint256)" + } + }, + "id": 14721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22977:67:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14722, + "nodeType": "ExpressionStatement", + "src": "22977:67:57" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14728, + "name": "_curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17719, + "src": "23158:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", + "typeString": "function () view returns (contract ICuration)" + } + }, + "id": 14729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23158:11:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + ], + "id": 14727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23150:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23150:7:57", + "typeDescriptions": {} + } + }, + "id": 14730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23150:20:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14731, + "name": "tokensCurators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "23172:14:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14723, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "23125:11:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 14724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23125:13:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 14725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23139:10:57", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "23125:24:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 14732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23125:62:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14733, + "nodeType": "ExpressionStatement", + "src": "23125:62:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14737, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14621, + "src": "23225:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 14738, + "name": "tokensCurators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "23247:14:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14734, + "name": "_curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17719, + "src": "23205:9:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", + "typeString": "function () view returns (contract ICuration)" + } + }, + "id": 14735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23205:11:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "id": 14736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23217:7:57", + "memberName": "collect", + "nodeType": "MemberAccess", + "referencedDeclaration": 102, + "src": "23205:19:57", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,uint256) external" + } + }, + "id": 14739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23205:57:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14740, + "nodeType": "ExpressionStatement", + "src": "23205:57:57" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 14746, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "23334:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 14747, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14536, + "src": "23355:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14748, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23365:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "23355:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23369:5:57", + "memberName": "payer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2507, + "src": "23355:19:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14750, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14584, + "src": "23388:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14751, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14621, + "src": "23414:20:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 14752, + "name": "tokensCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14631, + "src": "23448:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14753, + "name": "tokensCurators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "23477:14:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "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": 14745, + "name": "QueryFeesCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15409, + "src": "23302:18:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,bytes32,uint256,uint256)" + } + }, + "id": 14754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23302:199:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14755, + "nodeType": "EmitStatement", + "src": "23297:204:57" + }, + { + "expression": { + "id": 14756, + "name": "tokensCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14631, + "src": "23518:15:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14531, + "id": 14757, + "nodeType": "Return", + "src": "23511:22:57" + } + ] + }, + "documentation": { + "id": 14523, + "nodeType": "StructuredDocumentation", + "src": "18817:1652:57", + "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 {GraphTallyCollector} 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 indexer The address of the indexer\n @param data Encoded data:\n - IGraphTallyCollector.SignedRAV `signedRav`: The signed RAV\n - uint256 `tokensToCollect`: The amount of tokens to collect. Allows partially collecting a RAV. If 0, the entire RAV will\n be collected.\n @return The amount of fees collected" + }, + "id": 14759, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_collectQueryFees", + "nameLocation": "20483:17:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14525, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "20509:7:57", + "nodeType": "VariableDeclaration", + "scope": 14759, + "src": "20501:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20501:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14527, + "mutability": "mutable", + "name": "data", + "nameLocation": "20533:4:57", + "nodeType": "VariableDeclaration", + "scope": 14759, + "src": "20518:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14526, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20518:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "20500:38:57" + }, + "returnParameters": { + "id": 14531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14530, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14759, + "src": "20556:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20556:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20555:9:57" + }, + "scope": 14879, + "src": "20474:3066:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 14811, + "nodeType": "Block", + "src": "24074:401:57", + "statements": [ + { + "assignments": [ + 14770, + 14772, + 14774 + ], + "declarations": [ + { + "constant": false, + "id": 14770, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "24093:12:57", + "nodeType": "VariableDeclaration", + "scope": 14811, + "src": "24085:20:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24085:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14772, + "mutability": "mutable", + "name": "poi_", + "nameLocation": "24115:4:57", + "nodeType": "VariableDeclaration", + "scope": 14811, + "src": "24107:12:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14771, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "24107:7:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14774, + "mutability": "mutable", + "name": "poiMetadata_", + "nameLocation": "24134:12:57", + "nodeType": "VariableDeclaration", + "scope": 14811, + "src": "24121:25:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14773, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24121:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 14786, + "initialValue": { + "arguments": [ + { + "id": 14777, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14764, + "src": "24161:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 14779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24168:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24168:7:57", + "typeDescriptions": {} + } + }, + { + "id": 14781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24177:7:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 14780, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "24177:7:57", + "typeDescriptions": {} + } + }, + { + "id": 14783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24186:5:57", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 14782, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24186:5:57", + "typeDescriptions": {} + } + } + ], + "id": 14784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24167:25:57", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes32),type(bytes storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes32),type(bytes storage pointer))" + } + ], + "expression": { + "id": 14775, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "24150:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 14776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24154:6:57", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "24150:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 14785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24150:43:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes32_$_t_bytes_memory_ptr_$", + "typeString": "tuple(address payable,bytes32,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24084:109:57" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 14790, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14770, + "src": "24241:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 14788, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "24224:12:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 14789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24237:3:57", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "24224:16:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 14791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24224:30:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 14792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24255:7:57", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "24224:38:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 14793, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14762, + "src": "24266:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "24224:49:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 14796, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14762, + "src": "24326:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14797, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14770, + "src": "24335:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14795, + "name": "SubgraphServiceAllocationNotAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15472, + "src": "24287:38:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 14798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24287:61:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14787, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "24203:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24203:155:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14800, + "nodeType": "ExpressionStatement", + "src": "24203:155:57" + }, + { + "expression": { + "arguments": [ + { + "id": 14802, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14770, + "src": "24387:12:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14803, + "name": "poi_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14772, + "src": "24401:4:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 14804, + "name": "poiMetadata_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14774, + "src": "24407:12:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 14805, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "24421:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "baseExpression": { + "id": 14806, + "name": "paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14901, + "src": "24439:19:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 14808, + "indexExpression": { + "id": 14807, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14762, + "src": "24459:7:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24439:28:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14801, + "name": "_presentPOI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17044, + "src": "24375:11:57", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint32_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,bytes32,bytes memory,uint32,address) returns (uint256)" + } + }, + "id": 14809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24375:93:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14768, + "id": 14810, + "nodeType": "Return", + "src": "24368:100:57" + } + ] + }, + "documentation": { + "id": 14760, + "nodeType": "StructuredDocumentation", + "src": "23546:426:57", + "text": " @notice Collect indexing rewards\n @param indexer The address of the indexer\n @param data Encoded data:\n - address `allocationId`: The id of the allocation\n - bytes32 `poi`: The POI being presented\n - bytes `poiMetadata`: The metadata associated with the POI. See {AllocationManager-_presentPOI} for more details.\n @return The amount of indexing rewards collected" + }, + "id": 14812, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_collectIndexingRewards", + "nameLocation": "23986:23:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14762, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "24018:7:57", + "nodeType": "VariableDeclaration", + "scope": 14812, + "src": "24010:15:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24010:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14764, + "mutability": "mutable", + "name": "data", + "nameLocation": "24042:4:57", + "nodeType": "VariableDeclaration", + "scope": 14812, + "src": "24027:19:57", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14763, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24027:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24009:38:57" + }, + "returnParameters": { + "id": 14768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14767, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14812, + "src": "24065:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24065:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "24064:9:57" + }, + "scope": 14879, + "src": "23977:498:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 14831, + "nodeType": "Block", + "src": "24845:138:57", + "statements": [ + { + "expression": { + "id": 14824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 14820, + "name": "paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14901, + "src": "24855:19:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 14822, + "indexExpression": { + "id": 14821, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14815, + "src": "24875:8:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "24855:29:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14823, + "name": "_paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14817, + "src": "24887:20:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "24855:52:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 14825, + "nodeType": "ExpressionStatement", + "src": "24855:52:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 14827, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14815, + "src": "24945:8:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 14828, + "name": "_paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14817, + "src": "24955:20:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14826, + "name": "PaymentsDestinationSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15416, + "src": "24922:22:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 14829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24922:54:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14830, + "nodeType": "EmitStatement", + "src": "24917:59:57" + } + ] + }, + "documentation": { + "id": 14813, + "nodeType": "StructuredDocumentation", + "src": "24481:269:57", + "text": " @notice Sets the payments destination for an indexer to receive payments\n @dev Emits a {PaymentsDestinationSet} event\n @param _indexer The address of the indexer\n @param _paymentsDestination The address where payments should be sent" + }, + "id": 14832, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setPaymentsDestination", + "nameLocation": "24764:23:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14815, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "24796:8:57", + "nodeType": "VariableDeclaration", + "scope": 14832, + "src": "24788:16:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24788:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14817, + "mutability": "mutable", + "name": "_paymentsDestination", + "nameLocation": "24814:20:57", + "nodeType": "VariableDeclaration", + "scope": 14832, + "src": "24806:28:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24806:7:57", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "24787:48:57" + }, + "returnParameters": { + "id": 14819, + "nodeType": "ParameterList", + "parameters": [], + "src": "24845:0:57" + }, + "scope": 14879, + "src": "24755:228:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14854, + "nodeType": "Block", + "src": "25170:193:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14839, + "name": "_stakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14835, + "src": "25188:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 14840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25209:1:57", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25188:22:57", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14842, + "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15492, + "src": "25212:42:57", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 14843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25212:44:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 14838, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "25180:7:57", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 14844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25180:77:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14845, + "nodeType": "ExpressionStatement", + "src": "25180:77:57" + }, + { + "expression": { + "id": 14848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14846, + "name": "stakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14893, + "src": "25267:16:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14847, + "name": "_stakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14835, + "src": "25286:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25267:36:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14849, + "nodeType": "ExpressionStatement", + "src": "25267:36:57" + }, + { + "eventCall": { + "arguments": [ + { + "id": 14851, + "name": "_stakeToFeesRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14835, + "src": "25338:17:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14850, + "name": "StakeToFeesRatioSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15421, + "src": "25318:19:57", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 14852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25318:38:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14853, + "nodeType": "EmitStatement", + "src": "25313:43:57" + } + ] + }, + "documentation": { + "id": 14833, + "nodeType": "StructuredDocumentation", + "src": "24989:111:57", + "text": " @notice Set the stake to fees ratio.\n @param _stakeToFeesRatio The stake to fees ratio" + }, + "id": 14855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setStakeToFeesRatio", + "nameLocation": "25114:20:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14835, + "mutability": "mutable", + "name": "_stakeToFeesRatio", + "nameLocation": "25143:17:57", + "nodeType": "VariableDeclaration", + "scope": 14855, + "src": "25135:25:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25135:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "25134:27:57" + }, + "returnParameters": { + "id": 14837, + "nodeType": "ParameterList", + "parameters": [], + "src": "25170:0:57" + }, + "scope": 14879, + "src": "25105:258:57", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 14877, + "nodeType": "Block", + "src": "25798:110:57", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 14868, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14859, + "src": "25826:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + { + "id": 14869, + "name": "curationCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14861, + "src": "25837:11:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 14870, + "name": "paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14901, + "src": "25850:19:57", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 14874, + "indexExpression": { + "expression": { + "expression": { + "id": 14871, + "name": "signedRav", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14859, + "src": "25870:9:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + } + }, + "id": 14872, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25880:3:57", + "memberName": "rav", + "nodeType": "MemberAccess", + "referencedDeclaration": 2522, + "src": "25870:13:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2518_memory_ptr", + "typeString": "struct IGraphTallyCollector.ReceiptAggregateVoucher memory" + } + }, + "id": 14873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25884:15:57", + "memberName": "serviceProvider", + "nodeType": "MemberAccess", + "referencedDeclaration": 2509, + "src": "25870:29:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25850:50:57", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 14866, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "25815:3:57", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 14867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "25819:6:57", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "25815:10:57", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 14875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25815:86:57", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 14865, + "id": 14876, + "nodeType": "Return", + "src": "25808:93:57" + } + ] + }, + "documentation": { + "id": 14856, + "nodeType": "StructuredDocumentation", + "src": "25369:265:57", + "text": " @notice Encodes the data for the GraphTallyCollector\n @dev The purpose of this function is just to avoid stack too deep errors\n @param signedRav The signed RAV\n @param curationCut The curation cut\n @return The encoded data" + }, + "id": 14878, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_encodeGraphTallyData", + "nameLocation": "25648:21:57", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14859, + "mutability": "mutable", + "name": "signedRav", + "nameLocation": "25717:9:57", + "nodeType": "VariableDeclaration", + "scope": 14878, + "src": "25679:47:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_memory_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + }, + "typeName": { + "id": 14858, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14857, + "name": "IGraphTallyCollector.SignedRAV", + "nameLocations": [ + "25679:20:57", + "25700:9:57" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2525, + "src": "25679:30:57" + }, + "referencedDeclaration": 2525, + "src": "25679:30:57", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedRAV_$2525_storage_ptr", + "typeString": "struct IGraphTallyCollector.SignedRAV" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14861, + "mutability": "mutable", + "name": "curationCut", + "nameLocation": "25744:11:57", + "nodeType": "VariableDeclaration", + "scope": 14878, + "src": "25736:19:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25736:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "25669:92:57" + }, + "returnParameters": { + "id": 14865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14864, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14878, + "src": "25784:12:57", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14863, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25784:5:57", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25783:14:57" + }, + "scope": 14879, + "src": "25639:269:57", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 14880, + "src": "1972:23938:57", + "usedErrors": [ + 1610, + 1613, + 1639, + 1646, + 1667, + 1918, + 1925, + 1932, + 1937, + 4104, + 4107, + 4110, + 4113, + 4464, + 4655, + 4959, + 4964, + 5140, + 5143, + 5579, + 5582, + 6157, + 6420, + 7894, + 7899, + 7904, + 15431, + 15434, + 15437, + 15440, + 15445, + 15451, + 15458, + 15465, + 15472, + 15479, + 15484, + 15489, + 15492, + 15497, + 15668, + 15673, + 15680, + 16310, + 16615, + 16618, + 16623, + 16630, + 17612 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1585, + 1596, + 1605, + 1634, + 1888, + 1893, + 1900, + 1907, + 4650, + 4970, + 5148, + 5571, + 5576, + 6049, + 15409, + 15416, + 15421, + 15426, + 16547, + 16568, + 16581, + 16594, + 16603, + 16608, + 17605 + ] + } + ], + "src": "45:25866:57" + }, + "id": 57 + }, + "contracts/SubgraphServiceStorage.sol": { + "ast": { + "absolutePath": "contracts/SubgraphServiceStorage.sol", + "exportedSymbols": { + "ISubgraphService": [ + 15634 + ], + "SubgraphServiceV1Storage": [ + 14902 + ] + }, + "id": 14903, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14881, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:58" + }, + { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "file": "./interfaces/ISubgraphService.sol", + "id": 14883, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14903, + "sourceUnit": 15635, + "src": "70:69:58", + "symbolAliases": [ + { + "foreign": { + "id": 14882, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "79:16:58", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "SubgraphServiceV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 14884, + "nodeType": "StructuredDocumentation", + "src": "141:272:58", + "text": " @title SubgraphServiceStorage\n @notice This contract holds all the storage variables for the Subgraph Service 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": 14902, + "linearizedBaseContracts": [ + 14902 + ], + "name": "SubgraphServiceV1Storage", + "nameLocation": "432:24:58", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 14885, + "nodeType": "StructuredDocumentation", + "src": "463:60:58", + "text": "@notice Service providers registered in the data service" + }, + "functionSelector": "4f793cdc", + "id": 14890, + "mutability": "mutable", + "name": "indexers", + "nameLocation": "596:8:58", + "nodeType": "VariableDeclaration", + "scope": 14902, + "src": "528:76:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$15394_storage_$", + "typeString": "mapping(address => struct ISubgraphService.Indexer)" + }, + "typeName": { + "id": 14889, + "keyName": "indexer", + "keyNameLocation": "544:7:58", + "keyType": { + "id": 14886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "536:7:58", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "528:60:58", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$15394_storage_$", + "typeString": "mapping(address => struct ISubgraphService.Indexer)" + }, + "valueName": "details", + "valueNameLocation": "580:7:58", + "valueType": { + "id": 14888, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14887, + "name": "ISubgraphService.Indexer", + "nameLocations": [ + "555:16:58", + "572:7:58" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15394, + "src": "555:24:58" + }, + "referencedDeclaration": 15394, + "src": "555:24:58", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Indexer_$15394_storage_ptr", + "typeString": "struct ISubgraphService.Indexer" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 14891, + "nodeType": "StructuredDocumentation", + "src": "611:67:58", + "text": "@notice Multiplier for how many tokens back collected query fees" + }, + "functionSelector": "d07a7a84", + "id": 14893, + "mutability": "mutable", + "name": "stakeToFeesRatio", + "nameLocation": "698:16:58", + "nodeType": "VariableDeclaration", + "scope": 14902, + "src": "683:31:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "683:7:58", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 14894, + "nodeType": "StructuredDocumentation", + "src": "721:66:58", + "text": "@notice The cut curators take from query fee payments. In PPM." + }, + "functionSelector": "138dea08", + "id": 14896, + "mutability": "mutable", + "name": "curationFeesCut", + "nameLocation": "807:15:58", + "nodeType": "VariableDeclaration", + "scope": 14902, + "src": "792:30:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "792:7:58", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 14897, + "nodeType": "StructuredDocumentation", + "src": "829:43:58", + "text": "@notice Destination of indexer payments" + }, + "functionSelector": "07e736d8", + "id": 14901, + "mutability": "mutable", + "name": "paymentsDestination", + "nameLocation": "932:19:58", + "nodeType": "VariableDeclaration", + "scope": 14902, + "src": "877:74:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 14900, + "keyName": "indexer", + "keyNameLocation": "893:7:58", + "keyType": { + "id": 14898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:58", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "877:47:58", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "destination", + "valueNameLocation": "912:11:58", + "valueType": { + "id": 14899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "904:7:58", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "public" + } + ], + "scope": 14903, + "src": "414:540:58", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:910:58" + }, + "id": 58 + }, + "contracts/interfaces/IDisputeManager.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDisputeManager.sol", + "exportedSymbols": { + "Attestation": [ + 16290 + ], + "IDisputeManager": [ + 15373 + ] + }, + "id": 15374, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14904, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "46:23:59" + }, + { + "absolutePath": "contracts/libraries/Attestation.sol", + "file": "../libraries/Attestation.sol", + "id": 14906, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15374, + "sourceUnit": 16291, + "src": "71:59:59", + "symbolAliases": [ + { + "foreign": { + "id": 14905, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "80:11:59", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDisputeManager", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 14907, + "nodeType": "StructuredDocumentation", + "src": "132:230:59", + "text": " @title IDisputeManager\n @notice Interface for the {Dispute Manager} 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": false, + "id": 15373, + "linearizedBaseContracts": [ + 15373 + ], + "name": "IDisputeManager", + "nameLocation": "373:15:59", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IDisputeManager.DisputeType", + "documentation": { + "id": 14908, + "nodeType": "StructuredDocumentation", + "src": "395:49:59", + "text": "@notice Types of disputes that can be created" + }, + "id": 14913, + "members": [ + { + "id": 14909, + "name": "Null", + "nameLocation": "476:4:59", + "nodeType": "EnumValue", + "src": "476:4:59" + }, + { + "id": 14910, + "name": "IndexingDispute", + "nameLocation": "490:15:59", + "nodeType": "EnumValue", + "src": "490:15:59" + }, + { + "id": 14911, + "name": "QueryDispute", + "nameLocation": "515:12:59", + "nodeType": "EnumValue", + "src": "515:12:59" + }, + { + "id": 14912, + "name": "LegacyDispute", + "nameLocation": "537:13:59", + "nodeType": "EnumValue", + "src": "537:13:59" + } + ], + "name": "DisputeType", + "nameLocation": "454:11:59", + "nodeType": "EnumDefinition", + "src": "449:107:59" + }, + { + "canonicalName": "IDisputeManager.DisputeStatus", + "documentation": { + "id": 14914, + "nodeType": "StructuredDocumentation", + "src": "562:31:59", + "text": "@notice Status of a dispute" + }, + "id": 14921, + "members": [ + { + "id": 14915, + "name": "Null", + "nameLocation": "627:4:59", + "nodeType": "EnumValue", + "src": "627:4:59" + }, + { + "id": 14916, + "name": "Accepted", + "nameLocation": "641:8:59", + "nodeType": "EnumValue", + "src": "641:8:59" + }, + { + "id": 14917, + "name": "Rejected", + "nameLocation": "659:8:59", + "nodeType": "EnumValue", + "src": "659:8:59" + }, + { + "id": 14918, + "name": "Drawn", + "nameLocation": "677:5:59", + "nodeType": "EnumValue", + "src": "677:5:59" + }, + { + "id": 14919, + "name": "Pending", + "nameLocation": "692:7:59", + "nodeType": "EnumValue", + "src": "692:7:59" + }, + { + "id": 14920, + "name": "Cancelled", + "nameLocation": "709:9:59", + "nodeType": "EnumValue", + "src": "709:9:59" + } + ], + "name": "DisputeStatus", + "nameLocation": "603:13:59", + "nodeType": "EnumDefinition", + "src": "598:126:59" + }, + { + "canonicalName": "IDisputeManager.Dispute", + "documentation": { + "id": 14922, + "nodeType": "StructuredDocumentation", + "src": "730:724:59", + "text": " @notice Dispute details\n @param indexer The indexer that is being disputed\n @param fisherman The fisherman that created the dispute\n @param deposit The amount of tokens deposited by the fisherman\n @param relatedDisputeId The link to a related dispute, used when creating dispute via conflicting attestations\n @param disputeType The type of dispute\n @param status The status of the dispute\n @param createdAt The timestamp when the dispute was created\n @param cancellableAt The timestamp when the dispute can be cancelled\n @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute (includes delegation up to the delegation ratio)" + }, + "id": 14943, + "members": [ + { + "constant": false, + "id": 14924, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "1492:7:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1484:15:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1484:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14926, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "1517:9:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1509:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14928, + "mutability": "mutable", + "name": "deposit", + "nameLocation": "1544:7:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1536:15:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1536:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14930, + "mutability": "mutable", + "name": "relatedDisputeId", + "nameLocation": "1569:16:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1561:24:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14929, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1561:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14933, + "mutability": "mutable", + "name": "disputeType", + "nameLocation": "1607:11:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1595:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + }, + "typeName": { + "id": 14932, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14931, + "name": "DisputeType", + "nameLocations": [ + "1595:11:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14913, + "src": "1595:11:59" + }, + "referencedDeclaration": 14913, + "src": "1595:11:59", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeType_$14913", + "typeString": "enum IDisputeManager.DisputeType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14936, + "mutability": "mutable", + "name": "status", + "nameLocation": "1642:6:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1628:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + "typeName": { + "id": 14935, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14934, + "name": "DisputeStatus", + "nameLocations": [ + "1628:13:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14921, + "src": "1628:13:59" + }, + "referencedDeclaration": 14921, + "src": "1628:13:59", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14938, + "mutability": "mutable", + "name": "createdAt", + "nameLocation": "1666:9:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1658:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1658:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14940, + "mutability": "mutable", + "name": "cancellableAt", + "nameLocation": "1693:13:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1685:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1685:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14942, + "mutability": "mutable", + "name": "stakeSnapshot", + "nameLocation": "1724:13:59", + "nodeType": "VariableDeclaration", + "scope": 14943, + "src": "1716:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1716:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Dispute", + "nameLocation": "1466:7:59", + "nodeType": "StructDefinition", + "scope": 15373, + "src": "1459:285:59", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 14944, + "nodeType": "StructuredDocumentation", + "src": "1750:114:59", + "text": " @notice Emitted when arbitrator is set.\n @param arbitrator The address of the arbitrator." + }, + "eventSelector": "51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e", + "id": 14948, + "name": "ArbitratorSet", + "nameLocation": "1875:13:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14946, + "indexed": true, + "mutability": "mutable", + "name": "arbitrator", + "nameLocation": "1905:10:59", + "nodeType": "VariableDeclaration", + "scope": 14948, + "src": "1889:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1889:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1888:28:59" + }, + "src": "1869:48:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14949, + "nodeType": "StructuredDocumentation", + "src": "1923:121:59", + "text": " @notice Emitted when dispute period is set.\n @param disputePeriod The dispute period in seconds." + }, + "eventSelector": "310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6", + "id": 14953, + "name": "DisputePeriodSet", + "nameLocation": "2055:16:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14951, + "indexed": false, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "2079:13:59", + "nodeType": "VariableDeclaration", + "scope": 14953, + "src": "2072:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14950, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2072:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2071:22:59" + }, + "src": "2049:45:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14954, + "nodeType": "StructuredDocumentation", + "src": "2100:142:59", + "text": " @notice Emitted when dispute deposit is set.\n @param disputeDeposit The dispute deposit required to create a dispute." + }, + "eventSelector": "97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8", + "id": 14958, + "name": "DisputeDepositSet", + "nameLocation": "2253:17:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14956, + "indexed": false, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "2279:14:59", + "nodeType": "VariableDeclaration", + "scope": 14958, + "src": "2271:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2271:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2270:24:59" + }, + "src": "2247:48:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14959, + "nodeType": "StructuredDocumentation", + "src": "2301:135:59", + "text": " @notice Emitted when max slashing cut is set.\n @param maxSlashingCut The maximum slashing cut that can be set." + }, + "eventSelector": "7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502", + "id": 14963, + "name": "MaxSlashingCutSet", + "nameLocation": "2447:17:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14961, + "indexed": false, + "mutability": "mutable", + "name": "maxSlashingCut", + "nameLocation": "2472:14:59", + "nodeType": "VariableDeclaration", + "scope": 14963, + "src": "2465:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14960, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2465:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "2464:23:59" + }, + "src": "2441:47:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14964, + "nodeType": "StructuredDocumentation", + "src": "2494:127:59", + "text": " @notice Emitted when fisherman reward cut is set.\n @param fishermanRewardCut The fisherman reward cut." + }, + "eventSelector": "c573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab", + "id": 14968, + "name": "FishermanRewardCutSet", + "nameLocation": "2632:21:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14966, + "indexed": false, + "mutability": "mutable", + "name": "fishermanRewardCut", + "nameLocation": "2661:18:59", + "nodeType": "VariableDeclaration", + "scope": 14968, + "src": "2654:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14965, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2654:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "2653:27:59" + }, + "src": "2626:55:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14969, + "nodeType": "StructuredDocumentation", + "src": "2687:131:59", + "text": " @notice Emitted when subgraph service is set.\n @param subgraphService The address of the subgraph service." + }, + "eventSelector": "81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c7", + "id": 14973, + "name": "SubgraphServiceSet", + "nameLocation": "2829:18:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14971, + "indexed": true, + "mutability": "mutable", + "name": "subgraphService", + "nameLocation": "2864:15:59", + "nodeType": "VariableDeclaration", + "scope": 14973, + "src": "2848:31:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2848:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2847:33:59" + }, + "src": "2823:58:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14974, + "nodeType": "StructuredDocumentation", + "src": "2887:694:59", + "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.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens deposited by the fisherman\n @param subgraphDeploymentId The subgraph deployment id\n @param attestation The attestation\n @param cancellableAt The timestamp when the dispute can be cancelled\n @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute" + }, + "eventSelector": "fb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b35", + "id": 14992, + "name": "QueryDisputeCreated", + "nameLocation": "3592:19:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 14991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14976, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "3637:9:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3621:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14975, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3621:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14978, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "3672:7:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3656:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14977, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3656:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14980, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "3705:9:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3689:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3689:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14982, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "3732:6:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3724:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3724:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14984, + "indexed": false, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "3756:20:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3748:28:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14983, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3748:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14986, + "indexed": false, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "3792:11:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3786:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14985, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3786:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14988, + "indexed": false, + "mutability": "mutable", + "name": "stakeSnapshot", + "nameLocation": "3821:13:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3813:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3813:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14990, + "indexed": false, + "mutability": "mutable", + "name": "cancellableAt", + "nameLocation": "3852:13:59", + "nodeType": "VariableDeclaration", + "scope": 14992, + "src": "3844:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3844:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3611:260:59" + }, + "src": "3586:286:59" + }, + { + "anonymous": false, + "documentation": { + "id": 14993, + "nodeType": "StructuredDocumentation", + "src": "3878:629:59", + "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.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens deposited by the fisherman\n @param allocationId The allocation id\n @param poi The POI\n @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute\n @param cancellableAt The timestamp when the dispute can be cancelled" + }, + "eventSelector": "8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b", + "id": 15011, + "name": "IndexingDisputeCreated", + "nameLocation": "4518:22:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14995, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "4566:9:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4550:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14994, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4550:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14997, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "4601:7:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4585:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4585:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14999, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "4634:9:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4618:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4618:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15001, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "4661:6:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4653:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4653:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15003, + "indexed": false, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4685:12:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4677:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4677:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15005, + "indexed": false, + "mutability": "mutable", + "name": "poi", + "nameLocation": "4715:3:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4707:11:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15004, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4707:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15007, + "indexed": false, + "mutability": "mutable", + "name": "stakeSnapshot", + "nameLocation": "4736:13:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4728:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4728:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15009, + "indexed": false, + "mutability": "mutable", + "name": "cancellableAt", + "nameLocation": "4767:13:59", + "nodeType": "VariableDeclaration", + "scope": 15011, + "src": "4759:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4759:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4540:246:59" + }, + "src": "4512:275:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15012, + "nodeType": "StructuredDocumentation", + "src": "4793:538:59", + "text": " @dev Emitted when a legacy dispute is created for `allocationId` and `fisherman`.\n The event emits the amount of `tokensSlash` to slash and `tokensRewards` to reward the fisherman.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address to be credited with the rewards\n @param allocationId The allocation id\n @param tokensSlash The amount of tokens to slash\n @param tokensRewards The amount of tokens to reward the fisherman" + }, + "eventSelector": "587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed031", + "id": 15026, + "name": "LegacyDisputeCreated", + "nameLocation": "5342:20:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15014, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "5388:9:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5372:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15013, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5372:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15016, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "5423:7:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5407:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5407:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15018, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "5456:9:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5440:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5440:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15020, + "indexed": false, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5483:12:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5475:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15019, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5475:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15022, + "indexed": false, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "5513:11:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5505:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15021, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5505:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15024, + "indexed": false, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "5542:13:59", + "nodeType": "VariableDeclaration", + "scope": 15026, + "src": "5534:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5534:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5362:199:59" + }, + "src": "5336:226:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15027, + "nodeType": "StructuredDocumentation", + "src": "5568:427:59", + "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.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens transferred to the fisherman, the deposit plus reward" + }, + "eventSelector": "6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4", + "id": 15037, + "name": "DisputeAccepted", + "nameLocation": "6006:15:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15029, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "6047:9:59", + "nodeType": "VariableDeclaration", + "scope": 15037, + "src": "6031:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15028, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6031:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15031, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "6082:7:59", + "nodeType": "VariableDeclaration", + "scope": 15037, + "src": "6066:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6066:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15033, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "6115:9:59", + "nodeType": "VariableDeclaration", + "scope": 15037, + "src": "6099:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6099:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15035, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6142:6:59", + "nodeType": "VariableDeclaration", + "scope": 15037, + "src": "6134:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6134:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6021:133:59" + }, + "src": "6000:155:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15038, + "nodeType": "StructuredDocumentation", + "src": "6161:388:59", + "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.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens burned from the fisherman deposit" + }, + "eventSelector": "2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d", + "id": 15048, + "name": "DisputeRejected", + "nameLocation": "6560:15:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15040, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "6601:9:59", + "nodeType": "VariableDeclaration", + "scope": 15048, + "src": "6585:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15039, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6585:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15042, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "6636:7:59", + "nodeType": "VariableDeclaration", + "scope": 15048, + "src": "6620:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15041, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6620:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15044, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "6669:9:59", + "nodeType": "VariableDeclaration", + "scope": 15048, + "src": "6653:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15046, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6696:6:59", + "nodeType": "VariableDeclaration", + "scope": 15048, + "src": "6688:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6688:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6575:133:59" + }, + "src": "6554:155:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15049, + "nodeType": "StructuredDocumentation", + "src": "6715:403:59", + "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.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens returned to the fisherman - the deposit" + }, + "eventSelector": "f0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b7", + "id": 15059, + "name": "DisputeDrawn", + "nameLocation": "7129:12:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15051, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "7158:9:59", + "nodeType": "VariableDeclaration", + "scope": 15059, + "src": "7142:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15050, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7142:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15053, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "7185:7:59", + "nodeType": "VariableDeclaration", + "scope": 15059, + "src": "7169:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7169:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15055, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "7210:9:59", + "nodeType": "VariableDeclaration", + "scope": 15059, + "src": "7194:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15057, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7229:6:59", + "nodeType": "VariableDeclaration", + "scope": 15059, + "src": "7221:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7221:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7141:95:59" + }, + "src": "7123:114:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15060, + "nodeType": "StructuredDocumentation", + "src": "7243:293:59", + "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.\n @param disputeId1 The first dispute id\n @param disputeId2 The second dispute id" + }, + "eventSelector": "fec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba81407", + "id": 15066, + "name": "DisputeLinked", + "nameLocation": "7547:13:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15062, + "indexed": true, + "mutability": "mutable", + "name": "disputeId1", + "nameLocation": "7577:10:59", + "nodeType": "VariableDeclaration", + "scope": 15066, + "src": "7561:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15061, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7561:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15064, + "indexed": true, + "mutability": "mutable", + "name": "disputeId2", + "nameLocation": "7605:10:59", + "nodeType": "VariableDeclaration", + "scope": 15066, + "src": "7589:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15063, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7589:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7560:56:59" + }, + "src": "7541:76:59" + }, + { + "anonymous": false, + "documentation": { + "id": 15067, + "nodeType": "StructuredDocumentation", + "src": "7623:356:59", + "text": " @dev Emitted when a dispute is cancelled by the fisherman.\n The event emits the amount `tokens` returned to the fisherman.\n @param disputeId The dispute id\n @param indexer The indexer address\n @param fisherman The fisherman address\n @param tokens The amount of tokens returned to the fisherman - the deposit" + }, + "eventSelector": "223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2", + "id": 15077, + "name": "DisputeCancelled", + "nameLocation": "7990:16:59", + "nodeType": "EventDefinition", + "parameters": { + "id": 15076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15069, + "indexed": true, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "8032:9:59", + "nodeType": "VariableDeclaration", + "scope": 15077, + "src": "8016:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15068, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8016:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15071, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "8067:7:59", + "nodeType": "VariableDeclaration", + "scope": 15077, + "src": "8051:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8051:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15073, + "indexed": true, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "8100:9:59", + "nodeType": "VariableDeclaration", + "scope": 15077, + "src": "8084:25:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8084:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15075, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "8127:6:59", + "nodeType": "VariableDeclaration", + "scope": 15077, + "src": "8119:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15074, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8119:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8006:133:59" + }, + "src": "7984:156:59" + }, + { + "documentation": { + "id": 15078, + "nodeType": "StructuredDocumentation", + "src": "8167:71:59", + "text": " @notice Thrown when the caller is not the arbitrator" + }, + "errorSelector": "a8baf3bb", + "id": 15080, + "name": "DisputeManagerNotArbitrator", + "nameLocation": "8249:27:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15079, + "nodeType": "ParameterList", + "parameters": [], + "src": "8276:2:59" + }, + "src": "8243:36:59" + }, + { + "documentation": { + "id": 15081, + "nodeType": "StructuredDocumentation", + "src": "8285:70:59", + "text": " @notice Thrown when the caller is not the fisherman" + }, + "errorSelector": "82c00550", + "id": 15083, + "name": "DisputeManagerNotFisherman", + "nameLocation": "8366:26:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15082, + "nodeType": "ParameterList", + "parameters": [], + "src": "8392:2:59" + }, + "src": "8360:35:59" + }, + { + "documentation": { + "id": 15084, + "nodeType": "StructuredDocumentation", + "src": "8401:70:59", + "text": " @notice Thrown when the address is the zero address" + }, + "errorSelector": "c2d78882", + "id": 15086, + "name": "DisputeManagerInvalidZeroAddress", + "nameLocation": "8482:32:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15085, + "nodeType": "ParameterList", + "parameters": [], + "src": "8514:2:59" + }, + "src": "8476:41:59" + }, + { + "documentation": { + "id": 15087, + "nodeType": "StructuredDocumentation", + "src": "8523:65:59", + "text": " @notice Thrown when the dispute period is zero" + }, + "errorSelector": "c4411f11", + "id": 15089, + "name": "DisputeManagerDisputePeriodZero", + "nameLocation": "8599:31:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15088, + "nodeType": "ParameterList", + "parameters": [], + "src": "8630:2:59" + }, + "src": "8593:40:59" + }, + { + "documentation": { + "id": 15090, + "nodeType": "StructuredDocumentation", + "src": "8639:91:59", + "text": " @notice Thrown when the indexer being disputed has no provisioned tokens" + }, + "errorSelector": "60fdfb6e", + "id": 15092, + "name": "DisputeManagerZeroTokens", + "nameLocation": "8741:24:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15091, + "nodeType": "ParameterList", + "parameters": [], + "src": "8765:2:59" + }, + "src": "8735:33:59" + }, + { + "documentation": { + "id": 15093, + "nodeType": "StructuredDocumentation", + "src": "8774:103:59", + "text": " @notice Thrown when the dispute id is invalid\n @param disputeId The dispute id" + }, + "errorSelector": "5280eef4", + "id": 15097, + "name": "DisputeManagerInvalidDispute", + "nameLocation": "8888:28:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15095, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "8925:9:59", + "nodeType": "VariableDeclaration", + "scope": 15097, + "src": "8917:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15094, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8917:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8916:19:59" + }, + "src": "8882:54:59" + }, + { + "documentation": { + "id": 15098, + "nodeType": "StructuredDocumentation", + "src": "8942:158:59", + "text": " @notice Thrown when the dispute deposit is invalid - less than the minimum dispute deposit\n @param disputeDeposit The dispute deposit" + }, + "errorSelector": "033f4e05", + "id": 15102, + "name": "DisputeManagerInvalidDisputeDeposit", + "nameLocation": "9111:35:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15100, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "9155:14:59", + "nodeType": "VariableDeclaration", + "scope": 15102, + "src": "9147:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15099, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9147:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9146:24:59" + }, + "src": "9105:66:59" + }, + { + "documentation": { + "id": 15103, + "nodeType": "StructuredDocumentation", + "src": "9177:117:59", + "text": " @notice Thrown when the fisherman reward cut is invalid\n @param cut The fisherman reward cut" + }, + "errorSelector": "865ccc86", + "id": 15107, + "name": "DisputeManagerInvalidFishermanReward", + "nameLocation": "9305:36:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15105, + "mutability": "mutable", + "name": "cut", + "nameLocation": "9349:3:59", + "nodeType": "VariableDeclaration", + "scope": 15107, + "src": "9342:10:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15104, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "9342:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "9341:12:59" + }, + "src": "9299:55:59" + }, + { + "documentation": { + "id": 15108, + "nodeType": "StructuredDocumentation", + "src": "9360:120:59", + "text": " @notice Thrown when the max slashing cut is invalid\n @param maxSlashingCut The max slashing cut" + }, + "errorSelector": "9d26e9f6", + "id": 15112, + "name": "DisputeManagerInvalidMaxSlashingCut", + "nameLocation": "9491:35:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15110, + "mutability": "mutable", + "name": "maxSlashingCut", + "nameLocation": "9534:14:59", + "nodeType": "VariableDeclaration", + "scope": 15112, + "src": "9527:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15109, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "9527:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "9526:23:59" + }, + "src": "9485:65:59" + }, + { + "documentation": { + "id": 15113, + "nodeType": "StructuredDocumentation", + "src": "9556:159:59", + "text": " @notice Thrown when the tokens slash is invalid\n @param tokensSlash The tokens slash\n @param maxTokensSlash The max tokens slash" + }, + "errorSelector": "cc6b7c41", + "id": 15119, + "name": "DisputeManagerInvalidTokensSlash", + "nameLocation": "9726:32:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15115, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "9767:11:59", + "nodeType": "VariableDeclaration", + "scope": 15119, + "src": "9759:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9759:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15117, + "mutability": "mutable", + "name": "maxTokensSlash", + "nameLocation": "9788:14:59", + "nodeType": "VariableDeclaration", + "scope": 15119, + "src": "9780:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9780:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9758:45:59" + }, + "src": "9720:84:59" + }, + { + "documentation": { + "id": 15120, + "nodeType": "StructuredDocumentation", + "src": "9810:112:59", + "text": " @notice Thrown when the dispute is not pending\n @param status The status of the dispute" + }, + "errorSelector": "51b9503c", + "id": 15125, + "name": "DisputeManagerDisputeNotPending", + "nameLocation": "9933:31:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15123, + "mutability": "mutable", + "name": "status", + "nameLocation": "9995:6:59", + "nodeType": "VariableDeclaration", + "scope": 15125, + "src": "9965:36:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + }, + "typeName": { + "id": 15122, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15121, + "name": "IDisputeManager.DisputeStatus", + "nameLocations": [ + "9965:15:59", + "9981:13:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14921, + "src": "9965:29:59" + }, + "referencedDeclaration": 14921, + "src": "9965:29:59", + "typeDescriptions": { + "typeIdentifier": "t_enum$_DisputeStatus_$14921", + "typeString": "enum IDisputeManager.DisputeStatus" + } + }, + "visibility": "internal" + } + ], + "src": "9964:38:59" + }, + "src": "9927:76:59" + }, + { + "documentation": { + "id": 15126, + "nodeType": "StructuredDocumentation", + "src": "10009:108:59", + "text": " @notice Thrown when the dispute is already created\n @param disputeId The dispute id" + }, + "errorSelector": "249447e2", + "id": 15130, + "name": "DisputeManagerDisputeAlreadyCreated", + "nameLocation": "10128:35:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15128, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10172:9:59", + "nodeType": "VariableDeclaration", + "scope": 15130, + "src": "10164:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15127, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10164:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10163:19:59" + }, + "src": "10122:61:59" + }, + { + "documentation": { + "id": 15131, + "nodeType": "StructuredDocumentation", + "src": "10189:73:59", + "text": " @notice Thrown when the dispute period is not finished" + }, + "errorSelector": "3aeea7aa", + "id": 15133, + "name": "DisputeManagerDisputePeriodNotFinished", + "nameLocation": "10273:38:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15132, + "nodeType": "ParameterList", + "parameters": [], + "src": "10311:2:59" + }, + "src": "10267:47:59" + }, + { + "documentation": { + "id": 15134, + "nodeType": "StructuredDocumentation", + "src": "10320:104:59", + "text": " @notice Thrown when the dispute is in conflict\n @param disputeId The dispute id" + }, + "errorSelector": "64d0c32b", + "id": 15138, + "name": "DisputeManagerDisputeInConflict", + "nameLocation": "10435:31:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15136, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10475:9:59", + "nodeType": "VariableDeclaration", + "scope": 15138, + "src": "10467:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15135, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10467:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10466:19:59" + }, + "src": "10429:57:59" + }, + { + "documentation": { + "id": 15139, + "nodeType": "StructuredDocumentation", + "src": "10492:108:59", + "text": " @notice Thrown when the dispute is not in conflict\n @param disputeId The dispute id" + }, + "errorSelector": "ff29d3f9", + "id": 15143, + "name": "DisputeManagerDisputeNotInConflict", + "nameLocation": "10611:34:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15141, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10654:9:59", + "nodeType": "VariableDeclaration", + "scope": 15143, + "src": "10646:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15140, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10646:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10645:19:59" + }, + "src": "10605:60:59" + }, + { + "documentation": { + "id": 15144, + "nodeType": "StructuredDocumentation", + "src": "10671:160:59", + "text": " @notice Thrown when the dispute must be accepted\n @param disputeId The dispute id\n @param relatedDisputeId The related dispute id" + }, + "errorSelector": "826e2b26", + "id": 15150, + "name": "DisputeManagerMustAcceptRelatedDispute", + "nameLocation": "10842:38:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15146, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "10889:9:59", + "nodeType": "VariableDeclaration", + "scope": 15150, + "src": "10881:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15145, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10881:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15148, + "mutability": "mutable", + "name": "relatedDisputeId", + "nameLocation": "10908:16:59", + "nodeType": "VariableDeclaration", + "scope": 15150, + "src": "10900:24:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15147, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10900:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "10880:45:59" + }, + "src": "10836:90:59" + }, + { + "documentation": { + "id": 15151, + "nodeType": "StructuredDocumentation", + "src": "10932:108:59", + "text": " @notice Thrown when the indexer is not found\n @param allocationId The allocation id" + }, + "errorSelector": "d1e2762c", + "id": 15155, + "name": "DisputeManagerIndexerNotFound", + "nameLocation": "11051:29:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15153, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "11089:12:59", + "nodeType": "VariableDeclaration", + "scope": 15155, + "src": "11081:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11081:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11080:22:59" + }, + "src": "11045:58:59" + }, + { + "documentation": { + "id": 15156, + "nodeType": "StructuredDocumentation", + "src": "11109:255:59", + "text": " @notice Thrown when the subgraph deployment is not matching\n @param subgraphDeploymentId1 The subgraph deployment id of the first attestation\n @param subgraphDeploymentId2 The subgraph deployment id of the second attestation" + }, + "errorSelector": "28933f94", + "id": 15162, + "name": "DisputeManagerNonMatchingSubgraphDeployment", + "nameLocation": "11375:43:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15158, + "mutability": "mutable", + "name": "subgraphDeploymentId1", + "nameLocation": "11427:21:59", + "nodeType": "VariableDeclaration", + "scope": 15162, + "src": "11419:29:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15157, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11419:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15160, + "mutability": "mutable", + "name": "subgraphDeploymentId2", + "nameLocation": "11458:21:59", + "nodeType": "VariableDeclaration", + "scope": 15162, + "src": "11450:29:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15159, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11450:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "11418:62:59" + }, + "src": "11369:112:59" + }, + { + "documentation": { + "id": 15163, + "nodeType": "StructuredDocumentation", + "src": "11487:526:59", + "text": " @notice Thrown when the attestations are not conflicting\n @param requestCID1 The request CID of the first attestation\n @param responseCID1 The response CID of the first attestation\n @param subgraphDeploymentId1 The subgraph deployment id of the first attestation\n @param requestCID2 The request CID of the second attestation\n @param responseCID2 The response CID of the second attestation\n @param subgraphDeploymentId2 The subgraph deployment id of the second attestation" + }, + "errorSelector": "d574a52e", + "id": 15177, + "name": "DisputeManagerNonConflictingAttestations", + "nameLocation": "12024:40:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15165, + "mutability": "mutable", + "name": "requestCID1", + "nameLocation": "12082:11:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12074:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15164, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12074:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15167, + "mutability": "mutable", + "name": "responseCID1", + "nameLocation": "12111:12:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12103:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15166, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12103:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15169, + "mutability": "mutable", + "name": "subgraphDeploymentId1", + "nameLocation": "12141:21:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12133:29:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12133:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15171, + "mutability": "mutable", + "name": "requestCID2", + "nameLocation": "12180:11:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12172:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15170, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12172:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15173, + "mutability": "mutable", + "name": "responseCID2", + "nameLocation": "12209:12:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12201:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15172, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12201:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15175, + "mutability": "mutable", + "name": "subgraphDeploymentId2", + "nameLocation": "12239:21:59", + "nodeType": "VariableDeclaration", + "scope": 15177, + "src": "12231:29:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15174, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12231:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "12064:202:59" + }, + "src": "12018:249:59" + }, + { + "documentation": { + "id": 15178, + "nodeType": "StructuredDocumentation", + "src": "12273:94:59", + "text": " @notice Thrown when attempting to get the subgraph service before it is set" + }, + "errorSelector": "bd088b4f", + "id": 15180, + "name": "DisputeManagerSubgraphServiceNotSet", + "nameLocation": "12378:35:59", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15179, + "nodeType": "ParameterList", + "parameters": [], + "src": "12413:2:59" + }, + "src": "12372:44:59" + }, + { + "documentation": { + "id": 15181, + "nodeType": "StructuredDocumentation", + "src": "12422:430:59", + "text": " @notice Initialize this contract.\n @param owner The owner of the 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": "0bc7344b", + "id": 15196, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "12866:10:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15183, + "mutability": "mutable", + "name": "owner", + "nameLocation": "12894:5:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "12886:13:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12886:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15185, + "mutability": "mutable", + "name": "arbitrator", + "nameLocation": "12917:10:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "12909:18:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12909:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15187, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "12944:13:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "12937:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15186, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12937:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15189, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "12975:14:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "12967:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12967:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15191, + "mutability": "mutable", + "name": "fishermanRewardCut_", + "nameLocation": "13006:19:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "12999:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15190, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12999:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15193, + "mutability": "mutable", + "name": "maxSlashingCut_", + "nameLocation": "13042:15:59", + "nodeType": "VariableDeclaration", + "scope": 15196, + "src": "13035:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15192, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13035:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "12876:187:59" + }, + "returnParameters": { + "id": 15195, + "nodeType": "ParameterList", + "parameters": [], + "src": "13072:0:59" + }, + "scope": 15373, + "src": "12857:216:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15197, + "nodeType": "StructuredDocumentation", + "src": "13079:173:59", + "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": 15202, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDisputePeriod", + "nameLocation": "13266:16:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15199, + "mutability": "mutable", + "name": "disputePeriod", + "nameLocation": "13290:13:59", + "nodeType": "VariableDeclaration", + "scope": 15202, + "src": "13283:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15198, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13283:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13282:22:59" + }, + "returnParameters": { + "id": 15201, + "nodeType": "ParameterList", + "parameters": [], + "src": "13313:0:59" + }, + "scope": 15373, + "src": "13257:57:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15203, + "nodeType": "StructuredDocumentation", + "src": "13320:179:59", + "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": 15208, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setArbitrator", + "nameLocation": "13513:13:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15205, + "mutability": "mutable", + "name": "arbitrator", + "nameLocation": "13535:10:59", + "nodeType": "VariableDeclaration", + "scope": 15208, + "src": "13527:18:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13527:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "13526:20:59" + }, + "returnParameters": { + "id": 15207, + "nodeType": "ParameterList", + "parameters": [], + "src": "13555:0:59" + }, + "scope": 15373, + "src": "13504:52:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15209, + "nodeType": "StructuredDocumentation", + "src": "13562:218:59", + "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": 15214, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDisputeDeposit", + "nameLocation": "13794:17:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15211, + "mutability": "mutable", + "name": "disputeDeposit", + "nameLocation": "13820:14:59", + "nodeType": "VariableDeclaration", + "scope": 15214, + "src": "13812:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15210, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13812:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13811:24:59" + }, + "returnParameters": { + "id": 15213, + "nodeType": "ParameterList", + "parameters": [], + "src": "13844:0:59" + }, + "scope": 15373, + "src": "13785:60:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15215, + "nodeType": "StructuredDocumentation", + "src": "13851:227:59", + "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": 15220, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFishermanRewardCut", + "nameLocation": "14092:21:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15217, + "mutability": "mutable", + "name": "fishermanRewardCut_", + "nameLocation": "14121:19:59", + "nodeType": "VariableDeclaration", + "scope": 15220, + "src": "14114:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15216, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14114:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "14113:28:59" + }, + "returnParameters": { + "id": 15219, + "nodeType": "ParameterList", + "parameters": [], + "src": "14150:0:59" + }, + "scope": 15373, + "src": "14083:68:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15221, + "nodeType": "StructuredDocumentation", + "src": "14157:160:59", + "text": " @notice Set the maximum percentage that can be used for slashing indexers.\n @param maxSlashingCut_ Max percentage slashing for disputes" + }, + "functionSelector": "9f81a7cf", + "id": 15226, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMaxSlashingCut", + "nameLocation": "14331:17:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15223, + "mutability": "mutable", + "name": "maxSlashingCut_", + "nameLocation": "14356:15:59", + "nodeType": "VariableDeclaration", + "scope": 15226, + "src": "14349:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15222, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14349:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "14348:24:59" + }, + "returnParameters": { + "id": 15225, + "nodeType": "ParameterList", + "parameters": [], + "src": "14381:0:59" + }, + "scope": 15373, + "src": "14322:60:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15227, + "nodeType": "StructuredDocumentation", + "src": "14388:197:59", + "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": 15232, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubgraphService", + "nameLocation": "14599:18:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15229, + "mutability": "mutable", + "name": "subgraphService", + "nameLocation": "14626:15:59", + "nodeType": "VariableDeclaration", + "scope": 15232, + "src": "14618:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14618:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14617:25:59" + }, + "returnParameters": { + "id": 15231, + "nodeType": "ParameterList", + "parameters": [], + "src": "14651:0:59" + }, + "scope": 15373, + "src": "14590:62:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15233, + "nodeType": "StructuredDocumentation", + "src": "14680:448:59", + "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\n @return The dispute id" + }, + "functionSelector": "c50a77b1", + "id": 15240, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createQueryDispute", + "nameLocation": "15142:18:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15235, + "mutability": "mutable", + "name": "attestationData", + "nameLocation": "15176:15:59", + "nodeType": "VariableDeclaration", + "scope": 15240, + "src": "15161:30:59", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 15234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15161:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "15160:32:59" + }, + "returnParameters": { + "id": 15239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15238, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15240, + "src": "15211:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15237, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15211:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "15210:9:59" + }, + "scope": 15373, + "src": "15133:87:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15241, + "nodeType": "StructuredDocumentation", + "src": "15226:974:59", + "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 Two linked disputes will be created and if the arbitrator resolve one, the other\n one will be automatically resolved. Note that:\n - it's not possible to reject a conflicting query dispute as by definition at least one\n of the attestations is incorrect.\n - if both attestations are proven to be incorrect, the arbitrator can slash the indexer twice.\n Requirements:\n - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n of tokens from their balance.\n @param attestationData1 First attestation data submitted\n @param attestationData2 Second attestation data submitted\n @return The first dispute id\n @return The second dispute id" + }, + "functionSelector": "c894222e", + "id": 15252, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createQueryDisputeConflict", + "nameLocation": "16214:26:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15243, + "mutability": "mutable", + "name": "attestationData1", + "nameLocation": "16265:16:59", + "nodeType": "VariableDeclaration", + "scope": 15252, + "src": "16250:31:59", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 15242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16250:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15245, + "mutability": "mutable", + "name": "attestationData2", + "nameLocation": "16306:16:59", + "nodeType": "VariableDeclaration", + "scope": 15252, + "src": "16291:31:59", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 15244, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16291:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "16240:88:59" + }, + "returnParameters": { + "id": 15251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15248, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15252, + "src": "16347:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15247, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16347:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15250, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15252, + "src": "16356:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15249, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16356:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "16346:18:59" + }, + "scope": 15373, + "src": "16205:160:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15253, + "nodeType": "StructuredDocumentation", + "src": "16371:604:59", + "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\n @return The dispute id" + }, + "functionSelector": "4bc5839a", + "id": 15262, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createIndexingDispute", + "nameLocation": "16989:21:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15255, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "17019:12:59", + "nodeType": "VariableDeclaration", + "scope": 15262, + "src": "17011:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17011:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15257, + "mutability": "mutable", + "name": "poi", + "nameLocation": "17041:3:59", + "nodeType": "VariableDeclaration", + "scope": 15262, + "src": "17033:11:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15256, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17033:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17010:35:59" + }, + "returnParameters": { + "id": 15261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15260, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15262, + "src": "17064:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15259, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17064:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17063:9:59" + }, + "scope": 15373, + "src": "16980:93:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15263, + "nodeType": "StructuredDocumentation", + "src": "17079:1363:59", + "text": " @notice Creates and auto-accepts a legacy dispute.\n This disputes can be created to settle outstanding slashing amounts with an indexer that has been\n \"legacy slashed\" during or shortly after the transition period. See {HorizonStakingExtension.legacySlash}\n for more details.\n Note that this type of dispute:\n - can only be created by the arbitrator\n - does not require a bond\n - is automatically accepted when created\n Additionally, note that this type of disputes allow the arbitrator to directly set the slash and rewards\n amounts, bypassing the usual mechanisms that impose restrictions on those. This is done to give arbitrators\n maximum flexibility to ensure outstanding slashing amounts are settled fairly. This function needs to be removed\n after the transition period.\n Requirements:\n - Indexer must have been legacy slashed during or shortly after the transition period\n - Indexer must have provisioned funds to the Subgraph Service\n @param allocationId The allocation to dispute\n @param fisherman The fisherman address to be credited with the rewards\n @param tokensSlash The amount of tokens to slash\n @param tokensRewards The amount of tokens to reward the fisherman\n @return The dispute id" + }, + "functionSelector": "8d4e9008", + "id": 15276, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createAndAcceptLegacyDispute", + "nameLocation": "18456:28:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15265, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "18502:12:59", + "nodeType": "VariableDeclaration", + "scope": 15276, + "src": "18494:20:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18494:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15267, + "mutability": "mutable", + "name": "fisherman", + "nameLocation": "18532:9:59", + "nodeType": "VariableDeclaration", + "scope": 15276, + "src": "18524:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18524:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15269, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "18559:11:59", + "nodeType": "VariableDeclaration", + "scope": 15276, + "src": "18551:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18551:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15271, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "18588:13:59", + "nodeType": "VariableDeclaration", + "scope": 15276, + "src": "18580:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15270, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18580:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18484:123:59" + }, + "returnParameters": { + "id": 15275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15274, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15276, + "src": "18626:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18626:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "18625:9:59" + }, + "scope": 15373, + "src": "18447:188:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15277, + "nodeType": "StructuredDocumentation", + "src": "18666:649:59", + "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 This function will also revert if the dispute is in conflict, to accept a conflicting dispute\n use acceptDisputeConflict.\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": 15284, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptDispute", + "nameLocation": "19329:13:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15279, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "19351:9:59", + "nodeType": "VariableDeclaration", + "scope": 15284, + "src": "19343:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15278, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19343:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15281, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "19370:11:59", + "nodeType": "VariableDeclaration", + "scope": 15284, + "src": "19362:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19362:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19342:40:59" + }, + "returnParameters": { + "id": 15283, + "nodeType": "ParameterList", + "parameters": [], + "src": "19391:0:59" + }, + "scope": 15373, + "src": "19320:72:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15285, + "nodeType": "StructuredDocumentation", + "src": "19398:770:59", + "text": " @notice The arbitrator accepts a conflicting 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.\n @param disputeId Id of the dispute to be accepted\n @param tokensSlash Amount of tokens to slash from the indexer for the first dispute\n @param acceptDisputeInConflict Accept the conflicting dispute. Otherwise it will be drawn automatically\n @param tokensSlashRelated Amount of tokens to slash from the indexer for the related dispute in case\n acceptDisputeInConflict is true, otherwise it will be ignored" + }, + "functionSelector": "b0e2f7e9", + "id": 15296, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptDisputeConflict", + "nameLocation": "20182:21:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15287, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "20221:9:59", + "nodeType": "VariableDeclaration", + "scope": 15296, + "src": "20213:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15286, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20213:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15289, + "mutability": "mutable", + "name": "tokensSlash", + "nameLocation": "20248:11:59", + "nodeType": "VariableDeclaration", + "scope": 15296, + "src": "20240:19:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20240:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15291, + "mutability": "mutable", + "name": "acceptDisputeInConflict", + "nameLocation": "20274:23:59", + "nodeType": "VariableDeclaration", + "scope": 15296, + "src": "20269:28:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15290, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20269:4:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15293, + "mutability": "mutable", + "name": "tokensSlashRelated", + "nameLocation": "20315:18:59", + "nodeType": "VariableDeclaration", + "scope": 15296, + "src": "20307:26:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15292, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20307:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20203:136:59" + }, + "returnParameters": { + "id": 15295, + "nodeType": "ParameterList", + "parameters": [], + "src": "20348:0:59" + }, + "scope": 15373, + "src": "20173:176:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15297, + "nodeType": "StructuredDocumentation", + "src": "20355:247:59", + "text": " @notice The arbitrator rejects a dispute as being invalid.\n Note that conflicting query disputes cannot be rejected.\n @dev Reject a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be rejected" + }, + "functionSelector": "36167e03", + "id": 15302, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "rejectDispute", + "nameLocation": "20616:13:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15299, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "20638:9:59", + "nodeType": "VariableDeclaration", + "scope": 15302, + "src": "20630:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15298, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20630:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "20629:19:59" + }, + "returnParameters": { + "id": 15301, + "nodeType": "ParameterList", + "parameters": [], + "src": "20657:0:59" + }, + "scope": 15373, + "src": "20607:51:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15303, + "nodeType": "StructuredDocumentation", + "src": "20664:335:59", + "text": " @notice The arbitrator draws dispute.\n Note that drawing a conflicting query dispute should not be possible however it is allowed\n to give arbitrators greater flexibility when resolving disputes.\n @dev Ignore a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be disregarded" + }, + "functionSelector": "9334ea52", + "id": 15308, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "drawDispute", + "nameLocation": "21013:11:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15305, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "21033:9:59", + "nodeType": "VariableDeclaration", + "scope": 15308, + "src": "21025:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15304, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21025:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "21024:19:59" + }, + "returnParameters": { + "id": 15307, + "nodeType": "ParameterList", + "parameters": [], + "src": "21052:0:59" + }, + "scope": 15373, + "src": "21004:49:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15309, + "nodeType": "StructuredDocumentation", + "src": "21059:376:59", + "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 Note that cancelling a conflicting query dispute will also cancel the related dispute.\n @dev Cancel a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be cancelled" + }, + "functionSelector": "1792f194", + "id": 15314, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelDispute", + "nameLocation": "21449:13:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15311, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "21471:9:59", + "nodeType": "VariableDeclaration", + "scope": 15314, + "src": "21463:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21463:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "21462:19:59" + }, + "returnParameters": { + "id": 15313, + "nodeType": "ParameterList", + "parameters": [], + "src": "21490:0:59" + }, + "scope": 15373, + "src": "21440:51:59", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15315, + "nodeType": "StructuredDocumentation", + "src": "21519:112:59", + "text": " @notice Get the fisherman reward cut.\n @return Fisherman reward cut in percentage (ppm)" + }, + "functionSelector": "bb2a2b47", + "id": 15320, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getFishermanRewardCut", + "nameLocation": "21645:21:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15316, + "nodeType": "ParameterList", + "parameters": [], + "src": "21666:2:59" + }, + "returnParameters": { + "id": 15319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15320, + "src": "21692:6:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15317, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "21692:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "21691:8:59" + }, + "scope": 15373, + "src": "21636:64:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15321, + "nodeType": "StructuredDocumentation", + "src": "21706:91:59", + "text": " @notice Get the dispute period.\n @return Dispute period in seconds" + }, + "functionSelector": "5aea0ec4", + "id": 15326, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDisputePeriod", + "nameLocation": "21811:16:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15322, + "nodeType": "ParameterList", + "parameters": [], + "src": "21827:2:59" + }, + "returnParameters": { + "id": 15325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15324, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15326, + "src": "21853:6:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15323, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "21853:6:59", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "21852:8:59" + }, + "scope": 15373, + "src": "21802:59:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15327, + "nodeType": "StructuredDocumentation", + "src": "21867:224:59", + "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\n @return True if dispute already exists" + }, + "functionSelector": "be41f384", + "id": 15334, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isDisputeCreated", + "nameLocation": "22105:16:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15329, + "mutability": "mutable", + "name": "disputeId", + "nameLocation": "22130:9:59", + "nodeType": "VariableDeclaration", + "scope": 15334, + "src": "22122:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15328, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "22122:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "22121:19:59" + }, + "returnParameters": { + "id": 15333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15332, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15334, + "src": "22164:4:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22164:4:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "22163:6:59" + }, + "scope": 15373, + "src": "22096:74:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15335, + "nodeType": "StructuredDocumentation", + "src": "22176:429:59", + "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": 15343, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "encodeReceipt", + "nameLocation": "22619:13:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15338, + "mutability": "mutable", + "name": "receipt", + "nameLocation": "22660:7:59", + "nodeType": "VariableDeclaration", + "scope": 15343, + "src": "22633:34:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt" + }, + "typeName": { + "id": 15337, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15336, + "name": "Attestation.Receipt", + "nameLocations": [ + "22633:11:59", + "22645:7:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16044, + "src": "22633:19:59" + }, + "referencedDeclaration": 16044, + "src": "22633:19:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_storage_ptr", + "typeString": "struct Attestation.Receipt" + } + }, + "visibility": "internal" + } + ], + "src": "22632:36:59" + }, + "returnParameters": { + "id": 15342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15341, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15343, + "src": "22692:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15340, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "22692:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "22691:9:59" + }, + "scope": 15373, + "src": "22610:91:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15344, + "nodeType": "StructuredDocumentation", + "src": "22707:143:59", + "text": " @notice Returns the indexer that signed an attestation.\n @param attestation Attestation\n @return indexer address" + }, + "functionSelector": "c9747f51", + "id": 15352, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAttestationIndexer", + "nameLocation": "22864:21:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15347, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "22911:11:59", + "nodeType": "VariableDeclaration", + "scope": 15352, + "src": "22886:36:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 15346, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15345, + "name": "Attestation.State", + "nameLocations": [ + "22886:11:59", + "22898:5:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "22886:17:59" + }, + "referencedDeclaration": 16058, + "src": "22886:17:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "22885:38:59" + }, + "returnParameters": { + "id": 15351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15350, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15352, + "src": "22947:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22947:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "22946:9:59" + }, + "scope": 15373, + "src": "22855:101:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15353, + "nodeType": "StructuredDocumentation", + "src": "22962:141:59", + "text": " @notice Get the stake snapshot for an indexer.\n @param indexer The indexer address\n @return The stake snapshot" + }, + "functionSelector": "c133b429", + "id": 15360, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStakeSnapshot", + "nameLocation": "23117:16:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15355, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "23142:7:59", + "nodeType": "VariableDeclaration", + "scope": 15360, + "src": "23134:15:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23134:7:59", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "23133:17:59" + }, + "returnParameters": { + "id": 15359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15360, + "src": "23174:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23174:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23173:9:59" + }, + "scope": 15373, + "src": "23108:75:59", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15361, + "nodeType": "StructuredDocumentation", + "src": "23189:224:59", + "text": " @notice Checks if two attestations are conflicting\n @param attestation1 The first attestation\n @param attestation2 The second attestation\n @return Whether the attestations are conflicting" + }, + "functionSelector": "d36fc9d4", + "id": 15372, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "areConflictingAttestations", + "nameLocation": "23427:26:59", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15364, + "mutability": "mutable", + "name": "attestation1", + "nameLocation": "23488:12:59", + "nodeType": "VariableDeclaration", + "scope": 15372, + "src": "23463:37:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 15363, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15362, + "name": "Attestation.State", + "nameLocations": [ + "23463:11:59", + "23475:5:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "23463:17:59" + }, + "referencedDeclaration": 16058, + "src": "23463:17:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15367, + "mutability": "mutable", + "name": "attestation2", + "nameLocation": "23535:12:59", + "nodeType": "VariableDeclaration", + "scope": 15372, + "src": "23510:37:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 15366, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15365, + "name": "Attestation.State", + "nameLocations": [ + "23510:11:59", + "23522:5:59" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "23510:17:59" + }, + "referencedDeclaration": 16058, + "src": "23510:17:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "23453:100:59" + }, + "returnParameters": { + "id": 15371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15370, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15372, + "src": "23577:4:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15369, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23577:4:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "23576:6:59" + }, + "scope": 15373, + "src": "23418:165:59", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "scope": 15374, + "src": "363:23222:59", + "usedErrors": [ + 15080, + 15083, + 15086, + 15089, + 15092, + 15097, + 15102, + 15107, + 15112, + 15119, + 15125, + 15130, + 15133, + 15138, + 15143, + 15150, + 15155, + 15162, + 15177, + 15180 + ], + "usedEvents": [ + 14948, + 14953, + 14958, + 14963, + 14968, + 14973, + 14992, + 15011, + 15026, + 15037, + 15048, + 15059, + 15066, + 15077 + ] + } + ], + "src": "46:23540:59" + }, + "id": 59 + }, + "contracts/interfaces/ISubgraphService.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "IDataServiceFees": [ + 1620 + ], + "IGraphPayments": [ + 2489 + ], + "ISubgraphService": [ + 15634 + ], + "LegacyAllocation": [ + 16462 + ] + }, + "id": 15635, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 15375, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:60" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", + "file": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", + "id": 15377, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15635, + "sourceUnit": 1621, + "src": "70:113:60", + "symbolAliases": [ + { + "foreign": { + "id": 15376, + "name": "IDataServiceFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "79:16:60", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "id": 15379, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15635, + "sourceUnit": 2490, + "src": "184:96:60", + "symbolAliases": [ + { + "foreign": { + "id": 15378, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "193:14:60", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Allocation.sol", + "file": "../libraries/Allocation.sol", + "id": 15381, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15635, + "sourceUnit": 16034, + "src": "282:57:60", + "symbolAliases": [ + { + "foreign": { + "id": 15380, + "name": "Allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16033, + "src": "291:10:60", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/LegacyAllocation.sol", + "file": "../libraries/LegacyAllocation.sol", + "id": 15383, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15635, + "sourceUnit": 16463, + "src": "340:69:60", + "symbolAliases": [ + { + "foreign": { + "id": 15382, + "name": "LegacyAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16462, + "src": "349:16:60", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 15385, + "name": "IDataServiceFees", + "nameLocations": [ + "1138:16:60" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1620, + "src": "1138:16:60" + }, + "id": 15386, + "nodeType": "InheritanceSpecifier", + "src": "1138:16:60" + } + ], + "canonicalName": "ISubgraphService", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 15384, + "nodeType": "StructuredDocumentation", + "src": "411:696:60", + "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.\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": false, + "id": 15634, + "linearizedBaseContracts": [ + 15634, + 1620, + 1557 + ], + "name": "ISubgraphService", + "nameLocation": "1118:16:60", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ISubgraphService.Indexer", + "documentation": { + "id": 15387, + "nodeType": "StructuredDocumentation", + "src": "1161:259:60", + "text": " @notice Indexer details\n @param registeredAt The timestamp when the indexer registered\n @param url The URL where the indexer can be reached at for queries\n @param geoHash The indexer's geo location, expressed as a geo hash" + }, + "id": 15394, + "members": [ + { + "constant": false, + "id": 15389, + "mutability": "mutable", + "name": "registeredAt", + "nameLocation": "1458:12:60", + "nodeType": "VariableDeclaration", + "scope": 15394, + "src": "1450:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1450:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15391, + "mutability": "mutable", + "name": "url", + "nameLocation": "1487:3:60", + "nodeType": "VariableDeclaration", + "scope": 15394, + "src": "1480:10:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 15390, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1480:6:60", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15393, + "mutability": "mutable", + "name": "geoHash", + "nameLocation": "1507:7:60", + "nodeType": "VariableDeclaration", + "scope": 15394, + "src": "1500:14:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 15392, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1500:6:60", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "Indexer", + "nameLocation": "1432:7:60", + "nodeType": "StructDefinition", + "scope": 15634, + "src": "1425:96:60", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 15395, + "nodeType": "StructuredDocumentation", + "src": "1527:471:60", + "text": " @notice Emitted when a subgraph service collects query fees from Graph Payments\n @param serviceProvider The address of the service provider\n @param payer The address paying for the query fees\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param tokensCollected The amount of tokens collected\n @param tokensCurators The amount of tokens curators receive" + }, + "eventSelector": "184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba2", + "id": 15409, + "name": "QueryFeesCollected", + "nameLocation": "2009:18:60", + "nodeType": "EventDefinition", + "parameters": { + "id": 15408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15397, + "indexed": true, + "mutability": "mutable", + "name": "serviceProvider", + "nameLocation": "2053:15:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2037:31:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2037:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15399, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nameLocation": "2094:5:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2078:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2078:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15401, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2125:12:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2109:28:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2109:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15403, + "indexed": false, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "2155:20:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2147:28:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15402, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2147:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15405, + "indexed": false, + "mutability": "mutable", + "name": "tokensCollected", + "nameLocation": "2193:15:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2185:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2185:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15407, + "indexed": false, + "mutability": "mutable", + "name": "tokensCurators", + "nameLocation": "2226:14:60", + "nodeType": "VariableDeclaration", + "scope": 15409, + "src": "2218:22:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2218:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2027:219:60" + }, + "src": "2003:244:60" + }, + { + "anonymous": false, + "documentation": { + "id": 15410, + "nodeType": "StructuredDocumentation", + "src": "2253:207:60", + "text": " @notice Emitted when an indexer sets a new payments destination\n @param indexer The address of the indexer\n @param paymentsDestination The address where payments should be sent" + }, + "eventSelector": "003215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c1", + "id": 15416, + "name": "PaymentsDestinationSet", + "nameLocation": "2471:22:60", + "nodeType": "EventDefinition", + "parameters": { + "id": 15415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15412, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "2510:7:60", + "nodeType": "VariableDeclaration", + "scope": 15416, + "src": "2494:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2494:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15414, + "indexed": true, + "mutability": "mutable", + "name": "paymentsDestination", + "nameLocation": "2535:19:60", + "nodeType": "VariableDeclaration", + "scope": 15416, + "src": "2519:35:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2519:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2493:62:60" + }, + "src": "2465:91:60" + }, + { + "anonymous": false, + "documentation": { + "id": 15417, + "nodeType": "StructuredDocumentation", + "src": "2562:115:60", + "text": " @notice Emitted when the stake to fees ratio is set.\n @param ratio The stake to fees ratio" + }, + "eventSelector": "2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23", + "id": 15421, + "name": "StakeToFeesRatioSet", + "nameLocation": "2688:19:60", + "nodeType": "EventDefinition", + "parameters": { + "id": 15420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15419, + "indexed": false, + "mutability": "mutable", + "name": "ratio", + "nameLocation": "2716:5:60", + "nodeType": "VariableDeclaration", + "scope": 15421, + "src": "2708:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2708:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2707:15:60" + }, + "src": "2682:41:60" + }, + { + "anonymous": false, + "documentation": { + "id": 15422, + "nodeType": "StructuredDocumentation", + "src": "2729:103:60", + "text": " @notice Emitted when curator cuts are set\n @param curationCut The curation cut" + }, + "eventSelector": "6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9", + "id": 15426, + "name": "CurationCutSet", + "nameLocation": "2843:14:60", + "nodeType": "EventDefinition", + "parameters": { + "id": 15425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15424, + "indexed": false, + "mutability": "mutable", + "name": "curationCut", + "nameLocation": "2866:11:60", + "nodeType": "VariableDeclaration", + "scope": 15426, + "src": "2858:19:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2858:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2857:21:60" + }, + "src": "2837:42:60" + }, + { + "documentation": { + "id": 15427, + "nodeType": "StructuredDocumentation", + "src": "2885:146:60", + "text": " @notice 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": 15431, + "name": "SubgraphServiceInvalidCurationCut", + "nameLocation": "3042:33:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15429, + "mutability": "mutable", + "name": "curationCut", + "nameLocation": "3084:11:60", + "nodeType": "VariableDeclaration", + "scope": 15431, + "src": "3076:19:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3076:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3075:21:60" + }, + "src": "3036:61:60" + }, + { + "documentation": { + "id": 15432, + "nodeType": "StructuredDocumentation", + "src": "3103:85:60", + "text": " @notice Thrown when an indexer tries to register with an empty URL" + }, + "errorSelector": "f0708720", + "id": 15434, + "name": "SubgraphServiceEmptyUrl", + "nameLocation": "3199:23:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15433, + "nodeType": "ParameterList", + "parameters": [], + "src": "3222:2:60" + }, + "src": "3193:32:60" + }, + { + "documentation": { + "id": 15435, + "nodeType": "StructuredDocumentation", + "src": "3231:89:60", + "text": " @notice Thrown when an indexer tries to register with an empty geohash" + }, + "errorSelector": "798ef654", + "id": 15437, + "name": "SubgraphServiceEmptyGeohash", + "nameLocation": "3331:27:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15436, + "nodeType": "ParameterList", + "parameters": [], + "src": "3358:2:60" + }, + "src": "3325:36:60" + }, + { + "documentation": { + "id": 15438, + "nodeType": "StructuredDocumentation", + "src": "3367:99:60", + "text": " @notice Thrown when an indexer tries to register but they are already registered" + }, + "errorSelector": "341a19b4", + "id": 15440, + "name": "SubgraphServiceIndexerAlreadyRegistered", + "nameLocation": "3477:39:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15439, + "nodeType": "ParameterList", + "parameters": [], + "src": "3516:2:60" + }, + "src": "3471:48:60" + }, + { + "documentation": { + "id": 15441, + "nodeType": "StructuredDocumentation", + "src": "3525:179:60", + "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": 15445, + "name": "SubgraphServiceIndexerNotRegistered", + "nameLocation": "3715:35:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15443, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "3759:7:60", + "nodeType": "VariableDeclaration", + "scope": 15445, + "src": "3751:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3750:17:60" + }, + "src": "3709:59:60" + }, + { + "documentation": { + "id": 15446, + "nodeType": "StructuredDocumentation", + "src": "3774:168:60", + "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": 15451, + "name": "SubgraphServiceInvalidPaymentType", + "nameLocation": "3953:33:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15449, + "mutability": "mutable", + "name": "paymentType", + "nameLocation": "4015:11:60", + "nodeType": "VariableDeclaration", + "scope": 15451, + "src": "3987:39:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + }, + "typeName": { + "id": 15448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15447, + "name": "IGraphPayments.PaymentTypes", + "nameLocations": [ + "3987:14:60", + "4002:12:60" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2433, + "src": "3987:27:60" + }, + "referencedDeclaration": 2433, + "src": "3987:27:60", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + }, + "visibility": "internal" + } + ], + "src": "3986:41:60" + }, + "src": "3947:81:60" + }, + { + "documentation": { + "id": 15452, + "nodeType": "StructuredDocumentation", + "src": "4034:264:60", + "text": " @notice Thrown when the contract GRT balance is inconsistent after collecting from Graph Payments\n @param balanceBefore The contract GRT balance before the collection\n @param balanceAfter The contract GRT balance after the collection" + }, + "errorSelector": "9db8bc95", + "id": 15458, + "name": "SubgraphServiceInconsistentCollection", + "nameLocation": "4309:37:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15454, + "mutability": "mutable", + "name": "balanceBefore", + "nameLocation": "4355:13:60", + "nodeType": "VariableDeclaration", + "scope": 15458, + "src": "4347:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15453, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4347:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15456, + "mutability": "mutable", + "name": "balanceAfter", + "nameLocation": "4378:12:60", + "nodeType": "VariableDeclaration", + "scope": 15458, + "src": "4370:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4370:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4346:45:60" + }, + "src": "4303:89:60" + }, + { + "documentation": { + "id": 15459, + "nodeType": "StructuredDocumentation", + "src": "4398:249:60", + "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": 15465, + "name": "SubgraphServiceIndexerMismatch", + "nameLocation": "4658:30:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15461, + "mutability": "mutable", + "name": "providedIndexer", + "nameLocation": "4697:15:60", + "nodeType": "VariableDeclaration", + "scope": 15465, + "src": "4689:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4689:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15463, + "mutability": "mutable", + "name": "expectedIndexer", + "nameLocation": "4722:15:60", + "nodeType": "VariableDeclaration", + "scope": 15465, + "src": "4714:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4714:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4688:50:60" + }, + "src": "4652:87:60" + }, + { + "documentation": { + "id": 15466, + "nodeType": "StructuredDocumentation", + "src": "4745:223:60", + "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": 15472, + "name": "SubgraphServiceAllocationNotAuthorized", + "nameLocation": "4979:38:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15468, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "5026:7:60", + "nodeType": "VariableDeclaration", + "scope": 15472, + "src": "5018:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5018:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15470, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5043:12:60", + "nodeType": "VariableDeclaration", + "scope": 15472, + "src": "5035:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5035:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5017:39:60" + }, + "src": "4973:84:60" + }, + { + "documentation": { + "id": 15473, + "nodeType": "StructuredDocumentation", + "src": "5063:245:60", + "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": 15479, + "name": "SubgraphServiceInvalidRAV", + "nameLocation": "5319:25:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15475, + "mutability": "mutable", + "name": "ravIndexer", + "nameLocation": "5353:10:60", + "nodeType": "VariableDeclaration", + "scope": 15479, + "src": "5345:18:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5345:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15477, + "mutability": "mutable", + "name": "allocationIndexer", + "nameLocation": "5373:17:60", + "nodeType": "VariableDeclaration", + "scope": 15479, + "src": "5365:25:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5365:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5344:47:60" + }, + "src": "5313:79:60" + }, + { + "documentation": { + "id": 15480, + "nodeType": "StructuredDocumentation", + "src": "5398:182:60", + "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": 15484, + "name": "SubgraphServiceCannotForceCloseAllocation", + "nameLocation": "5591:41:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15482, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5641:12:60", + "nodeType": "VariableDeclaration", + "scope": 15484, + "src": "5633:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5633:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5632:22:60" + }, + "src": "5585:70:60" + }, + { + "documentation": { + "id": 15485, + "nodeType": "StructuredDocumentation", + "src": "5661:137:60", + "text": " @notice Thrown when trying to force close an altruistic allocation\n @param allocationId The id of the allocation" + }, + "errorSelector": "be3d9ae8", + "id": 15489, + "name": "SubgraphServiceAllocationIsAltruistic", + "nameLocation": "5809:37:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15487, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5855:12:60", + "nodeType": "VariableDeclaration", + "scope": 15489, + "src": "5847:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5847:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5846:22:60" + }, + "src": "5803:66:60" + }, + { + "documentation": { + "id": 15490, + "nodeType": "StructuredDocumentation", + "src": "5875:80:60", + "text": " @notice Thrown when trying to set stake to fees ratio to zero" + }, + "errorSelector": "bc71a043", + "id": 15492, + "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", + "nameLocation": "5966:42:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15491, + "nodeType": "ParameterList", + "parameters": [], + "src": "6008:2:60" + }, + "src": "5960:51:60" + }, + { + "documentation": { + "id": 15493, + "nodeType": "StructuredDocumentation", + "src": "6017:118:60", + "text": " @notice Thrown when collectionId is not a valid address\n @param collectionId The collectionId" + }, + "errorSelector": "fa4ac7a7", + "id": 15497, + "name": "SubgraphServiceInvalidCollectionId", + "nameLocation": "6146:34:60", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15495, + "mutability": "mutable", + "name": "collectionId", + "nameLocation": "6189:12:60", + "nodeType": "VariableDeclaration", + "scope": 15497, + "src": "6181:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15494, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6181:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6180:22:60" + }, + "src": "6140:63:60" + }, + { + "documentation": { + "id": 15498, + "nodeType": "StructuredDocumentation", + "src": "6209:589:60", + "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 owner The owner of the contract\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": "c84a5ef3", + "id": 15509, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "6812:10:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15500, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6840:5:60", + "nodeType": "VariableDeclaration", + "scope": 15509, + "src": "6832:13:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6832:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15502, + "mutability": "mutable", + "name": "minimumProvisionTokens", + "nameLocation": "6863:22:60", + "nodeType": "VariableDeclaration", + "scope": 15509, + "src": "6855:30:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6855:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15504, + "mutability": "mutable", + "name": "maximumDelegationRatio", + "nameLocation": "6902:22:60", + "nodeType": "VariableDeclaration", + "scope": 15509, + "src": "6895:29:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15503, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6895:6:60", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15506, + "mutability": "mutable", + "name": "stakeToFeesRatio", + "nameLocation": "6942:16:60", + "nodeType": "VariableDeclaration", + "scope": 15509, + "src": "6934:24:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6934:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6822:142:60" + }, + "returnParameters": { + "id": 15508, + "nodeType": "ParameterList", + "parameters": [], + "src": "6973:0:60" + }, + "scope": 15634, + "src": "6803:171:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15510, + "nodeType": "StructuredDocumentation", + "src": "6980:495:60", + "text": " @notice Force close a stale allocation\n @dev This function can be permissionlessly called when the allocation is stale. This\n ensures that rewards for other allocations are not diluted by an inactive allocation.\n Requirements:\n - Allocation must exist and be open\n - Allocation must be stale\n - Allocation cannot be altruistic\n Emits a {AllocationClosed} event.\n @param allocationId The id of the allocation" + }, + "functionSelector": "ec9c218d", + "id": 15515, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "closeStaleAllocation", + "nameLocation": "7489:20:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15512, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "7518:12:60", + "nodeType": "VariableDeclaration", + "scope": 15515, + "src": "7510:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7510:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7509:22:60" + }, + "returnParameters": { + "id": 15514, + "nodeType": "ParameterList", + "parameters": [], + "src": "7540:0:60" + }, + "scope": 15634, + "src": "7480:61:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15516, + "nodeType": "StructuredDocumentation", + "src": "7547:681:60", + "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": 15525, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resizeAllocation", + "nameLocation": "8242:16:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15518, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "8267:7:60", + "nodeType": "VariableDeclaration", + "scope": 15525, + "src": "8259:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8259:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15520, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "8284:12:60", + "nodeType": "VariableDeclaration", + "scope": 15525, + "src": "8276:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8276:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15522, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "8306:6:60", + "nodeType": "VariableDeclaration", + "scope": 15525, + "src": "8298:14:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8298:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8258:55:60" + }, + "returnParameters": { + "id": 15524, + "nodeType": "ParameterList", + "parameters": [], + "src": "8322:0:60" + }, + "scope": 15634, + "src": "8233:90:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15526, + "nodeType": "StructuredDocumentation", + "src": "8329:398:60", + "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": 15535, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "migrateLegacyAllocation", + "nameLocation": "8741:23:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15528, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "8773:7:60", + "nodeType": "VariableDeclaration", + "scope": 15535, + "src": "8765:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8765:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15530, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "8790:12:60", + "nodeType": "VariableDeclaration", + "scope": 15535, + "src": "8782:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8782:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15532, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "8812:20:60", + "nodeType": "VariableDeclaration", + "scope": 15535, + "src": "8804:28:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15531, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8804:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8764:69:60" + }, + "returnParameters": { + "id": 15534, + "nodeType": "ParameterList", + "parameters": [], + "src": "8842:0:60" + }, + "scope": 15634, + "src": "8732:111:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15536, + "nodeType": "StructuredDocumentation", + "src": "8849:209:60", + "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": 15543, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPauseGuardian", + "nameLocation": "9072:16:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15538, + "mutability": "mutable", + "name": "pauseGuardian", + "nameLocation": "9097:13:60", + "nodeType": "VariableDeclaration", + "scope": 15543, + "src": "9089:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9089:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15540, + "mutability": "mutable", + "name": "allowed", + "nameLocation": "9117:7:60", + "nodeType": "VariableDeclaration", + "scope": 15543, + "src": "9112:12:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9112:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9088:37:60" + }, + "returnParameters": { + "id": 15542, + "nodeType": "ParameterList", + "parameters": [], + "src": "9134:0:60" + }, + "scope": 15634, + "src": "9063:72:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15544, + "nodeType": "StructuredDocumentation", + "src": "9141:216:60", + "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": 15549, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMinimumProvisionTokens", + "nameLocation": "9371:25:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15546, + "mutability": "mutable", + "name": "minimumProvisionTokens", + "nameLocation": "9405:22:60", + "nodeType": "VariableDeclaration", + "scope": 15549, + "src": "9397:30:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9397:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9396:32:60" + }, + "returnParameters": { + "id": 15548, + "nodeType": "ParameterList", + "parameters": [], + "src": "9437:0:60" + }, + "scope": 15634, + "src": "9362:76:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15550, + "nodeType": "StructuredDocumentation", + "src": "9444:103:60", + "text": " @notice Sets the delegation ratio\n @param delegationRatio The delegation ratio" + }, + "functionSelector": "1dd42f60", + "id": 15555, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setDelegationRatio", + "nameLocation": "9561:18:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15552, + "mutability": "mutable", + "name": "delegationRatio", + "nameLocation": "9587:15:60", + "nodeType": "VariableDeclaration", + "scope": 15555, + "src": "9580:22:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15551, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "9580:6:60", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "9579:24:60" + }, + "returnParameters": { + "id": 15554, + "nodeType": "ParameterList", + "parameters": [], + "src": "9612:0:60" + }, + "scope": 15634, + "src": "9552:61:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15556, + "nodeType": "StructuredDocumentation", + "src": "9619:110:60", + "text": " @notice Sets the stake to fees ratio\n @param stakeToFeesRatio The stake to fees ratio" + }, + "functionSelector": "e6f50054", + "id": 15561, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setStakeToFeesRatio", + "nameLocation": "9743:19:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15558, + "mutability": "mutable", + "name": "stakeToFeesRatio", + "nameLocation": "9771:16:60", + "nodeType": "VariableDeclaration", + "scope": 15561, + "src": "9763:24:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9763:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9762:26:60" + }, + "returnParameters": { + "id": 15560, + "nodeType": "ParameterList", + "parameters": [], + "src": "9797:0:60" + }, + "scope": 15634, + "src": "9734:64:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15562, + "nodeType": "StructuredDocumentation", + "src": "9804:190:60", + "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": 15567, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setMaxPOIStaleness", + "nameLocation": "10008:18:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15564, + "mutability": "mutable", + "name": "maxPOIStaleness", + "nameLocation": "10035:15:60", + "nodeType": "VariableDeclaration", + "scope": 15567, + "src": "10027:23:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10027:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10026:25:60" + }, + "returnParameters": { + "id": 15566, + "nodeType": "ParameterList", + "parameters": [], + "src": "10060:0:60" + }, + "scope": 15634, + "src": "9999:62:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15568, + "nodeType": "StructuredDocumentation", + "src": "10067:177:60", + "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": 15573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setCurationCut", + "nameLocation": "10258:14:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15570, + "mutability": "mutable", + "name": "curationCut", + "nameLocation": "10281:11:60", + "nodeType": "VariableDeclaration", + "scope": 15573, + "src": "10273:19:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10273:7:60", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10272:21:60" + }, + "returnParameters": { + "id": 15572, + "nodeType": "ParameterList", + "parameters": [], + "src": "10302:0:60" + }, + "scope": 15634, + "src": "10249:54:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15574, + "nodeType": "StructuredDocumentation", + "src": "10309:218:60", + "text": " @notice Sets the payments destination for an indexer to receive payments\n @dev Emits a {PaymentsDestinationSet} event\n @param paymentsDestination The address where payments should be sent" + }, + "functionSelector": "6ccec5b8", + "id": 15579, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPaymentsDestination", + "nameLocation": "10541:22:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15577, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15576, + "mutability": "mutable", + "name": "paymentsDestination", + "nameLocation": "10572:19:60", + "nodeType": "VariableDeclaration", + "scope": 15579, + "src": "10564:27:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10564:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10563:29:60" + }, + "returnParameters": { + "id": 15578, + "nodeType": "ParameterList", + "parameters": [], + "src": "10601:0:60" + }, + "scope": 15634, + "src": "10532:70:60", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15580, + "nodeType": "StructuredDocumentation", + "src": "10608:206:60", + "text": " @notice Gets the details of an allocation\n For legacy allocations use {getLegacyAllocation}\n @param allocationId The id of the allocation\n @return The allocation details" + }, + "functionSelector": "0e022923", + "id": 15588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAllocation", + "nameLocation": "10828:13:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15582, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "10850:12:60", + "nodeType": "VariableDeclaration", + "scope": 15588, + "src": "10842:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10842:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10841:22:60" + }, + "returnParameters": { + "id": 15587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15586, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15588, + "src": "10887:23:60", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15585, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15584, + "name": "Allocation.State", + "nameLocations": [ + "10887:10:60", + "10898:5:60" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "10887:16:60" + }, + "referencedDeclaration": 15663, + "src": "10887:16:60", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "10886:25:60" + }, + "scope": 15634, + "src": "10819:93:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15589, + "nodeType": "StructuredDocumentation", + "src": "10918:217:60", + "text": " @notice Gets the details of a legacy allocation\n For non-legacy allocations use {getAllocation}\n @param allocationId The id of the allocation\n @return The legacy allocation details" + }, + "functionSelector": "6d9a3951", + "id": 15597, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getLegacyAllocation", + "nameLocation": "11149:19:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15591, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "11177:12:60", + "nodeType": "VariableDeclaration", + "scope": 15597, + "src": "11169:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11169:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11168:22:60" + }, + "returnParameters": { + "id": 15596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15595, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15597, + "src": "11214:29:60", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 15594, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15593, + "name": "LegacyAllocation.State", + "nameLocations": [ + "11214:16:60", + "11231:5:60" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "11214:22:60" + }, + "referencedDeclaration": 16305, + "src": "11214:22:60", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "11213:31:60" + }, + "scope": 15634, + "src": "11140:105:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15598, + "nodeType": "StructuredDocumentation", + "src": "11251:219:60", + "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\n @return The encoded allocation proof" + }, + "functionSelector": "ce56c98b", + "id": 15607, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "encodeAllocationProof", + "nameLocation": "11484:21:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15600, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "11514:7:60", + "nodeType": "VariableDeclaration", + "scope": 15607, + "src": "11506:15:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11506:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15602, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "11531:12:60", + "nodeType": "VariableDeclaration", + "scope": 15607, + "src": "11523:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11523:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11505:39:60" + }, + "returnParameters": { + "id": 15606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15607, + "src": "11568:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15604, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11568:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "11567:9:60" + }, + "scope": 15634, + "src": "11475:102:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15608, + "nodeType": "StructuredDocumentation", + "src": "11583:187:60", + "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": 15615, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isOverAllocated", + "nameLocation": "11784:15:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15610, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "11808:12:60", + "nodeType": "VariableDeclaration", + "scope": 15615, + "src": "11800:20:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11800:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11799:22:60" + }, + "returnParameters": { + "id": 15614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15613, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15615, + "src": "11845:4:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15612, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11845:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11844:6:60" + }, + "scope": 15634, + "src": "11775:76:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15616, + "nodeType": "StructuredDocumentation", + "src": "11857:116:60", + "text": " @notice Gets the address of the dispute manager\n @return The address of the dispute manager" + }, + "functionSelector": "db9bee46", + "id": 15621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDisputeManager", + "nameLocation": "11987:17:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15617, + "nodeType": "ParameterList", + "parameters": [], + "src": "12004:2:60" + }, + "returnParameters": { + "id": 15620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15619, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15621, + "src": "12030:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12030:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12029:9:60" + }, + "scope": 15634, + "src": "11978:61:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15622, + "nodeType": "StructuredDocumentation", + "src": "12045:128:60", + "text": " @notice Gets the address of the graph tally collector\n @return The address of the graph tally collector" + }, + "functionSelector": "ebf6ddaf", + "id": 15627, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getGraphTallyCollector", + "nameLocation": "12187:22:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15623, + "nodeType": "ParameterList", + "parameters": [], + "src": "12209:2:60" + }, + "returnParameters": { + "id": 15626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15625, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15627, + "src": "12235:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12235:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12234:9:60" + }, + "scope": 15634, + "src": "12178:66:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 15628, + "nodeType": "StructuredDocumentation", + "src": "12250:120:60", + "text": " @notice Gets the address of the curation contract\n @return The address of the curation contract" + }, + "functionSelector": "c0f47497", + "id": 15633, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getCuration", + "nameLocation": "12384:11:60", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15629, + "nodeType": "ParameterList", + "parameters": [], + "src": "12395:2:60" + }, + "returnParameters": { + "id": 15632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15631, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15633, + "src": "12421:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12421:7:60", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12420:9:60" + }, + "scope": 15634, + "src": "12375:55:60", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 15635, + "src": "1108:11324:60", + "usedErrors": [ + 1610, + 1613, + 15431, + 15434, + 15437, + 15440, + 15445, + 15451, + 15458, + 15465, + 15472, + 15479, + 15484, + 15489, + 15492, + 15497 + ], + "usedEvents": [ + 1437, + 1442, + 1449, + 1456, + 1466, + 1473, + 1585, + 1596, + 1605, + 15409, + 15416, + 15421, + 15426 + ] + } + ], + "src": "45:12388:60" + }, + "id": 60 + }, + "contracts/libraries/Allocation.sol": { + "ast": { + "absolutePath": "contracts/libraries/Allocation.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "Math": [ + 9938 + ] + }, + "id": 16034, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 15636, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:61" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "@openzeppelin/contracts/utils/math/Math.sol", + "id": 15638, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 16034, + "sourceUnit": 9939, + "src": "70:67:61", + "symbolAliases": [ + { + "foreign": { + "id": 15637, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "79:4:61", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Allocation", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 15639, + "nodeType": "StructuredDocumentation", + "src": "139:220:61", + "text": " @title Allocation library\n @notice A library to handle Allocations.\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": 16033, + "linearizedBaseContracts": [ + 16033 + ], + "name": "Allocation", + "nameLocation": "368:10:61", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 15643, + "libraryName": { + "id": 15640, + "name": "Allocation", + "nameLocations": [ + "391:10:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16033, + "src": "391:10:61" + }, + "nodeType": "UsingForDirective", + "src": "385:27:61", + "typeName": { + "id": 15642, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15641, + "name": "State", + "nameLocations": [ + "406:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "406:5:61" + }, + "referencedDeclaration": 15663, + "src": "406:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + { + "canonicalName": "Allocation.State", + "documentation": { + "id": 15644, + "nodeType": "StructuredDocumentation", + "src": "418:723:61", + "text": " @notice Allocation details\n @param indexer The indexer that owns the allocation\n @param subgraphDeploymentId The subgraph deployment id the allocation is for\n @param tokens The number of tokens allocated\n @param createdAt The timestamp when the allocation was created\n @param closedAt The timestamp when the allocation was closed\n @param lastPOIPresentedAt The timestamp when the last POI was presented\n @param accRewardsPerAllocatedToken The accumulated rewards per allocated token\n @param accRewardsPending The accumulated rewards that are pending to be claimed due allocation resize\n @param createdAtEpoch The epoch when the allocation was created" + }, + "id": 15663, + "members": [ + { + "constant": false, + "id": 15646, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "1177:7:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1169:15:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1169:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15648, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "1202:20:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1194:28:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15647, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1194:7:61", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15650, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1240:6:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1232:14:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1232:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15652, + "mutability": "mutable", + "name": "createdAt", + "nameLocation": "1264:9:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1256:17:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1256:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15654, + "mutability": "mutable", + "name": "closedAt", + "nameLocation": "1291:8:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1283:16:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1283:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15656, + "mutability": "mutable", + "name": "lastPOIPresentedAt", + "nameLocation": "1317:18:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1309:26:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15658, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "1353:27:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1345:35:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15660, + "mutability": "mutable", + "name": "accRewardsPending", + "nameLocation": "1398:17:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1390:25:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1390:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15662, + "mutability": "mutable", + "name": "createdAtEpoch", + "nameLocation": "1433:14:61", + "nodeType": "VariableDeclaration", + "scope": 15663, + "src": "1425:22:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1425:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "State", + "nameLocation": "1153:5:61", + "nodeType": "StructDefinition", + "scope": 16033, + "src": "1146:308:61", + "visibility": "public" + }, + { + "documentation": { + "id": 15664, + "nodeType": "StructuredDocumentation", + "src": "1460:138:61", + "text": " @notice Thrown when attempting to create an allocation with an existing id\n @param allocationId The allocation id" + }, + "errorSelector": "0bc4def5", + "id": 15668, + "name": "AllocationAlreadyExists", + "nameLocation": "1609:23:61", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15666, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "1641:12:61", + "nodeType": "VariableDeclaration", + "scope": 15668, + "src": "1633:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1633:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1632:22:61" + }, + "src": "1603:52:61" + }, + { + "documentation": { + "id": 15669, + "nodeType": "StructuredDocumentation", + "src": "1661:143:61", + "text": " @notice Thrown when trying to perform an operation on a non-existent allocation\n @param allocationId The allocation id" + }, + "errorSelector": "42daadaf", + "id": 15673, + "name": "AllocationDoesNotExist", + "nameLocation": "1815:22:61", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15671, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "1846:12:61", + "nodeType": "VariableDeclaration", + "scope": 15673, + "src": "1838:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1838:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1837:22:61" + }, + "src": "1809:51:61" + }, + { + "documentation": { + "id": 15674, + "nodeType": "StructuredDocumentation", + "src": "1866:205:61", + "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": 15680, + "name": "AllocationClosed", + "nameLocation": "2082:16:61", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15676, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2107:12:61", + "nodeType": "VariableDeclaration", + "scope": 15680, + "src": "2099:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2099:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15678, + "mutability": "mutable", + "name": "closedAt", + "nameLocation": "2129:8:61", + "nodeType": "VariableDeclaration", + "scope": 15680, + "src": "2121:16:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2121:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2098:40:61" + }, + "src": "2076:63:61" + }, + { + "body": { + "id": 15740, + "nodeType": "Block", + "src": "3043:579:61", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3061:28:61", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 15705, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15686, + "src": "3062:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 15707, + "indexExpression": { + "id": 15706, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15690, + "src": "3067:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3062:18:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "id": 15708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3081:6:61", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 15961, + "src": "3062:25:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3062:27:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 15712, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15690, + "src": "3115:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15711, + "name": "AllocationAlreadyExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15668, + "src": "3091:23:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 15713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3091:37:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 15704, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3053:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 15714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3053:76:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15715, + "nodeType": "ExpressionStatement", + "src": "3053:76:61" + }, + { + "assignments": [ + 15718 + ], + "declarations": [ + { + "constant": false, + "id": 15718, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "3153:10:61", + "nodeType": "VariableDeclaration", + "scope": 15740, + "src": "3140:23:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15717, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15716, + "name": "State", + "nameLocations": [ + "3140:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "3140:5:61" + }, + "referencedDeclaration": 15663, + "src": "3140:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 15731, + "initialValue": { + "arguments": [ + { + "id": 15720, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15688, + "src": "3195:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 15721, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15692, + "src": "3238:20:61", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 15722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15694, + "src": "3280:6:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 15723, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3311:5:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 15724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3317:9:61", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3311:15:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 15725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3350:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 15726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3385:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 15727, + "name": "accRewardsPerAllocatedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15696, + "src": "3429:27:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 15728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3489:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 15729, + "name": "createdAtEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15698, + "src": "3520:14:61", + "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" + }, + { + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15719, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15663, + "src": "3166:5:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "type(struct Allocation.State storage pointer)" + } + }, + "id": 15730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3186:7:61", + "3216:20:61", + "3272:6:61", + "3300:9:61", + "3340:8:61", + "3365:18:61", + "3400:27:61", + "3470:17:61", + "3504:14:61" + ], + "names": [ + "indexer", + "subgraphDeploymentId", + "tokens", + "createdAt", + "closedAt", + "lastPOIPresentedAt", + "accRewardsPerAllocatedToken", + "accRewardsPending", + "createdAtEpoch" + ], + "nodeType": "FunctionCall", + "src": "3166:379:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3140:405:61" + }, + { + "expression": { + "id": 15736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 15732, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15686, + "src": "3556:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 15734, + "indexExpression": { + "id": 15733, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15690, + "src": "3561:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3556:18:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 15735, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15718, + "src": "3577:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "src": "3556:31:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "id": 15737, + "nodeType": "ExpressionStatement", + "src": "3556:31:61" + }, + { + "expression": { + "id": 15738, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15718, + "src": "3605:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "functionReturnParameters": 15703, + "id": 15739, + "nodeType": "Return", + "src": "3598:17:61" + } + ] + }, + "documentation": { + "id": 15681, + "nodeType": "StructuredDocumentation", + "src": "2145:597:61", + "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\n @param createdAtEpoch The epoch when the allocation was created\n @return The allocation" + }, + "id": 15741, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "create", + "nameLocation": "2756:6:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15686, + "mutability": "mutable", + "name": "self", + "nameLocation": "2806:4:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2772:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15685, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2780:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2772:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15684, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15683, + "name": "State", + "nameLocations": [ + "2791:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "2791:5:61" + }, + "referencedDeclaration": 15663, + "src": "2791:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15688, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "2828:7:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2820:15:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2820:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15690, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2853:12:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2845:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2845:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15692, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "2883:20:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2875:28:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 15691, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2875:7:61", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15694, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2921:6:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2913:14:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2913:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15696, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "2945:27:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2937:35:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2937:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15698, + "mutability": "mutable", + "name": "createdAtEpoch", + "nameLocation": "2990:14:61", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "2982:22:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2982:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2762:248:61" + }, + "returnParameters": { + "id": 15703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15702, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15741, + "src": "3029:12:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15701, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15700, + "name": "State", + "nameLocations": [ + "3029:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "3029:5:61" + }, + "referencedDeclaration": 15663, + "src": "3029:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "3028:14:61" + }, + "scope": 16033, + "src": "2747:875:61", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15778, + "nodeType": "Block", + "src": "3994:216:61", + "statements": [ + { + "assignments": [ + 15754 + ], + "declarations": [ + { + "constant": false, + "id": 15754, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "4018:10:61", + "nodeType": "VariableDeclaration", + "scope": 15778, + "src": "4004:24:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15753, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15752, + "name": "State", + "nameLocations": [ + "4004:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "4004:5:61" + }, + "referencedDeclaration": 15663, + "src": "4004:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 15759, + "initialValue": { + "arguments": [ + { + "id": 15756, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15747, + "src": "4036:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + { + "id": 15757, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15749, + "src": "4042:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15755, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16032, + "src": "4031:4:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" + } + }, + "id": 15758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4031:24:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4004:51:61" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15761, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15754, + "src": "4073:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15762, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4084:6:61", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "4073:17:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4073:19:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 15765, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15749, + "src": "4111:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 15766, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15754, + "src": "4125:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15767, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4136:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "4125:19:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15764, + "name": "AllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15680, + "src": "4094:16:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 15768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4094:51:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 15760, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4065:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 15769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4065:81:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15770, + "nodeType": "ExpressionStatement", + "src": "4065:81:61" + }, + { + "expression": { + "id": 15776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 15771, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15754, + "src": "4156:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15773, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4167:18:61", + "memberName": "lastPOIPresentedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15656, + "src": "4156:29:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 15774, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4188:5:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 15775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4194:9:61", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4188:15:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4156:47:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15777, + "nodeType": "ExpressionStatement", + "src": "4156:47:61" + } + ] + }, + "documentation": { + "id": 15742, + "nodeType": "StructuredDocumentation", + "src": "3628:270:61", + "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": 15779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "presentPOI", + "nameLocation": "3912:10:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15747, + "mutability": "mutable", + "name": "self", + "nameLocation": "3957:4:61", + "nodeType": "VariableDeclaration", + "scope": 15779, + "src": "3923:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15746, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3931:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3923:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15745, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15744, + "name": "State", + "nameLocations": [ + "3942:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "3942:5:61" + }, + "referencedDeclaration": 15663, + "src": "3942:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15749, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "3971:12:61", + "nodeType": "VariableDeclaration", + "scope": 15779, + "src": "3963:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3963:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3922:62:61" + }, + "returnParameters": { + "id": 15751, + "nodeType": "ParameterList", + "parameters": [], + "src": "3994:0:61" + }, + "scope": 16033, + "src": "3903:307:61", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15817, + "nodeType": "Block", + "src": "4724:237:61", + "statements": [ + { + "assignments": [ + 15794 + ], + "declarations": [ + { + "constant": false, + "id": 15794, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "4748:10:61", + "nodeType": "VariableDeclaration", + "scope": 15817, + "src": "4734:24:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15793, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15792, + "name": "State", + "nameLocations": [ + "4734:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "4734:5:61" + }, + "referencedDeclaration": 15663, + "src": "4734:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 15799, + "initialValue": { + "arguments": [ + { + "id": 15796, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15785, + "src": "4766:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + { + "id": 15797, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15787, + "src": "4772:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15795, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16032, + "src": "4761:4:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" + } + }, + "id": 15798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4761:24:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4734:51:61" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15801, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15794, + "src": "4803:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15802, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4814:6:61", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "4803:17:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4803:19:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 15805, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15787, + "src": "4841:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 15806, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15794, + "src": "4855:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15807, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4866:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "4855:19:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15804, + "name": "AllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15680, + "src": "4824:16:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 15808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4824:51:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 15800, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4795:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 15809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4795:81:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15810, + "nodeType": "ExpressionStatement", + "src": "4795:81:61" + }, + { + "expression": { + "id": 15815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 15811, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15794, + "src": "4886:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4897:27:61", + "memberName": "accRewardsPerAllocatedToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 15658, + "src": "4886:38:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 15814, + "name": "accRewardsPerAllocatedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15789, + "src": "4927:27:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4886:68:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15816, + "nodeType": "ExpressionStatement", + "src": "4886:68:61" + } + ] + }, + "documentation": { + "id": 15780, + "nodeType": "StructuredDocumentation", + "src": "4216:340:61", + "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": 15818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "snapshotRewards", + "nameLocation": "4570:15:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15785, + "mutability": "mutable", + "name": "self", + "nameLocation": "4629:4:61", + "nodeType": "VariableDeclaration", + "scope": 15818, + "src": "4595:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15784, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4603:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "4595:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15783, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15782, + "name": "State", + "nameLocations": [ + "4614:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "4614:5:61" + }, + "referencedDeclaration": 15663, + "src": "4614:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15787, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4651:12:61", + "nodeType": "VariableDeclaration", + "scope": 15818, + "src": "4643:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4643:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15789, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "4681:27:61", + "nodeType": "VariableDeclaration", + "scope": 15818, + "src": "4673:35:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4585:129:61" + }, + "returnParameters": { + "id": 15791, + "nodeType": "ParameterList", + "parameters": [], + "src": "4724:0:61" + }, + "scope": 16033, + "src": "4561:400:61", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15854, + "nodeType": "Block", + "src": "5324:201:61", + "statements": [ + { + "assignments": [ + 15831 + ], + "declarations": [ + { + "constant": false, + "id": 15831, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "5348:10:61", + "nodeType": "VariableDeclaration", + "scope": 15854, + "src": "5334:24:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15830, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15829, + "name": "State", + "nameLocations": [ + "5334:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "5334:5:61" + }, + "referencedDeclaration": 15663, + "src": "5334:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 15836, + "initialValue": { + "arguments": [ + { + "id": 15833, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15824, + "src": "5366:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + { + "id": 15834, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "5372:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15832, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16032, + "src": "5361:4:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" + } + }, + "id": 15835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5361:24:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5334:51:61" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15838, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15831, + "src": "5403:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15839, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5414:6:61", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "5403:17:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5403:19:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 15842, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "5441:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 15843, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15831, + "src": "5455:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15844, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5466:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "5455:19:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15841, + "name": "AllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15680, + "src": "5424:16:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 15845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5424:51:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 15837, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5395:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 15846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5395:81:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15847, + "nodeType": "ExpressionStatement", + "src": "5395:81:61" + }, + { + "expression": { + "id": 15852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 15848, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15831, + "src": "5486:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15850, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5497:17:61", + "memberName": "accRewardsPending", + "nodeType": "MemberAccess", + "referencedDeclaration": 15660, + "src": "5486:28:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 15851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5517:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5486:32:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15853, + "nodeType": "ExpressionStatement", + "src": "5486:32:61" + } + ] + }, + "documentation": { + "id": 15819, + "nodeType": "StructuredDocumentation", + "src": "4967:252:61", + "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": 15855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearPendingRewards", + "nameLocation": "5233:19:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15824, + "mutability": "mutable", + "name": "self", + "nameLocation": "5287:4:61", + "nodeType": "VariableDeclaration", + "scope": 15855, + "src": "5253:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15823, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5261:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5253:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15822, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15821, + "name": "State", + "nameLocations": [ + "5272:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "5272:5:61" + }, + "referencedDeclaration": 15663, + "src": "5272:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15826, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5301:12:61", + "nodeType": "VariableDeclaration", + "scope": 15855, + "src": "5293:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5293:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5252:62:61" + }, + "returnParameters": { + "id": 15828, + "nodeType": "ParameterList", + "parameters": [], + "src": "5324:0:61" + }, + "scope": 16033, + "src": "5224:301:61", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15892, + "nodeType": "Block", + "src": "5823:206:61", + "statements": [ + { + "assignments": [ + 15868 + ], + "declarations": [ + { + "constant": false, + "id": 15868, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "5847:10:61", + "nodeType": "VariableDeclaration", + "scope": 15892, + "src": "5833:24:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15867, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15866, + "name": "State", + "nameLocations": [ + "5833:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "5833:5:61" + }, + "referencedDeclaration": 15663, + "src": "5833:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 15873, + "initialValue": { + "arguments": [ + { + "id": 15870, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15861, + "src": "5865:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + { + "id": 15871, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15863, + "src": "5871:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15869, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16032, + "src": "5860:4:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" + } + }, + "id": 15872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5860:24:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5833:51:61" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15875, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15868, + "src": "5902:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5913:6:61", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "5902:17:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5902:19:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 15879, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15863, + "src": "5940:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 15880, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15868, + "src": "5954:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5965:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "5954:19:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15878, + "name": "AllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15680, + "src": "5923:16:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 15882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5923:51:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 15874, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5894:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 15883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5894:81:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15884, + "nodeType": "ExpressionStatement", + "src": "5894:81:61" + }, + { + "expression": { + "id": 15890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 15885, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15868, + "src": "5985:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 15887, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5996:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "5985:19:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 15888, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6007:5:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 15889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6013:9:61", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6007:15:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5985:37:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15891, + "nodeType": "ExpressionStatement", + "src": "5985:37:61" + } + ] + }, + "documentation": { + "id": 15856, + "nodeType": "StructuredDocumentation", + "src": "5531:201:61", + "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": 15893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "close", + "nameLocation": "5746:5:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15861, + "mutability": "mutable", + "name": "self", + "nameLocation": "5786:4:61", + "nodeType": "VariableDeclaration", + "scope": 15893, + "src": "5752:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15860, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5760:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5752:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15859, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15858, + "name": "State", + "nameLocations": [ + "5771:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "5771:5:61" + }, + "referencedDeclaration": 15663, + "src": "5771:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15863, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5800:12:61", + "nodeType": "VariableDeclaration", + "scope": 15893, + "src": "5792:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15862, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5792:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5751:62:61" + }, + "returnParameters": { + "id": 15865, + "nodeType": "ParameterList", + "parameters": [], + "src": "5823:0:61" + }, + "scope": 16033, + "src": "5737:292:61", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15912, + "nodeType": "Block", + "src": "6318:48:61", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15908, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15899, + "src": "6340:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + { + "id": 15909, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15901, + "src": "6346:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15907, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16032, + "src": "6335:4:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_storage_ptr_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" + } + }, + "id": 15910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6335:24:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "functionReturnParameters": 15906, + "id": 15911, + "nodeType": "Return", + "src": "6328:31:61" + } + ] + }, + "documentation": { + "id": 15894, + "nodeType": "StructuredDocumentation", + "src": "6035:166:61", + "text": " @notice Get an allocation\n @param self The allocation list mapping\n @param allocationId The allocation id\n @return The allocation" + }, + "id": 15913, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nameLocation": "6215:3:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15899, + "mutability": "mutable", + "name": "self", + "nameLocation": "6253:4:61", + "nodeType": "VariableDeclaration", + "scope": 15913, + "src": "6219:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 15898, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 15895, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6227:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6219:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 15897, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15896, + "name": "State", + "nameLocations": [ + "6238:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "6238:5:61" + }, + "referencedDeclaration": 15663, + "src": "6238:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15901, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "6267:12:61", + "nodeType": "VariableDeclaration", + "scope": 15913, + "src": "6259:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6259:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6218:62:61" + }, + "returnParameters": { + "id": 15906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15905, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15913, + "src": "6304:12:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15904, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15903, + "name": "State", + "nameLocations": [ + "6304:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "6304:5:61" + }, + "referencedDeclaration": 15663, + "src": "6304:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "6303:14:61" + }, + "scope": 16033, + "src": "6206:160:61", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15945, + "nodeType": "Block", + "src": "6686:178:61", + "statements": [ + { + "assignments": [ + 15925 + ], + "declarations": [ + { + "constant": false, + "id": 15925, + "mutability": "mutable", + "name": "timeSinceLastPOI", + "nameLocation": "6704:16:61", + "nodeType": "VariableDeclaration", + "scope": 15945, + "src": "6696:24:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6696:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15936, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 15926, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6723:5:61", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 15927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6729:9:61", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6723:15:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 15930, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15917, + "src": "6750:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15931, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6755:9:61", + "memberName": "createdAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15652, + "src": "6750:14:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 15932, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15917, + "src": "6766:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15933, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6771:18:61", + "memberName": "lastPOIPresentedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15656, + "src": "6766:23:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 15928, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9938, + "src": "6741:4:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$9938_$", + "typeString": "type(library Math)" + } + }, + "id": 15929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6746:3:61", + "memberName": "max", + "nodeType": "MemberAccess", + "referencedDeclaration": 8625, + "src": "6741:8:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6741:49:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:67:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6696:94:61" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15937, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15917, + "src": "6807:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15938, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6812:6:61", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "6807:11:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6807:13:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15940, + "name": "timeSinceLastPOI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15925, + "src": "6824:16:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 15941, + "name": "staleThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15919, + "src": "6843:14:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6824:33:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6807:50:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15923, + "id": 15944, + "nodeType": "Return", + "src": "6800:57:61" + } + ] + }, + "documentation": { + "id": 15914, + "nodeType": "StructuredDocumentation", + "src": "6372:220:61", + "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\n @return True if the allocation is stale" + }, + "id": 15946, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isStale", + "nameLocation": "6606:7:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15917, + "mutability": "mutable", + "name": "self", + "nameLocation": "6627:4:61", + "nodeType": "VariableDeclaration", + "scope": 15946, + "src": "6614:17:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15916, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15915, + "name": "State", + "nameLocations": [ + "6614:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "6614:5:61" + }, + "referencedDeclaration": 15663, + "src": "6614:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15919, + "mutability": "mutable", + "name": "staleThreshold", + "nameLocation": "6641:14:61", + "nodeType": "VariableDeclaration", + "scope": 15946, + "src": "6633:22:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6633:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6613:43:61" + }, + "returnParameters": { + "id": 15923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15922, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15946, + "src": "6680:4:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15921, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6680:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6679:6:61" + }, + "scope": 16033, + "src": "6597:267:61", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15960, + "nodeType": "Block", + "src": "7075:43:61", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 15955, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15950, + "src": "7092:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7097:9:61", + "memberName": "createdAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15652, + "src": "7092:14:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 15957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7110:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7092:19:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15954, + "id": 15959, + "nodeType": "Return", + "src": "7085:26:61" + } + ] + }, + "documentation": { + "id": 15947, + "nodeType": "StructuredDocumentation", + "src": "6870:136:61", + "text": " @notice Checks if an allocation exists\n @param self The allocation\n @return True if the allocation exists" + }, + "id": 15961, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nameLocation": "7020:6:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15950, + "mutability": "mutable", + "name": "self", + "nameLocation": "7040:4:61", + "nodeType": "VariableDeclaration", + "scope": 15961, + "src": "7027:17:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15949, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15948, + "name": "State", + "nameLocations": [ + "7027:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "7027:5:61" + }, + "referencedDeclaration": 15663, + "src": "7027:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "7026:19:61" + }, + "returnParameters": { + "id": 15954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15953, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15961, + "src": "7069:4:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15952, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7069:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7068:6:61" + }, + "scope": 16033, + "src": "7011:107:61", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15979, + "nodeType": "Block", + "src": "7331:59:61", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15970, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15965, + "src": "7348:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7353:6:61", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 15961, + "src": "7348:11:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7348:13:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 15973, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15965, + "src": "7365:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7370:8:61", + "memberName": "closedAt", + "nodeType": "MemberAccess", + "referencedDeclaration": 15654, + "src": "7365:13:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7382:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7365:18:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7348:35:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15969, + "id": 15978, + "nodeType": "Return", + "src": "7341:42:61" + } + ] + }, + "documentation": { + "id": 15962, + "nodeType": "StructuredDocumentation", + "src": "7124:138:61", + "text": " @notice Checks if an allocation is open\n @param self The allocation\n @return True if the allocation is open" + }, + "id": 15980, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOpen", + "nameLocation": "7276:6:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15965, + "mutability": "mutable", + "name": "self", + "nameLocation": "7296:4:61", + "nodeType": "VariableDeclaration", + "scope": 15980, + "src": "7283:17:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15964, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15963, + "name": "State", + "nameLocations": [ + "7283:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "7283:5:61" + }, + "referencedDeclaration": 15663, + "src": "7283:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "7282:19:61" + }, + "returnParameters": { + "id": 15969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15968, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15980, + "src": "7325:4:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15967, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7325:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7324:6:61" + }, + "scope": 16033, + "src": "7267:123:61", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15998, + "nodeType": "Block", + "src": "7621:57:61", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 15989, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15984, + "src": "7638:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15990, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7643:6:61", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 15961, + "src": "7638:11:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 15991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7638:13:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 15992, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15984, + "src": "7655:4:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 15993, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7660:6:61", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "7655:11:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7670:1:61", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7655:16:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7638:33:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15988, + "id": 15997, + "nodeType": "Return", + "src": "7631:40:61" + } + ] + }, + "documentation": { + "id": 15981, + "nodeType": "StructuredDocumentation", + "src": "7396:150:61", + "text": " @notice Checks if an allocation is alturistic\n @param self The allocation\n @return True if the allocation is alturistic" + }, + "id": 15999, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAltruistic", + "nameLocation": "7560:12:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15984, + "mutability": "mutable", + "name": "self", + "nameLocation": "7586:4:61", + "nodeType": "VariableDeclaration", + "scope": 15999, + "src": "7573:17:61", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 15983, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15982, + "name": "State", + "nameLocations": [ + "7573:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "7573:5:61" + }, + "referencedDeclaration": 15663, + "src": "7573:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "7572:19:61" + }, + "returnParameters": { + "id": 15988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15987, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15999, + "src": "7615:4:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15986, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7615:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7614:6:61" + }, + "scope": 16033, + "src": "7551:127:61", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16031, + "nodeType": "Block", + "src": "8043:165:61", + "statements": [ + { + "assignments": [ + 16015 + ], + "declarations": [ + { + "constant": false, + "id": 16015, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "8067:10:61", + "nodeType": "VariableDeclaration", + "scope": 16031, + "src": "8053:24:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 16014, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16013, + "name": "State", + "nameLocations": [ + "8053:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "8053:5:61" + }, + "referencedDeclaration": 15663, + "src": "8053:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 16019, + "initialValue": { + "baseExpression": { + "id": 16016, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16005, + "src": "8080:4:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16018, + "indexExpression": { + "id": 16017, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16007, + "src": "8085:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8080:18:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8053:45:61" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 16021, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16015, + "src": "8116:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "id": 16022, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8127:6:61", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 15961, + "src": "8116:17:61", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 16023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8116:19:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16025, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16007, + "src": "8160:12:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16024, + "name": "AllocationDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15673, + "src": "8137:22:61", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8137:36:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16020, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8108:7:61", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8108:66:61", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16028, + "nodeType": "ExpressionStatement", + "src": "8108:66:61" + }, + { + "expression": { + "id": 16029, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16015, + "src": "8191:10:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State storage pointer" + } + }, + "functionReturnParameters": 16012, + "id": 16030, + "nodeType": "Return", + "src": "8184:17:61" + } + ] + }, + "documentation": { + "id": 16000, + "nodeType": "StructuredDocumentation", + "src": "7684:241:61", + "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\n @return The allocation" + }, + "id": 16032, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nameLocation": "7939:4:61", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16005, + "mutability": "mutable", + "name": "self", + "nameLocation": "7978:4:61", + "nodeType": "VariableDeclaration", + "scope": 16032, + "src": "7944:38:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 16004, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16001, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7952:7:61", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "7944:25:61", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16003, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16002, + "name": "State", + "nameLocations": [ + "7963:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "7963:5:61" + }, + "referencedDeclaration": 15663, + "src": "7963:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16007, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "7992:12:61", + "nodeType": "VariableDeclaration", + "scope": 16032, + "src": "7984:20:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7984:7:61", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7943:62:61" + }, + "returnParameters": { + "id": 16012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16011, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16032, + "src": "8028:13:61", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 16010, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16009, + "name": "State", + "nameLocations": [ + "8028:5:61" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "8028:5:61" + }, + "referencedDeclaration": 15663, + "src": "8028:5:61", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "8027:15:61" + }, + "scope": 16033, + "src": "7930:278:61", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 16034, + "src": "360:7850:61", + "usedErrors": [ + 15668, + 15673, + 15680 + ], + "usedEvents": [] + } + ], + "src": "45:8166:61" + }, + "id": 61 + }, + "contracts/libraries/Attestation.sol": { + "ast": { + "absolutePath": "contracts/libraries/Attestation.sol", + "exportedSymbols": { + "Attestation": [ + 16290 + ] + }, + "id": 16291, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16035, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:62" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Attestation", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 16036, + "nodeType": "StructuredDocumentation", + "src": "70:221:62", + "text": " @title Attestation library\n @notice A library to handle Attestation.\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": 16290, + "linearizedBaseContracts": [ + 16290 + ], + "name": "Attestation", + "nameLocation": "300:11:62", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Attestation.Receipt", + "documentation": { + "id": 16037, + "nodeType": "StructuredDocumentation", + "src": "318:242:62", + "text": " @notice Receipt content sent from the service provider in response to request\n @param requestCID The request CID\n @param responseCID The response CID\n @param subgraphDeploymentId The subgraph deployment id" + }, + "id": 16044, + "members": [ + { + "constant": false, + "id": 16039, + "mutability": "mutable", + "name": "requestCID", + "nameLocation": "598:10:62", + "nodeType": "VariableDeclaration", + "scope": 16044, + "src": "590:18:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16038, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "590:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16041, + "mutability": "mutable", + "name": "responseCID", + "nameLocation": "626:11:62", + "nodeType": "VariableDeclaration", + "scope": 16044, + "src": "618:19:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "618:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16043, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "655:20:62", + "nodeType": "VariableDeclaration", + "scope": 16044, + "src": "647:28:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16042, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "647:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Receipt", + "nameLocation": "572:7:62", + "nodeType": "StructDefinition", + "scope": 16290, + "src": "565:117:62", + "visibility": "public" + }, + { + "canonicalName": "Attestation.State", + "documentation": { + "id": 16045, + "nodeType": "StructuredDocumentation", + "src": "688:375:62", + "text": " @notice Attestation sent from the service provider in response to a request\n @param requestCID The request CID\n @param responseCID The response CID\n @param subgraphDeploymentId The subgraph deployment id\n @param r The r value of the signature\n @param s The s value of the signature\n @param v The v value of the signature" + }, + "id": 16058, + "members": [ + { + "constant": false, + "id": 16047, + "mutability": "mutable", + "name": "requestCID", + "nameLocation": "1099:10:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1091:18:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16046, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1091:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16049, + "mutability": "mutable", + "name": "responseCID", + "nameLocation": "1127:11:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1119:19:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16048, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1119:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16051, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "1156:20:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1148:28:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16050, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1148:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16053, + "mutability": "mutable", + "name": "r", + "nameLocation": "1194:1:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1186:9:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16052, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1186:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16055, + "mutability": "mutable", + "name": "s", + "nameLocation": "1213:1:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1205:9:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16054, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1205:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16057, + "mutability": "mutable", + "name": "v", + "nameLocation": "1230:1:62", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1224:7:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16056, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1224:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "State", + "nameLocation": "1075:5:62", + "nodeType": "StructDefinition", + "scope": 16290, + "src": "1068:170:62", + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 16059, + "nodeType": "StructuredDocumentation", + "src": "1244:76:62", + "text": "@notice Attestation size is the sum of the receipt (96) + signature (65)" + }, + "id": 16062, + "mutability": "constant", + "name": "RECEIPT_SIZE_BYTES", + "nameLocation": "1350:18:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1325:48:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1325:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3936", + "id": 16061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1371:2:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16063, + "nodeType": "StructuredDocumentation", + "src": "1380:54:62", + "text": "@notice The length of the r value of the signature" + }, + "id": 16066, + "mutability": "constant", + "name": "SIG_R_LENGTH", + "nameLocation": "1464:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1439:42:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1439:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3332", + "id": 16065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1479:2:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16067, + "nodeType": "StructuredDocumentation", + "src": "1488:54:62", + "text": "@notice The length of the s value of the signature" + }, + "id": 16070, + "mutability": "constant", + "name": "SIG_S_LENGTH", + "nameLocation": "1572:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1547:42:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3332", + "id": 16069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1587:2:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16071, + "nodeType": "StructuredDocumentation", + "src": "1596:54:62", + "text": "@notice The length of the v value of the signature" + }, + "id": 16074, + "mutability": "constant", + "name": "SIG_V_LENGTH", + "nameLocation": "1680:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1655:41:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1655:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 16073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1695:1:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16075, + "nodeType": "StructuredDocumentation", + "src": "1703:54:62", + "text": "@notice The offset of the r value of the signature" + }, + "id": 16078, + "mutability": "constant", + "name": "SIG_R_OFFSET", + "nameLocation": "1787:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1762:58:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1762:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "id": 16077, + "name": "RECEIPT_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16062, + "src": "1802:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16079, + "nodeType": "StructuredDocumentation", + "src": "1827:54:62", + "text": "@notice The offset of the s value of the signature" + }, + "id": 16084, + "mutability": "constant", + "name": "SIG_S_OFFSET", + "nameLocation": "1911:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "1886:73:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 16081, + "name": "RECEIPT_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16062, + "src": "1926:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16082, + "name": "SIG_R_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16066, + "src": "1947:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1926:33:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16085, + "nodeType": "StructuredDocumentation", + "src": "1966:54:62", + "text": "@notice The offset of the v value of the signature" + }, + "id": 16092, + "mutability": "constant", + "name": "SIG_V_OFFSET", + "nameLocation": "2050:12:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "2025:88:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2025:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 16087, + "name": "RECEIPT_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16062, + "src": "2065:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16088, + "name": "SIG_R_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16066, + "src": "2086:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2065:33:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16090, + "name": "SIG_S_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16070, + "src": "2101:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2065:48:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16093, + "nodeType": "StructuredDocumentation", + "src": "2120:37:62", + "text": "@notice The size of the signature" + }, + "id": 16100, + "mutability": "constant", + "name": "SIG_SIZE_BYTES", + "nameLocation": "2187:14:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "2162:84:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2162:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 16095, + "name": "SIG_R_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16066, + "src": "2204:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16096, + "name": "SIG_S_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16070, + "src": "2219:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2204:27:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16098, + "name": "SIG_V_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16074, + "src": "2234:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2204:42:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16101, + "nodeType": "StructuredDocumentation", + "src": "2253:39:62", + "text": "@notice The size of the attestation" + }, + "id": 16106, + "mutability": "constant", + "name": "ATTESTATION_SIZE_BYTES", + "nameLocation": "2322:22:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "2297:85:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2297:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 16103, + "name": "RECEIPT_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16062, + "src": "2347:18:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16104, + "name": "SIG_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16100, + "src": "2368:14:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2347:35:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16107, + "nodeType": "StructuredDocumentation", + "src": "2389:41:62", + "text": "@notice The length of the uint8 value" + }, + "id": 16110, + "mutability": "constant", + "name": "UINT8_BYTE_LENGTH", + "nameLocation": "2460:17:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "2435:46:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2435:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 16109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2480:1:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16111, + "nodeType": "StructuredDocumentation", + "src": "2488:43:62", + "text": "@notice The length of the bytes32 value" + }, + "id": 16114, + "mutability": "constant", + "name": "BYTES32_BYTE_LENGTH", + "nameLocation": "2561:19:62", + "nodeType": "VariableDeclaration", + "scope": 16290, + "src": "2536:49:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2536:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3332", + "id": 16113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2583:2:62", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 16115, + "nodeType": "StructuredDocumentation", + "src": "2592:216:62", + "text": " @notice The error thrown when the attestation data length is invalid\n @param length The length of the attestation data\n @param expectedLength The expected length of the attestation data" + }, + "errorSelector": "3fdf3423", + "id": 16121, + "name": "AttestationInvalidBytesLength", + "nameLocation": "2819:29:62", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16117, + "mutability": "mutable", + "name": "length", + "nameLocation": "2857:6:62", + "nodeType": "VariableDeclaration", + "scope": 16121, + "src": "2849:14:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2849:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16119, + "mutability": "mutable", + "name": "expectedLength", + "nameLocation": "2873:14:62", + "nodeType": "VariableDeclaration", + "scope": 16121, + "src": "2865:22:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2865:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2848:40:62" + }, + "src": "2813:76:62" + }, + { + "body": { + "id": 16152, + "nodeType": "Block", + "src": "3319:236:62", + "statements": [ + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 16137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16133, + "name": "_attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16125, + "src": "3337:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:10:62", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "3337:24:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 16135, + "name": "_attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16128, + "src": "3365:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16136, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3379:10:62", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "3365:24:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3337:52:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 16142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16138, + "name": "_attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16125, + "src": "3405:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3419:20:62", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "3405:34:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 16140, + "name": "_attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16128, + "src": "3443:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3457:20:62", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "3443:34:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3405:72:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3337:140:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 16148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16144, + "name": "_attestation1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16125, + "src": "3493:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3507:11:62", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "3493:25:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 16146, + "name": "_attestation2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16128, + "src": "3522:13:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 16147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3536:11:62", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "3522:25:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3493:54:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3337:210:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 16150, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3336:212:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 16132, + "id": 16151, + "nodeType": "Return", + "src": "3329:219:62" + } + ] + }, + "documentation": { + "id": 16122, + "nodeType": "StructuredDocumentation", + "src": "2895:264:62", + "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": 16153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "areConflicting", + "nameLocation": "3173:14:62", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16125, + "mutability": "mutable", + "name": "_attestation1", + "nameLocation": "3222:13:62", + "nodeType": "VariableDeclaration", + "scope": 16153, + "src": "3197:38:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 16124, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16123, + "name": "Attestation.State", + "nameLocations": [ + "3197:11:62", + "3209:5:62" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "3197:17:62" + }, + "referencedDeclaration": 16058, + "src": "3197:17:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16128, + "mutability": "mutable", + "name": "_attestation2", + "nameLocation": "3270:13:62", + "nodeType": "VariableDeclaration", + "scope": 16153, + "src": "3245:38:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 16127, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16126, + "name": "Attestation.State", + "nameLocations": [ + "3245:11:62", + "3257:5:62" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "3245:17:62" + }, + "referencedDeclaration": 16058, + "src": "3245:17:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "3187:102:62" + }, + "returnParameters": { + "id": 16132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16153, + "src": "3313:4:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16130, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3313:4:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3312:6:62" + }, + "scope": 16290, + "src": "3164:391:62", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16222, + "nodeType": "Block", + "src": "3790:748:62", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16163, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "3862:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3868:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3862:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 16165, + "name": "ATTESTATION_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16106, + "src": "3878:22:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3862:38:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 16168, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "3944:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3950:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3944:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 16170, + "name": "ATTESTATION_SIZE_BYTES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16106, + "src": "3958:22:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16167, + "name": "AttestationInvalidBytesLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16121, + "src": "3914:29:62", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 16171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3914:67:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3841:7:62", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3841:150:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16173, + "nodeType": "ExpressionStatement", + "src": "3841:150:62" + }, + { + "assignments": [ + 16175, + 16177, + 16179 + ], + "declarations": [ + { + "constant": false, + "id": 16175, + "mutability": "mutable", + "name": "requestCID", + "nameLocation": "4037:10:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4029:18:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16174, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4029:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16177, + "mutability": "mutable", + "name": "responseCID", + "nameLocation": "4057:11:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4049:19:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16176, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4049:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16179, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "4078:20:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4070:28:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16178, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4070:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 16191, + "initialValue": { + "arguments": [ + { + "id": 16182, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "4126:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 16184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4146:7:62", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 16183, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4146:7:62", + "typeDescriptions": {} + } + }, + { + "id": 16186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4155:7:62", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 16185, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4155:7:62", + "typeDescriptions": {} + } + }, + { + "id": 16188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4164:7:62", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 16187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4164:7:62", + "typeDescriptions": {} + } + } + ], + "id": 16189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4145:27:62", + "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": 16180, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4102:3:62", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 16181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4106:6:62", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4102:10:62", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 16190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4102:80:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4028:154:62" + }, + { + "assignments": [ + 16193 + ], + "declarations": [ + { + "constant": false, + "id": 16193, + "mutability": "mutable", + "name": "r", + "nameLocation": "4315:1:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4307:9:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4307:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 16198, + "initialValue": { + "arguments": [ + { + "id": 16195, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "4330:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 16196, + "name": "SIG_R_OFFSET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16078, + "src": "4337:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16194, + "name": "_toBytes32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16289, + "src": "4319:10:62", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 16197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:31:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4307:43:62" + }, + { + "assignments": [ + 16200 + ], + "declarations": [ + { + "constant": false, + "id": 16200, + "mutability": "mutable", + "name": "s", + "nameLocation": "4368:1:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4360:9:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16199, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4360:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 16205, + "initialValue": { + "arguments": [ + { + "id": 16202, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "4383:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 16203, + "name": "SIG_S_OFFSET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16084, + "src": "4390:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16201, + "name": "_toBytes32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16289, + "src": "4372:10:62", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 16204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4372:31:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4360:43:62" + }, + { + "assignments": [ + 16207 + ], + "declarations": [ + { + "constant": false, + "id": 16207, + "mutability": "mutable", + "name": "v", + "nameLocation": "4419:1:62", + "nodeType": "VariableDeclaration", + "scope": 16222, + "src": "4413:7:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16206, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4413:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 16212, + "initialValue": { + "arguments": [ + { + "id": 16209, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16156, + "src": "4432:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 16210, + "name": "SIG_V_OFFSET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16092, + "src": "4439:12:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16208, + "name": "_toUint8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16256, + "src": "4423:8:62", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 16211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:29:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4413:39:62" + }, + { + "expression": { + "arguments": [ + { + "id": 16214, + "name": "requestCID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16175, + "src": "4476:10:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16215, + "name": "responseCID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16177, + "src": "4488:11:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16216, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16179, + "src": "4501:20:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16217, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16193, + "src": "4523:1:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16218, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16200, + "src": "4526:1:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16219, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16207, + "src": "4529:1:62", + "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": 16213, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16058, + "src": "4470:5:62", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_State_$16058_storage_ptr_$", + "typeString": "type(struct Attestation.State storage pointer)" + } + }, + "id": 16220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4470:61:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "functionReturnParameters": 16161, + "id": 16221, + "nodeType": "Return", + "src": "4463:68:62" + } + ] + }, + "documentation": { + "id": 16154, + "nodeType": "StructuredDocumentation", + "src": "3561:152:62", + "text": " @dev Parse the bytes attestation into a struct from `_data`.\n @param _data The bytes to parse\n @return Attestation struct" + }, + "id": 16223, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parse", + "nameLocation": "3727:5:62", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16156, + "mutability": "mutable", + "name": "_data", + "nameLocation": "3746:5:62", + "nodeType": "VariableDeclaration", + "scope": 16223, + "src": "3733:18:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16155, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3733:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3732:20:62" + }, + "returnParameters": { + "id": 16161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16160, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16223, + "src": "3776:12:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 16159, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16158, + "name": "State", + "nameLocations": [ + "3776:5:62" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "3776:5:62" + }, + "referencedDeclaration": 16058, + "src": "3776:5:62", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "3775:14:62" + }, + "scope": 16290, + "src": "3718:820:62", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16255, + "nodeType": "Block", + "src": "4818:584:62", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16234, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16226, + "src": "4849:6:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4856:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4849:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16236, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16228, + "src": "4866:6:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16237, + "name": "UINT8_BYTE_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16110, + "src": "4875:17:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4866:26:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4849:43:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 16241, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16226, + "src": "4936:6:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4943:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4936:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16243, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16228, + "src": "4951:6:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16244, + "name": "UINT8_BYTE_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16110, + "src": "4960:17:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4951:26:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16240, + "name": "AttestationInvalidBytesLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16121, + "src": "4906:29:62", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 16246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:72:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16233, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4828:7:62", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4828:160:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16248, + "nodeType": "ExpressionStatement", + "src": "4828:160:62" + }, + { + "assignments": [ + 16250 + ], + "declarations": [ + { + "constant": false, + "id": 16250, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "5004:8:62", + "nodeType": "VariableDeclaration", + "scope": 16255, + "src": "4998:14:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16249, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4998:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 16251, + "nodeType": "VariableDeclarationStatement", + "src": "4998:14:62" + }, + { + "AST": { + "nativeSrc": "5088:282:62", + "nodeType": "YulBlock", + "src": "5088:282:62", + "statements": [ + { + "nativeSrc": "5312:48:62", + "nodeType": "YulAssignment", + "src": "5312:48:62", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "5338:6:62", + "nodeType": "YulIdentifier", + "src": "5338:6:62" + }, + { + "kind": "number", + "nativeSrc": "5346:3:62", + "nodeType": "YulLiteral", + "src": "5346:3:62", + "type": "", + "value": "0x1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5334:3:62", + "nodeType": "YulIdentifier", + "src": "5334:3:62" + }, + "nativeSrc": "5334:16:62", + "nodeType": "YulFunctionCall", + "src": "5334:16:62" + }, + { + "name": "_start", + "nativeSrc": "5352:6:62", + "nodeType": "YulIdentifier", + "src": "5352:6:62" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5330:3:62", + "nodeType": "YulIdentifier", + "src": "5330:3:62" + }, + "nativeSrc": "5330:29:62", + "nodeType": "YulFunctionCall", + "src": "5330:29:62" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5324:5:62", + "nodeType": "YulIdentifier", + "src": "5324:5:62" + }, + "nativeSrc": "5324:36:62", + "nodeType": "YulFunctionCall", + "src": "5324:36:62" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "5312:8:62", + "nodeType": "YulIdentifier", + "src": "5312:8:62" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 16226, + "isOffset": false, + "isSlot": false, + "src": "5338:6:62", + "valueSize": 1 + }, + { + "declaration": 16228, + "isOffset": false, + "isSlot": false, + "src": "5352:6:62", + "valueSize": 1 + }, + { + "declaration": 16250, + "isOffset": false, + "isSlot": false, + "src": "5312:8:62", + "valueSize": 1 + } + ], + "id": 16252, + "nodeType": "InlineAssembly", + "src": "5079:291:62" + }, + { + "expression": { + "id": 16253, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16250, + "src": "5387:8:62", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 16232, + "id": 16254, + "nodeType": "Return", + "src": "5380:15:62" + } + ] + }, + "documentation": { + "id": 16224, + "nodeType": "StructuredDocumentation", + "src": "4544:185:62", + "text": " @dev Parse a uint8 from `_bytes` starting at offset `_start`.\n @param _bytes The bytes to parse\n @param _start The start offset\n @return uint8 value" + }, + "id": 16256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_toUint8", + "nameLocation": "4743:8:62", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16226, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "4765:6:62", + "nodeType": "VariableDeclaration", + "scope": 16256, + "src": "4752:19:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16225, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4752:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16228, + "mutability": "mutable", + "name": "_start", + "nameLocation": "4781:6:62", + "nodeType": "VariableDeclaration", + "scope": 16256, + "src": "4773:14:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4773:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4751:37:62" + }, + "returnParameters": { + "id": 16232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16231, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16256, + "src": "4811:5:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16230, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4811:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4810:7:62" + }, + "scope": 16290, + "src": "4734:668:62", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 16288, + "nodeType": "Block", + "src": "5690:390:62", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16267, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16259, + "src": "5721:6:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5728:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5721:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16269, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16261, + "src": "5738:6:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16270, + "name": "BYTES32_BYTE_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16114, + "src": "5747:19:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5738:28:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5721:45:62", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 16274, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16259, + "src": "5810:6:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5817:6:62", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5810:13:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16276, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16261, + "src": "5825:6:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 16277, + "name": "BYTES32_BYTE_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16114, + "src": "5834:19:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5825:28:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16273, + "name": "AttestationInvalidBytesLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16121, + "src": "5780:29:62", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 16279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5780:74:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16266, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5700:7:62", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5700:164:62", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16281, + "nodeType": "ExpressionStatement", + "src": "5700:164:62" + }, + { + "assignments": [ + 16283 + ], + "declarations": [ + { + "constant": false, + "id": 16283, + "mutability": "mutable", + "name": "tempBytes32", + "nameLocation": "5882:11:62", + "nodeType": "VariableDeclaration", + "scope": 16288, + "src": "5874:19:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16282, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5874:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 16284, + "nodeType": "VariableDeclarationStatement", + "src": "5874:19:62" + }, + { + "AST": { + "nativeSrc": "5969:76:62", + "nodeType": "YulBlock", + "src": "5969:76:62", + "statements": [ + { + "nativeSrc": "5983:52:62", + "nodeType": "YulAssignment", + "src": "5983:52:62", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "6012:6:62", + "nodeType": "YulIdentifier", + "src": "6012:6:62" + }, + { + "kind": "number", + "nativeSrc": "6020:4:62", + "nodeType": "YulLiteral", + "src": "6020:4:62", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6008:3:62", + "nodeType": "YulIdentifier", + "src": "6008:3:62" + }, + "nativeSrc": "6008:17:62", + "nodeType": "YulFunctionCall", + "src": "6008:17:62" + }, + { + "name": "_start", + "nativeSrc": "6027:6:62", + "nodeType": "YulIdentifier", + "src": "6027:6:62" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6004:3:62", + "nodeType": "YulIdentifier", + "src": "6004:3:62" + }, + "nativeSrc": "6004:30:62", + "nodeType": "YulFunctionCall", + "src": "6004:30:62" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5998:5:62", + "nodeType": "YulIdentifier", + "src": "5998:5:62" + }, + "nativeSrc": "5998:37:62", + "nodeType": "YulFunctionCall", + "src": "5998:37:62" + }, + "variableNames": [ + { + "name": "tempBytes32", + "nativeSrc": "5983:11:62", + "nodeType": "YulIdentifier", + "src": "5983:11:62" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 16259, + "isOffset": false, + "isSlot": false, + "src": "6012:6:62", + "valueSize": 1 + }, + { + "declaration": 16261, + "isOffset": false, + "isSlot": false, + "src": "6027:6:62", + "valueSize": 1 + }, + { + "declaration": 16283, + "isOffset": false, + "isSlot": false, + "src": "5983:11:62", + "valueSize": 1 + } + ], + "id": 16285, + "nodeType": "InlineAssembly", + "src": "5960:85:62" + }, + { + "expression": { + "id": 16286, + "name": "tempBytes32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16283, + "src": "6062:11:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 16265, + "id": 16287, + "nodeType": "Return", + "src": "6055:18:62" + } + ] + }, + "documentation": { + "id": 16257, + "nodeType": "StructuredDocumentation", + "src": "5408:189:62", + "text": " @dev Parse a bytes32 from `_bytes` starting at offset `_start`.\n @param _bytes The bytes to parse\n @param _start The start offset\n @return bytes32 value" + }, + "id": 16289, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_toBytes32", + "nameLocation": "5611:10:62", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16259, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "5635:6:62", + "nodeType": "VariableDeclaration", + "scope": 16289, + "src": "5622:19:62", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16258, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5622:5:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16261, + "mutability": "mutable", + "name": "_start", + "nameLocation": "5651:6:62", + "nodeType": "VariableDeclaration", + "scope": 16289, + "src": "5643:14:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5643:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5621:37:62" + }, + "returnParameters": { + "id": 16265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16289, + "src": "5681:7:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16263, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5681:7:62", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5680:9:62" + }, + "scope": 16290, + "src": "5602:478:62", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 16291, + "src": "292:5790:62", + "usedErrors": [ + 16121 + ], + "usedEvents": [] + } + ], + "src": "45:6038:62" + }, + "id": 62 + }, + "contracts/libraries/LegacyAllocation.sol": { + "ast": { + "absolutePath": "contracts/libraries/LegacyAllocation.sol", + "exportedSymbols": { + "IHorizonStaking": [ + 2625 + ], + "LegacyAllocation": [ + 16462 + ] + }, + "id": 16463, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16292, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:63" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", + "id": 16294, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 16463, + "sourceUnit": 2626, + "src": "70:98:63", + "symbolAliases": [ + { + "foreign": { + "id": 16293, + "name": "IHorizonStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "79:15:63", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LegacyAllocation", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 16295, + "nodeType": "StructuredDocumentation", + "src": "170:233:63", + "text": " @title LegacyAllocation library\n @notice A library to handle legacy Allocations.\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": 16462, + "linearizedBaseContracts": [ + 16462 + ], + "name": "LegacyAllocation", + "nameLocation": "412:16:63", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 16299, + "libraryName": { + "id": 16296, + "name": "LegacyAllocation", + "nameLocations": [ + "441:16:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16462, + "src": "441:16:63" + }, + "nodeType": "UsingForDirective", + "src": "435:33:63", + "typeName": { + "id": 16298, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16297, + "name": "State", + "nameLocations": [ + "462:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "462:5:63" + }, + "referencedDeclaration": 16305, + "src": "462:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + { + "canonicalName": "LegacyAllocation.State", + "documentation": { + "id": 16300, + "nodeType": "StructuredDocumentation", + "src": "474:450:63", + "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.\n @param indexer The indexer that owns the allocation\n @param subgraphDeploymentId The subgraph deployment id the allocation is for" + }, + "id": 16305, + "members": [ + { + "constant": false, + "id": 16302, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "960:7:63", + "nodeType": "VariableDeclaration", + "scope": 16305, + "src": "952:15:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "952:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16304, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "985:20:63", + "nodeType": "VariableDeclaration", + "scope": 16305, + "src": "977:28:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16303, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "977:7:63", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "State", + "nameLocation": "936:5:63", + "nodeType": "StructDefinition", + "scope": 16462, + "src": "929:83:63", + "visibility": "public" + }, + { + "documentation": { + "id": 16306, + "nodeType": "StructuredDocumentation", + "src": "1018:139:63", + "text": " @notice Thrown when attempting to migrate an allocation with an existing id\n @param allocationId The allocation id" + }, + "errorSelector": "b5f497c4", + "id": 16310, + "name": "LegacyAllocationAlreadyExists", + "nameLocation": "1168:29:63", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16308, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "1206:12:63", + "nodeType": "VariableDeclaration", + "scope": 16310, + "src": "1198:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1198:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1197:22:63" + }, + "src": "1162:58:63" + }, + { + "documentation": { + "id": 16311, + "nodeType": "StructuredDocumentation", + "src": "1226:123:63", + "text": " @notice Thrown when trying to get a non-existent allocation\n @param allocationId The allocation id" + }, + "errorSelector": "40e1fd4a", + "id": 16315, + "name": "LegacyAllocationDoesNotExist", + "nameLocation": "1360:28:63", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16313, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "1397:12:63", + "nodeType": "VariableDeclaration", + "scope": 16315, + "src": "1389:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1389:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1388:22:63" + }, + "src": "1354:57:63" + }, + { + "body": { + "id": 16351, + "nodeType": "Block", + "src": "2077:202:63", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2095:28:63", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 16331, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16321, + "src": "2096:4:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16333, + "indexExpression": { + "id": 16332, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16325, + "src": "2101:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2096:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "id": 16334, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2115:6:63", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 16428, + "src": "2096:25:63", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$16305_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$16305_memory_ptr_$", + "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" + } + }, + "id": 16335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2096:27:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16338, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16325, + "src": "2155:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16337, + "name": "LegacyAllocationAlreadyExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16310, + "src": "2125:29:63", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2125:43:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16330, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2087:7:63", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2087:82:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16341, + "nodeType": "ExpressionStatement", + "src": "2087:82:63" + }, + { + "expression": { + "id": 16349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 16342, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16321, + "src": "2180:4:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16344, + "indexExpression": { + "id": 16343, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16325, + "src": "2185:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2180:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 16346, + "name": "indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16323, + "src": "2218:7:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16347, + "name": "subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16327, + "src": "2249:20:63", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 16345, + "name": "State", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16305, + "src": "2201:5:63", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_State_$16305_storage_ptr_$", + "typeString": "type(struct LegacyAllocation.State storage pointer)" + } + }, + "id": 16348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2209:7:63", + "2227:20:63" + ], + "names": [ + "indexer", + "subgraphDeploymentId" + ], + "nodeType": "FunctionCall", + "src": "2201:71:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State memory" + } + }, + "src": "2180:92:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "id": 16350, + "nodeType": "ExpressionStatement", + "src": "2180:92:63" + } + ] + }, + "documentation": { + "id": 16316, + "nodeType": "StructuredDocumentation", + "src": "1417:482:63", + "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": 16352, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "migrate", + "nameLocation": "1913:7:63", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16321, + "mutability": "mutable", + "name": "self", + "nameLocation": "1964:4:63", + "nodeType": "VariableDeclaration", + "scope": 16352, + "src": "1930:38:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "typeName": { + "id": 16320, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1938:7:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1930:25:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16319, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16318, + "name": "State", + "nameLocations": [ + "1949:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "1949:5:63" + }, + "referencedDeclaration": 16305, + "src": "1949:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16323, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "1986:7:63", + "nodeType": "VariableDeclaration", + "scope": 16352, + "src": "1978:15:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1978:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16325, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2011:12:63", + "nodeType": "VariableDeclaration", + "scope": 16352, + "src": "2003:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2003:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16327, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "2041:20:63", + "nodeType": "VariableDeclaration", + "scope": 16352, + "src": "2033:28:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16326, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2033:7:63", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1920:147:63" + }, + "returnParameters": { + "id": 16329, + "nodeType": "ParameterList", + "parameters": [], + "src": "2077:0:63" + }, + "scope": 16462, + "src": "1904:375:63", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16371, + "nodeType": "Block", + "src": "2596:48:63", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16367, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16358, + "src": "2618:4:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + { + "id": 16368, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16360, + "src": "2624:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16366, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16461, + "src": "2613:4:63", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$16305_storage_$_$_t_address_$returns$_t_struct$_State_$16305_storage_ptr_$", + "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address) view returns (struct LegacyAllocation.State storage pointer)" + } + }, + "id": 16369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2613:24:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State storage pointer" + } + }, + "functionReturnParameters": 16365, + "id": 16370, + "nodeType": "Return", + "src": "2606:31:63" + } + ] + }, + "documentation": { + "id": 16353, + "nodeType": "StructuredDocumentation", + "src": "2285:194:63", + "text": " @notice Get a legacy allocation\n @param self The legacy allocation list mapping\n @param allocationId The allocation id\n @return The legacy allocation details" + }, + "id": 16372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nameLocation": "2493:3:63", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16358, + "mutability": "mutable", + "name": "self", + "nameLocation": "2531:4:63", + "nodeType": "VariableDeclaration", + "scope": 16372, + "src": "2497:38:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "typeName": { + "id": 16357, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2505:7:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2497:25:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16356, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16355, + "name": "State", + "nameLocations": [ + "2516:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "2516:5:63" + }, + "referencedDeclaration": 16305, + "src": "2516:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16360, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2545:12:63", + "nodeType": "VariableDeclaration", + "scope": 16372, + "src": "2537:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2537:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2496:62:63" + }, + "returnParameters": { + "id": 16365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16364, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16372, + "src": "2582:12:63", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 16363, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16362, + "name": "State", + "nameLocations": [ + "2582:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "2582:5:63" + }, + "referencedDeclaration": 16305, + "src": "2582:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "2581:14:63" + }, + "scope": 16462, + "src": "2484:160:63", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16409, + "nodeType": "Block", + "src": "3264:203:63", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3282:28:63", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 16387, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16378, + "src": "3283:4:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16389, + "indexExpression": { + "id": 16388, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16383, + "src": "3288:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3283:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "id": 16390, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3302:6:63", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 16428, + "src": "3283:25:63", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$16305_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$16305_memory_ptr_$", + "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" + } + }, + "id": 16391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3283:27:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16394, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16383, + "src": "3342:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16393, + "name": "LegacyAllocationAlreadyExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16310, + "src": "3312:29:63", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3312:43:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3274:7:63", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3274:82:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16397, + "nodeType": "ExpressionStatement", + "src": "3274:82:63" + }, + { + "expression": { + "arguments": [ + { + "id": 16403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3374:40:63", + "subExpression": { + "arguments": [ + { + "id": 16401, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16383, + "src": "3401:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 16399, + "name": "graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16381, + "src": "3375:12:63", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 16400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3388:12:63", + "memberName": "isAllocation", + "nodeType": "MemberAccess", + "referencedDeclaration": 3213, + "src": "3375:25:63", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 16402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3375:39:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16405, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16383, + "src": "3446:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16404, + "name": "LegacyAllocationAlreadyExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16310, + "src": "3416:29:63", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:43:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16398, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3366:7:63", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3366:94:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16408, + "nodeType": "ExpressionStatement", + "src": "3366:94:63" + } + ] + }, + "documentation": { + "id": 16373, + "nodeType": "StructuredDocumentation", + "src": "2650:449:63", + "text": " @notice Revert if a legacy allocation exists\n @dev We first check the migrated mapping then the old staking contract.\n @dev TRANSITION PERIOD: after the transition period when all the allocations are migrated we can\n remove the call to the staking contract.\n @param self The legacy allocation list mapping\n @param graphStaking The Horizon Staking contract\n @param allocationId The allocation id" + }, + "id": 16410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "revertIfExists", + "nameLocation": "3113:14:63", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16378, + "mutability": "mutable", + "name": "self", + "nameLocation": "3171:4:63", + "nodeType": "VariableDeclaration", + "scope": 16410, + "src": "3137:38:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "typeName": { + "id": 16377, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3145:7:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3137:25:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16376, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16375, + "name": "State", + "nameLocations": [ + "3156:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "3156:5:63" + }, + "referencedDeclaration": 16305, + "src": "3156:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16381, + "mutability": "mutable", + "name": "graphStaking", + "nameLocation": "3201:12:63", + "nodeType": "VariableDeclaration", + "scope": 16410, + "src": "3185:28:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + "typeName": { + "id": 16380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16379, + "name": "IHorizonStaking", + "nameLocations": [ + "3185:15:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2625, + "src": "3185:15:63" + }, + "referencedDeclaration": 2625, + "src": "3185:15:63", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16383, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "3231:12:63", + "nodeType": "VariableDeclaration", + "scope": 16410, + "src": "3223:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3223:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3127:122:63" + }, + "returnParameters": { + "id": 16385, + "nodeType": "ParameterList", + "parameters": [], + "src": "3264:0:63" + }, + "scope": 16462, + "src": "3104:363:63", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16427, + "nodeType": "Block", + "src": "3690:50:63", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 16425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16419, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16414, + "src": "3707:4:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State memory" + } + }, + "id": 16420, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3712:7:63", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 16302, + "src": "3707:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 16423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3731:1:63", + "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": 16422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3723:7:63", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3723:7:63", + "typeDescriptions": {} + } + }, + "id": 16424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3723:10:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3707:26:63", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 16418, + "id": 16426, + "nodeType": "Return", + "src": "3700:33:63" + } + ] + }, + "documentation": { + "id": 16411, + "nodeType": "StructuredDocumentation", + "src": "3473:148:63", + "text": " @notice Check if a legacy allocation exists\n @param self The legacy allocation\n @return True if the allocation exists" + }, + "id": 16428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nameLocation": "3635:6:63", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16414, + "mutability": "mutable", + "name": "self", + "nameLocation": "3655:4:63", + "nodeType": "VariableDeclaration", + "scope": 16428, + "src": "3642:17:63", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_memory_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 16413, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16412, + "name": "State", + "nameLocations": [ + "3642:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "3642:5:63" + }, + "referencedDeclaration": 16305, + "src": "3642:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "3641:19:63" + }, + "returnParameters": { + "id": 16418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16428, + "src": "3684:4:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16416, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3684:4:63", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3683:6:63" + }, + "scope": 16462, + "src": "3626:114:63", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16460, + "nodeType": "Block", + "src": "4058:171:63", + "statements": [ + { + "assignments": [ + 16444 + ], + "declarations": [ + { + "constant": false, + "id": 16444, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "4082:10:63", + "nodeType": "VariableDeclaration", + "scope": 16460, + "src": "4068:24:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 16443, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16442, + "name": "State", + "nameLocations": [ + "4068:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "4068:5:63" + }, + "referencedDeclaration": 16305, + "src": "4068:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 16448, + "initialValue": { + "baseExpression": { + "id": 16445, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16434, + "src": "4095:4:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16447, + "indexExpression": { + "id": 16446, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16436, + "src": "4100:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4095:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage", + "typeString": "struct LegacyAllocation.State storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4068:45:63" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 16450, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16444, + "src": "4131:10:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State storage pointer" + } + }, + "id": 16451, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4142:6:63", + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 16428, + "src": "4131:17:63", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$16305_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$16305_memory_ptr_$", + "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" + } + }, + "id": 16452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4131:19:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16454, + "name": "allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16436, + "src": "4181:12:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16453, + "name": "LegacyAllocationDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16315, + "src": "4152:28:63", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:42:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16449, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4123:7:63", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4123:72:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16457, + "nodeType": "ExpressionStatement", + "src": "4123:72:63" + }, + { + "expression": { + "id": 16458, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16444, + "src": "4212:10:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State storage pointer" + } + }, + "functionReturnParameters": 16441, + "id": 16459, + "nodeType": "Return", + "src": "4205:17:63" + } + ] + }, + "documentation": { + "id": 16429, + "nodeType": "StructuredDocumentation", + "src": "3746:194:63", + "text": " @notice Get a legacy allocation\n @param self The legacy allocation list mapping\n @param allocationId The allocation id\n @return The legacy allocation details" + }, + "id": 16461, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nameLocation": "3954:4:63", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16434, + "mutability": "mutable", + "name": "self", + "nameLocation": "3993:4:63", + "nodeType": "VariableDeclaration", + "scope": 16461, + "src": "3959:38:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "typeName": { + "id": 16433, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3967:7:63", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3959:25:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16432, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16431, + "name": "State", + "nameLocations": [ + "3978:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "3978:5:63" + }, + "referencedDeclaration": 16305, + "src": "3978:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16436, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4007:12:63", + "nodeType": "VariableDeclaration", + "scope": 16461, + "src": "3999:20:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3999:7:63", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3958:62:63" + }, + "returnParameters": { + "id": 16441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16461, + "src": "4043:13:63", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + }, + "typeName": { + "id": 16439, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16438, + "name": "State", + "nameLocations": [ + "4043:5:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "4043:5:63" + }, + "referencedDeclaration": 16305, + "src": "4043:5:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + }, + "visibility": "internal" + } + ], + "src": "4042:15:63" + }, + "scope": 16462, + "src": "3945:284:63", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 16463, + "src": "404:3827:63", + "usedErrors": [ + 16310, + 16315 + ], + "usedEvents": [] + } + ], + "src": "45:4187:63" + }, + "id": 63 + }, + "contracts/mocks/imports.sol": { + "ast": { + "absolutePath": "contracts/mocks/imports.sol", + "exportedSymbols": { + "ICallhookReceiver": [ + 382 + ], + "IDisputeManager": [ + 314 + ], + "IL2Curation": [ + 481 + ], + "IL2GNS": [ + 532 + ] + }, + "id": 16468, + "license": "GPL-2.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16464, + "literals": [ + "solidity", + "^", + "0.7", + ".6", + "||", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:33:64" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol", + "file": "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol", + "id": 16465, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 16468, + "sourceUnit": 482, + "src": "130:72:64", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol", + "file": "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol", + "id": 16466, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 16468, + "sourceUnit": 533, + "src": "203:68:64", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol", + "file": "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol", + "id": 16467, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 16468, + "sourceUnit": 315, + "src": "272:73:64", + "symbolAliases": [], + "unitAlias": "" + } + ], + "src": "45:301:64" + }, + "id": 64 + }, + "contracts/utilities/AllocationManager.sol": { + "ast": { + "absolutePath": "contracts/utilities/AllocationManager.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "AllocationManager": [ + 17363 + ], + "AllocationManagerV1Storage": [ + 17401 + ], + "ECDSA": [ + 8231 + ], + "EIP712Upgradeable": [ + 6044 + ], + "GraphDirectory": [ + 4928 + ], + "IGraphPayments": [ + 2489 + ], + "IGraphToken": [ + 758 + ], + "IHorizonStakingTypes": [ + 4073 + ], + "LegacyAllocation": [ + 16462 + ], + "PPMMath": [ + 4539 + ], + "ProvisionTracker": [ + 1801 + ], + "TokenUtils": [ + 840 + ] + }, + "id": 17364, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16469, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:65" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", + "id": 16471, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 2490, + "src": "70:96:65", + "symbolAliases": [ + { + "foreign": { + "id": 16470, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "79:14:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", + "id": 16473, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 759, + "src": "167:87:65", + "symbolAliases": [ + { + "foreign": { + "id": 16472, + "name": "IGraphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "176:11:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", + "id": 16475, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 4074, + "src": "255:117:65", + "symbolAliases": [ + { + "foreign": { + "id": 16474, + "name": "IHorizonStakingTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4073, + "src": "264:20:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "file": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", + "id": 16477, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 4929, + "src": "374:95:65", + "symbolAliases": [ + { + "foreign": { + "id": 16476, + "name": "GraphDirectory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "383:14:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/utilities/AllocationManagerStorage.sol", + "file": "./AllocationManagerStorage.sol", + "id": 16479, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 17402, + "src": "470:76:65", + "symbolAliases": [ + { + "foreign": { + "id": 16478, + "name": "AllocationManagerV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17401, + "src": "479:26:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", + "id": 16481, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 841, + "src": "548:85:65", + "symbolAliases": [ + { + "foreign": { + "id": 16480, + "name": "TokenUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "557:10:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "id": 16483, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 8232, + "src": "634:77:65", + "symbolAliases": [ + { + "foreign": { + "id": 16482, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "643:5:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "id": 16485, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 6045, + "src": "712:113:65", + "symbolAliases": [ + { + "foreign": { + "id": 16484, + "name": "EIP712Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "721:17:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Allocation.sol", + "file": "../libraries/Allocation.sol", + "id": 16487, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 16034, + "src": "826:57:65", + "symbolAliases": [ + { + "foreign": { + "id": 16486, + "name": "Allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16033, + "src": "835:10:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/LegacyAllocation.sol", + "file": "../libraries/LegacyAllocation.sol", + "id": 16489, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 16463, + "src": "884:69:65", + "symbolAliases": [ + { + "foreign": { + "id": 16488, + "name": "LegacyAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16462, + "src": "893:16:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", + "id": 16491, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 4540, + "src": "954:81:65", + "symbolAliases": [ + { + "foreign": { + "id": 16490, + "name": "PPMMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "963:7:65", + "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": 16493, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17364, + "sourceUnit": 1802, + "src": "1036:112:65", + "symbolAliases": [ + { + "foreign": { + "id": 16492, + "name": "ProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "1045:16:65", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 16495, + "name": "EIP712Upgradeable", + "nameLocations": [ + "1586:17:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6044, + "src": "1586:17:65" + }, + "id": 16496, + "nodeType": "InheritanceSpecifier", + "src": "1586:17:65" + }, + { + "baseName": { + "id": 16497, + "name": "GraphDirectory", + "nameLocations": [ + "1605:14:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4928, + "src": "1605:14:65" + }, + "id": 16498, + "nodeType": "InheritanceSpecifier", + "src": "1605:14:65" + }, + { + "baseName": { + "id": 16499, + "name": "AllocationManagerV1Storage", + "nameLocations": [ + "1621:26:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17401, + "src": "1621:26:65" + }, + "id": 16500, + "nodeType": "InheritanceSpecifier", + "src": "1621:26:65" + } + ], + "canonicalName": "AllocationManager", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 16494, + "nodeType": "StructuredDocumentation", + "src": "1150:396:65", + "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).\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": 17363, + "linearizedBaseContracts": [ + 17363, + 17401, + 4928, + 6044, + 6069, + 5391 + ], + "name": "AllocationManager", + "nameLocation": "1565:17:65", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 16505, + "libraryName": { + "id": 16501, + "name": "ProvisionTracker", + "nameLocations": [ + "1660:16:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "1660:16:65" + }, + "nodeType": "UsingForDirective", + "src": "1654:55:65", + "typeName": { + "id": 16504, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1689:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1681:27:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1700:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + { + "global": false, + "id": 16511, + "libraryName": { + "id": 16506, + "name": "Allocation", + "nameLocations": [ + "1720:10:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16033, + "src": "1720:10:65" + }, + "nodeType": "UsingForDirective", + "src": "1714:58:65", + "typeName": { + "id": 16510, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1743:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1735:36:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16509, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16508, + "name": "Allocation.State", + "nameLocations": [ + "1754:10:65", + "1765:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "1754:16:65" + }, + "referencedDeclaration": 15663, + "src": "1754:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + } + }, + { + "global": false, + "id": 16515, + "libraryName": { + "id": 16512, + "name": "Allocation", + "nameLocations": [ + "1783:10:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16033, + "src": "1783:10:65" + }, + "nodeType": "UsingForDirective", + "src": "1777:38:65", + "typeName": { + "id": 16514, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16513, + "name": "Allocation.State", + "nameLocations": [ + "1798:10:65", + "1809:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "1798:16:65" + }, + "referencedDeclaration": 15663, + "src": "1798:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + { + "global": false, + "id": 16521, + "libraryName": { + "id": 16516, + "name": "LegacyAllocation", + "nameLocations": [ + "1826:16:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16462, + "src": "1826:16:65" + }, + "nodeType": "UsingForDirective", + "src": "1820:70:65", + "typeName": { + "id": 16520, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 16517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1855:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1847:42:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16519, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16518, + "name": "LegacyAllocation.State", + "nameLocations": [ + "1866:16:65", + "1883:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "1866:22:65" + }, + "referencedDeclaration": 16305, + "src": "1866:22:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + } + }, + { + "global": false, + "id": 16524, + "libraryName": { + "id": 16522, + "name": "PPMMath", + "nameLocations": [ + "1901:7:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4539, + "src": "1901:7:65" + }, + "nodeType": "UsingForDirective", + "src": "1895:26:65", + "typeName": { + "id": 16523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1913:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "global": false, + "id": 16528, + "libraryName": { + "id": 16525, + "name": "TokenUtils", + "nameLocations": [ + "1932:10:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 840, + "src": "1932:10:65" + }, + "nodeType": "UsingForDirective", + "src": "1926:33:65", + "typeName": { + "id": 16527, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16526, + "name": "IGraphToken", + "nameLocations": [ + "1947:11:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 758, + "src": "1947:11:65" + }, + "referencedDeclaration": 758, + "src": "1947:11:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + } + }, + { + "constant": true, + "documentation": { + "id": 16529, + "nodeType": "StructuredDocumentation", + "src": "1965:47:65", + "text": "@dev EIP712 typehash for allocation id proof" + }, + "id": 16534, + "mutability": "constant", + "name": "EIP712_ALLOCATION_ID_PROOF_TYPEHASH", + "nameLocation": "2042:35:65", + "nodeType": "VariableDeclaration", + "scope": 17363, + "src": "2017:139:65", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16530, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2017:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "416c6c6f636174696f6e496450726f6f66286164647265737320696e64657865722c6164647265737320616c6c6f636174696f6e496429", + "id": 16532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2098:57:65", + "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": 16531, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2088:9:65", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 16533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2088:68:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 16535, + "nodeType": "StructuredDocumentation", + "src": "2163:339:65", + "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\n @param currentEpoch The current epoch" + }, + "eventSelector": "e5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f83", + "id": 16547, + "name": "AllocationCreated", + "nameLocation": "2513:17:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16537, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "2556:7:65", + "nodeType": "VariableDeclaration", + "scope": 16547, + "src": "2540:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2540:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16539, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "2589:12:65", + "nodeType": "VariableDeclaration", + "scope": 16547, + "src": "2573:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16541, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "2627:20:65", + "nodeType": "VariableDeclaration", + "scope": 16547, + "src": "2611:36:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16540, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2611:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16543, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2665:6:65", + "nodeType": "VariableDeclaration", + "scope": 16547, + "src": "2657:14:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2657:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16545, + "indexed": false, + "mutability": "mutable", + "name": "currentEpoch", + "nameLocation": "2689:12:65", + "nodeType": "VariableDeclaration", + "scope": 16547, + "src": "2681:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2681:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2530:177:65" + }, + "src": "2507:201:65" + }, + { + "anonymous": false, + "documentation": { + "id": 16548, + "nodeType": "StructuredDocumentation", + "src": "2714:633:65", + "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\n @param poiMetadata The metadata associated with the POI" + }, + "eventSelector": "443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f", + "id": 16568, + "name": "IndexingRewardsCollected", + "nameLocation": "3358:24:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16550, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "3408:7:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3392:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3392:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16552, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "3441:12:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3425:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3425:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16554, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "3479:20:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3463:36:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16553, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3463:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16556, + "indexed": false, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "3517:13:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3509:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3509:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16558, + "indexed": false, + "mutability": "mutable", + "name": "tokensIndexerRewards", + "nameLocation": "3548:20:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3540:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3540:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16560, + "indexed": false, + "mutability": "mutable", + "name": "tokensDelegationRewards", + "nameLocation": "3586:23:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3578:31:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3578:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16562, + "indexed": false, + "mutability": "mutable", + "name": "poi", + "nameLocation": "3627:3:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3619:11:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16561, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3619:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16564, + "indexed": false, + "mutability": "mutable", + "name": "poiMetadata", + "nameLocation": "3646:11:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3640:17:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16563, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3640:5:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16566, + "indexed": false, + "mutability": "mutable", + "name": "currentEpoch", + "nameLocation": "3675:12:65", + "nodeType": "VariableDeclaration", + "scope": 16568, + "src": "3667:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3667:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3382:311:65" + }, + "src": "3352:342:65" + }, + { + "anonymous": false, + "documentation": { + "id": 16569, + "nodeType": "StructuredDocumentation", + "src": "3700:360:65", + "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": 16581, + "name": "AllocationResized", + "nameLocation": "4071:17:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16571, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "4114:7:65", + "nodeType": "VariableDeclaration", + "scope": 16581, + "src": "4098:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4098:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16573, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4147:12:65", + "nodeType": "VariableDeclaration", + "scope": 16581, + "src": "4131:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4131:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16575, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "4185:20:65", + "nodeType": "VariableDeclaration", + "scope": 16581, + "src": "4169:36:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16574, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4169:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16577, + "indexed": false, + "mutability": "mutable", + "name": "newTokens", + "nameLocation": "4223:9:65", + "nodeType": "VariableDeclaration", + "scope": 16581, + "src": "4215:17:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4215:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16579, + "indexed": false, + "mutability": "mutable", + "name": "oldTokens", + "nameLocation": "4250:9:65", + "nodeType": "VariableDeclaration", + "scope": 16581, + "src": "4242:17:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4242:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4088:177:65" + }, + "src": "4065:201:65" + }, + { + "anonymous": false, + "documentation": { + "id": 16582, + "nodeType": "StructuredDocumentation", + "src": "4272:356:65", + "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\n @param forceClosed Whether the allocation was force closed" + }, + "eventSelector": "08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f545", + "id": 16594, + "name": "AllocationClosed", + "nameLocation": "4639:16:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16584, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "4681:7:65", + "nodeType": "VariableDeclaration", + "scope": 16594, + "src": "4665:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4665:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16586, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "4714:12:65", + "nodeType": "VariableDeclaration", + "scope": 16594, + "src": "4698:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4698:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16588, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "4752:20:65", + "nodeType": "VariableDeclaration", + "scope": 16594, + "src": "4736:36:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16587, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4736:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16590, + "indexed": false, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "4790:6:65", + "nodeType": "VariableDeclaration", + "scope": 16594, + "src": "4782:14:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4782:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16592, + "indexed": false, + "mutability": "mutable", + "name": "forceClosed", + "nameLocation": "4811:11:65", + "nodeType": "VariableDeclaration", + "scope": 16594, + "src": "4806:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16591, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4806:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4655:173:65" + }, + "src": "4633:196:65" + }, + { + "anonymous": false, + "documentation": { + "id": 16595, + "nodeType": "StructuredDocumentation", + "src": "4835:267:65", + "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": 16603, + "name": "LegacyAllocationMigrated", + "nameLocation": "5113:24:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16597, + "indexed": true, + "mutability": "mutable", + "name": "indexer", + "nameLocation": "5163:7:65", + "nodeType": "VariableDeclaration", + "scope": 16603, + "src": "5147:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5147:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16599, + "indexed": true, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5196:12:65", + "nodeType": "VariableDeclaration", + "scope": 16603, + "src": "5180:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5180:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16601, + "indexed": true, + "mutability": "mutable", + "name": "subgraphDeploymentId", + "nameLocation": "5234:20:65", + "nodeType": "VariableDeclaration", + "scope": 16603, + "src": "5218:36:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16600, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5218:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5137:123:65" + }, + "src": "5107:154:65" + }, + { + "anonymous": false, + "documentation": { + "id": 16604, + "nodeType": "StructuredDocumentation", + "src": "5267:139:65", + "text": " @notice Emitted when the maximum POI staleness is updated\n @param maxPOIStaleness The max POI staleness in seconds" + }, + "eventSelector": "21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba", + "id": 16608, + "name": "MaxPOIStalenessSet", + "nameLocation": "5417:18:65", + "nodeType": "EventDefinition", + "parameters": { + "id": 16607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16606, + "indexed": false, + "mutability": "mutable", + "name": "maxPOIStaleness", + "nameLocation": "5444:15:65", + "nodeType": "VariableDeclaration", + "scope": 16608, + "src": "5436:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5436:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5435:25:65" + }, + "src": "5411:50:65" + }, + { + "documentation": { + "id": 16609, + "nodeType": "StructuredDocumentation", + "src": "5467:248:65", + "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": 16615, + "name": "AllocationManagerInvalidAllocationProof", + "nameLocation": "5726:39:65", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16611, + "mutability": "mutable", + "name": "signer", + "nameLocation": "5774:6:65", + "nodeType": "VariableDeclaration", + "scope": 16615, + "src": "5766:14:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5766:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16613, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "5790:12:65", + "nodeType": "VariableDeclaration", + "scope": 16615, + "src": "5782:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5782:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5765:38:65" + }, + "src": "5720:84:65" + }, + { + "documentation": { + "id": 16616, + "nodeType": "StructuredDocumentation", + "src": "5810:99:65", + "text": " @notice Thrown when attempting to create an allocation with a zero allocation id" + }, + "errorSelector": "9ffbebde", + "id": 16618, + "name": "AllocationManagerInvalidZeroAllocationId", + "nameLocation": "5920:40:65", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16617, + "nodeType": "ParameterList", + "parameters": [], + "src": "5960:2:65" + }, + "src": "5914:49:65" + }, + { + "documentation": { + "id": 16619, + "nodeType": "StructuredDocumentation", + "src": "5969:153:65", + "text": " @notice Thrown when attempting to collect indexing rewards on a closed allocationl\n @param allocationId The id of the allocation" + }, + "errorSelector": "1eb5ff95", + "id": 16623, + "name": "AllocationManagerAllocationClosed", + "nameLocation": "6133:33:65", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16621, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "6175:12:65", + "nodeType": "VariableDeclaration", + "scope": 16623, + "src": "6167:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6167:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6166:22:65" + }, + "src": "6127:62:65" + }, + { + "documentation": { + "id": 16624, + "nodeType": "StructuredDocumentation", + "src": "6195:186:65", + "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": 16630, + "name": "AllocationManagerAllocationSameSize", + "nameLocation": "6392:35:65", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16626, + "mutability": "mutable", + "name": "allocationId", + "nameLocation": "6436:12:65", + "nodeType": "VariableDeclaration", + "scope": 16630, + "src": "6428:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6428:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16628, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "6458:6:65", + "nodeType": "VariableDeclaration", + "scope": 16630, + "src": "6450:14:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6450:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6427:38:65" + }, + "src": "6386:80:65" + }, + { + "body": { + "id": 16648, + "nodeType": "Block", + "src": "6790:93:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16641, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16633, + "src": "6814:5:65", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 16642, + "name": "_version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16635, + "src": "6821:8:65", + "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": 16640, + "name": "__EIP712_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5757, + "src": "6800:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 16643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6800:30:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16644, + "nodeType": "ExpressionStatement", + "src": "6800:30:65" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16645, + "name": "__AllocationManager_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16656, + "src": "6840:34:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 16646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6840:36:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16647, + "nodeType": "ExpressionStatement", + "src": "6840:36:65" + } + ] + }, + "documentation": { + "id": 16631, + "nodeType": "StructuredDocumentation", + "src": "6472:208:65", + "text": " @notice Initializes the contract and parent contracts\n @param _name The name to use for EIP712 domain separation\n @param _version The version to use for EIP712 domain separation" + }, + "id": 16649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16638, + "kind": "modifierInvocation", + "modifierName": { + "id": 16637, + "name": "onlyInitializing", + "nameLocations": [ + "6773:16:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "6773:16:65" + }, + "nodeType": "ModifierInvocation", + "src": "6773:16:65" + } + ], + "name": "__AllocationManager_init", + "nameLocation": "6694:24:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16633, + "mutability": "mutable", + "name": "_name", + "nameLocation": "6733:5:65", + "nodeType": "VariableDeclaration", + "scope": 16649, + "src": "6719:19:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16632, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6719:6:65", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16635, + "mutability": "mutable", + "name": "_version", + "nameLocation": "6754:8:65", + "nodeType": "VariableDeclaration", + "scope": 16649, + "src": "6740:22:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16634, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6740:6:65", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6718:45:65" + }, + "returnParameters": { + "id": 16639, + "nodeType": "ParameterList", + "parameters": [], + "src": "6790:0:65" + }, + "scope": 17363, + "src": "6685:198:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16655, + "nodeType": "Block", + "src": "7017:2:65", + "statements": [] + }, + "documentation": { + "id": 16650, + "nodeType": "StructuredDocumentation", + "src": "6889:51:65", + "text": " @notice Initializes the contract" + }, + "id": 16656, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16653, + "kind": "modifierInvocation", + "modifierName": { + "id": 16652, + "name": "onlyInitializing", + "nameLocations": [ + "7000:16:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "7000:16:65" + }, + "nodeType": "ModifierInvocation", + "src": "7000:16:65" + } + ], + "name": "__AllocationManager_init_unchained", + "nameLocation": "6954:34:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16651, + "nodeType": "ParameterList", + "parameters": [], + "src": "6988:2:65" + }, + "returnParameters": { + "id": 16654, + "nodeType": "ParameterList", + "parameters": [], + "src": "7017:0:65" + }, + "scope": 17363, + "src": "6945:74:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16680, + "nodeType": "Block", + "src": "7643:178:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16669, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16659, + "src": "7680:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16670, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16661, + "src": "7690:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16671, + "name": "_subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16663, + "src": "7705:21:65", + "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": 16666, + "name": "_legacyAllocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17382, + "src": "7653:18:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7672:7:65", + "memberName": "migrate", + "nodeType": "MemberAccess", + "referencedDeclaration": 16352, + "src": "7653:26:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$16305_storage_$_$_t_address_$_t_address_$_t_bytes32_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$16305_storage_$_$", + "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address,address,bytes32)" + } + }, + "id": 16672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7653:74:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16673, + "nodeType": "ExpressionStatement", + "src": "7653:74:65" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16675, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16659, + "src": "7767:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16676, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16661, + "src": "7777:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16677, + "name": "_subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16663, + "src": "7792:21:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 16674, + "name": "LegacyAllocationMigrated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16603, + "src": "7742:24:65", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,bytes32)" + } + }, + "id": 16678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7742:72:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16679, + "nodeType": "EmitStatement", + "src": "7737:77:65" + } + ] + }, + "documentation": { + "id": 16657, + "nodeType": "StructuredDocumentation", + "src": "7025:498:65", + "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": 16681, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_migrateLegacyAllocation", + "nameLocation": "7537:24:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16659, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "7570:8:65", + "nodeType": "VariableDeclaration", + "scope": 16681, + "src": "7562:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7562:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16661, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "7588:13:65", + "nodeType": "VariableDeclaration", + "scope": 16681, + "src": "7580:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7580:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16663, + "mutability": "mutable", + "name": "_subgraphDeploymentId", + "nameLocation": "7611:21:65", + "nodeType": "VariableDeclaration", + "scope": 16681, + "src": "7603:29:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16662, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7603:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7561:72:65" + }, + "returnParameters": { + "id": 16665, + "nodeType": "ParameterList", + "parameters": [], + "src": "7643:0:65" + }, + "scope": 17363, + "src": "7528:293:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16780, + "nodeType": "Block", + "src": "8758:1346:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 16703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16698, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16686, + "src": "8776:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 16701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8801:1:65", + "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": 16700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8793:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8793:7:65", + "typeDescriptions": {} + } + }, + "id": 16702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8793:10:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8776:27:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16704, + "name": "AllocationManagerInvalidZeroAllocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16618, + "src": "8805:40:65", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 16705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8805:42:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8768:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8768:80:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16707, + "nodeType": "ExpressionStatement", + "src": "8768:80:65" + }, + { + "expression": { + "arguments": [ + { + "id": 16709, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16684, + "src": "8882:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16710, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16686, + "src": "8892:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16711, + "name": "_allocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16692, + "src": "8907:16:65", + "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": 16708, + "name": "_verifyAllocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17362, + "src": "8859:22:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,bytes memory) view" + } + }, + "id": 16712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8859:65:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16713, + "nodeType": "ExpressionStatement", + "src": "8859:65:65" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16717, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "9111:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9111:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + { + "id": 16719, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16686, + "src": "9128:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 16714, + "name": "_legacyAllocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17382, + "src": "9077:18:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" + } + }, + "id": 16716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9096:14:65", + "memberName": "revertIfExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 16410, + "src": "9077:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$16305_storage_$_$_t_contract$_IHorizonStaking_$2625_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$16305_storage_$_$", + "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),contract IHorizonStaking,address) view" + } + }, + "id": 16720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9077:65:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16721, + "nodeType": "ExpressionStatement", + "src": "9077:65:65" + }, + { + "assignments": [ + 16723 + ], + "declarations": [ + { + "constant": false, + "id": 16723, + "mutability": "mutable", + "name": "currentEpoch", + "nameLocation": "9161:12:65", + "nodeType": "VariableDeclaration", + "scope": 16780, + "src": "9153:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9153:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 16728, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16724, + "name": "_graphEpochManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4855, + "src": "9176:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IEpochManager_$369_$", + "typeString": "function () view returns (contract IEpochManager)" + } + }, + "id": 16725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9176:20:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "id": 16726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9197:12:65", + "memberName": "currentEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 346, + "src": "9176:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 16727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9176:35:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9153:58:65" + }, + { + "assignments": [ + 16733 + ], + "declarations": [ + { + "constant": false, + "id": 16733, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "9245:10:65", + "nodeType": "VariableDeclaration", + "scope": 16780, + "src": "9221:34:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 16732, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16731, + "name": "Allocation.State", + "nameLocations": [ + "9221:10:65", + "9232:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "9221:16:65" + }, + "referencedDeclaration": 15663, + "src": "9221:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 16747, + "initialValue": { + "arguments": [ + { + "id": 16736, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16684, + "src": "9291:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16737, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16686, + "src": "9313:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16738, + "name": "_subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16688, + "src": "9340:21:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 16739, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16690, + "src": "9375:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 16743, + "name": "_subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16688, + "src": "9446:21:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16740, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "9396:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 16741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9396:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 16742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9419:26:65", + "memberName": "onSubgraphAllocationUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 677, + "src": "9396:49:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) external returns (uint256)" + } + }, + "id": 16744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9396:72:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 16745, + "name": "currentEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16723, + "src": "9482:12:65", + "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" + } + ], + "expression": { + "id": 16734, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "9258:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9271:6:65", + "memberName": "create", + "nodeType": "MemberAccess", + "referencedDeclaration": 15741, + "src": "9258:19:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address,address,bytes32,uint256,uint256,uint256) returns (struct Allocation.State memory)" + } + }, + "id": 16746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9258:246:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9221:283:65" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16751, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "9689:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9689:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + { + "id": 16753, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16684, + "src": "9706:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16754, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16690, + "src": "9716:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 16755, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16694, + "src": "9725:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 16748, + "name": "allocationProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17387, + "src": "9657:26:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 16750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9684:4:65", + "memberName": "lock", + "nodeType": "MemberAccess", + "referencedDeclaration": 1726, + "src": "9657:31:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2625_$_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": 16756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9657:85:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16757, + "nodeType": "ExpressionStatement", + "src": "9657:85:65" + }, + { + "expression": { + "id": 16769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 16758, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "9822:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 16761, + "indexExpression": { + "expression": { + "id": 16759, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16733, + "src": "9847:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9858:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "9847:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9822:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 16762, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "9894:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 16765, + "indexExpression": { + "expression": { + "id": 16763, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16733, + "src": "9919:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16764, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9930:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "9919:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9894:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 16766, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16733, + "src": "9966:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16767, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9977:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "9966:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9894:89:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9822:161:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16770, + "nodeType": "ExpressionStatement", + "src": "9822:161:65" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16772, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16684, + "src": "10017:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16773, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16686, + "src": "10027:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16774, + "name": "_subgraphDeploymentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16688, + "src": "10042:21:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 16775, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16733, + "src": "10065:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10076:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "10065:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 16777, + "name": "currentEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16723, + "src": "10084:12:65", + "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": 16771, + "name": "AllocationCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16547, + "src": "9999:17:65", + "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": 16778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9999:98:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16779, + "nodeType": "EmitStatement", + "src": "9994:103:65" + } + ] + }, + "documentation": { + "id": 16682, + "nodeType": "StructuredDocumentation", + "src": "7827:699:65", + "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": 16781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_allocate", + "nameLocation": "8540:9:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16684, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "8567:8:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8559:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8559:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16686, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "8593:13:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8585:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8585:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16688, + "mutability": "mutable", + "name": "_subgraphDeploymentId", + "nameLocation": "8624:21:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8616:29:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16687, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8616:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16690, + "mutability": "mutable", + "name": "_tokens", + "nameLocation": "8663:7:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8655:15:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8655:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16692, + "mutability": "mutable", + "name": "_allocationProof", + "nameLocation": "8693:16:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8680:29:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16691, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8680:5:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16694, + "mutability": "mutable", + "name": "_delegationRatio", + "nameLocation": "8726:16:65", + "nodeType": "VariableDeclaration", + "scope": 16781, + "src": "8719:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16693, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8719:6:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "8549:199:65" + }, + "returnParameters": { + "id": 16696, + "nodeType": "ParameterList", + "parameters": [], + "src": "8758:0:65" + }, + "scope": 17363, + "src": "8531:1573:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17043, + "nodeType": "Block", + "src": "12059:3207:65", + "statements": [ + { + "assignments": [ + 16801 + ], + "declarations": [ + { + "constant": false, + "id": 16801, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "12093:10:65", + "nodeType": "VariableDeclaration", + "scope": 17043, + "src": "12069:34:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 16800, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16799, + "name": "Allocation.State", + "nameLocations": [ + "12069:10:65", + "12080:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "12069:16:65" + }, + "referencedDeclaration": 15663, + "src": "12069:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 16806, + "initialValue": { + "arguments": [ + { + "id": 16804, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "12123:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 16802, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "12106:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12119:3:65", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "12106:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 16805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12106:31:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12069:68:65" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 16808, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "12155:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16809, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12166:6:65", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "12155:17:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 16810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12155:19:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 16812, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "12210:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16811, + "name": "AllocationManagerAllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16623, + "src": "12176:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12176:48:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 16807, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12147:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 16814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12147:78:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16815, + "nodeType": "ExpressionStatement", + "src": "12147:78:65" + }, + { + "assignments": [ + 16817 + ], + "declarations": [ + { + "constant": false, + "id": 16817, + "mutability": "mutable", + "name": "tokensRewards", + "nameLocation": "12303:13:65", + "nodeType": "VariableDeclaration", + "scope": 17043, + "src": "12295:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12295:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 16851, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12320:36:65", + "subExpression": { + "arguments": [ + { + "id": 16820, + "name": "maxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17390, + "src": "12340:15:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 16818, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "12321:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16819, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12332:7:65", + "memberName": "isStale", + "nodeType": "MemberAccess", + "referencedDeclaration": 15946, + "src": "12321:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_State_$15663_memory_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory,uint256) view returns (bool)" + } + }, + "id": 16821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12321:35:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 16826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12372:26:65", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 16823, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "12373:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12384:12:65", + "memberName": "isAltruistic", + "nodeType": "MemberAccess", + "referencedDeclaration": 15999, + "src": "12373:23:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 16825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12373:25:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12320:78:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 16833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16828, + "name": "_poi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16786, + "src": "12414:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 16831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12430:1:65", + "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": 16830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12422:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 16829, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12422:7:65", + "typeDescriptions": {} + } + }, + "id": 16832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12422:10:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12414:18:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12320:112:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 16835, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12319:114:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16836, + "name": "_graphEpochManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4855, + "src": "12437:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IEpochManager_$369_$", + "typeString": "function () view returns (contract IEpochManager)" + } + }, + "id": 16837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12437:20:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "id": 16838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12458:12:65", + "memberName": "currentEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 346, + "src": "12437:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 16839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12437:35:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 16840, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "12475:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16841, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12486:14:65", + "memberName": "createdAtEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 15662, + "src": "12475:25:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12437:63:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12319:181:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 16849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12579:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 16850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12319:261:65", + "trueExpression": { + "arguments": [ + { + "id": 16847, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "12550:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16844, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "12515:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 16845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12515:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 16846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12538:11:65", + "memberName": "takeRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 663, + "src": "12515:34:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 16848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12515:49:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12295:285:65" + }, + { + "expression": { + "arguments": [ + { + "id": 16855, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "12742:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 16859, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "12819:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16860, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12830:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "12819:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16856, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "12769:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 16857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12769:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 16858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12792:26:65", + "memberName": "onSubgraphAllocationUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 677, + "src": "12769:49:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) external returns (uint256)" + } + }, + "id": 16861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12769:82:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 16852, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "12700:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12713:15:65", + "memberName": "snapshotRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 15818, + "src": "12700:28:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address,uint256)" + } + }, + "id": 16862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12700:161:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16863, + "nodeType": "ExpressionStatement", + "src": "12700:161:65" + }, + { + "expression": { + "arguments": [ + { + "id": 16867, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "12895:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 16864, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "12871:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12884:10:65", + "memberName": "presentPOI", + "nodeType": "MemberAccess", + "referencedDeclaration": 15779, + "src": "12871:23:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" + } + }, + "id": 16868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12871:38:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16869, + "nodeType": "ExpressionStatement", + "src": "12871:38:65" + }, + { + "expression": { + "arguments": [ + { + "id": 16873, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "13015:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 16870, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "12982:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 16872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12995:19:65", + "memberName": "clearPendingRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 15855, + "src": "12982:32:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" + } + }, + "id": 16874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12982:47:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16875, + "nodeType": "ExpressionStatement", + "src": "12982:47:65" + }, + { + "assignments": [ + 16877 + ], + "declarations": [ + { + "constant": false, + "id": 16877, + "mutability": "mutable", + "name": "tokensIndexerRewards", + "nameLocation": "13048:20:65", + "nodeType": "VariableDeclaration", + "scope": 17043, + "src": "13040:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 16879, + "initialValue": { + "hexValue": "30", + "id": 16878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13071:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13040:32:65" + }, + { + "assignments": [ + 16881 + ], + "declarations": [ + { + "constant": false, + "id": 16881, + "mutability": "mutable", + "name": "tokensDelegationRewards", + "nameLocation": "13090:23:65", + "nodeType": "VariableDeclaration", + "scope": 17043, + "src": "13082:31:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13082:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 16883, + "initialValue": { + "hexValue": "30", + "id": 16882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13116:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13082:35:65" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16884, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16817, + "src": "13131:13:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 16885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13148:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13131:18:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17011, + "nodeType": "IfStatement", + "src": "13127:1531:65", + "trueBody": { + "id": 17010, + "nodeType": "Block", + "src": "13151:1507:65", + "statements": [ + { + "assignments": [ + 16888 + ], + "declarations": [ + { + "constant": false, + "id": 16888, + "mutability": "mutable", + "name": "delegatorCut", + "nameLocation": "13221:12:65", + "nodeType": "VariableDeclaration", + "scope": 17010, + "src": "13213:20:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13213:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 16902, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 16892, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "13289:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16893, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13300:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "13289:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 16896, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "13333:4:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + ], + "id": 16895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13325:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13325:7:65", + "typeDescriptions": {} + } + }, + "id": 16897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13325:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 16898, + "name": "IGraphPayments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "13356:14:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2489_$", + "typeString": "type(contract IGraphPayments)" + } + }, + "id": 16899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13371:12:65", + "memberName": "PaymentTypes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2433, + "src": "13356:27:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2433_$", + "typeString": "type(enum IGraphPayments.PaymentTypes)" + } + }, + "id": 16900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13384:15:65", + "memberName": "IndexingRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 2432, + "src": "13356:43:65", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_enum$_PaymentTypes_$2433", + "typeString": "enum IGraphPayments.PaymentTypes" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16889, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "13236:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13236:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 16891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13252:19:65", + "memberName": "getDelegationFeeCut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2939, + "src": "13236:35:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_enum$_PaymentTypes_$2433_$returns$_t_uint256_$", + "typeString": "function (address,address,enum IGraphPayments.PaymentTypes) view external returns (uint256)" + } + }, + "id": 16901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13236:177:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13213:200:65" + }, + { + "assignments": [ + 16907 + ], + "declarations": [ + { + "constant": false, + "id": 16907, + "mutability": "mutable", + "name": "delegationPool", + "nameLocation": "13470:14:65", + "nodeType": "VariableDeclaration", + "scope": 17010, + "src": "13427:57:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_memory_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool" + }, + "typeName": { + "id": 16906, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16905, + "name": "IHorizonStakingTypes.DelegationPool", + "nameLocations": [ + "13427:20:65", + "13448:14:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3992, + "src": "13427:35:65" + }, + "referencedDeclaration": 3992, + "src": "13427:35:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_storage_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool" + } + }, + "visibility": "internal" + } + ], + "id": 16918, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 16911, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "13538:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16912, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13549:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "13538:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 16915, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "13582:4:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + ], + "id": 16914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13574:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16913, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13574:7:65", + "typeDescriptions": {} + } + }, + "id": 16916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13574:13:65", + "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": 16908, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "13487:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13487:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 16910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13503:17:65", + "memberName": "getDelegationPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2913, + "src": "13487:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_DelegationPool_$3992_memory_ptr_$", + "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.DelegationPool memory)" + } + }, + "id": 16917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13487:114:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_memory_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13427:174:65" + }, + { + "expression": { + "id": 16930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 16919, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "13718:23:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16920, + "name": "delegationPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16907, + "src": "13744:14:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DelegationPool_$3992_memory_ptr", + "typeString": "struct IHorizonStakingTypes.DelegationPool memory" + } + }, + "id": 16921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13759:6:65", + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 3985, + "src": "13744:21:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 16922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13768:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13744:25:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 16928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13809:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 16929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13744:66:65", + "trueExpression": { + "arguments": [ + { + "id": 16926, + "name": "delegatorCut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16888, + "src": "13793:12:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 16924, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16817, + "src": "13772:13:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13786:6:65", + "memberName": "mulPPM", + "nodeType": "MemberAccess", + "referencedDeclaration": 4496, + "src": "13772:20:65", + "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": 16927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13772:34:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13718:92:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16931, + "nodeType": "ExpressionStatement", + "src": "13718:92:65" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16932, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "13828:23:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 16933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13854:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13828:27:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16959, + "nodeType": "IfStatement", + "src": "13824:251:65", + "trueBody": { + "id": 16958, + "nodeType": "Block", + "src": "13857:218:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16940, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "13905:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13905:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + ], + "id": 16939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13897:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16938, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13897:7:65", + "typeDescriptions": {} + } + }, + "id": 16942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13897:24:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16943, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "13923:23:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16935, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "13875:11:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 16936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13875:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 16937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13889:7:65", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 6134, + "src": "13875:21:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 16944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13875:72:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16945, + "nodeType": "ExpressionStatement", + "src": "13875:72:65" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 16949, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "14001:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16950, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14012:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "14001:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 16953, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "14029:4:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + ], + "id": 16952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14021:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16951, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14021:7:65", + "typeDescriptions": {} + } + }, + "id": 16954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14021:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16955, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "14036:23:65", + "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": 16946, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "13965:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13965:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 16948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13981:19:65", + "memberName": "addToDelegationPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 3773, + "src": "13965:35:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 16956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13965:95:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16957, + "nodeType": "ExpressionStatement", + "src": "13965:95:65" + } + ] + } + }, + { + "expression": { + "id": 16964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 16960, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14134:20:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16961, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16817, + "src": "14157:13:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 16962, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "14173:23:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14157:39:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14134:62:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16965, + "nodeType": "ExpressionStatement", + "src": "14134:62:65" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16966, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14214:20:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 16967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14237:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14214:24:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17009, + "nodeType": "IfStatement", + "src": "14210:438:65", + "trueBody": { + "id": 17008, + "nodeType": "Block", + "src": "14240:408:65", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 16974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16969, + "name": "_paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16792, + "src": "14262:20:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 16972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:65", + "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": 16971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14286:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14286:7:65", + "typeDescriptions": {} + } + }, + "id": 16973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14286:10:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14262:34:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 17006, + "nodeType": "Block", + "src": "14525:109:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 17002, + "name": "_paymentsDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16792, + "src": "14572:20:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17003, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14594:20:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16999, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "14547:11:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 17000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14547:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 17001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14561:10:65", + "memberName": "pushTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 818, + "src": "14547:24:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$758_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$758_$", + "typeString": "function (contract IGraphToken,address,uint256)" + } + }, + "id": 17004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14547:68:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17005, + "nodeType": "ExpressionStatement", + "src": "14547:68:65" + } + ] + }, + "id": 17007, + "nodeType": "IfStatement", + "src": "14258:376:65", + "trueBody": { + "id": 16998, + "nodeType": "Block", + "src": "14298:221:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16980, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "14350:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14350:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + ], + "id": 16979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14342:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14342:7:65", + "typeDescriptions": {} + } + }, + "id": 16982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14342:24:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16983, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14368:20:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16975, + "name": "_graphToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4805, + "src": "14320:11:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$758_$", + "typeString": "function () view returns (contract IGraphToken)" + } + }, + "id": 16976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14320:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphToken_$758", + "typeString": "contract IGraphToken" + } + }, + "id": 16977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14334:7:65", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 6134, + "src": "14320:21:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 16984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14320:69:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16985, + "nodeType": "ExpressionStatement", + "src": "14320:69:65" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 16989, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "14444:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 16990, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14455:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "14444:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 16993, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "14472:4:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AllocationManager_$17363", + "typeString": "contract AllocationManager" + } + ], + "id": 16992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14464:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14464:7:65", + "typeDescriptions": {} + } + }, + "id": 16994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14464:13:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 16995, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14479:20:65", + "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": 16986, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "14411:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 16987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14411:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + "id": 16988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14427:16:65", + "memberName": "stakeToProvision", + "nodeType": "MemberAccess", + "referencedDeclaration": 3665, + "src": "14411:32:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 16996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14411:89:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16997, + "nodeType": "ExpressionStatement", + "src": "14411:89:65" + } + ] + } + } + ] + } + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 17013, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "14711:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17014, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14722:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "14711:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17015, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "14743:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 17016, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "14770:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17017, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14781:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "14770:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17018, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16817, + "src": "14815:13:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17019, + "name": "tokensIndexerRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16877, + "src": "14842:20:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17020, + "name": "tokensDelegationRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16881, + "src": "14876:23:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17021, + "name": "_poi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16786, + "src": "14913:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17022, + "name": "_poiMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16788, + "src": "14931:12:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17023, + "name": "_graphEpochManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4855, + "src": "14957:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IEpochManager_$369_$", + "typeString": "function () view returns (contract IEpochManager)" + } + }, + "id": 17024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14957:20:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEpochManager_$369", + "typeString": "contract IEpochManager" + } + }, + "id": 17025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14978:12:65", + "memberName": "currentEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 346, + "src": "14957:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 17026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14957:35:65", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17012, + "name": "IndexingRewardsCollected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16568, + "src": "14673:24:65", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bytes32,uint256,uint256,uint256,bytes32,bytes memory,uint256)" + } + }, + "id": 17027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14673:329:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17028, + "nodeType": "EmitStatement", + "src": "14668:334:65" + }, + { + "condition": { + "arguments": [ + { + "expression": { + "id": 17030, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16801, + "src": "15128:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17031, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15139:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "15128:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17032, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16790, + "src": "15148:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 17029, + "name": "_isOverAllocated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17330, + "src": "15111:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint32) view returns (bool)" + } + }, + "id": 17033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15111:54:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17040, + "nodeType": "IfStatement", + "src": "15107:122:65", + "trueBody": { + "id": 17039, + "nodeType": "Block", + "src": "15167:62:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 17035, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16784, + "src": "15198:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 17036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15213:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17034, + "name": "_closeAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17273, + "src": "15181:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 17037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15181:37:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17038, + "nodeType": "ExpressionStatement", + "src": "15181:37:65" + } + ] + } + }, + { + "expression": { + "id": 17041, + "name": "tokensRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16817, + "src": "15246:13:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16796, + "id": 17042, + "nodeType": "Return", + "src": "15239:20:65" + } + ] + }, + "documentation": { + "id": 16782, + "nodeType": "StructuredDocumentation", + "src": "10110:1731:65", + "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 Conditions 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 - allocation must be open for at least one epoch\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 Note on allocation duration restriction: this is required to ensure that non protocol chains have a valid block number for\n which to calculate POIs. EBO posts once per epoch typically at each epoch change, so we restrict rewards to allocations\n that have gone through at least one epoch change.\n Emits a {IndexingRewardsCollected} event.\n @param _allocationId The id of the allocation to collect rewards for\n @param _poi The POI being presented\n @param _poiMetadata The metadata associated with the POI. The data and encoding format is for off-chain components to define, this function will only emit the value in an event as-is.\n @param _delegationRatio The delegation ratio to consider when locking tokens\n @param _paymentsDestination The address where indexing rewards should be sent\n @return The amount of tokens collected" + }, + "id": 17044, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_presentPOI", + "nameLocation": "11855:11:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16784, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "11884:13:65", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "11876:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11876:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16786, + "mutability": "mutable", + "name": "_poi", + "nameLocation": "11915:4:65", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "11907:12:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16785, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11907:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16788, + "mutability": "mutable", + "name": "_poiMetadata", + "nameLocation": "11942:12:65", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "11929:25:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16787, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11929:5:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16790, + "mutability": "mutable", + "name": "_delegationRatio", + "nameLocation": "11971:16:65", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "11964:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16789, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11964:6:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16792, + "mutability": "mutable", + "name": "_paymentsDestination", + "nameLocation": "12005:20:65", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "11997:28:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16791, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11997:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11866:165:65" + }, + "returnParameters": { + "id": 16796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16795, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17044, + "src": "12050:7:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16794, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12050:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12049:9:65" + }, + "scope": 17363, + "src": "11846:3420:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17202, + "nodeType": "Block", + "src": "16142:1867:65", + "statements": [ + { + "assignments": [ + 17058 + ], + "declarations": [ + { + "constant": false, + "id": 17058, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "16176:10:65", + "nodeType": "VariableDeclaration", + "scope": 17202, + "src": "16152:34:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 17057, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17056, + "name": "Allocation.State", + "nameLocations": [ + "16152:10:65", + "16163:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "16152:16:65" + }, + "referencedDeclaration": 15663, + "src": "16152:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 17063, + "initialValue": { + "arguments": [ + { + "id": 17061, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "16206:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 17059, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "16189:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16202:3:65", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "16189:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 17062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16189:31:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16152:68:65" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 17065, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16238:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16249:6:65", + "memberName": "isOpen", + "nodeType": "MemberAccess", + "referencedDeclaration": 15980, + "src": "16238:17:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 17067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16238:19:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 17069, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "16293:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17068, + "name": "AllocationManagerAllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16623, + "src": "16259:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 17070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16259:48:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 17064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16230:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 17071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16230:78:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17072, + "nodeType": "ExpressionStatement", + "src": "16230:78:65" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17074, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "16326:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 17075, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16337:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16348:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "16337:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16326:28:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 17079, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "16392:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17080, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "16407:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17078, + "name": "AllocationManagerAllocationSameSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16630, + "src": "16356:35:65", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 17081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16356:59:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 17073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16318:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 17082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16318:98:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17083, + "nodeType": "ExpressionStatement", + "src": "16318:98:65" + }, + { + "assignments": [ + 17085 + ], + "declarations": [ + { + "constant": false, + "id": 17085, + "mutability": "mutable", + "name": "oldTokens", + "nameLocation": "16471:9:65", + "nodeType": "VariableDeclaration", + "scope": 17202, + "src": "16463:17:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16463:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17088, + "initialValue": { + "expression": { + "id": 17086, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16483:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17087, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16494:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "16483:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16463:37:65" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17089, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "16514:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 17090, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "16524:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16514:19:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 17116, + "nodeType": "Block", + "src": "16673:100:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 17109, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16722:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16733:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "16722:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17111, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "16742:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 17112, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "16754:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16742:19:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17106, + "name": "allocationProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17387, + "src": "16687:26:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16714:7:65", + "memberName": "release", + "nodeType": "MemberAccess", + "referencedDeclaration": 1764, + "src": "16687:34:65", + "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": 17114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16687:75:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17115, + "nodeType": "ExpressionStatement", + "src": "16687:75:65" + } + ] + }, + "id": 17117, + "nodeType": "IfStatement", + "src": "16510:263:65", + "trueBody": { + "id": 17105, + "nodeType": "Block", + "src": "16535:132:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17095, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "16581:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 17096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16581:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + { + "expression": { + "id": 17097, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16598:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16609:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "16598:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17099, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "16618:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 17100, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "16628:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16618:19:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17102, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17051, + "src": "16639:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 17092, + "name": "allocationProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17387, + "src": "16549:26:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16576:4:65", + "memberName": "lock", + "nodeType": "MemberAccess", + "referencedDeclaration": 1726, + "src": "16549:31:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2625_$_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": 17103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16549:107:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17104, + "nodeType": "ExpressionStatement", + "src": "16549:107:65" + } + ] + } + }, + { + "assignments": [ + 17119 + ], + "declarations": [ + { + "constant": false, + "id": 17119, + "mutability": "mutable", + "name": "accRewardsPerAllocatedToken", + "nameLocation": "16886:27:65", + "nodeType": "VariableDeclaration", + "scope": 17202, + "src": "16878:35:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16878:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17126, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 17123, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "16979:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16990:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "16979:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17120, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "16916:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 17121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16916:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 17122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16939:26:65", + "memberName": "onSubgraphAllocationUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 677, + "src": "16916:49:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) external returns (uint256)" + } + }, + "id": 17125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16916:104:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16878:142:65" + }, + { + "assignments": [ + 17128 + ], + "declarations": [ + { + "constant": false, + "id": 17128, + "mutability": "mutable", + "name": "accRewardsPerAllocatedTokenPending", + "nameLocation": "17038:34:65", + "nodeType": "VariableDeclaration", + "scope": 17202, + "src": "17030:42:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17127, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17030:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17139, + "initialValue": { + "condition": { + "id": 17132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "17075:26:65", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 17129, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17076:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17087:12:65", + "memberName": "isAltruistic", + "nodeType": "MemberAccess", + "referencedDeclaration": 15999, + "src": "17076:23:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$15663_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$15663_memory_ptr_$", + "typeString": "function (struct Allocation.State memory) pure returns (bool)" + } + }, + "id": 17131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17076:25:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 17137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17199:1:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 17138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "17075:125:65", + "trueExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17133, + "name": "accRewardsPerAllocatedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17119, + "src": "17116:27:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 17134, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17146:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17135, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17157:27:65", + "memberName": "accRewardsPerAllocatedToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 15658, + "src": "17146:38:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17116:68:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17030:170:65" + }, + { + "expression": { + "id": 17145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 17140, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "17244:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17142, + "indexExpression": { + "id": 17141, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "17257:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17244:27:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "id": 17143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17272:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "17244:34:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 17144, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "17281:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17244:44:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17146, + "nodeType": "ExpressionStatement", + "src": "17244:44:65" + }, + { + "expression": { + "id": 17152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 17147, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "17298:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17149, + "indexExpression": { + "id": 17148, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "17311:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17298:27:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "id": 17150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17326:27:65", + "memberName": "accRewardsPerAllocatedToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 15658, + "src": "17298:55:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 17151, + "name": "accRewardsPerAllocatedToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17119, + "src": "17356:27:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17298:85:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17153, + "nodeType": "ExpressionStatement", + "src": "17298:85:65" + }, + { + "expression": { + "id": 17164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 17154, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "17393:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17156, + "indexExpression": { + "id": 17155, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "17406:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17393:27:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage", + "typeString": "struct Allocation.State storage ref" + } + }, + "id": 17157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17421:17:65", + "memberName": "accRewardsPending", + "nodeType": "MemberAccess", + "referencedDeclaration": 15660, + "src": "17393:45:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "arguments": [ + { + "id": 17161, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "17490:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17162, + "name": "accRewardsPerAllocatedTokenPending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17128, + "src": "17513:34:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17158, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "17442:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 17159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17442:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 17160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17465:11:65", + "memberName": "calcRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 651, + "src": "17442:34:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure external returns (uint256)" + } + }, + "id": 17163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17442:115:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17393:164:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17165, + "nodeType": "ExpressionStatement", + "src": "17393:164:65" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17166, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "17641:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 17167, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "17651:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17641:19:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 17190, + "nodeType": "Block", + "src": "17775:107:65", + "statements": [ + { + "expression": { + "id": 17188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 17180, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "17789:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 17183, + "indexExpression": { + "expression": { + "id": 17181, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17814:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17825:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "17814:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17789:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17184, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "17851:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 17185, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "17863:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17851:19:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 17187, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17850:21:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17789:82:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17189, + "nodeType": "ExpressionStatement", + "src": "17789:82:65" + } + ] + }, + "id": 17191, + "nodeType": "IfStatement", + "src": "17637:245:65", + "trueBody": { + "id": 17179, + "nodeType": "Block", + "src": "17662:107:65", + "statements": [ + { + "expression": { + "id": 17177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 17169, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "17676:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 17172, + "indexExpression": { + "expression": { + "id": 17170, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17701:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17712:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "17701:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17676:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17173, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "17738:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 17174, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "17748:9:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17738:19:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 17176, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17737:21:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17676:82:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17178, + "nodeType": "ExpressionStatement", + "src": "17676:82:65" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 17193, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17915:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17194, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17926:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "17915:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17195, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17047, + "src": "17935:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 17196, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17058, + "src": "17950:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17961:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "17950:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17198, + "name": "_tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17049, + "src": "17983:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17199, + "name": "oldTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "17992:9:65", + "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": 17192, + "name": "AllocationResized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16581, + "src": "17897:17:65", + "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": 17200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17897:105:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17201, + "nodeType": "EmitStatement", + "src": "17892:110:65" + } + ] + }, + "documentation": { + "id": 17045, + "nodeType": "StructuredDocumentation", + "src": "15272:764:65", + "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": 17203, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_resizeAllocation", + "nameLocation": "16050:17:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17047, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "16076:13:65", + "nodeType": "VariableDeclaration", + "scope": 17203, + "src": "16068:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16068:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17049, + "mutability": "mutable", + "name": "_tokens", + "nameLocation": "16099:7:65", + "nodeType": "VariableDeclaration", + "scope": 17203, + "src": "16091:15:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16091:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17051, + "mutability": "mutable", + "name": "_delegationRatio", + "nameLocation": "16115:16:65", + "nodeType": "VariableDeclaration", + "scope": 17203, + "src": "16108:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17050, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "16108:6:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "16067:65:65" + }, + "returnParameters": { + "id": 17053, + "nodeType": "ParameterList", + "parameters": [], + "src": "16142:0:65" + }, + "scope": 17363, + "src": "16041:1968:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17272, + "nodeType": "Block", + "src": "18738:920:65", + "statements": [ + { + "assignments": [ + 17215 + ], + "declarations": [ + { + "constant": false, + "id": 17215, + "mutability": "mutable", + "name": "allocation", + "nameLocation": "18772:10:65", + "nodeType": "VariableDeclaration", + "scope": 17272, + "src": "18748:34:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State" + }, + "typeName": { + "id": 17214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17213, + "name": "Allocation.State", + "nameLocations": [ + "18748:10:65", + "18759:5:65" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "18748:16:65" + }, + "referencedDeclaration": 15663, + "src": "18748:16:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + }, + "visibility": "internal" + } + ], + "id": 17220, + "initialValue": { + "arguments": [ + { + "id": 17218, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17206, + "src": "18802:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 17216, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "18785:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18798:3:65", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 15913, + "src": "18785:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$_t_struct$_State_$15663_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" + } + }, + "id": 17219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18785:31:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18748:68:65" + }, + { + "expression": { + "arguments": [ + { + "id": 17224, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17206, + "src": "18961:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 17228, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19038:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19049:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "19038:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17225, + "name": "_graphRewardsManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4865, + "src": "18988:20:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$678_$", + "typeString": "function () view returns (contract IRewardsManager)" + } + }, + "id": 17226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18988:22:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRewardsManager_$678", + "typeString": "contract IRewardsManager" + } + }, + "id": 17227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19011:26:65", + "memberName": "onSubgraphAllocationUpdate", + "nodeType": "MemberAccess", + "referencedDeclaration": 677, + "src": "18988:49:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) external returns (uint256)" + } + }, + "id": 17230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18988:82:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17221, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "18919:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18932:15:65", + "memberName": "snapshotRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 15818, + "src": "18919:28:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address,uint256)" + } + }, + "id": 17231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18919:161:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17232, + "nodeType": "ExpressionStatement", + "src": "18919:161:65" + }, + { + "expression": { + "arguments": [ + { + "id": 17236, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17206, + "src": "19110:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 17233, + "name": "_allocations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17376, + "src": "19091:12:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State storage ref)" + } + }, + "id": 17235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19104:5:65", + "memberName": "close", + "nodeType": "MemberAccess", + "referencedDeclaration": 15893, + "src": "19091:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$15663_storage_$_$", + "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" + } + }, + "id": 17237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19091:33:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17238, + "nodeType": "ExpressionStatement", + "src": "19091:33:65" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 17242, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19169:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19180:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "19169:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 17244, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19189:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19200:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "19189:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17239, + "name": "allocationProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17387, + "src": "19134:26:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19161:7:65", + "memberName": "release", + "nodeType": "MemberAccess", + "referencedDeclaration": 1764, + "src": "19134:34:65", + "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": 17246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19134:73:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17247, + "nodeType": "ExpressionStatement", + "src": "19134:73:65" + }, + { + "expression": { + "id": 17259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 17248, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "19287:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 17251, + "indexExpression": { + "expression": { + "id": 17249, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19312:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19323:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "19312:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19287:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 17252, + "name": "_subgraphAllocatedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17395, + "src": "19359:24:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 17255, + "indexExpression": { + "expression": { + "id": 17253, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19384:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19395:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "19384:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19359:57:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 17256, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19431:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19442:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "19431:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19359:89:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19287:161:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17260, + "nodeType": "ExpressionStatement", + "src": "19287:161:65" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 17262, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19494:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19505:7:65", + "memberName": "indexer", + "nodeType": "MemberAccess", + "referencedDeclaration": 15646, + "src": "19494:18:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17264, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17206, + "src": "19526:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 17265, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19553:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19564:20:65", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 15648, + "src": "19553:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17267, + "name": "allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17215, + "src": "19598:10:65", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_memory_ptr", + "typeString": "struct Allocation.State memory" + } + }, + "id": 17268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19609:6:65", + "memberName": "tokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 15650, + "src": "19598:17:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17269, + "name": "_forceClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17208, + "src": "19629:12:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17261, + "name": "AllocationClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16594, + "src": "19464:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,bytes32,uint256,bool)" + } + }, + "id": 17270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19464:187:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17271, + "nodeType": "EmitStatement", + "src": "19459:192:65" + } + ] + }, + "documentation": { + "id": 17204, + "nodeType": "StructuredDocumentation", + "src": "18015:641:65", + "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\n @param _forceClosed Whether the allocation was force closed" + }, + "id": 17273, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_closeAllocation", + "nameLocation": "18670:16:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17206, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "18695:13:65", + "nodeType": "VariableDeclaration", + "scope": 17273, + "src": "18687:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18687:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17208, + "mutability": "mutable", + "name": "_forceClosed", + "nameLocation": "18715:12:65", + "nodeType": "VariableDeclaration", + "scope": 17273, + "src": "18710:17:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17207, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18710:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18686:42:65" + }, + "returnParameters": { + "id": 17210, + "nodeType": "ParameterList", + "parameters": [], + "src": "18738:0:65" + }, + "scope": 17363, + "src": "18661:997:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17287, + "nodeType": "Block", + "src": "19979:102:65", + "statements": [ + { + "expression": { + "id": 17281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17279, + "name": "maxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17390, + "src": "19989:15:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 17280, + "name": "_maxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17276, + "src": "20007:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19989:34:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17282, + "nodeType": "ExpressionStatement", + "src": "19989:34:65" + }, + { + "eventCall": { + "arguments": [ + { + "id": 17284, + "name": "_maxPOIStaleness", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17276, + "src": "20057:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17283, + "name": "MaxPOIStalenessSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16608, + "src": "20038:18:65", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 17285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20038:36:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17286, + "nodeType": "EmitStatement", + "src": "20033:41:65" + } + ] + }, + "documentation": { + "id": 17274, + "nodeType": "StructuredDocumentation", + "src": "19664:246:65", + "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": 17288, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setMaxPOIStaleness", + "nameLocation": "19924:19:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17276, + "mutability": "mutable", + "name": "_maxPOIStaleness", + "nameLocation": "19952:16:65", + "nodeType": "VariableDeclaration", + "scope": 17288, + "src": "19944:24:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19944:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19943:26:65" + }, + "returnParameters": { + "id": 17278, + "nodeType": "ParameterList", + "parameters": [], + "src": "19979:0:65" + }, + "scope": 17363, + "src": "19915:166:65", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17309, + "nodeType": "Block", + "src": "20418:125:65", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 17302, + "name": "EIP712_ALLOCATION_ID_PROOF_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16534, + "src": "20473:35:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17303, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17291, + "src": "20510:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17304, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17293, + "src": "20520:13:65", + "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": 17300, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "20462:3:65", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "20466:6:65", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "20462:10:65", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20462:72:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17299, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "20452:9:65", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20452:83:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 17298, + "name": "_hashTypedDataV4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5846, + "src": "20435:16:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 17307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20435:101:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 17297, + "id": 17308, + "nodeType": "Return", + "src": "20428:108:65" + } + ] + }, + "documentation": { + "id": 17289, + "nodeType": "StructuredDocumentation", + "src": "20087:221:65", + "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\n @return The encoded allocation proof" + }, + "id": 17310, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_encodeAllocationProof", + "nameLocation": "20322:22:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17291, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "20353:8:65", + "nodeType": "VariableDeclaration", + "scope": 17310, + "src": "20345:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20345:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17293, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "20371:13:65", + "nodeType": "VariableDeclaration", + "scope": 17310, + "src": "20363:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20363:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "20344:41:65" + }, + "returnParameters": { + "id": 17297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17296, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17310, + "src": "20409:7:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17295, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20409:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "20408:9:65" + }, + "scope": 17363, + "src": "20313:230:65", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17329, + "nodeType": "Block", + "src": "20927:102:65", + "statements": [ + { + "expression": { + "id": 17327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "20944:78:65", + "subExpression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17322, + "name": "_graphStaking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "20978:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2625_$", + "typeString": "function () view returns (contract IHorizonStaking)" + } + }, + "id": 17323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20978:15:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + } + }, + { + "id": 17324, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17313, + "src": "20995:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17325, + "name": "_delegationRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17315, + "src": "21005:16:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IHorizonStaking_$2625", + "typeString": "contract IHorizonStaking" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "id": 17320, + "name": "allocationProvisionTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17387, + "src": "20945:26:65", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20972:5:65", + "memberName": "check", + "nodeType": "MemberAccess", + "referencedDeclaration": 1800, + "src": "20945:32:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2625_$_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": 17326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20945:77:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 17319, + "id": 17328, + "nodeType": "Return", + "src": "20937:85:65" + } + ] + }, + "documentation": { + "id": 17311, + "nodeType": "StructuredDocumentation", + "src": "20549:275:65", + "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": 17330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isOverAllocated", + "nameLocation": "20838:16:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17313, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "20863:8:65", + "nodeType": "VariableDeclaration", + "scope": 17330, + "src": "20855:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20855:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17315, + "mutability": "mutable", + "name": "_delegationRatio", + "nameLocation": "20880:16:65", + "nodeType": "VariableDeclaration", + "scope": 17330, + "src": "20873:23:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17314, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "20873:6:65", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "20854:43:65" + }, + "returnParameters": { + "id": 17319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17330, + "src": "20921:4:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17317, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20921:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "20920:6:65" + }, + "scope": 17363, + "src": "20829:200:65", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17361, + "nodeType": "Block", + "src": "21521:210:65", + "statements": [ + { + "assignments": [ + 17341 + ], + "declarations": [ + { + "constant": false, + "id": 17341, + "mutability": "mutable", + "name": "signer", + "nameLocation": "21539:6:65", + "nodeType": "VariableDeclaration", + "scope": 17361, + "src": "21531:14:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21531:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 17350, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 17345, + "name": "_indexer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17333, + "src": "21585:8:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17346, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17335, + "src": "21595:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17344, + "name": "_encodeAllocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17310, + "src": "21562:22:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) view returns (bytes32)" + } + }, + "id": 17347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21562:47:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17348, + "name": "_proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17337, + "src": "21611:6:65", + "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": 17342, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "21548:5:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ECDSA_$8231_$", + "typeString": "type(library ECDSA)" + } + }, + "id": 17343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21554:7:65", + "memberName": "recover", + "nodeType": "MemberAccess", + "referencedDeclaration": 7987, + "src": "21548:13:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 17349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21548:70:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21531:87:65" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 17354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17352, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17341, + "src": "21636:6:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 17353, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17335, + "src": "21646:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21636:23:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "id": 17356, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17341, + "src": "21701:6:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17357, + "name": "_allocationId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17335, + "src": "21709:13:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17355, + "name": "AllocationManagerInvalidAllocationProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16615, + "src": "21661:39:65", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 17358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21661:62:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 17351, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "21628:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 17359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21628:96:65", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17360, + "nodeType": "ExpressionStatement", + "src": "21628:96:65" + } + ] + }, + "documentation": { + "id": 17331, + "nodeType": "StructuredDocumentation", + "src": "21035:374:65", + "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": 17362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyAllocationProof", + "nameLocation": "21423:22:65", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17333, + "mutability": "mutable", + "name": "_indexer", + "nameLocation": "21454:8:65", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "21446:16:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21446:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17335, + "mutability": "mutable", + "name": "_allocationId", + "nameLocation": "21472:13:65", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "21464:21:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21464:7:65", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17337, + "mutability": "mutable", + "name": "_proof", + "nameLocation": "21500:6:65", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "21487:19:65", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 17336, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21487:5:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21445:62:65" + }, + "returnParameters": { + "id": 17339, + "nodeType": "ParameterList", + "parameters": [], + "src": "21521:0:65" + }, + "scope": 17363, + "src": "21414:317:65", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 17364, + "src": "1547:20186:65", + "usedErrors": [ + 4655, + 5140, + 5143, + 16615, + 16618, + 16623, + 16630 + ], + "usedEvents": [ + 4650, + 5148, + 6049, + 16547, + 16568, + 16581, + 16594, + 16603, + 16608 + ] + } + ], + "src": "45:21689:65" + }, + "id": 65 + }, + "contracts/utilities/AllocationManagerStorage.sol": { + "ast": { + "absolutePath": "contracts/utilities/AllocationManagerStorage.sol", + "exportedSymbols": { + "Allocation": [ + 16033 + ], + "AllocationManagerV1Storage": [ + 17401 + ], + "LegacyAllocation": [ + 16462 + ] + }, + "id": 17402, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17365, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:66" + }, + { + "absolutePath": "contracts/libraries/Allocation.sol", + "file": "../libraries/Allocation.sol", + "id": 17367, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17402, + "sourceUnit": 16034, + "src": "70:57:66", + "symbolAliases": [ + { + "foreign": { + "id": 17366, + "name": "Allocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16033, + "src": "79:10:66", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/LegacyAllocation.sol", + "file": "../libraries/LegacyAllocation.sol", + "id": 17369, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17402, + "sourceUnit": 16463, + "src": "128:69:66", + "symbolAliases": [ + { + "foreign": { + "id": 17368, + "name": "LegacyAllocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16462, + "src": "137:16:66", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "AllocationManagerV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 17370, + "nodeType": "StructuredDocumentation", + "src": "199:276:66", + "text": " @title AllocationManagerStorage\n @notice This contract holds all the storage variables for the Allocation Manager 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": 17401, + "linearizedBaseContracts": [ + 17401 + ], + "name": "AllocationManagerV1Storage", + "nameLocation": "494:26:66", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 17371, + "nodeType": "StructuredDocumentation", + "src": "527:30:66", + "text": "@notice Allocation details" + }, + "id": 17376, + "mutability": "mutable", + "name": "_allocations", + "nameLocation": "632:12:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "562:82:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "typeName": { + "id": 17375, + "keyName": "allocationId", + "keyNameLocation": "578:12:66", + "keyType": { + "id": 17372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "562:60:66", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$15663_storage_$", + "typeString": "mapping(address => struct Allocation.State)" + }, + "valueName": "allocation", + "valueNameLocation": "611:10:66", + "valueType": { + "id": 17374, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17373, + "name": "Allocation.State", + "nameLocations": [ + "594:10:66", + "605:5:66" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15663, + "src": "594:16:66" + }, + "referencedDeclaration": 15663, + "src": "594:16:66", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$15663_storage_ptr", + "typeString": "struct Allocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 17377, + "nodeType": "StructuredDocumentation", + "src": "651:37:66", + "text": "@notice Legacy allocation details" + }, + "id": 17382, + "mutability": "mutable", + "name": "_legacyAllocations", + "nameLocation": "769:18:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "693:94:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "typeName": { + "id": 17381, + "keyName": "allocationId", + "keyNameLocation": "709:12:66", + "keyType": { + "id": 17378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "701:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "693:66:66", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$16305_storage_$", + "typeString": "mapping(address => struct LegacyAllocation.State)" + }, + "valueName": "allocation", + "valueNameLocation": "748:10:66", + "valueType": { + "id": 17380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17379, + "name": "LegacyAllocation.State", + "nameLocations": [ + "725:16:66", + "742:5:66" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16305, + "src": "725:22:66" + }, + "referencedDeclaration": 16305, + "src": "725:22:66", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16305_storage_ptr", + "typeString": "struct LegacyAllocation.State" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 17383, + "nodeType": "StructuredDocumentation", + "src": "794:47:66", + "text": "@notice Tracks allocated tokens per indexer" + }, + "functionSelector": "6234e216", + "id": 17387, + "mutability": "mutable", + "name": "allocationProvisionTracker", + "nameLocation": "896:26:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "846:76:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 17386, + "keyName": "indexer", + "keyNameLocation": "862:7:66", + "keyType": { + "id": 17384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "854:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "846:42:66", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "tokens", + "valueNameLocation": "881:6:66", + "valueType": { + "id": 17385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "873:7:66", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 17388, + "nodeType": "StructuredDocumentation", + "src": "929:111:66", + "text": "@notice Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards" + }, + "functionSelector": "85e82baf", + "id": 17390, + "mutability": "mutable", + "name": "maxPOIStaleness", + "nameLocation": "1060:15:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "1045:30:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1045:7:66", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 17391, + "nodeType": "StructuredDocumentation", + "src": "1082:112:66", + "text": "@notice Track total tokens allocated per subgraph deployment\n @dev Used to calculate indexing rewards" + }, + "id": 17395, + "mutability": "mutable", + "name": "_subgraphAllocatedTokens", + "nameLocation": "1264:24:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "1199:89:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 17394, + "keyName": "subgraphDeploymentId", + "keyNameLocation": "1215:20:66", + "keyType": { + "id": 17392, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1207:7:66", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1199:55:66", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueName": "tokens", + "valueNameLocation": "1247:6:66", + "valueType": { + "id": 17393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1239:7:66", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 17396, + "nodeType": "StructuredDocumentation", + "src": "1295:57:66", + "text": "@dev Gap to allow adding variables in future upgrades" + }, + "id": 17400, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1377:5:66", + "nodeType": "VariableDeclaration", + "scope": 17401, + "src": "1357:25:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 17397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:66", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17399, + "length": { + "hexValue": "3530", + "id": 17398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1365:2:66", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1357:11:66", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 17402, + "src": "476:909:66", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:1341:66" + }, + "id": 66 + }, + "contracts/utilities/AttestationManager.sol": { + "ast": { + "absolutePath": "contracts/utilities/AttestationManager.sol", + "exportedSymbols": { + "Attestation": [ + 16290 + ], + "AttestationManager": [ + 17555 + ], + "AttestationManagerV1Storage": [ + 17567 + ], + "ECDSA": [ + 8231 + ], + "Initializable": [ + 5391 + ] + }, + "id": 17556, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17403, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:67" + }, + { + "absolutePath": "contracts/utilities/AttestationManagerStorage.sol", + "file": "./AttestationManagerStorage.sol", + "id": 17405, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17556, + "sourceUnit": 17568, + "src": "70:78:67", + "symbolAliases": [ + { + "foreign": { + "id": 17404, + "name": "AttestationManagerV1Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17567, + "src": "79:27:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "id": 17407, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17556, + "sourceUnit": 8232, + "src": "150:77:67", + "symbolAliases": [ + { + "foreign": { + "id": 17406, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "159:5:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 17409, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17556, + "sourceUnit": 5392, + "src": "228:98:67", + "symbolAliases": [ + { + "foreign": { + "id": 17408, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "237:13:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/libraries/Attestation.sol", + "file": "../libraries/Attestation.sol", + "id": 17411, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17556, + "sourceUnit": 16291, + "src": "327:59:67", + "symbolAliases": [ + { + "foreign": { + "id": 17410, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "336:11:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 17413, + "name": "Initializable", + "nameLocations": [ + "771:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5391, + "src": "771:13:67" + }, + "id": 17414, + "nodeType": "InheritanceSpecifier", + "src": "771:13:67" + }, + { + "baseName": { + "id": 17415, + "name": "AttestationManagerV1Storage", + "nameLocations": [ + "786:27:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 17567, + "src": "786:27:67" + }, + "id": 17416, + "nodeType": "InheritanceSpecifier", + "src": "786:27:67" + } + ], + "canonicalName": "AttestationManager", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 17412, + "nodeType": "StructuredDocumentation", + "src": "388:342:67", + "text": " @title AttestationManager contract\n @notice A helper contract implementing attestation verification.\n Uses a custom implementation of EIP712 for backwards compatibility with attestations.\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": 17555, + "linearizedBaseContracts": [ + 17555, + 17567, + 5391 + ], + "name": "AttestationManager", + "nameLocation": "749:18:67", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 17417, + "nodeType": "StructuredDocumentation", + "src": "820:47:67", + "text": "@notice EIP712 type hash for Receipt struct" + }, + "id": 17422, + "mutability": "constant", + "name": "RECEIPT_TYPE_HASH", + "nameLocation": "897:17:67", + "nodeType": "VariableDeclaration", + "scope": 17555, + "src": "872:142:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17418, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "872:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "52656365697074286279746573333220726571756573744349442c6279746573333220726573706f6e73654349442c627974657333322073756267726170684465706c6f796d656e74494429", + "id": 17420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:78:67", + "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": 17419, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "925:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "925:89:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 17423, + "nodeType": "StructuredDocumentation", + "src": "1021:35:67", + "text": "@notice EIP712 domain type hash" + }, + "id": 17428, + "mutability": "constant", + "name": "DOMAIN_TYPE_HASH", + "nameLocation": "1086:16:67", + "nodeType": "VariableDeclaration", + "scope": 17555, + "src": "1061:160:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17424, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1061:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429", + "id": 17426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1123:97:67", + "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": 17425, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1113:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1113:108:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 17429, + "nodeType": "StructuredDocumentation", + "src": "1228:30:67", + "text": "@notice EIP712 domain name" + }, + "id": 17434, + "mutability": "constant", + "name": "DOMAIN_NAME_HASH", + "nameLocation": "1288:16:67", + "nodeType": "VariableDeclaration", + "scope": 17555, + "src": "1263:71:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17430, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1263:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "47726170682050726f746f636f6c", + "id": 17432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:16:67", + "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": 17431, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1307:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:27:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 17435, + "nodeType": "StructuredDocumentation", + "src": "1341:33:67", + "text": "@notice EIP712 domain version" + }, + "id": 17440, + "mutability": "constant", + "name": "DOMAIN_VERSION_HASH", + "nameLocation": "1404:19:67", + "nodeType": "VariableDeclaration", + "scope": 17555, + "src": "1379:61:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1379:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30", + "id": 17438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1436:3:67", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + } + ], + "id": 17437, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1426:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1426:14:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 17441, + "nodeType": "StructuredDocumentation", + "src": "1447:30:67", + "text": "@notice EIP712 domain salt" + }, + "id": 17444, + "mutability": "constant", + "name": "DOMAIN_SALT", + "nameLocation": "1507:11:67", + "nodeType": "VariableDeclaration", + "scope": 17555, + "src": "1482:105:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17442, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1482:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307861303730666662316364373430393634396266373738323263636537343439353436386530366462666165663039353536383338626631383836373962396332", + "id": 17443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1521:66:67", + "typeDescriptions": { + "typeIdentifier": "t_rational_72569707383443547382267636376646613935103975378761491950889697921835323734466_by_1", + "typeString": "int_const 7256...(69 digits omitted)...4466" + }, + "value": "0xa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c2" + }, + "visibility": "private" + }, + { + "body": { + "id": 17453, + "nodeType": "Block", + "src": "1802:54:67", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17450, + "name": "__AttestationManager_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17479, + "src": "1812:35:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 17451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1812:37:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17452, + "nodeType": "ExpressionStatement", + "src": "1812:37:67" + } + ] + }, + "documentation": { + "id": 17445, + "nodeType": "StructuredDocumentation", + "src": "1594:87:67", + "text": " @dev Initialize the AttestationManager contract and parent contracts" + }, + "id": 17454, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 17448, + "kind": "modifierInvocation", + "modifierName": { + "id": 17447, + "name": "onlyInitializing", + "nameLocations": [ + "1785:16:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "1785:16:67" + }, + "nodeType": "ModifierInvocation", + "src": "1785:16:67" + } + ], + "name": "__AttestationManager_init", + "nameLocation": "1748:25:67", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17446, + "nodeType": "ParameterList", + "parameters": [], + "src": "1773:2:67" + }, + "returnParameters": { + "id": 17449, + "nodeType": "ParameterList", + "parameters": [], + "src": "1802:0:67" + }, + "scope": 17555, + "src": "1739:117:67", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17478, + "nodeType": "Block", + "src": "2059:289:67", + "statements": [ + { + "expression": { + "id": 17476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17460, + "name": "_domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17561, + "src": "2069:16:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 17464, + "name": "DOMAIN_TYPE_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17428, + "src": "2139:16:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17465, + "name": "DOMAIN_NAME_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17434, + "src": "2173:16:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 17466, + "name": "DOMAIN_VERSION_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17440, + "src": "2207:19:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17467, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2244:5:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 17468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2250:7:67", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "2244:13:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 17471, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2283:4:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AttestationManager_$17555", + "typeString": "contract AttestationManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AttestationManager_$17555", + "typeString": "contract AttestationManager" + } + ], + "id": 17470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2275:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 17469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2275:7:67", + "typeDescriptions": {} + } + }, + "id": 17472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2275:13:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17473, + "name": "DOMAIN_SALT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17444, + "src": "2306:11:67", + "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": 17462, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2111:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2115:6:67", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "2111:10:67", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2111:220:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17461, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2088:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2088:253:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2069:272:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 17477, + "nodeType": "ExpressionStatement", + "src": "2069:272:67" + } + ] + }, + "documentation": { + "id": 17455, + "nodeType": "StructuredDocumentation", + "src": "1862:66:67", + "text": " @dev Initialize the AttestationManager contract" + }, + "id": 17479, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 17458, + "kind": "modifierInvocation", + "modifierName": { + "id": 17457, + "name": "onlyInitializing", + "nameLocations": [ + "2042:16:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5286, + "src": "2042:16:67" + }, + "nodeType": "ModifierInvocation", + "src": "2042:16:67" + } + ], + "name": "__AttestationManager_init_unchained", + "nameLocation": "1995:35:67", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17456, + "nodeType": "ParameterList", + "parameters": [], + "src": "2030:2:67" + }, + "returnParameters": { + "id": 17459, + "nodeType": "ParameterList", + "parameters": [], + "src": "2059:0:67" + }, + "scope": 17555, + "src": "1986:362:67", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17523, + "nodeType": "Block", + "src": "2607:605:67", + "statements": [ + { + "assignments": [ + 17492 + ], + "declarations": [ + { + "constant": false, + "id": 17492, + "mutability": "mutable", + "name": "receipt", + "nameLocation": "2722:7:67", + "nodeType": "VariableDeclaration", + "scope": 17523, + "src": "2695:34:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt" + }, + "typeName": { + "id": 17491, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17490, + "name": "Attestation.Receipt", + "nameLocations": [ + "2695:11:67", + "2707:7:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16044, + "src": "2695:19:67" + }, + "referencedDeclaration": 16044, + "src": "2695:19:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_storage_ptr", + "typeString": "struct Attestation.Receipt" + } + }, + "visibility": "internal" + } + ], + "id": 17502, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 17495, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "2765:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2778:10:67", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16047, + "src": "2765:23:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17497, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "2802:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2815:11:67", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16049, + "src": "2802:24:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17499, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "2840:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2853:20:67", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16051, + "src": "2840:33:67", + "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": 17493, + "name": "Attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16290, + "src": "2732:11:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Attestation_$16290_$", + "typeString": "type(library Attestation)" + } + }, + "id": 17494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2744:7:67", + "memberName": "Receipt", + "nodeType": "MemberAccess", + "referencedDeclaration": 16044, + "src": "2732:19:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Receipt_$16044_storage_ptr_$", + "typeString": "type(struct Attestation.Receipt storage pointer)" + } + }, + "id": 17501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2732:151:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2695:188:67" + }, + { + "assignments": [ + 17504 + ], + "declarations": [ + { + "constant": false, + "id": 17504, + "mutability": "mutable", + "name": "messageHash", + "nameLocation": "2901:11:67", + "nodeType": "VariableDeclaration", + "scope": 17523, + "src": "2893:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17503, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2893:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 17508, + "initialValue": { + "arguments": [ + { + "id": 17506, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17492, + "src": "2930:7:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + ], + "id": 17505, + "name": "_encodeReceipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17554, + "src": "2915:14:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Receipt_$16044_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct Attestation.Receipt memory) view returns (bytes32)" + } + }, + "id": 17507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2915:23:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2893:45:67" + }, + { + "expression": { + "arguments": [ + { + "id": 17511, + "name": "messageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17504, + "src": "3127:11:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "expression": { + "id": 17514, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "3157:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17515, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:1:67", + "memberName": "r", + "nodeType": "MemberAccess", + "referencedDeclaration": 16053, + "src": "3157:14:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17516, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "3173:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17517, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3186:1:67", + "memberName": "s", + "nodeType": "MemberAccess", + "referencedDeclaration": 16055, + "src": "3173:14:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17518, + "name": "_attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "3189:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State memory" + } + }, + "id": 17519, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3202:1:67", + "memberName": "v", + "nodeType": "MemberAccess", + "referencedDeclaration": 16057, + "src": "3189:14:67", + "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": 17512, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3140:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3144:12:67", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "3140:16:67", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3140:64:67", + "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": 17509, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "3113:5:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ECDSA_$8231_$", + "typeString": "type(library ECDSA)" + } + }, + "id": 17510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3119:7:67", + "memberName": "recover", + "nodeType": "MemberAccess", + "referencedDeclaration": 7987, + "src": "3113:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 17521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3113:92:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 17487, + "id": 17522, + "nodeType": "Return", + "src": "3106:99:67" + } + ] + }, + "documentation": { + "id": 17480, + "nodeType": "StructuredDocumentation", + "src": "2354:153:67", + "text": " @dev Recover the signer address of the `_attestation`.\n @param _attestation The attestation struct\n @return Signer address" + }, + "id": 17524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_recoverSigner", + "nameLocation": "2521:14:67", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17483, + "mutability": "mutable", + "name": "_attestation", + "nameLocation": "2561:12:67", + "nodeType": "VariableDeclaration", + "scope": 17524, + "src": "2536:37:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_memory_ptr", + "typeString": "struct Attestation.State" + }, + "typeName": { + "id": 17482, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17481, + "name": "Attestation.State", + "nameLocations": [ + "2536:11:67", + "2548:5:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16058, + "src": "2536:17:67" + }, + "referencedDeclaration": 16058, + "src": "2536:17:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$16058_storage_ptr", + "typeString": "struct Attestation.State" + } + }, + "visibility": "internal" + } + ], + "src": "2535:39:67" + }, + "returnParameters": { + "id": 17487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17486, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17524, + "src": "2598:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2598:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2597:9:67" + }, + "scope": 17555, + "src": "2512:700:67", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17553, + "nodeType": "Block", + "src": "3746:576:67", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1901", + "id": 17536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3840:10:67", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string hex\"1901\"" + }, + "value": "\u0019\u0001" + }, + { + "id": 17537, + "name": "_domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17561, + "src": "3915:16:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 17541, + "name": "RECEIPT_TYPE_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "4028:17:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17542, + "name": "_receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17528, + "src": "4075:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + }, + "id": 17543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4084:10:67", + "memberName": "requestCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16039, + "src": "4075:19:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17544, + "name": "_receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17528, + "src": "4124:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + }, + "id": 17545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4133:11:67", + "memberName": "responseCID", + "nodeType": "MemberAccess", + "referencedDeclaration": 16041, + "src": "4124:20:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17546, + "name": "_receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17528, + "src": "4174:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt memory" + } + }, + "id": 17547, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4183:20:67", + "memberName": "subgraphDeploymentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16043, + "src": "4174:29:67", + "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": 17539, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3988:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3992:6:67", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "3988:10:67", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3988:241:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17538, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3953:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3953:330:67", + "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": 17534, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3802:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3806:12:67", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "3802:16:67", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3802:499:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17533, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3775:9:67", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3775:540:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 17532, + "id": 17552, + "nodeType": "Return", + "src": "3756:559:67" + } + ] + }, + "documentation": { + "id": 17525, + "nodeType": "StructuredDocumentation", + "src": "3218:430:67", + "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": 17554, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_encodeReceipt", + "nameLocation": "3662:14:67", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17528, + "mutability": "mutable", + "name": "_receipt", + "nameLocation": "3704:8:67", + "nodeType": "VariableDeclaration", + "scope": 17554, + "src": "3677:35:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_memory_ptr", + "typeString": "struct Attestation.Receipt" + }, + "typeName": { + "id": 17527, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17526, + "name": "Attestation.Receipt", + "nameLocations": [ + "3677:11:67", + "3689:7:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16044, + "src": "3677:19:67" + }, + "referencedDeclaration": 16044, + "src": "3677:19:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$16044_storage_ptr", + "typeString": "struct Attestation.Receipt" + } + }, + "visibility": "internal" + } + ], + "src": "3676:37:67" + }, + "returnParameters": { + "id": 17532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17531, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17554, + "src": "3737:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17530, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3737:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3736:9:67" + }, + "scope": 17555, + "src": "3653:669:67", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 17556, + "src": "731:3593:67", + "usedErrors": [ + 5140, + 5143 + ], + "usedEvents": [ + 5148 + ] + } + ], + "src": "45:4280:67" + }, + "id": 67 + }, + "contracts/utilities/AttestationManagerStorage.sol": { + "ast": { + "absolutePath": "contracts/utilities/AttestationManagerStorage.sol", + "exportedSymbols": { + "AttestationManagerV1Storage": [ + 17567 + ] + }, + "id": 17568, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17557, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:68" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "AttestationManagerV1Storage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 17558, + "nodeType": "StructuredDocumentation", + "src": "70:278:68", + "text": " @title AttestationManagerStorage\n @notice This contract holds all the storage variables for the Attestation Manager 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": 17567, + "linearizedBaseContracts": [ + 17567 + ], + "name": "AttestationManagerV1Storage", + "nameLocation": "367:27:68", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 17559, + "nodeType": "StructuredDocumentation", + "src": "401:32:68", + "text": "@dev EIP712 domain separator" + }, + "id": 17561, + "mutability": "mutable", + "name": "_domainSeparator", + "nameLocation": "455:16:68", + "nodeType": "VariableDeclaration", + "scope": 17567, + "src": "438:33:68", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17560, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "438:7:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 17562, + "nodeType": "StructuredDocumentation", + "src": "478:57:68", + "text": "@dev Gap to allow adding variables in future upgrades" + }, + "id": 17566, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "560:5:68", + "nodeType": "VariableDeclaration", + "scope": 17567, + "src": "540:25:68", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 17563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17565, + "length": { + "hexValue": "3530", + "id": 17564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "548:2:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "540:11:68", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 17568, + "src": "349:219:68", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "45:524:68" + }, + "id": 68 + }, + "contracts/utilities/Directory.sol": { + "ast": { + "absolutePath": "contracts/utilities/Directory.sol", + "exportedSymbols": { + "Directory": [ + 17720 + ], + "ICuration": [ + 165 + ], + "IDisputeManager": [ + 15373 + ], + "IGraphTallyCollector": [ + 2605 + ], + "ISubgraphService": [ + 15634 + ] + }, + "id": 17721, + "license": "GPL-3.0-or-later", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17569, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "45:23:69" + }, + { + "absolutePath": "contracts/interfaces/IDisputeManager.sol", + "file": "../interfaces/IDisputeManager.sol", + "id": 17571, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17721, + "sourceUnit": 15374, + "src": "70:68:69", + "symbolAliases": [ + { + "foreign": { + "id": 17570, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "79:15:69", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ISubgraphService.sol", + "file": "../interfaces/ISubgraphService.sol", + "id": 17573, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17721, + "sourceUnit": 15635, + "src": "139:70:69", + "symbolAliases": [ + { + "foreign": { + "id": 17572, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "148:16:69", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", + "file": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", + "id": 17575, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17721, + "sourceUnit": 2606, + "src": "210:108:69", + "symbolAliases": [ + { + "foreign": { + "id": 17574, + "name": "IGraphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2605, + "src": "219:20:69", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", + "file": "@graphprotocol/contracts/contracts/curation/ICuration.sol", + "id": 17577, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17721, + "sourceUnit": 166, + "src": "319:86:69", + "symbolAliases": [ + { + "foreign": { + "id": 17576, + "name": "ICuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "328:9:69", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Directory", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 17578, + "nodeType": "StructuredDocumentation", + "src": "407:388:69", + "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.\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": 17720, + "linearizedBaseContracts": [ + 17720 + ], + "name": "Directory", + "nameLocation": "814:9:69", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 17579, + "nodeType": "StructuredDocumentation", + "src": "830:49:69", + "text": "@notice The Subgraph Service contract address" + }, + "id": 17582, + "mutability": "immutable", + "name": "SUBGRAPH_SERVICE", + "nameLocation": "919:16:69", + "nodeType": "VariableDeclaration", + "scope": 17720, + "src": "884:51:69", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 17581, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17580, + "name": "ISubgraphService", + "nameLocations": [ + "884:16:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "884:16:69" + }, + "referencedDeclaration": 15634, + "src": "884:16:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 17583, + "nodeType": "StructuredDocumentation", + "src": "942:48:69", + "text": "@notice The Dispute Manager contract address" + }, + "id": 17586, + "mutability": "immutable", + "name": "DISPUTE_MANAGER", + "nameLocation": "1029:15:69", + "nodeType": "VariableDeclaration", + "scope": 17720, + "src": "995:49:69", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + }, + "typeName": { + "id": 17585, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17584, + "name": "IDisputeManager", + "nameLocations": [ + "995:15:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15373, + "src": "995:15:69" + }, + "referencedDeclaration": 15373, + "src": "995:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 17587, + "nodeType": "StructuredDocumentation", + "src": "1051:132:69", + "text": "@notice The Graph Tally Collector contract address\n @dev Required to collect payments via Graph Horizon payments protocol" + }, + "id": 17590, + "mutability": "immutable", + "name": "GRAPH_TALLY_COLLECTOR", + "nameLocation": "1227:21:69", + "nodeType": "VariableDeclaration", + "scope": 17720, + "src": "1188:60:69", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + }, + "typeName": { + "id": 17589, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17588, + "name": "IGraphTallyCollector", + "nameLocations": [ + "1188:20:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2605, + "src": "1188:20:69" + }, + "referencedDeclaration": 2605, + "src": "1188:20:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 17591, + "nodeType": "StructuredDocumentation", + "src": "1255:94:69", + "text": "@notice The Curation contract address\n @dev Required for curation fees distribution" + }, + "id": 17594, + "mutability": "immutable", + "name": "CURATION", + "nameLocation": "1382:8:69", + "nodeType": "VariableDeclaration", + "scope": 17720, + "src": "1354:36:69", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + }, + "typeName": { + "id": 17593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17592, + "name": "ICuration", + "nameLocations": [ + "1354:9:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 165, + "src": "1354:9:69" + }, + "referencedDeclaration": 165, + "src": "1354:9:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 17595, + "nodeType": "StructuredDocumentation", + "src": "1397:332:69", + "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 graphTallyCollector The Graph Tally Collector contract address\n @param curation The Curation contract address" + }, + "eventSelector": "4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda7", + "id": 17605, + "name": "SubgraphServiceDirectoryInitialized", + "nameLocation": "1740:35:69", + "nodeType": "EventDefinition", + "parameters": { + "id": 17604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17597, + "indexed": false, + "mutability": "mutable", + "name": "subgraphService", + "nameLocation": "1793:15:69", + "nodeType": "VariableDeclaration", + "scope": 17605, + "src": "1785:23:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1785:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17599, + "indexed": false, + "mutability": "mutable", + "name": "disputeManager", + "nameLocation": "1826:14:69", + "nodeType": "VariableDeclaration", + "scope": 17605, + "src": "1818:22:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1818:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17601, + "indexed": false, + "mutability": "mutable", + "name": "graphTallyCollector", + "nameLocation": "1858:19:69", + "nodeType": "VariableDeclaration", + "scope": 17605, + "src": "1850:27:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1850:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17603, + "indexed": false, + "mutability": "mutable", + "name": "curation", + "nameLocation": "1895:8:69", + "nodeType": "VariableDeclaration", + "scope": 17605, + "src": "1887:16:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1887:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1775:134:69" + }, + "src": "1734:176:69" + }, + { + "documentation": { + "id": 17606, + "nodeType": "StructuredDocumentation", + "src": "1916:173:69", + "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": 17612, + "name": "DirectoryNotDisputeManager", + "nameLocation": "2100:26:69", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17608, + "mutability": "mutable", + "name": "caller", + "nameLocation": "2135:6:69", + "nodeType": "VariableDeclaration", + "scope": 17612, + "src": "2127:14:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2127:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17610, + "mutability": "mutable", + "name": "disputeManager", + "nameLocation": "2151:14:69", + "nodeType": "VariableDeclaration", + "scope": 17612, + "src": "2143:22:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2143:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2126:40:69" + }, + "src": "2094:73:69" + }, + { + "body": { + "id": 17634, + "nodeType": "Block", + "src": "2280:175:69", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 17622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17616, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2311:3:69", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 17617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2315:6:69", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2311:10:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 17620, + "name": "DISPUTE_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17586, + "src": "2333:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + ], + "id": 17619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2325:7:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 17618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2325:7:69", + "typeDescriptions": {} + } + }, + "id": 17621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2325:24:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2311:38:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "expression": { + "id": 17624, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2390:3:69", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 17625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2394:6:69", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2390:10:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 17628, + "name": "DISPUTE_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17586, + "src": "2410:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + ], + "id": 17627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2402:7:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 17626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2402:7:69", + "typeDescriptions": {} + } + }, + "id": 17629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2402:24:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17623, + "name": "DirectoryNotDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17612, + "src": "2363:26:69", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 17630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2363:64:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_error", + "typeString": "error" + } + ], + "id": 17615, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2290:7:69", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", + "typeString": "function (bool,error) pure" + } + }, + "id": 17631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2290:147:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17632, + "nodeType": "ExpressionStatement", + "src": "2290:147:69" + }, + { + "id": 17633, + "nodeType": "PlaceholderStatement", + "src": "2447:1:69" + } + ] + }, + "documentation": { + "id": 17613, + "nodeType": "StructuredDocumentation", + "src": "2173:72:69", + "text": " @notice Checks that the caller is the Dispute Manager" + }, + "id": 17635, + "name": "onlyDisputeManager", + "nameLocation": "2259:18:69", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 17614, + "nodeType": "ParameterList", + "parameters": [], + "src": "2277:2:69" + }, + "src": "2250:205:69", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17678, + "nodeType": "Block", + "src": "2903:358:69", + "statements": [ + { + "expression": { + "id": 17651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17647, + "name": "SUBGRAPH_SERVICE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17582, + "src": "2913:16:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 17649, + "name": "subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17638, + "src": "2949:15:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17648, + "name": "ISubgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15634, + "src": "2932:16:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISubgraphService_$15634_$", + "typeString": "type(contract ISubgraphService)" + } + }, + "id": 17650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2932:33:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "src": "2913:52:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "id": 17652, + "nodeType": "ExpressionStatement", + "src": "2913:52:69" + }, + { + "expression": { + "id": 17657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17653, + "name": "DISPUTE_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17586, + "src": "2975:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 17655, + "name": "disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17640, + "src": "3009:14:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17654, + "name": "IDisputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15373, + "src": "2993:15:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$15373_$", + "typeString": "type(contract IDisputeManager)" + } + }, + "id": 17656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2993:31:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "src": "2975:49:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "id": 17658, + "nodeType": "ExpressionStatement", + "src": "2975:49:69" + }, + { + "expression": { + "id": 17663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17659, + "name": "GRAPH_TALLY_COLLECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17590, + "src": "3034:21:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 17661, + "name": "graphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17642, + "src": "3079:19:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17660, + "name": "IGraphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2605, + "src": "3058:20:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGraphTallyCollector_$2605_$", + "typeString": "type(contract IGraphTallyCollector)" + } + }, + "id": 17662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3058:41:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "src": "3034:65:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "id": 17664, + "nodeType": "ExpressionStatement", + "src": "3034:65:69" + }, + { + "expression": { + "id": 17669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17665, + "name": "CURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17594, + "src": "3109:8:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 17667, + "name": "curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17644, + "src": "3130:8:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17666, + "name": "ICuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3120:9:69", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICuration_$165_$", + "typeString": "type(contract ICuration)" + } + }, + "id": 17668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3120:19:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "src": "3109:30:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "id": 17670, + "nodeType": "ExpressionStatement", + "src": "3109:30:69" + }, + { + "eventCall": { + "arguments": [ + { + "id": 17672, + "name": "subgraphService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17638, + "src": "3191:15:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17673, + "name": "disputeManager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17640, + "src": "3208:14:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17674, + "name": "graphTallyCollector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17642, + "src": "3224:19:69", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 17675, + "name": "curation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17644, + "src": "3245:8:69", + "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": 17671, + "name": "SubgraphServiceDirectoryInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17605, + "src": "3155:35:69", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address,address)" + } + }, + "id": 17676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3155:99:69", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17677, + "nodeType": "EmitStatement", + "src": "3150:104:69" + } + ] + }, + "documentation": { + "id": 17636, + "nodeType": "StructuredDocumentation", + "src": "2461:329:69", + "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 graphTallyCollector The Graph Tally Collector contract address\n @param curation The Curation contract address" + }, + "id": 17679, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17638, + "mutability": "mutable", + "name": "subgraphService", + "nameLocation": "2815:15:69", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2807:23:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2807:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17640, + "mutability": "mutable", + "name": "disputeManager", + "nameLocation": "2840:14:69", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2832:22:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2832:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17642, + "mutability": "mutable", + "name": "graphTallyCollector", + "nameLocation": "2864:19:69", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2856:27:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2856:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17644, + "mutability": "mutable", + "name": "curation", + "nameLocation": "2893:8:69", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2885:16:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:69", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2806:96:69" + }, + "returnParameters": { + "id": 17646, + "nodeType": "ParameterList", + "parameters": [], + "src": "2903:0:69" + }, + "scope": 17720, + "src": "2795:466:69", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17688, + "nodeType": "Block", + "src": "3458:40:69", + "statements": [ + { + "expression": { + "id": 17686, + "name": "SUBGRAPH_SERVICE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17582, + "src": "3475:16:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "functionReturnParameters": 17685, + "id": 17687, + "nodeType": "Return", + "src": "3468:23:69" + } + ] + }, + "documentation": { + "id": 17680, + "nodeType": "StructuredDocumentation", + "src": "3267:117:69", + "text": " @notice Returns the Subgraph Service contract address\n @return The Subgraph Service contract" + }, + "id": 17689, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_subgraphService", + "nameLocation": "3398:16:69", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17681, + "nodeType": "ParameterList", + "parameters": [], + "src": "3414:2:69" + }, + "returnParameters": { + "id": 17685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17689, + "src": "3440:16:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + }, + "typeName": { + "id": 17683, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17682, + "name": "ISubgraphService", + "nameLocations": [ + "3440:16:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15634, + "src": "3440:16:69" + }, + "referencedDeclaration": 15634, + "src": "3440:16:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISubgraphService_$15634", + "typeString": "contract ISubgraphService" + } + }, + "visibility": "internal" + } + ], + "src": "3439:18:69" + }, + "scope": 17720, + "src": "3389:109:69", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17698, + "nodeType": "Block", + "src": "3691:39:69", + "statements": [ + { + "expression": { + "id": 17696, + "name": "DISPUTE_MANAGER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17586, + "src": "3708:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "functionReturnParameters": 17695, + "id": 17697, + "nodeType": "Return", + "src": "3701:22:69" + } + ] + }, + "documentation": { + "id": 17690, + "nodeType": "StructuredDocumentation", + "src": "3504:115:69", + "text": " @notice Returns the Dispute Manager contract address\n @return The Dispute Manager contract" + }, + "id": 17699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disputeManager", + "nameLocation": "3633:15:69", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17691, + "nodeType": "ParameterList", + "parameters": [], + "src": "3648:2:69" + }, + "returnParameters": { + "id": 17695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17699, + "src": "3674:15:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + }, + "typeName": { + "id": 17693, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17692, + "name": "IDisputeManager", + "nameLocations": [ + "3674:15:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15373, + "src": "3674:15:69" + }, + "referencedDeclaration": 15373, + "src": "3674:15:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDisputeManager_$15373", + "typeString": "contract IDisputeManager" + } + }, + "visibility": "internal" + } + ], + "src": "3673:17:69" + }, + "scope": 17720, + "src": "3624:106:69", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17708, + "nodeType": "Block", + "src": "3945:45:69", + "statements": [ + { + "expression": { + "id": 17706, + "name": "GRAPH_TALLY_COLLECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17590, + "src": "3962:21:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "functionReturnParameters": 17705, + "id": 17707, + "nodeType": "Return", + "src": "3955:28:69" + } + ] + }, + "documentation": { + "id": 17700, + "nodeType": "StructuredDocumentation", + "src": "3736:127:69", + "text": " @notice Returns the Graph Tally Collector contract address\n @return The Graph Tally Collector contract" + }, + "id": 17709, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_graphTallyCollector", + "nameLocation": "3877:20:69", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17701, + "nodeType": "ParameterList", + "parameters": [], + "src": "3897:2:69" + }, + "returnParameters": { + "id": 17705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17709, + "src": "3923:20:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + }, + "typeName": { + "id": 17703, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17702, + "name": "IGraphTallyCollector", + "nameLocations": [ + "3923:20:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2605, + "src": "3923:20:69" + }, + "referencedDeclaration": 2605, + "src": "3923:20:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGraphTallyCollector_$2605", + "typeString": "contract IGraphTallyCollector" + } + }, + "visibility": "internal" + } + ], + "src": "3922:22:69" + }, + "scope": 17720, + "src": "3868:122:69", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17718, + "nodeType": "Block", + "src": "4157:32:69", + "statements": [ + { + "expression": { + "id": 17716, + "name": "CURATION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17594, + "src": "4174:8:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "functionReturnParameters": 17715, + "id": 17717, + "nodeType": "Return", + "src": "4167:15:69" + } + ] + }, + "documentation": { + "id": 17710, + "nodeType": "StructuredDocumentation", + "src": "3996:101:69", + "text": " @notice Returns the Curation contract address\n @return The Curation contract" + }, + "id": 17719, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_curation", + "nameLocation": "4111:9:69", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17711, + "nodeType": "ParameterList", + "parameters": [], + "src": "4120:2:69" + }, + "returnParameters": { + "id": 17715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17719, + "src": "4146:9:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + }, + "typeName": { + "id": 17713, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17712, + "name": "ICuration", + "nameLocations": [ + "4146:9:69" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 165, + "src": "4146:9:69" + }, + "referencedDeclaration": 165, + "src": "4146:9:69", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICuration_$165", + "typeString": "contract ICuration" + } + }, + "visibility": "internal" + } + ], + "src": "4145:11:69" + }, + "scope": 17720, + "src": "4102:87:69", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 17721, + "src": "796:3395:69", + "usedErrors": [ + 17612 + ], + "usedEvents": [ + 17605 + ] + } + ], + "src": "45:4147:69" + }, + "id": 69 + } + }, + "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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]}},\"version\":1}" + } + }, + "@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\":10},\"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}" + } + }, + "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol": { + "IDisputeManager": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_disputeID", + "type": "bytes32" + } + ], + "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 IDisputeManager.Attestation", + "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 IDisputeManager.Attestation", + "name": "_attestation2", + "type": "tuple" + } + ], + "name": "areConflictingAttestations", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_allocationID", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_deposit", + "type": "uint256" + } + ], + "name": "createIndexingDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_attestationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "_deposit", + "type": "uint256" + } + ], + "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 IDisputeManager.Receipt", + "name": "_receipt", + "type": "tuple" + } + ], + "name": "encodeHashReceipt", + "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 IDisputeManager.Attestation", + "name": "_attestation", + "type": "tuple" + } + ], + "name": "getAttestationIndexer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "uint32", + "name": "_percentage", + "type": "uint32" + } + ], + "name": "setFishermanRewardPercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumDeposit", + "type": "uint256" + } + ], + "name": "setMinimumDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "_qryPercentage", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "_idxPercentage", + "type": "uint32" + } + ], + "name": "setSlashingPercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptDispute(bytes32)": "11b42611", + "areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "d36fc9d4", + "createIndexingDispute(address,uint256)": "c8792217", + "createQueryDispute(bytes,uint256)": "131610b1", + "createQueryDisputeConflict(bytes,bytes)": "c894222e", + "drawDispute(bytes32)": "9334ea52", + "encodeHashReceipt((bytes32,bytes32,bytes32))": "460967df", + "getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "c9747f51", + "isDisputeCreated(bytes32)": "be41f384", + "rejectDispute(bytes32)": "36167e03", + "setArbitrator(address)": "b0eefabe", + "setFishermanRewardPercentage(uint32)": "991a8355", + "setMinimumDeposit(uint256)": "e78ec42e", + "setSlashingPercentage(uint32,uint32)": "8bbb33b4" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeID\",\"type\":\"bytes32\"}],\"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 IDisputeManager.Attestation\",\"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 IDisputeManager.Attestation\",\"name\":\"_attestation2\",\"type\":\"tuple\"}],\"name\":\"areConflictingAttestations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_deposit\",\"type\":\"uint256\"}],\"name\":\"createIndexingDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_attestationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_deposit\",\"type\":\"uint256\"}],\"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 IDisputeManager.Receipt\",\"name\":\"_receipt\",\"type\":\"tuple\"}],\"name\":\"encodeHashReceipt\",\"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 IDisputeManager.Attestation\",\"name\":\"_attestation\",\"type\":\"tuple\"}],\"name\":\"getAttestationIndexer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"uint32\",\"name\":\"_percentage\",\"type\":\"uint32\"}],\"name\":\"setFishermanRewardPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumDeposit\",\"type\":\"uint256\"}],\"name\":\"setMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_qryPercentage\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_idxPercentage\",\"type\":\"uint32\"}],\"name\":\"setSlashingPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol\":\"IDisputeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol\":{\"keccak256\":\"0xc0885c741445df7c565f9dd5f3e3ffc654bc681eb718e178b4265f7c36bb597c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c7e4d1147147ca3257d6bd2aca0cbbf098b5be3fe46848b7c09c843e24e85391\",\"dweb:/ipfs/QmeTN6Tq9Qzv4Sb6hgyoKeiK2KGqyWPQcJwjFPqRS1ai9a\"]}},\"version\":1}" + } + }, + "@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\":10},\"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}" + } + }, + "@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol": { + "ICallhookReceiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "onTokenTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onTokenTransfer(address,uint256,bytes)": "a4c0ed36" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onTokenTransfer(address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of tokens that were transferred\",\"_data\":\"ABI-encoded callhook data\",\"_from\":\"Token sender in L1\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onTokenTransfer(address,uint256,bytes)\":{\"notice\":\"Receive tokens with a callhook from the bridge\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol\":\"ICallhookReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol\":{\"keccak256\":\"0x1a1627520f3d9ad670b46b9e8d08a928b892955161915dece233912b30989794\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8e3df46e53b8cf46bced72f229497620c2f45169d512855877acdccf9b06d0f\",\"dweb:/ipfs/QmUgTnaZZxquYZQVz1dDoLKiD6AKRy1yUFzVCj3DrXBLQ4\"]}},\"version\":1}" + } + }, + "@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\":10},\"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}" + } + }, + "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol": { + "IL2Curation": { + "abi": [ + { + "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": "address", + "name": "_subgraphService", + "type": "address" + } + ], + "name": "setSubgraphService", + "outputs": [], + "stateMutability": "nonpayable", + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "mintTaxFree(bytes32,uint256)": "3718896d", + "setSubgraphService(address)": "93a90a1e", + "tokensToSignalNoTax(bytes32,uint256)": "7a2a45b8", + "tokensToSignalToTokensNoTax(bytes32,uint256)": "69db11a1" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"address\",\"name\":\"_subgraphService\",\"type\":\"address\"}],\"name\":\"setSubgraphService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"mintTaxFree(bytes32,uint256)\":{\"details\":\"This function charges no tax and can only be called by GNS in specific scenarios (for now only during an L1-L2 transfer).\",\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment pool from where to mint signal\",\"_tokensIn\":\"Amount of Graph Tokens to deposit\"},\"returns\":{\"_0\":\"Signal minted\"}},\"setSubgraphService(address)\":{\"params\":{\"_subgraphService\":\"Address of the SubgraphService contract\"}},\"tokensToSignalNoTax(bytes32,uint256)\":{\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment for which to mint signal\",\"_tokensIn\":\"Amount of tokens used to mint signal\"},\"returns\":{\"_0\":\"Amount of signal that can be bought\"}},\"tokensToSignalToTokensNoTax(bytes32,uint256)\":{\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment for which to mint signal\",\"_tokensIn\":\"Amount of tokens used to mint signal\"},\"returns\":{\"_0\":\"Amount of tokens that would be recovered after minting and burning signal\"}}},\"title\":\"Interface of the L2 Curation contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mintTaxFree(bytes32,uint256)\":{\"notice\":\"Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\"},\"setSubgraphService(address)\":{\"notice\":\"Set the subgraph service address.\"},\"tokensToSignalNoTax(bytes32,uint256)\":{\"notice\":\"Calculate amount of signal that can be bought with tokens in a curation pool, without accounting for curation tax.\"},\"tokensToSignalToTokensNoTax(bytes32,uint256)\":{\"notice\":\"Calculate the amount of tokens that would be recovered if minting signal with the input tokens and then burning it. This can be used to compute rounding error. This function does not account for curation tax.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol\":\"IL2Curation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol\":{\"keccak256\":\"0x11ecb2e7e916d69c68d08e85bb29f8c1b051f5c86ca93c54919317f2ce6045cc\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://875f33c94088b76c0b6cf737c48747271f2229da5875cbeb8344d22009ebaf47\",\"dweb:/ipfs/QmaqdDDhcB6F6dDJ3s3nv6kvd2HNE6PWA3g2o9bs9jfPCh\"]}},\"version\":1}" + } + }, + "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol": { + "IL2GNS": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_l2SubgraphID", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_subgraphDeploymentID", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_subgraphMetadata", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_versionMetadata", + "type": "bytes32" + } + ], + "name": "finishSubgraphTransferFromL1", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_l1SubgraphID", + "type": "uint256" + } + ], + "name": "getAliasedL2SubgraphID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_l2SubgraphID", + "type": "uint256" + } + ], + "name": "getUnaliasedL1SubgraphID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "onTokenTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "finishSubgraphTransferFromL1(uint256,bytes32,bytes32,bytes32)": "d1a80612", + "getAliasedL2SubgraphID(uint256)": "ea0f2eba", + "getUnaliasedL1SubgraphID(uint256)": "9c6c022b", + "onTokenTransfer(address,uint256,bytes)": "a4c0ed36" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2SubgraphID\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_subgraphMetadata\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_versionMetadata\",\"type\":\"bytes32\"}],\"name\":\"finishSubgraphTransferFromL1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l1SubgraphID\",\"type\":\"uint256\"}],\"name\":\"getAliasedL2SubgraphID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2SubgraphID\",\"type\":\"uint256\"}],\"name\":\"getUnaliasedL1SubgraphID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"finishSubgraphTransferFromL1(uint256,bytes32,bytes32,bytes32)\":{\"params\":{\"_l2SubgraphID\":\"Subgraph ID in L2 (aliased from the L1 subgraph ID)\",\"_subgraphDeploymentID\":\"Latest subgraph deployment to assign to the subgraph\",\"_subgraphMetadata\":\"IPFS hash of the subgraph metadata\",\"_versionMetadata\":\"IPFS hash of the version metadata\"}},\"getAliasedL2SubgraphID(uint256)\":{\"params\":{\"_l1SubgraphID\":\"L1 subgraph ID\"},\"returns\":{\"_0\":\"L2 subgraph ID\"}},\"getUnaliasedL1SubgraphID(uint256)\":{\"params\":{\"_l2SubgraphID\":\"L2 subgraph ID\"},\"returns\":{\"_0\":\"L1subgraph ID\"}},\"onTokenTransfer(address,uint256,bytes)\":{\"params\":{\"_amount\":\"Amount of tokens that were transferred\",\"_data\":\"ABI-encoded callhook data\",\"_from\":\"Token sender in L1\"}}},\"title\":\"Interface for the L2GNS contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"finishSubgraphTransferFromL1(uint256,bytes32,bytes32,bytes32)\":{\"notice\":\"Finish a subgraph transfer from L1. The subgraph must have been previously sent through the bridge using the sendSubgraphToL2 function on L1GNS.\"},\"getAliasedL2SubgraphID(uint256)\":{\"notice\":\"Return the aliased L2 subgraph ID from a transferred L1 subgraph ID\"},\"getUnaliasedL1SubgraphID(uint256)\":{\"notice\":\"Return the unaliased L1 subgraph ID from a transferred L2 subgraph ID\"},\"onTokenTransfer(address,uint256,bytes)\":{\"notice\":\"Receive tokens with a callhook from the bridge\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol\":\"IL2GNS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol\":{\"keccak256\":\"0x1a1627520f3d9ad670b46b9e8d08a928b892955161915dece233912b30989794\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8e3df46e53b8cf46bced72f229497620c2f45169d512855877acdccf9b06d0f\",\"dweb:/ipfs/QmUgTnaZZxquYZQVz1dDoLKiD6AKRy1yUFzVCj3DrXBLQ4\"]},\"@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol\":{\"keccak256\":\"0xe546e0aed7d7ceaffd1b6acef7007998a0c03cc6e3742739b7d79f0318417e8a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a4ddc12539c90207fe78b33dd29813a60100fca0b8ca023843b30359194a7fb9\",\"dweb:/ipfs/QmQxfiHmaS8HpJuMcvEmPL2HV8VAPGcz7TmVT1sspErNYR\"]}},\"version\":1}" + } + }, + "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol": { + "IRewardsIssuer": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "getAllocationData", + "outputs": [ + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + }, + { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getAllocationData(address)": "55c85269", + "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"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\"}],\"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\",\"isActive\":\"Whether the allocation is active or not\",\"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\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":\"IRewardsIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]}},\"version\":1}" + } + }, + "@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": "_rewardsIssuer", + "type": "address" + }, + { + "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": "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,address)": "779bcb9b", + "isDenied(bytes32)": "e820e284", + "onSubgraphAllocationUpdate(bytes32)": "eeac3e0e", + "onSubgraphSignalUpdate(bytes32)": "1d1c2fec", + "setDenied(bytes32,bool)": "1324a506", + "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\":\"_rewardsIssuer\",\"type\":\"address\"},{\"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\":\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]}},\"version\":1}" + } + }, + "@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\":10},\"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\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@graphprotocol/contracts/contracts/utils/TokenUtils.sol": { + "TokenUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220542683f1c09a402c1717c86ca1ed67c4d870e4a9ea5201b1e94892aa7bfc0a4b64736f6c634300081b0033", + "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 SLOAD 0x26 DUP4 CALL 0xC0 SWAP11 BLOCKHASH 0x2C OR OR 0xC8 PUSH13 0xA1ED67C4D870E4A9EA5201B1E9 BASEFEE SWAP3 0xAA PUSH28 0xFC0A4B64736F6C634300081B00330000000000000000000000000000 ", + "sourceMap": "357:1203:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;357:1203:11;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220542683f1c09a402c1717c86ca1ed67c4d870e4a9ea5201b1e94892aa7bfc0a4b64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0x26 DUP4 CALL 0xC0 SWAP11 BLOCKHASH 0x2C OR OR 0xC8 PUSH13 0xA1ED67C4D870E4A9EA5201B1E9 BASEFEE SWAP3 0xAA PUSH28 0xFC0A4B64736F6C634300081B00330000000000000000000000000000 ", + "sourceMap": "357:1203:11:-: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\":10},\"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\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@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": "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\":[{\"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\":\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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. - Note that in both cases if using {__DataService_init_unchained} variant the corresponding parent initializers must be called in the implementation.\",\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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.\"}},\"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\":\"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.\"},\"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 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\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xa57fda8ea4c94a2cda061a6c8f29ae215241b0af03a43df3bc622051d8b2493c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7fc433ef0eb71c264224e9058de7e9aea3b2dbfab68dbdf0df8a13de82e90ef6\",\"dweb:/ipfs/QmVrp6kv8Ef1AP38C4soa1cnnRqqmKFnHer2VrXms52Asy\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0x615aac9d5c9cd04216fa9ee21c770f3877a2971a1c023052143c95c08b87610f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd4eb031e9ab86e3a17df29fcb297621e88850c3c5db123925d24b77c802b037\",\"dweb:/ipfs/QmSCNfQqMzui9gaN3Rf8nTNJBPWSFNqFgexbK2k6GBN381\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0x63e7f1df10586beb7f8683065719fbff045437508539a9358c25a13fcf989f91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b32f9a7be91ae6d9c9a6edbe2404efbcf9fa99c1d503f4a688054be468494a8e\",\"dweb:/ipfs/QmQ5AQXsBPxtJSW24LqRZAaYYaz1518FpUCHfDEdsMfF8F\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"This contract holds the storage variables for the DataService contract.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades Note that this contract is not upgradeable but might be inherited by an upgradeable contract\"}},\"title\":\"DataServiceStorage\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0x615aac9d5c9cd04216fa9ee21c770f3877a2971a1c023052143c95c08b87610f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd4eb031e9ab86e3a17df29fcb297621e88850c3c5db123925d24b77c802b037\",\"dweb:/ipfs/QmSCNfQqMzui9gaN3Rf8nTNJBPWSFNqFgexbK2k6GBN381\"]}},\"version\":1}" + } + }, + "@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": [ + { + "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": [ + { + "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", + "feesProvisionTracker(address)": "cbe5f3f2", + "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\"},{\"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\":[{\"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\":[{\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"Implementation of the {IDataServiceFees} interface.This contract inherits from {DataService} which needs to be initialized, please see {DataService} for detailed instructions.\",\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"params\":{\"claimId\":\"The id of the stake claim\"}}],\"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.\"}}],\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"params\":{\"tokensAvailable\":\"The amount of tokens available\",\"tokensRequired\":\"The amount of tokens required\"}}]},\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\":\"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.\"},\"feesProvisionTracker(address)\":{\"notice\":\"The amount of tokens locked in stake claims for each 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. 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\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xa57fda8ea4c94a2cda061a6c8f29ae215241b0af03a43df3bc622051d8b2493c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7fc433ef0eb71c264224e9058de7e9aea3b2dbfab68dbdf0df8a13de82e90ef6\",\"dweb:/ipfs/QmVrp6kv8Ef1AP38C4soa1cnnRqqmKFnHer2VrXms52Asy\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0x615aac9d5c9cd04216fa9ee21c770f3877a2971a1c023052143c95c08b87610f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd4eb031e9ab86e3a17df29fcb297621e88850c3c5db123925d24b77c802b037\",\"dweb:/ipfs/QmSCNfQqMzui9gaN3Rf8nTNJBPWSFNqFgexbK2k6GBN381\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\":{\"keccak256\":\"0xa9e95b7ca9af3987697c06b252fdb12e1d01e5c62c123c17f39f03d96d38876f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d86b520570fb3dd76b60fc64eabe6a7104b41a96a9c92e9031c91a799287d749\",\"dweb:/ipfs/QmZGaiEZVfycnQu4EkPWGM7Jg3jo4jdEuLeuZxAMPMg5s6\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0x9068f639ea7aad02d842eb0054cadc3a5f05044d8d0176dc4c9ff60693775bc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e22fd5157ea02064104b02952c327ab58b0a5c70c7356d94017f3e03da298d4\",\"dweb:/ipfs/QmdTZAFaZWSpVUvWTnUgednbRNLMbFvUMKZ5FHkjhRk4Qf\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0xc0f433a20f91fb2c2c588d5accfd311535314d71f7adc4e2b84fa4193ed1a739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a920d9446c3e76783921d2f2d980a058f41700de1d59470c9b3892a49ebcaf48\",\"dweb:/ipfs/QmcwmqNkxS1BpJQ7kgf4V9F98w2MKcVvg2N7P3i8KtDSF4\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0x63e7f1df10586beb7f8683065719fbff045437508539a9358c25a13fcf989f91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b32f9a7be91ae6d9c9a6edbe2404efbcf9fa99c1d503f4a688054be468494a8e\",\"dweb:/ipfs/QmQ5AQXsBPxtJSW24LqRZAaYYaz1518FpUCHfDEdsMfF8F\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades Note that this contract is not upgradeable but might be inherited by an upgradeable contract\"}},\"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\"},\"feesProvisionTracker(address)\":{\"notice\":\"The amount of tokens locked in stake claims for each service provider\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":\"DataServiceFeesV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0x9068f639ea7aad02d842eb0054cadc3a5f05044d8d0176dc4c9ff60693775bc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e22fd5157ea02064104b02952c327ab58b0a5c70c7356d94017f3e03da298d4\",\"dweb:/ipfs/QmdTZAFaZWSpVUvWTnUgednbRNLMbFvUMKZ5FHkjhRk4Qf\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol": { + "DataServicePausableUpgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "DataServicePausableNotPauseGuardian", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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": "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": "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", + "getDelegationRatio()": "1ebb7c30", + "getProvisionTokensRange()": "819ba366", + "getThawingPeriodRange()": "71ce020a", + "getVerifierCutRange()": "482468b7", + "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\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"DataServicePausablePauseGuardianNoChange\",\"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\":\"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\":\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"Implementation of the {IDataServicePausable} interface.Upgradeable version of the {DataServicePausable} contract.This contract inherits from {DataService} which needs to be initialized, please see {DataService} for detailed instructions.\",\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status 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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\"},\"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.\"}},\"unpause()\":{\"details\":\"Note that only functions using the modifiers `whenNotPaused` and `whenPaused` will be affected by the pause. Requirements: - The contract must be paused\"}},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"}},\"title\":\"DataServicePausableUpgradeable contract\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"notice\":\"Emitted when a the caller is not a pause guardian\"}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"notice\":\"Emitted when a pause guardian is set to the same allowed status\"}],\"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.\"},\"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.\"},\"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\":\"Unpauses the data service.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":\"DataServicePausableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xa57fda8ea4c94a2cda061a6c8f29ae215241b0af03a43df3bc622051d8b2493c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7fc433ef0eb71c264224e9058de7e9aea3b2dbfab68dbdf0df8a13de82e90ef6\",\"dweb:/ipfs/QmVrp6kv8Ef1AP38C4soa1cnnRqqmKFnHer2VrXms52Asy\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0x615aac9d5c9cd04216fa9ee21c770f3877a2971a1c023052143c95c08b87610f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd4eb031e9ab86e3a17df29fcb297621e88850c3c5db123925d24b77c802b037\",\"dweb:/ipfs/QmSCNfQqMzui9gaN3Rf8nTNJBPWSFNqFgexbK2k6GBN381\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":{\"keccak256\":\"0x57790344249a2d9fac827173389665a678619103d3baba0df0f9ec72f514cba7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://964b818fdefcaf55cfd1c8f7066c44032e8dc82f1569f35d875e86c147b94e23\",\"dweb:/ipfs/QmcsjNPCFbYPdLiTjmykgVSLXbZxA2pJ1N7JXaWtxJzZet\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0x6e65df59821dce2e4c9c221e1381eac69534464b8c69c83c2f18bff188e120f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd7f1d4d7b1d9de204580678f24fbe453235bbc1fbb15f65f022619a419b11a8\",\"dweb:/ipfs/QmP7JnK6Buor5bvRFcb427ACJKTwX6mnJb31TJzKL4EnSD\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0x63e7f1df10586beb7f8683065719fbff045437508539a9358c25a13fcf989f91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b32f9a7be91ae6d9c9a6edbe2404efbcf9fa99c1d503f4a688054be468494a8e\",\"dweb:/ipfs/QmQ5AQXsBPxtJSW24LqRZAaYYaz1518FpUCHfDEdsMfF8F\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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.\",\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"params\":{\"claimId\":\"The id of the stake claim\"}}]},\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol": { + "IDataServicePausable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "DataServicePausableNotPauseGuardian", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"DataServicePausablePauseGuardianNoChange\",\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status 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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\"}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"notice\":\"Emitted when a pause guardian is set to the same allowed status\"}]},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0x6e65df59821dce2e4c9c221e1381eac69534464b8c69c83c2f18bff188e120f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd7f1d4d7b1d9de204580678f24fbe453235bbc1fbb15f65f022619a419b11a8\",\"dweb:/ipfs/QmP7JnK6Buor5bvRFcb427ACJKTwX6mnJb31TJzKL4EnSD\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]}},\"version\":1}" + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1fd9291ad35d2fe9b4b07415a19a0798fc542c5ed7e8efe6b20ec6d74b95d364736f6c634300081b0033", + "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 0xED 0x1F 0xD9 0x29 BYTE 0xD3 TSTORE 0x2F 0xE9 0xB4 0xB0 PUSH21 0x15A19A0798FC542C5ED7E8EFE6B20EC6D74B95D364 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "779:2963:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;779:2963:20;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed1fd9291ad35d2fe9b4b07415a19a0798fc542c5ed7e8efe6b20ec6d74b95d364736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0x1F 0xD9 0x29 BYTE 0xD3 TSTORE 0x2F 0xE9 0xB4 0xB0 PUSH21 0x15A19A0798FC542C5ED7E8EFE6B20EC6D74B95D364 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "779:2963:20:-: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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"params\":{\"tokensAvailable\":\"The amount of tokens available\",\"tokensRequired\":\"The amount of tokens required\"}}]},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0xc0f433a20f91fb2c2c588d5accfd311535314d71f7adc4e2b84fa4193ed1a739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a920d9446c3e76783921d2f2d980a058f41700de1d59470c9b3892a49ebcaf48\",\"dweb:/ipfs/QmcwmqNkxS1BpJQ7kgf4V9F98w2MKcVvg2N7P3i8KtDSF4\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]}},\"version\":1}" + } + }, + "@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" + } + ], + "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\"},{\"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\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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 Note that default values for all provision parameters provide the most permissive configuration, it's highly recommended to override them at the data service level.\",\"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\":{},\"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\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0x63e7f1df10586beb7f8683065719fbff045437508539a9358c25a13fcf989f91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b32f9a7be91ae6d9c9a6edbe2404efbcf9fa99c1d503f4a688054be468494a8e\",\"dweb:/ipfs/QmQ5AQXsBPxtJSW24LqRZAaYYaz1518FpUCHfDEdsMfF8F\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol": { + "ProvisionManagerV1Storage": { + "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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades Note that this contract is not upgradeable but might be inherited by an upgradeable contract\"},\"_delegationRatio\":{\"details\":\"Max calculated as service provider's stake * delegationRatio\"}},\"title\":\"Storage layout for the {ProvisionManager} helper contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":\"ProvisionManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol": { + "IGraphPayments": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "cut", + "type": "uint256" + } + ], + "name": "GraphPaymentsInvalidCut", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "protocolPaymentCut", + "type": "uint256" + } + ], + "name": "GraphPaymentsInvalidProtocolPaymentCut", + "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": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensProtocol", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDataService", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensDelegationPool", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReceiver", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "GraphPaymentCollected", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "collect", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "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,address)": "81cd11a0", + "initialize()": "8129fc1c" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cut\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInvalidCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"protocolPaymentCut\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInvalidProtocolPaymentCut\",\"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\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensProtocol\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDelegationPool\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReceiver\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"GraphPaymentCollected\",\"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\":\"dataServiceCut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"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\":{\"GraphPaymentsInvalidCut(uint256)\":[{\"params\":{\"cut\":\"The cut\"}}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"params\":{\"protocolPaymentCut\":\"The protocol payment cut\"}}]},\"events\":{\"GraphPaymentCollected(uint8,address,address,address,uint256,uint256,uint256,uint256,uint256,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The type of payment as defined in {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment cut is sent.\",\"tokens\":\"The total amount of tokens being collected\",\"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,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"dataServiceCut\":\"The data service cut in PPM\",\"paymentType\":\"The type of payment as defined in {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment cut is sent.\",\"tokens\":\"The amount of tokens being collected.\"}}},\"title\":\"Interface for the {GraphPayments} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphPaymentsInvalidCut(uint256)\":[{\"notice\":\"Thrown when trying to use a cut that is not expressed in PPM\"}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"notice\":\"Thrown when the protocol payment cut is invalid\"}]},\"events\":{\"GraphPaymentCollected(uint8,address,address,address,uint256,uint256,uint256,uint256,uint256,address)\":{\"notice\":\"Emitted when a payment is collected\"}},\"kind\":\"user\",\"methods\":{\"collect(uint8,address,uint256,address,uint256,address)\":{\"notice\":\"Collects funds from a payer. It will pay cuts to all relevant parties and forward the rest to the receiver destination address. If the destination address is zero the funds are automatically staked to the receiver. Note that the receiver destination address can be set to the receiver address to collect funds on the receiver without re-staking. Note that the collected amount can be zero.\"},\"initialize()\":{\"notice\":\"Initialize the contract\"}},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol": { + "IGraphTallyCollector": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + } + ], + "name": "GraphTallyCollectorCallerNotDataService", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensCollected", + "type": "uint256" + } + ], + "name": "GraphTallyCollectorInconsistentRAVTokens", + "type": "error" + }, + { + "inputs": [], + "name": "GraphTallyCollectorInvalidRAVSigner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokensToCollect", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTokensToCollect", + "type": "uint256" + } + ], + "name": "GraphTallyCollectorInvalidTokensToCollectAmount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dataService", + "type": "address" + } + ], + "name": "GraphTallyCollectorUnauthorizedDataService", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "PaymentCollected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dataService", + "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" + }, + { + "inputs": [ + { + "internalType": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "tokensToCollect", + "type": "uint256" + } + ], + "name": "collect", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "internalType": "uint64", + "name": "timestampNs", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "valueAggregate", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "metadata", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.ReceiptAggregateVoucher", + "name": "rav", + "type": "tuple" + } + ], + "name": "encodeRAV", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "internalType": "uint64", + "name": "timestampNs", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "valueAggregate", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "metadata", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.ReceiptAggregateVoucher", + "name": "rav", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "internalType": "struct IGraphTallyCollector.SignedRAV", + "name": "signedRAV", + "type": "tuple" + } + ], + "name": "recoverRAVSigner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "collect(uint8,bytes)": "7f07d283", + "collect(uint8,bytes,uint256)": "692209ce", + "encodeRAV((bytes32,address,address,address,uint64,uint128,bytes))": "26969c4c", + "recoverRAVSigner(((bytes32,address,address,address,uint64,uint128,bytes),bytes))": "63648817" + } + }, + "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\":\"GraphTallyCollectorCallerNotDataService\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensCollected\",\"type\":\"uint256\"}],\"name\":\"GraphTallyCollectorInconsistentRAVTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTallyCollectorInvalidRAVSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensToCollect\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokensToCollect\",\"type\":\"uint256\"}],\"name\":\"GraphTallyCollectorInvalidTokensToCollectAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"GraphTallyCollectorUnauthorizedDataService\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"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\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"tokensToCollect\",\"type\":\"uint256\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestampNs\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"valueAggregate\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IGraphTallyCollector.ReceiptAggregateVoucher\",\"name\":\"rav\",\"type\":\"tuple\"}],\"name\":\"encodeRAV\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestampNs\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"valueAggregate\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IGraphTallyCollector.ReceiptAggregateVoucher\",\"name\":\"rav\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IGraphTallyCollector.SignedRAV\",\"name\":\"signedRAV\",\"type\":\"tuple\"}],\"name\":\"recoverRAVSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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.\",\"details\":\"Implements the {IPaymentCollector} interface as defined by the Graph Horizon payments protocol.\",\"errors\":{\"GraphTallyCollectorCallerNotDataService(address,address)\":[{\"params\":{\"caller\":\"The address of the caller\",\"dataService\":\"The address of the data service\"}}],\"GraphTallyCollectorInconsistentRAVTokens(uint256,uint256)\":[{\"params\":{\"tokens\":\"The amount of tokens in the RAV\",\"tokensCollected\":\"The amount of tokens already collected\"}}],\"GraphTallyCollectorInvalidTokensToCollectAmount(uint256,uint256)\":[{\"params\":{\"maxTokensToCollect\":\"The maximum amount of tokens to collect\",\"tokensToCollect\":\"The amount of tokens to collect\"}}],\"GraphTallyCollectorUnauthorizedDataService(address)\":[{\"params\":{\"dataService\":\"The address of the data service\"}}]},\"events\":{\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"params\":{\"collectionId\":\"The id for the collection. Can be used at the discretion of the collector to group multiple payments.\",\"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\",\"tokens\":\"The amount of tokens being collected\"}},\"RAVCollected(bytes32,address,address,address,uint64,uint128,bytes,bytes)\":{\"params\":{\"collectionId\":\"The ID of the collection \\\"bucket\\\" the RAV belongs to.\",\"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\"}}},\"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. 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}\"},\"returns\":{\"_0\":\"The amount of tokens collected\"}},\"collect(uint8,bytes,uint256)\":{\"params\":{\"data\":\"Additional data required for the payment collection. Encoded as follows: - SignedRAV `signedRAV`: The signed RAV - uint256 `dataServiceCut`: The data service cut in PPM - address `receiverDestination`: The address where the receiver's payment should be sent.\",\"paymentType\":\"The payment type to collect\",\"tokensToCollect\":\"The amount of tokens to collect\"},\"returns\":{\"_0\":\"The amount of tokens collected\"}},\"encodeRAV((bytes32,address,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(((bytes32,address,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.\"}}},\"title\":\"Interface for the {GraphTallyCollector} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphTallyCollectorCallerNotDataService(address,address)\":[{\"notice\":\"Thrown when the caller is not the data service the RAV was issued to\"}],\"GraphTallyCollectorInconsistentRAVTokens(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\"}],\"GraphTallyCollectorInvalidRAVSigner()\":[{\"notice\":\"Thrown when the RAV signer is invalid\"}],\"GraphTallyCollectorInvalidTokensToCollectAmount(uint256,uint256)\":[{\"notice\":\"Thrown when the attempting to collect more tokens than what it's owed\"}],\"GraphTallyCollectorUnauthorizedDataService(address)\":[{\"notice\":\"Thrown when the RAV is for a data service the service provider has no provision for\"}]},\"events\":{\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"notice\":\"Emitted when a payment is collected\"},\"RAVCollected(bytes32,address,address,address,uint64,uint128,bytes,bytes)\":{\"notice\":\"Emitted when a RAV is collected\"}},\"kind\":\"user\",\"methods\":{\"collect(uint8,bytes)\":{\"notice\":\"Initiate a payment collection through the payments protocol\"},\"collect(uint8,bytes,uint256)\":{\"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.\"}},\"notice\":\"Implements a payments collector contract that can be used to collect payments using a GraphTally RAV (Receipt Aggregate Voucher).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol\":\"IGraphTallyCollector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol\":{\"keccak256\":\"0x762c26300d098fb1bdc5e6b52e0ffd0b497634e9bcfc9a9cd409df65d8d54590\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f5c68742e96c1483449c882b082631a9bfafebb27152b87427e1234d34e604f3\",\"dweb:/ipfs/QmYqtSeQpCbKEaKKDXwmeK5DrYFiwSHYVzM3dzanh7MQ3D\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x0871e02129e1fabdb39024f9ac3368b4c747e6b374fdf4fc200d3c225ed82860\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a5fdf2dbedc15f739e6010a3ce3478ea7ad23bd643a8af3f39ccf631c06ebd52\",\"dweb:/ipfs/QmNusbPTqzzUwGomXBzsWHwbZMJ2HuTkxvgviLJZ6hr9i4\"]}},\"version\":1}" + } + }, + "@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": "HorizonStakingInsufficientDelegationTokens", + "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": [ + { + "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": [], + "name": "HorizonStakingInvalidThawRequestType", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "thawingPeriod", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "maxThawingPeriod", + "type": "uint64" + } + ], + "name": "HorizonStakingInvalidThawingPeriod", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "HorizonStakingInvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidVerifierZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroShares", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroTokens", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingLegacySlashFailed", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingNoTokensToSlash", + "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": "HorizonStakingNothingToWithdraw", + "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": [], + "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": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeDeposited", + "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": "HorizonStakeLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeWithdrawn", + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "StakeDelegatedWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "indexer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "StakeSlashed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "ThawRequestCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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": "bool", + "name": "isActive", + "type": "bool" + }, + { + "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": "lastParametersStagedAt", + "type": "uint256" + }, + { + "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": [], + "name": "getStakingExtension", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "getSubgraphService", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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": "nextRequest", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "thawingNonce", + "type": "uint256" + } + ], + "internalType": "struct IHorizonStakingTypes.ThawRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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": "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": "indexer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "legacySlash", + "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": "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": "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": "deprecated", + "type": "address" + } + ], + "name": "withdrawDelegated", + "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": { + "__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", + "getStakingExtension()": "66ee1b28", + "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", + "getSubgraphService()": "9363c522", + "getThawRequest(uint8,bytes32)": "d48de845", + "getThawRequestList(uint8,address,address,address)": "e56f8a1d", + "getThawedTokens(uint8,address,address,address)": "2f7cc501", + "getTokensAvailable(address,address,uint32)": "872d0489", + "hasStake(address)": "e73e14bf", + "isAllocation(address)": "f1d60d66", + "isAllowedLockedVerifier(address)": "ae4fe67a", + "isAuthorized(address,address,address)": "7c145cc7", + "isDelegationSlashingEnabled()": "fc54fb27", + "isOperator(address,address)": "b6363cf2", + "legacySlash(address,uint256,uint256,address)": "4488a382", + "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,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\":\"HorizonStakingInsufficientDelegationTokens\",\"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\":[{\"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\":[],\"name\":\"HorizonStakingInvalidThawRequestType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"HorizonStakingInvalidThawingPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidVerifierZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingLegacySlashFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingNoTokensToSlash\",\"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\":\"HorizonStakingNothingToWithdraw\",\"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\":[],\"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\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakeDeposited\",\"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\":\"HorizonStakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakeWithdrawn\",\"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\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeDelegatedWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"StakeSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ThawRequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"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\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"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\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"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\":\"lastParametersStagedAt\",\"type\":\"uint256\"},{\"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\":[],\"name\":\"getStakingExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"getSubgraphService\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":\"nextRequest\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ThawRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":\"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\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"legacySlash\",\"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\":\"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\":\"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\":\"deprecated\",\"type\":\"address\"}],\"name\":\"withdrawDelegated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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.\",\"details\":\"Use this interface to interact with the Horizon Staking contract.\",\"errors\":{\"HorizonStakingInsufficientDelegationTokens(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"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\"}}],\"HorizonStakingInvalidVerifier(address)\":[{\"params\":{\"verifier\":\"The verifier address\"}}],\"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.\",\"params\":{\"verifier\":\"The verifier address\"}}]},\"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.\",\"params\":{\"allocationID\":\"The allocation identifier\",\"epoch\":\"The protocol epoch the allocation was closed on\",\"indexer\":\"The indexer address\",\"isPublic\":\"True if the allocation was force closed by someone other than the indexer/operator\",\"poi\":\"The proof of indexing submitted by the sender\",\"sender\":\"The address closing the allocation\",\"subgraphDeploymentID\":\"The subgraph deployment ID\",\"tokens\":\"The amount of tokens unallocated from the allocation\"}},\"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\"}},\"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\"}},\"HorizonStakeDeposited(address,uint256)\":{\"details\":\"TRANSITION PERIOD: 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.\"}},\"HorizonStakeLocked(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens now locked (including previously locked tokens)\",\"until\":\"The block number until the stake is locked\"}},\"HorizonStakeWithdrawn(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\"}},\"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.\",\"params\":{\"allocationID\":\"The allocation identifier\",\"assetHolder\":\"The address of the asset holder, the entity paying the query fees\",\"curationFees\":\"The amount of tokens distributed to the curation pool\",\"delegationRewards\":\"The amount of tokens collected from the delegation pool\",\"epoch\":\"The protocol epoch the rebate was collected on\",\"indexer\":\"The indexer address\",\"protocolTax\":\"The amount of tokens burnt as protocol tax\",\"queryFees\":\"The amount of tokens collected as query fees\",\"queryRebates\":\"The amount of tokens distributed to the indexer\",\"subgraphDeploymentID\":\"The subgraph deployment ID\",\"tokens\":\"The amount of tokens collected\"}},\"StakeDelegatedWithdrawn(address,address,uint256)\":{\"details\":\"This event is for the legacy `withdrawDelegated` function.\",\"params\":{\"delegator\":\"The address of the delegator\",\"indexer\":\"The address of the indexer\",\"tokens\":\"The amount of tokens withdrawn\"}},\"StakeSlashed(address,uint256,uint256,address)\":{\"details\":\"Emitted when `indexer` was slashed for a total of `tokens` amount. Tracks `reward` amount of tokens given to `beneficiary`.\",\"params\":{\"beneficiary\":\"The address of a beneficiary to receive a reward for the slashing\",\"indexer\":\"The indexer address\",\"reward\":\"The amount of reward tokens to send to a beneficiary\",\"tokens\":\"The amount of tokens slashed\"}},\"ThawRequestCreated(uint8,address,address,address,uint256,uint64,bytes32,uint256)\":{\"details\":\"Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\",\"params\":{\"nonce\":\"The nonce of the thaw request\",\"owner\":\"The address of the owner of the thaw request.\",\"requestType\":\"The type of 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(uint8,bytes32,uint256,uint256,uint64,bool)\":{\"params\":{\"requestType\":\"The type of thaw request\",\"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(uint8,address,address,address,uint256,uint256)\":{\"params\":{\"owner\":\"The address of the owner of the thaw requests\",\"requestType\":\"The type of thaw request\",\"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,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares delegated\",\"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,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares undelegated\",\"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\":\"Collect and rebate query fees to the indexer This function will accept calls with zero tokens. We use an exponential rebate formula to calculate the amount of tokens to rebate to the indexer. This implementation allows collecting multiple times on the same allocation, keeping track of the total amount rebated, the total amount collected and compensating the indexer for the difference.\",\"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. Otherwise, the function will attempt to fulfill all thaw requests until the first one that is not yet expired is found. 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\",\"isActive\":\"Whether the allocation is active or not\",\"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\"}},\"getMaxThawingPeriod()\":{\"returns\":{\"_0\":\"The maximum allowed thawing period in seconds.\"}},\"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.\"},\"returns\":{\"_0\":\"The service provider details.\"}},\"getStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens staked.\"}},\"getStakingExtension()\":{\"returns\":{\"_0\":\"The address of the staking extension\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"getSubgraphService()\":{\"details\":\"TRANSITION PERIOD: After transition period move to main HorizonStaking contract\",\"returns\":{\"_0\":\"Address of the subgraph data service\"}},\"getThawRequest(uint8,bytes32)\":{\"params\":{\"thawRequestId\":\"The id of the thaw request.\",\"thawRequestType\":\"The type of thaw request.\"},\"returns\":{\"_0\":\"The thaw request details.\"}},\"getThawRequestList(uint8,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.\",\"thawRequestType\":\"The type of thaw request.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The thaw requests list metadata.\"}},\"getThawedTokens(uint8,address,address,address)\":{\"details\":\"Note that the value returned by this function does not return the total amount of thawed tokens but only those that can be released. If thaw requests are created with different thawing periods it's possible that an unexpired thaw request temporarily blocks the release of other ones that have already expired. This function will stop counting when it encounters the first thaw request that is not yet expired.\",\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"thawRequestType\":\"The type of thaw request.\",\"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\"}},\"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\"}},\"isDelegationSlashingEnabled()\":{\"returns\":{\"_0\":\"True if delegation slashing is enabled, false otherwise\"}},\"isOperator(address,address)\":{\"params\":{\"indexer\":\"Address of the service provider\",\"operator\":\"Address of the operator\"},\"returns\":{\"_0\":\"True if operator is allowed for indexer, false otherwise\"}},\"legacySlash(address,uint256,uint256,address)\":{\"details\":\"Can only be called by the slasher role.\",\"params\":{\"beneficiary\":\"Address of a beneficiary to receive a reward for the slashing\",\"indexer\":\"Address of indexer to slash\",\"reward\":\"Amount of reward tokens to send to a beneficiary\",\"tokens\":\"Amount of tokens to slash from the indexer stake\"}},\"provision(address,address,uint256,uint32,uint64)\":{\"details\":\"During the transition period, only the subgraph data service can be used as a verifier. This prevents an escape hatch for legacy allocation stake.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. Requirements: - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Note that if `_maxThawingPeriod` changes the function will not revert if called with the same thawing period as the current one. 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 {HorizonStakeDeposited} 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 {HorizonStakeDeposited} event.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\"}},\"stakeToProvision(address,address,uint256)\":{\"details\":\"This function can be called by the service provider, by an authorized operator or by the verifier itself.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 {HorizonStakeDeposited} 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,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 {HorizonStakeLocked} event during the transition period. Emits a {HorizonStakeWithdrawn} 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\":{\"deprecated\":\"Deprecated parameter kept for backwards compatibility\",\"serviceProvider\":\"The service provider address\"},\"returns\":{\"_0\":\"The amount of tokens withdrawn\"}},\"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. Otherwise, the function will attempt to fulfill all thaw requests until the first one that is not yet expired is found.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.\"}],\"HorizonStakingInsufficientDelegationTokens(uint256,uint256)\":[{\"notice\":\"Thrown when the minimum token amount required for delegation is not met.\"}],\"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.\"}],\"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.\"}],\"HorizonStakingInvalidThawRequestType()\":[{\"notice\":\"Thrown when using an invalid thaw request type.\"}],\"HorizonStakingInvalidThawingPeriod(uint64,uint64)\":[{\"notice\":\"Thrown when attempting to create a provision with an invalid thawing period.\"}],\"HorizonStakingInvalidVerifier(address)\":[{\"notice\":\"Thrown when attempting to create a provision with a verifier other than the subgraph data service. This restriction only applies during the transition 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.\"}],\"HorizonStakingLegacySlashFailed()\":[{\"notice\":\"Thrown when a legacy slash fails.\"}],\"HorizonStakingNoTokensToSlash()\":[{\"notice\":\"Thrown when there attempting to slash a provision with no tokens to slash.\"}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to operate on a provision.\"}],\"HorizonStakingNothingThawing()\":[{\"notice\":\"Thrown when attempting to fulfill a thaw request but there is nothing thawing.\"}],\"HorizonStakingNothingToWithdraw()\":[{\"notice\":\"Thrown when attempting to withdraw tokens that have not thawed (legacy undelegate).\"}],\"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.\"}],\"HorizonStakingTooManyThawRequests()\":[{\"notice\":\"Thrown when a service provider has too many thaw requests.\"}],\"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()\":{\"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.\"},\"HorizonStakeDeposited(address,uint256)\":{\"notice\":\"Emitted when a service provider stakes tokens.\"},\"HorizonStakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when a service provider unstakes tokens during the transition period.\"},\"HorizonStakeWithdrawn(address,uint256)\":{\"notice\":\"Emitted when a service provider withdraws tokens during the transition period.\"},\"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.\"},\"StakeDelegatedWithdrawn(address,address,uint256)\":{\"notice\":\"Emitted when `delegator` withdrew delegated `tokens` from `indexer` using `withdrawDelegated`.\"},\"ThawRequestCreated(uint8,address,address,address,uint256,uint64,bytes32,uint256)\":{\"notice\":\"Emitted when a thaw request is created.\"},\"ThawRequestFulfilled(uint8,bytes32,uint256,uint256,uint64,bool)\":{\"notice\":\"Emitted when a thaw request is fulfilled, meaning the stake is released.\"},\"ThawRequestsFulfilled(uint8,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,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,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 Deprecated, now enforced by each data service (verifier)\"},\"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\"},\"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.\"},\"getStakingExtension()\":{\"notice\":\"Get the address of the staking extension.\"},\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"getSubgraphService()\":{\"notice\":\"Return the address of the subgraph data service.\"},\"getThawRequest(uint8,bytes32)\":{\"notice\":\"Gets a thaw request.\"},\"getThawRequestList(uint8,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(uint8,address,address,address)\":{\"notice\":\"Gets the amount of thawed tokens that can be releasedfor 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.\"},\"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\":\"(Legacy) Return true if operator is allowed for the service provider on the subgraph data service.\"},\"legacySlash(address,uint256,uint256,address)\":{\"notice\":\"Slash the indexer stake. Delegated tokens are not subject to slashing. Note that depending on the state of the indexer's stake, the slashed amount might be smaller than the requested slash amount. This can happen if the indexer has moved a significant part of their stake to a provision. Any outstanding slashing amount should be settled using Horizon's slash function {IHorizonStaking.slash}.\"},\"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}. Calling this function is a no-op if the new parameters are the same as the current ones.\"},\"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,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. Note that after the transition period if there are tokens still locked they will have to be withdrawn by calling {withdraw}.\"},\"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 tokens undelegated before horizon upgrade.\"},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol": { + "IPaymentsCollector": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "collectionId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dataService", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "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\":false,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"It's important to note that it's the collector contract's responsibility to validate the payment request is legitimate.\",\"events\":{\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"params\":{\"collectionId\":\"The id for the collection. Can be used at the discretion of the collector to group multiple payments.\",\"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\",\"tokens\":\"The amount of tokens being collected\"}}},\"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. 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}\"},\"returns\":{\"_0\":\"The amount of tokens collected\"}}},\"title\":\"Interface for a payments collector contract as defined by Graph Horizon payments protocol\",\"version\":1},\"userdoc\":{\"events\":{\"PaymentCollected(uint8,bytes32,address,address,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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x0871e02129e1fabdb39024f9ac3368b4c747e6b374fdf4fc200d3c225ed82860\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a5fdf2dbedc15f739e6010a3ce3478ea7ad23bd643a8af3f39ccf631c06ebd52\",\"dweb:/ipfs/QmNusbPTqzzUwGomXBzsWHwbZMJ2HuTkxvgviLJZ6hr9i4\"]}},\"version\":1}" + } + }, + "@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": "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": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensThawing", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thawEndTimestamp", + "type": "uint256" + } + ], + "name": "CancelThaw", + "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": "enum IGraphPayments.PaymentTypes", + "name": "paymentType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "collector", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "name": "EscrowCollected", + "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" + }, + { + "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": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "cancelThaw", + "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": "dataServiceCut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiverDestination", + "type": "address" + } + ], + "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": [], + "name": "initialize", + "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" + }, + { + "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": { + "cancelThaw(address,address)": "b1d07de4", + "collect(uint8,address,address,uint256,address,uint256,address)": "1230fa3e", + "deposit(address,address,uint256)": "8340f549", + "depositTo(address,address,address,uint256)": "72eb521e", + "getBalance(address,address,address)": "d6bd603c", + "initialize()": "8129fc1c", + "thaw(address,address,uint256)": "f93f1cd0", + "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\":\"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\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"CancelThaw\",\"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\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"EscrowCollected\",\"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\"},{\"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\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"cancelThaw\",\"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\":\"dataServiceCut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"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\":[],\"name\":\"initialize\",\"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\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"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\":{\"PaymentsEscrowInconsistentCollection(uint256,uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The balance after the collection\",\"balanceBefore\":\"The balance before the collection\",\"tokens\":\"The amount of tokens collected\"}}],\"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\":{\"CancelThaw(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 was ending\",\"tokensThawing\":\"The amount of tokens that were being thawed\"}},\"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(uint8,address,address,address,uint256,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"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\",\"receiverDestination\":\"The address where the receiver's payment should be sent.\",\"tokens\":\"The amount of tokens collected\"}},\"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\"}},\"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\":{\"cancelThaw(address,address)\":{\"details\":\"Requirements: - The payer must be thawing funds Emits a {CancelThaw} event.\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\"}},\"collect(uint8,address,address,uint256,address,uint256,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"dataServiceCut\":\"The data service cut in PPM that {GraphPayments} should send\",\"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\",\"receiverDestination\":\"The address where the receiver's payment should be sent.\",\"tokens\":\"The amount of tokens to collect\"}},\"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\"},\"returns\":{\"_0\":\"The balance of the payer-collector-receiver tuple\"}},\"thaw(address,address,uint256)\":{\"details\":\"Requirements: - `tokens` must be less than or equal to the available balance Emits a {Thaw} event.\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to thaw\"}},\"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\"}],\"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\":{\"CancelThaw(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer cancels an escrow thawing\"},\"Deposit(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\"},\"EscrowCollected(uint8,address,address,address,uint256,address)\":{\"notice\":\"Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\"},\"Thaw(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\"},\"Withdraw(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\"}},\"kind\":\"user\",\"methods\":{\"cancelThaw(address,address)\":{\"notice\":\"Cancels the thawing of escrow from a payer-collector-receiver's escrow account.\"},\"collect(uint8,address,address,uint256,address,uint256,address)\":{\"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. Emits an {EscrowCollected} event\"},\"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 This function will return 0 if the current balance is less than the amount of funds being thawed.\"},\"initialize()\":{\"notice\":\"Initialize the contract\"},\"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. Note that repeated calls to this function will overwrite the previous thawing amount and reset the thawing period.\"},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol": { + "IHorizonStakingBase": { + "abi": [ + { + "inputs": [], + "name": "HorizonStakingInvalidThawRequestType", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeDeposited", + "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": "lastParametersStagedAt", + "type": "uint256" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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": "nextRequest", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "thawingNonce", + "type": "uint256" + } + ], + "internalType": "struct IHorizonStakingTypes.ThawRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "thawRequestType", + "type": "uint8" + }, + { + "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(uint8,bytes32)": "d48de845", + "getThawRequestList(uint8,address,address,address)": "e56f8a1d", + "getThawedTokens(uint8,address,address,address)": "2f7cc501", + "getTokensAvailable(address,address,uint32)": "872d0489", + "isAllowedLockedVerifier(address)": "ae4fe67a", + "isDelegationSlashingEnabled()": "fc54fb27" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HorizonStakingInvalidThawRequestType\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakeDeposited\",\"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\":\"lastParametersStagedAt\",\"type\":\"uint256\"},{\"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\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":\"nextRequest\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ThawRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"thawRequestType\",\"type\":\"uint8\"},{\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision functions take `serviceProvider` and `verifier` addresses.\",\"events\":{\"HorizonStakeDeposited(address,uint256)\":{\"details\":\"TRANSITION PERIOD: 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.\"}},\"getMaxThawingPeriod()\":{\"returns\":{\"_0\":\"The maximum allowed thawing period in seconds.\"}},\"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.\"},\"returns\":{\"_0\":\"The service provider details.\"}},\"getStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens staked.\"}},\"getThawRequest(uint8,bytes32)\":{\"params\":{\"thawRequestId\":\"The id of the thaw request.\",\"thawRequestType\":\"The type of thaw request.\"},\"returns\":{\"_0\":\"The thaw request details.\"}},\"getThawRequestList(uint8,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.\",\"thawRequestType\":\"The type of thaw request.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The thaw requests list metadata.\"}},\"getThawedTokens(uint8,address,address,address)\":{\"details\":\"Note that the value returned by this function does not return the total amount of thawed tokens but only those that can be released. If thaw requests are created with different thawing periods it's possible that an unexpired thaw request temporarily blocks the release of other ones that have already expired. This function will stop counting when it encounters the first thaw request that is not yet expired.\",\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"thawRequestType\":\"The type of thaw request.\",\"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\"}},\"isDelegationSlashingEnabled()\":{\"returns\":{\"_0\":\"True if delegation slashing is enabled, false otherwise\"}}},\"title\":\"Interface for the {HorizonStakingBase} contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"HorizonStakingInvalidThawRequestType()\":[{\"notice\":\"Thrown when using an invalid thaw request type.\"}]},\"events\":{\"HorizonStakeDeposited(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(uint8,bytes32)\":{\"notice\":\"Gets a thaw request.\"},\"getThawRequestList(uint8,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(uint8,address,address,address)\":{\"notice\":\"Gets the amount of thawed tokens that can be releasedfor 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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]}},\"version\":1}" + } + }, + "@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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "indexer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "StakeSlashed", + "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": "bool", + "name": "isActive", + "type": "bool" + }, + { + "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": [], + "name": "getSubgraphService", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "legacySlash", + "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", + "closeAllocation(address,bytes32)": "44c32a61", + "collect(uint256,address)": "8d3c100a", + "getAllocation(address)": "0e022923", + "getAllocationData(address)": "55c85269", + "getAllocationState(address)": "98c657dc", + "getIndexerStakedTokens(address)": "1787e69f", + "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", + "getSubgraphService()": "9363c522", + "hasStake(address)": "e73e14bf", + "isAllocation(address)": "f1d60d66", + "isOperator(address,address)": "b6363cf2", + "legacySlash(address,uint256,uint256,address)": "4488a382" + } + }, + "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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"StakeSlashed\",\"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\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"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\":[],\"name\":\"getSubgraphService\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"legacySlash\",\"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.\",\"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.\",\"params\":{\"allocationID\":\"The allocation identifier\",\"epoch\":\"The protocol epoch the allocation was closed on\",\"indexer\":\"The indexer address\",\"isPublic\":\"True if the allocation was force closed by someone other than the indexer/operator\",\"poi\":\"The proof of indexing submitted by the sender\",\"sender\":\"The address closing the allocation\",\"subgraphDeploymentID\":\"The subgraph deployment ID\",\"tokens\":\"The amount of tokens unallocated from the allocation\"}},\"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.\",\"params\":{\"allocationID\":\"The allocation identifier\",\"assetHolder\":\"The address of the asset holder, the entity paying the query fees\",\"curationFees\":\"The amount of tokens distributed to the curation pool\",\"delegationRewards\":\"The amount of tokens collected from the delegation pool\",\"epoch\":\"The protocol epoch the rebate was collected on\",\"indexer\":\"The indexer address\",\"protocolTax\":\"The amount of tokens burnt as protocol tax\",\"queryFees\":\"The amount of tokens collected as query fees\",\"queryRebates\":\"The amount of tokens distributed to the indexer\",\"subgraphDeploymentID\":\"The subgraph deployment ID\",\"tokens\":\"The amount of tokens collected\"}},\"StakeSlashed(address,uint256,uint256,address)\":{\"details\":\"Emitted when `indexer` was slashed for a total of `tokens` amount. Tracks `reward` amount of tokens given to `beneficiary`.\",\"params\":{\"beneficiary\":\"The address of a beneficiary to receive a reward for the slashing\",\"indexer\":\"The indexer address\",\"reward\":\"The amount of reward tokens to send to a beneficiary\",\"tokens\":\"The amount of tokens slashed\"}}},\"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\":\"Collect and rebate query fees to the indexer This function will accept calls with zero tokens. We use an exponential rebate formula to calculate the amount of tokens to rebate to the indexer. This implementation allows collecting multiple times on the same allocation, keeping track of the total amount rebated, the total amount collected and compensating the indexer for the difference.\",\"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\",\"isActive\":\"Whether the allocation is active or not\",\"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\"}},\"getSubgraphService()\":{\"details\":\"TRANSITION PERIOD: After transition period move to main HorizonStaking contract\",\"returns\":{\"_0\":\"Address of the subgraph data service\"}},\"hasStake(address)\":{\"params\":{\"indexer\":\"Address of the indexer\"},\"returns\":{\"_0\":\"True if indexer has staked tokens\"}},\"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 service provider\",\"operator\":\"Address of the operator\"},\"returns\":{\"_0\":\"True if operator is allowed for indexer, false otherwise\"}},\"legacySlash(address,uint256,uint256,address)\":{\"details\":\"Can only be called by the slasher role.\",\"params\":{\"beneficiary\":\"Address of a beneficiary to receive a reward for the slashing\",\"indexer\":\"Address of indexer to slash\",\"reward\":\"Amount of reward tokens to send to a beneficiary\",\"tokens\":\"Amount of tokens to slash from the indexer stake\"}}},\"title\":\"Interface for {HorizonStakingExtension} contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"__DEPRECATED_getThawingPeriod()\":{\"notice\":\"Return the time in blocks to unstake Deprecated, now enforced by each data service (verifier)\"},\"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\"},\"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.\"},\"getSubgraphService()\":{\"notice\":\"Return the address of the subgraph data service.\"},\"hasStake(address)\":{\"notice\":\"Getter that returns if an indexer has any stake.\"},\"isAllocation(address)\":{\"notice\":\"Return if allocationID is used.\"},\"isOperator(address,address)\":{\"notice\":\"(Legacy) Return true if operator is allowed for the service provider on the subgraph data service.\"},\"legacySlash(address,uint256,uint256,address)\":{\"notice\":\"Slash the indexer stake. Delegated tokens are not subject to slashing. Note that depending on the state of the indexer's stake, the slashed amount might be smaller than the requested slash amount. This can happen if the indexer has moved a significant part of their stake to a provision. Any outstanding slashing amount should be settled using Horizon's slash function {IHorizonStaking.slash}.\"}},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]}},\"version\":1}" + } + }, + "@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": "HorizonStakingInsufficientDelegationTokens", + "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": [ + { + "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": [ + { + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "HorizonStakingInvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidVerifierZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroShares", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingInvalidZeroTokens", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingLegacySlashFailed", + "type": "error" + }, + { + "inputs": [], + "name": "HorizonStakingNoTokensToSlash", + "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": "HorizonStakingNothingToWithdraw", + "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": [], + "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": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "until", + "type": "uint256" + } + ], + "name": "HorizonStakeLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "HorizonStakeWithdrawn", + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokens", + "type": "uint256" + } + ], + "name": "StakeDelegatedWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "ThawRequestCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "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": "enum IHorizonStakingTypes.ThawRequestType", + "name": "requestType", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "serviceProvider", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + }, + { + "indexed": false, + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "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": [], + "name": "getStakingExtension", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": [ + { + "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": "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": "deprecated", + "type": "address" + } + ], + "name": "withdrawDelegated", + "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": { + "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", + "getStakingExtension()": "66ee1b28", + "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,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\":\"HorizonStakingInsufficientDelegationTokens\",\"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\":[{\"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\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidVerifierZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingLegacySlashFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingNoTokensToSlash\",\"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\":\"HorizonStakingNothingToWithdraw\",\"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\":[],\"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\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"until\",\"type\":\"uint256\"}],\"name\":\"HorizonStakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakeWithdrawn\",\"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\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeDelegatedWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ThawRequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"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\":\"enum IHorizonStakingTypes.ThawRequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"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\":[],\"name\":\"getStakingExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[{\"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\":\"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\":\"deprecated\",\"type\":\"address\"}],\"name\":\"withdrawDelegated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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.\",\"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.TRANSITION PERIOD: After transition period rename to IHorizonStaking.\",\"errors\":{\"HorizonStakingInsufficientDelegationTokens(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"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\"}}],\"HorizonStakingInvalidVerifier(address)\":[{\"params\":{\"verifier\":\"The verifier address\"}}],\"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.\",\"params\":{\"verifier\":\"The verifier address\"}}]},\"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\"}},\"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\"}},\"HorizonStakeLocked(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens now locked (including previously locked tokens)\",\"until\":\"The block number until the stake is locked\"}},\"HorizonStakeWithdrawn(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\"}},\"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\"}},\"StakeDelegatedWithdrawn(address,address,uint256)\":{\"details\":\"This event is for the legacy `withdrawDelegated` function.\",\"params\":{\"delegator\":\"The address of the delegator\",\"indexer\":\"The address of the indexer\",\"tokens\":\"The amount of tokens withdrawn\"}},\"ThawRequestCreated(uint8,address,address,address,uint256,uint64,bytes32,uint256)\":{\"details\":\"Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\",\"params\":{\"nonce\":\"The nonce of the thaw request\",\"owner\":\"The address of the owner of the thaw request.\",\"requestType\":\"The type of 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(uint8,bytes32,uint256,uint256,uint64,bool)\":{\"params\":{\"requestType\":\"The type of thaw request\",\"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(uint8,address,address,address,uint256,uint256)\":{\"params\":{\"owner\":\"The address of the owner of the thaw requests\",\"requestType\":\"The type of thaw request\",\"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,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares delegated\",\"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,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares undelegated\",\"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. Otherwise, the function will attempt to fulfill all thaw requests until the first one that is not yet expired is found. 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\"}},\"getStakingExtension()\":{\"returns\":{\"_0\":\"The address of the staking extension\"}},\"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\":\"During the transition period, only the subgraph data service can be used as a verifier. This prevents an escape hatch for legacy allocation stake.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. Requirements: - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Note that if `_maxThawingPeriod` changes the function will not revert if called with the same thawing period as the current one. 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 {HorizonStakeDeposited} 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 {HorizonStakeDeposited} event.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\"}},\"stakeToProvision(address,address,uint256)\":{\"details\":\"This function can be called by the service provider, by an authorized operator or by the verifier itself.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 {HorizonStakeDeposited} 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,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 {HorizonStakeLocked} event during the transition period. Emits a {HorizonStakeWithdrawn} 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\":{\"deprecated\":\"Deprecated parameter kept for backwards compatibility\",\"serviceProvider\":\"The service provider address\"},\"returns\":{\"_0\":\"The amount of tokens withdrawn\"}},\"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. Otherwise, the function will attempt to fulfill all thaw requests until the first one that is not yet expired is found.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.\"}],\"HorizonStakingInsufficientDelegationTokens(uint256,uint256)\":[{\"notice\":\"Thrown when the minimum token amount required for delegation is not met.\"}],\"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.\"}],\"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.\"}],\"HorizonStakingInvalidVerifier(address)\":[{\"notice\":\"Thrown when attempting to create a provision with a verifier other than the subgraph data service. This restriction only applies during the transition 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.\"}],\"HorizonStakingLegacySlashFailed()\":[{\"notice\":\"Thrown when a legacy slash fails.\"}],\"HorizonStakingNoTokensToSlash()\":[{\"notice\":\"Thrown when there attempting to slash a provision with no tokens to slash.\"}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to operate on a provision.\"}],\"HorizonStakingNothingThawing()\":[{\"notice\":\"Thrown when attempting to fulfill a thaw request but there is nothing thawing.\"}],\"HorizonStakingNothingToWithdraw()\":[{\"notice\":\"Thrown when attempting to withdraw tokens that have not thawed (legacy undelegate).\"}],\"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.\"}],\"HorizonStakingTooManyThawRequests()\":[{\"notice\":\"Thrown when a service provider has too many thaw requests.\"}],\"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()\":{\"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.\"},\"HorizonStakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when a service provider unstakes tokens during the transition period.\"},\"HorizonStakeWithdrawn(address,uint256)\":{\"notice\":\"Emitted when a service provider withdraws tokens during the transition period.\"},\"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.\"},\"StakeDelegatedWithdrawn(address,address,uint256)\":{\"notice\":\"Emitted when `delegator` withdrew delegated `tokens` from `indexer` using `withdrawDelegated`.\"},\"ThawRequestCreated(uint8,address,address,address,uint256,uint64,bytes32,uint256)\":{\"notice\":\"Emitted when a thaw request is created.\"},\"ThawRequestFulfilled(uint8,bytes32,uint256,uint256,uint64,bool)\":{\"notice\":\"Emitted when a thaw request is fulfilled, meaning the stake is released.\"},\"ThawRequestsFulfilled(uint8,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,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,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.\"},\"getStakingExtension()\":{\"notice\":\"Get the address of the staking extension.\"},\"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}. Calling this function is a no-op if the new parameters are the same as the current ones.\"},\"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,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. Note that after the transition period if there are tokens still locked they will have to be withdrawn by calling {withdraw}.\"},\"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 tokens undelegated before horizon upgrade.\"},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]}},\"version\":1}" + } + }, + "@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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]}},\"version\":1}" + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220634bc6e5aef788fd779dcee4cca795e76964f7e1e5b44586fd8eda2c36fc128764736f6c634300081b0033", + "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 PUSH4 0x4BC6E5AE 0xF7 DUP9 REVERT PUSH24 0x9DCEE4CCA795E76964F7E1E5B44586FD8EDA2C36FC128764 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "786:4964:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;786:4964:33;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220634bc6e5aef788fd779dcee4cca795e76964f7e1e5b44586fd8eda2c36fc128764736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH4 0x4BC6E5AE 0xF7 DUP9 REVERT PUSH24 0x9DCEE4CCA795E76964F7E1E5B44586FD8EDA2C36FC128764 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "786:4964:33:-: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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/libraries/MathUtils.sol": { + "MathUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122090721977f146bc47651e28a67cd8f9ce83518cba11871d05c2c3ef61d8aefbd264736f6c634300081b0033", + "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 SWAP1 PUSH19 0x1977F146BC47651E28A67CD8F9CE83518CBA11 DUP8 SAR SDIV 0xC2 0xC3 0xEF PUSH2 0xD8AE 0xFB 0xD2 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "311:1477:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;311:1477:34;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122090721977f146bc47651e28a67cd8f9ce83518cba11871d05c2c3ef61d8aefbd264736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 PUSH19 0x1977F146BC47651E28A67CD8F9CE83518CBA11 DUP8 SAR SDIV 0xC2 0xC3 0xEF PUSH2 0xD8AE 0xFB 0xD2 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "311:1477:34:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\":{\"keccak256\":\"0x24cd80c0d25f634db1e8101c0a474a284758eb7a2203ae3abf507f578fa12e0a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://69d03db4aaa31184b3ec9526bf236949683c5a35785c298cad0ac160904b695c\",\"dweb:/ipfs/Qmd2xSKW6ojrapgrRimrXCpc52GTrQ3BMAEYH17UvSfvLV\"]}},\"version\":1}" + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec389b234df2d4af81896c70e838876b3c31d3925e53798ff4f46249c78f3d4b64736f6c634300081b0033", + "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 0xEC CODESIZE SWAP12 0x23 0x4D CALLCODE 0xD4 0xAF DUP2 DUP10 PUSH13 0x70E838876B3C31D3925E53798F DELEGATECALL DELEGATECALL PUSH3 0x49C78F RETURNDATASIZE 0x4B PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "329:1769:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;329:1769:35;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ec389b234df2d4af81896c70e838876b3c31d3925e53798ff4f46249c78f3d4b64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC CODESIZE SWAP12 0x23 0x4D CALLCODE 0xD4 0xAF DUP2 DUP10 PUSH13 0x70E838876B3C31D3925E53798F DELEGATECALL DELEGATECALL PUSH3 0x49C78F RETURNDATASIZE 0x4B PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "329:1769:35:-: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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]}},\"version\":1}" + } + }, + "@graphprotocol/horizon/contracts/libraries/UintRange.sol": { + "UintRange": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220202b2a49d0bef5c3760fc54aa977ee0438614d43207535d20e13c7a6105db25f64736f6c634300081b0033", + "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 KECCAK256 0x2B 0x2A BLOBHASH 0xD0 0xBE CREATE2 0xC3 PUSH23 0xFC54AA977EE0438614D43207535D20E13C7A6105DB25F PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "312:455:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;312:455:36;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220202b2a49d0bef5c3760fc54aa977ee0438614d43207535d20e13c7a6105db25f64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 0x2B 0x2A BLOBHASH 0xD0 0xBE CREATE2 0xC3 PUSH23 0xFC54AA977EE0438614D43207535D20E13C7A6105DB25F PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "312:455:36:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]}},\"version\":1}" + } + }, + "@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\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@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\":10},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}" + } + }, + "@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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]}},\"version\":1}" + } + }, + "@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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { + "MulticallUpgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "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\":\"FailedCall\",\"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 {Context-_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 {Context-_msgSender} are not propagated to subcalls.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}" + } + }, + "@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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]}},\"version\":1}" + } + }, + "@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\":\"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-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd45a5b1d0e451376b08e1bc7e332426c24382053300acf0ac667be1b8abb6cc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://824eb0b8c71db8b95b707218d8540c2046a2fefc642e74b343ae90e5c72e2b52\",\"dweb:/ipfs/QmdQTZTomqxRrySDNdv1FEyh3ZWibxwC9FRdcV3DCuASpx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}" + } + }, + "@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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]}},\"version\":1}" + } + }, + "@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 ERC-20 standard as defined in the ERC.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Address.sol": { + "Address": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220781a1d5bdb5668d82b50835cd32ca92ccbec39aad96b67a488f50e9afdae7d5164736f6c634300081b0033", + "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 PUSH25 0x1A1D5BDB5668D82B50835CD32CA92CCBEC39AAD96B67A488F5 0xE SWAP11 REVERT 0xAE PUSH30 0x5164736F6C634300081B0033000000000000000000000000000000000000 ", + "sourceMap": "233:5815:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;233:5815:46;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220781a1d5bdb5668d82b50835cd32ca92ccbec39aad96b67a488f50e9afdae7d5164736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0x1A1D5BDB5668D82B50835CD32CA92CCBEC39AAD96B67A488F5 0xE SWAP11 REVERT 0xAE PUSH30 0x5164736F6C634300081B0033000000000000000000000000000000000000 ", + "sourceMap": "233:5815:46:-: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\"}],\"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).\"}]},\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Errors.sol": { + "Errors": { + "abi": [ + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "inputs": [], + "name": "FailedDeployment", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "MissingPrecompile", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044ae8a2f23a1248c5d321b81ea162b8f9c89b21a77e70eb0aba03a267938d51f64736f6c634300081b0033", + "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 PREVRANDAO 0xAE DUP11 0x2F 0x23 LOG1 0x24 DUP13 TSTORE ORIGIN SHL DUP2 0xEA AND 0x2B DUP16 SWAP13 DUP10 0xB2 BYTE PUSH24 0xE70EB0ABA03A267938D51F64736F6C634300081B00330000 ", + "sourceMap": "411:484:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;411:484:47;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044ae8a2f23a1248c5d321b81ea162b8f9c89b21a77e70eb0aba03a267938d51f64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO 0xAE DUP11 0x2F 0x23 LOG1 0x24 DUP13 TSTORE ORIGIN SHL DUP2 0xEA AND 0x2B DUP16 SWAP13 DUP10 0xB2 BYTE PUSH24 0xE70EB0ABA03A267938D51F64736F6C634300081B00330000 ", + "sourceMap": "411:484:47:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MissingPrecompile\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality. _Available since v5.1._\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"MissingPrecompile(address)\":[{\"details\":\"A necessary precompile is missing.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "Panic": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122094e995d013dad400678b7d35e8eb7544d9da48ba493c0f2ea19c12592c28629c64736f6c634300081b0033", + "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 SWAP5 0xE9 SWAP6 0xD0 SGT 0xDA 0xD4 STOP PUSH8 0x8B7D35E8EB7544D9 0xDA BASEFEE 0xBA BLOBHASH EXTCODECOPY 0xF 0x2E LOG1 SWAP13 SLT MSIZE 0x2C 0x28 PUSH3 0x9C6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "657:1315:48:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:48;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122094e995d013dad400678b7d35e8eb7544d9da48ba493c0f2ea19c12592c28629c64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 0xE9 SWAP6 0xD0 SGT 0xDA 0xD4 STOP PUSH8 0x8B7D35E8EB7544D9 0xDA BASEFEE 0xBA BLOBHASH EXTCODECOPY 0xF 0x2E LOG1 SWAP13 SLT MSIZE 0x2C 0x28 PUSH3 0x9C6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "657:1315:48:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidAddressFormat", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidChar", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122058f56da3e94bb4690ff2a315d128d171be8dd3c73ab16dcb6c2f491a33b239af64736f6c634300081b0033", + "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 PC CREATE2 PUSH14 0xA3E94BB4690FF2A315D128D171BE DUP14 0xD3 0xC7 GASPRICE 0xB1 PUSH14 0xCB6C2F491A33B239AF64736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "297:18980:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:18980:49;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122058f56da3e94bb4690ff2a315d128d171be8dd3c73ab16dcb6c2f491a33b239af64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PC CREATE2 PUSH14 0xA3E94BB4690FF2A315D128D171BE DUP14 0xD3 0xC7 GASPRICE 0xB1 PUSH14 0xCB6C2F491A33B239AF64736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "297:18980:49:-: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\"},{\"inputs\":[],\"name\":\"StringsInvalidAddressFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidChar\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}],\"StringsInvalidAddressFormat()\":[{\"details\":\"The string being parsed is not a properly formatted address.\"}],\"StringsInvalidChar()\":[{\"details\":\"The string being parsed contains characters that are not in scope of the given base.\"}]},\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}" + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a45519caa943036b099b384dc8f08082679ed7bcf35f4f1926155f3a3b94e9964736f6c634300081b0033", + "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 BLOBBASEFEE GASLIMIT MLOAD SWAP13 0xAA SWAP5 ADDRESS CALLDATASIZE 0xB0 SWAP10 0xB3 DUP5 0xDC DUP16 ADDMOD ADDMOD 0x26 PUSH26 0xED7BCF35F4F1926155F3A3B94E9964736F6C634300081B003300 ", + "sourceMap": "344:7470:50:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7470:50;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a45519caa943036b099b384dc8f08082679ed7bcf35f4f1926155f3a3b94e9964736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOBBASEFEE GASLIMIT MLOAD SWAP13 0xAA SWAP5 ADDRESS CALLDATASIZE 0xB0 SWAP10 0xB3 DUP5 0xDC DUP16 ADDMOD ADDMOD 0x26 PUSH26 0xED7BCF35F4F1926155F3A3B94E9964736F6C634300081B003300 ", + "sourceMap": "344:7470:50:-: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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "MessageHashUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220739fcbc5433e639277fd7c7dac5e18e07f939d67d86fd83eaafc76605e2ea54e64736f6c634300081b0033", + "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 PUSH20 0x9FCBC5433E639277FD7C7DAC5E18E07F939D67D8 PUSH16 0xD83EAAFC76605E2EA54E64736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "521:3729:51:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3729:51;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220739fcbc5433e639277fd7c7dac5e18e07f939d67d86fd83eaafc76605e2ea54e64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0x9FCBC5433E639277FD7C7DAC5E18E07F939D67D8 PUSH16 0xD83EAAFC76605E2EA54E64736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "521:3729:51:-: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[ERC-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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d087252d20c33a6b84716edfdc60d52df72243223a4a6e0fb868c95d9ba9d6064736f6c634300081b0033", + "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 PUSH14 0x87252D20C33A6B84716EDFDC60D MSTORE 0xDF PUSH19 0x243223A4A6E0FB868C95D9BA9D6064736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "281:31863:52:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:31863:52;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d087252d20c33a6b84716edfdc60d52df72243223a4a6e0fb868c95d9ba9d6064736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x87252D20C33A6B84716EDFDC60D MSTORE 0xDF PUSH19 0x243223A4A6E0FB868C95D9BA9D6064736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "281:31863:52:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "SafeCast": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntToUint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintToInt", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201f9483f55fcb74a866273ce15b4f1b8be6a52b82c427c107bd5d98b6eb7b5b9664736f6c634300081b0033", + "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 0x1F SWAP5 DUP4 CREATE2 PUSH0 0xCB PUSH21 0xA866273CE15B4F1B8BE6A52B82C427C107BD5D98B6 0xEB PUSH28 0x5B9664736F6C634300081B0033000000000000000000000000000000 ", + "sourceMap": "769:34173:53:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:53;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201f9483f55fcb74a866273ce15b4f1b8be6a52b82c427c107bd5d98b6eb7b5b9664736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F SWAP5 DUP4 CREATE2 PUSH0 0xCB PUSH21 0xA866273CE15B4F1B8BE6A52B82C427C107BD5D98B6 0xEB PUSH28 0x5B9664736F6C634300081B0033000000000000000000000000000000 ", + "sourceMap": "769:34173:53:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203f8ce045c06cb3d784cb291e8c3a0485d015860bc9a53fb4b262bab7802a0bc264736f6c634300081b0033", + "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 EXTCODEHASH DUP13 0xE0 GASLIMIT 0xC0 PUSH13 0xB3D784CB291E8C3A0485D01586 SIGNEXTEND 0xC9 0xA5 EXTCODEHASH 0xB4 0xB2 PUSH3 0xBAB780 0x2A SIGNEXTEND 0xC2 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "258:2354:54:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:54;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203f8ce045c06cb3d784cb291e8c3a0485d015860bc9a53fb4b262bab7802a0bc264736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH DUP13 0xE0 GASLIMIT 0xC0 PUSH13 0xB3D784CB291E8C3A0485D01586 SIGNEXTEND 0xC9 0xA5 EXTCODEHASH 0xB4 0xB2 PUSH3 0xBAB780 0x2A SIGNEXTEND 0xC2 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "258:2354:54:-: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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}" + } + }, + "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": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeInConflict", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeNotInConflict", + "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": "DisputeManagerSubgraphServiceNotSet", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": 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": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "LegacyDisputeCreated", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": [], + "name": "MIN_DISPUTE_DEPOSIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "acceptDisputeInConflict", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "tokensSlashRelated", + "type": "uint256" + } + ], + "name": "acceptDisputeConflict", + "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": "address", + "name": "fisherman", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "createAndAcceptLegacyDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": "cancellableAt", + "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": [], + "name": "getFishermanRewardCut", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "getStakeSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "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": { + "@_11993": { + "entryPoint": null, + "id": 11993, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_4795": { + "entryPoint": null, + "id": 4795, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_disableInitializers_5345": { + "entryPoint": 1001, + "id": 5345, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getContractFromController_4927": { + "entryPoint": 827, + "id": 4927, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getInitializableStorage_5390": { + "entryPoint": null, + "id": 5390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5376": { + "entryPoint": null, + "id": 5376, + "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:70", + "nodeType": "YulBlock", + "src": "0:2355:70", + "statements": [ + { + "nativeSrc": "6:3:70", + "nodeType": "YulBlock", + "src": "6:3:70", + "statements": [] + }, + { + "body": { + "nativeSrc": "95:209:70", + "nodeType": "YulBlock", + "src": "95:209:70", + "statements": [ + { + "body": { + "nativeSrc": "141:16:70", + "nodeType": "YulBlock", + "src": "141:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "150:1:70", + "nodeType": "YulLiteral", + "src": "150:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "153:1:70", + "nodeType": "YulLiteral", + "src": "153:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "143:6:70", + "nodeType": "YulIdentifier", + "src": "143:6:70" + }, + "nativeSrc": "143:12:70", + "nodeType": "YulFunctionCall", + "src": "143:12:70" + }, + "nativeSrc": "143:12:70", + "nodeType": "YulExpressionStatement", + "src": "143:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "116:7:70", + "nodeType": "YulIdentifier", + "src": "116:7:70" + }, + { + "name": "headStart", + "nativeSrc": "125:9:70", + "nodeType": "YulIdentifier", + "src": "125:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "112:3:70", + "nodeType": "YulIdentifier", + "src": "112:3:70" + }, + "nativeSrc": "112:23:70", + "nodeType": "YulFunctionCall", + "src": "112:23:70" + }, + { + "kind": "number", + "nativeSrc": "137:2:70", + "nodeType": "YulLiteral", + "src": "137:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "108:3:70", + "nodeType": "YulIdentifier", + "src": "108:3:70" + }, + "nativeSrc": "108:32:70", + "nodeType": "YulFunctionCall", + "src": "108:32:70" + }, + "nativeSrc": "105:52:70", + "nodeType": "YulIf", + "src": "105:52:70" + }, + { + "nativeSrc": "166:29:70", + "nodeType": "YulVariableDeclaration", + "src": "166:29:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "185:9:70", + "nodeType": "YulIdentifier", + "src": "185:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "179:5:70", + "nodeType": "YulIdentifier", + "src": "179:5:70" + }, + "nativeSrc": "179:16:70", + "nodeType": "YulFunctionCall", + "src": "179:16:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "170:5:70", + "nodeType": "YulTypedName", + "src": "170:5:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "258:16:70", + "nodeType": "YulBlock", + "src": "258:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "267:1:70", + "nodeType": "YulLiteral", + "src": "267:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "270:1:70", + "nodeType": "YulLiteral", + "src": "270:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "260:6:70", + "nodeType": "YulIdentifier", + "src": "260:6:70" + }, + "nativeSrc": "260:12:70", + "nodeType": "YulFunctionCall", + "src": "260:12:70" + }, + "nativeSrc": "260:12:70", + "nodeType": "YulExpressionStatement", + "src": "260:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "217:5:70", + "nodeType": "YulIdentifier", + "src": "217:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "228:5:70", + "nodeType": "YulIdentifier", + "src": "228:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "243:3:70", + "nodeType": "YulLiteral", + "src": "243:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "248:1:70", + "nodeType": "YulLiteral", + "src": "248:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "239:3:70", + "nodeType": "YulIdentifier", + "src": "239:3:70" + }, + "nativeSrc": "239:11:70", + "nodeType": "YulFunctionCall", + "src": "239:11:70" + }, + { + "kind": "number", + "nativeSrc": "252:1:70", + "nodeType": "YulLiteral", + "src": "252:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "235:3:70", + "nodeType": "YulIdentifier", + "src": "235:3:70" + }, + "nativeSrc": "235:19:70", + "nodeType": "YulFunctionCall", + "src": "235:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "224:3:70", + "nodeType": "YulIdentifier", + "src": "224:3:70" + }, + "nativeSrc": "224:31:70", + "nodeType": "YulFunctionCall", + "src": "224:31:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "214:2:70", + "nodeType": "YulIdentifier", + "src": "214:2:70" + }, + "nativeSrc": "214:42:70", + "nodeType": "YulFunctionCall", + "src": "214:42:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "207:6:70", + "nodeType": "YulIdentifier", + "src": "207:6:70" + }, + "nativeSrc": "207:50:70", + "nodeType": "YulFunctionCall", + "src": "207:50:70" + }, + "nativeSrc": "204:70:70", + "nodeType": "YulIf", + "src": "204:70:70" + }, + { + "nativeSrc": "283:15:70", + "nodeType": "YulAssignment", + "src": "283:15:70", + "value": { + "name": "value", + "nativeSrc": "293:5:70", + "nodeType": "YulIdentifier", + "src": "293:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "283:6:70", + "nodeType": "YulIdentifier", + "src": "283:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "14:290:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "61:9:70", + "nodeType": "YulTypedName", + "src": "61:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "72:7:70", + "nodeType": "YulTypedName", + "src": "72:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "84:6:70", + "nodeType": "YulTypedName", + "src": "84:6:70", + "type": "" + } + ], + "src": "14:290:70" + }, + { + "body": { + "nativeSrc": "482:160:70", + "nodeType": "YulBlock", + "src": "482:160:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "499:9:70", + "nodeType": "YulIdentifier", + "src": "499:9:70" + }, + { + "kind": "number", + "nativeSrc": "510:2:70", + "nodeType": "YulLiteral", + "src": "510:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "492:6:70", + "nodeType": "YulIdentifier", + "src": "492:6:70" + }, + "nativeSrc": "492:21:70", + "nodeType": "YulFunctionCall", + "src": "492:21:70" + }, + "nativeSrc": "492:21:70", + "nodeType": "YulExpressionStatement", + "src": "492:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "533:9:70", + "nodeType": "YulIdentifier", + "src": "533:9:70" + }, + { + "kind": "number", + "nativeSrc": "544:2:70", + "nodeType": "YulLiteral", + "src": "544:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "529:3:70", + "nodeType": "YulIdentifier", + "src": "529:3:70" + }, + "nativeSrc": "529:18:70", + "nodeType": "YulFunctionCall", + "src": "529:18:70" + }, + { + "kind": "number", + "nativeSrc": "549:2:70", + "nodeType": "YulLiteral", + "src": "549:2:70", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "522:6:70", + "nodeType": "YulIdentifier", + "src": "522:6:70" + }, + "nativeSrc": "522:30:70", + "nodeType": "YulFunctionCall", + "src": "522:30:70" + }, + "nativeSrc": "522:30:70", + "nodeType": "YulExpressionStatement", + "src": "522:30:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "572:9:70", + "nodeType": "YulIdentifier", + "src": "572:9:70" + }, + { + "kind": "number", + "nativeSrc": "583:2:70", + "nodeType": "YulLiteral", + "src": "583:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "568:3:70", + "nodeType": "YulIdentifier", + "src": "568:3:70" + }, + "nativeSrc": "568:18:70", + "nodeType": "YulFunctionCall", + "src": "568:18:70" + }, + { + "hexValue": "436f6e74726f6c6c6572", + "kind": "string", + "nativeSrc": "588:12:70", + "nodeType": "YulLiteral", + "src": "588:12:70", + "type": "", + "value": "Controller" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "561:6:70", + "nodeType": "YulIdentifier", + "src": "561:6:70" + }, + "nativeSrc": "561:40:70", + "nodeType": "YulFunctionCall", + "src": "561:40:70" + }, + "nativeSrc": "561:40:70", + "nodeType": "YulExpressionStatement", + "src": "561:40:70" + }, + { + "nativeSrc": "610:26:70", + "nodeType": "YulAssignment", + "src": "610:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "622:9:70", + "nodeType": "YulIdentifier", + "src": "622:9:70" + }, + { + "kind": "number", + "nativeSrc": "633:2:70", + "nodeType": "YulLiteral", + "src": "633:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "618:3:70", + "nodeType": "YulIdentifier", + "src": "618:3:70" + }, + "nativeSrc": "618:18:70", + "nodeType": "YulFunctionCall", + "src": "618:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "610:4:70", + "nodeType": "YulIdentifier", + "src": "610:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "309:333:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "459:9:70", + "nodeType": "YulTypedName", + "src": "459:9:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "473:4:70", + "nodeType": "YulTypedName", + "src": "473:4:70", + "type": "" + } + ], + "src": "309:333:70" + }, + { + "body": { + "nativeSrc": "916:520:70", + "nodeType": "YulBlock", + "src": "916:520:70", + "statements": [ + { + "nativeSrc": "926:27:70", + "nodeType": "YulAssignment", + "src": "926:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "938:9:70", + "nodeType": "YulIdentifier", + "src": "938:9:70" + }, + { + "kind": "number", + "nativeSrc": "949:3:70", + "nodeType": "YulLiteral", + "src": "949:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "934:3:70", + "nodeType": "YulIdentifier", + "src": "934:3:70" + }, + "nativeSrc": "934:19:70", + "nodeType": "YulFunctionCall", + "src": "934:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "926:4:70", + "nodeType": "YulIdentifier", + "src": "926:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "969:9:70", + "nodeType": "YulIdentifier", + "src": "969:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "984:6:70", + "nodeType": "YulIdentifier", + "src": "984:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1000:3:70", + "nodeType": "YulLiteral", + "src": "1000:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1005:1:70", + "nodeType": "YulLiteral", + "src": "1005:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "996:3:70", + "nodeType": "YulIdentifier", + "src": "996:3:70" + }, + "nativeSrc": "996:11:70", + "nodeType": "YulFunctionCall", + "src": "996:11:70" + }, + { + "kind": "number", + "nativeSrc": "1009:1:70", + "nodeType": "YulLiteral", + "src": "1009:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "992:3:70", + "nodeType": "YulIdentifier", + "src": "992:3:70" + }, + "nativeSrc": "992:19:70", + "nodeType": "YulFunctionCall", + "src": "992:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "980:3:70", + "nodeType": "YulIdentifier", + "src": "980:3:70" + }, + "nativeSrc": "980:32:70", + "nodeType": "YulFunctionCall", + "src": "980:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "962:6:70", + "nodeType": "YulIdentifier", + "src": "962:6:70" + }, + "nativeSrc": "962:51:70", + "nodeType": "YulFunctionCall", + "src": "962:51:70" + }, + "nativeSrc": "962:51:70", + "nodeType": "YulExpressionStatement", + "src": "962:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1033:9:70", + "nodeType": "YulIdentifier", + "src": "1033:9:70" + }, + { + "kind": "number", + "nativeSrc": "1044:2:70", + "nodeType": "YulLiteral", + "src": "1044:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1029:3:70", + "nodeType": "YulIdentifier", + "src": "1029:3:70" + }, + "nativeSrc": "1029:18:70", + "nodeType": "YulFunctionCall", + "src": "1029:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "1053:6:70", + "nodeType": "YulIdentifier", + "src": "1053:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1069:3:70", + "nodeType": "YulLiteral", + "src": "1069:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1074:1:70", + "nodeType": "YulLiteral", + "src": "1074:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1065:3:70", + "nodeType": "YulIdentifier", + "src": "1065:3:70" + }, + "nativeSrc": "1065:11:70", + "nodeType": "YulFunctionCall", + "src": "1065:11:70" + }, + { + "kind": "number", + "nativeSrc": "1078:1:70", + "nodeType": "YulLiteral", + "src": "1078:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1061:3:70", + "nodeType": "YulIdentifier", + "src": "1061:3:70" + }, + "nativeSrc": "1061:19:70", + "nodeType": "YulFunctionCall", + "src": "1061:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1049:3:70", + "nodeType": "YulIdentifier", + "src": "1049:3:70" + }, + "nativeSrc": "1049:32:70", + "nodeType": "YulFunctionCall", + "src": "1049:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1022:6:70", + "nodeType": "YulIdentifier", + "src": "1022:6:70" + }, + "nativeSrc": "1022:60:70", + "nodeType": "YulFunctionCall", + "src": "1022:60:70" + }, + "nativeSrc": "1022:60:70", + "nodeType": "YulExpressionStatement", + "src": "1022:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1102:9:70", + "nodeType": "YulIdentifier", + "src": "1102:9:70" + }, + { + "kind": "number", + "nativeSrc": "1113:2:70", + "nodeType": "YulLiteral", + "src": "1113:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1098:3:70", + "nodeType": "YulIdentifier", + "src": "1098:3:70" + }, + "nativeSrc": "1098:18:70", + "nodeType": "YulFunctionCall", + "src": "1098:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "1122:6:70", + "nodeType": "YulIdentifier", + "src": "1122:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1138:3:70", + "nodeType": "YulLiteral", + "src": "1138:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1143:1:70", + "nodeType": "YulLiteral", + "src": "1143:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1134:3:70", + "nodeType": "YulIdentifier", + "src": "1134:3:70" + }, + "nativeSrc": "1134:11:70", + "nodeType": "YulFunctionCall", + "src": "1134:11:70" + }, + { + "kind": "number", + "nativeSrc": "1147:1:70", + "nodeType": "YulLiteral", + "src": "1147:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1130:3:70", + "nodeType": "YulIdentifier", + "src": "1130:3:70" + }, + "nativeSrc": "1130:19:70", + "nodeType": "YulFunctionCall", + "src": "1130:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1118:3:70", + "nodeType": "YulIdentifier", + "src": "1118:3:70" + }, + "nativeSrc": "1118:32:70", + "nodeType": "YulFunctionCall", + "src": "1118:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1091:6:70", + "nodeType": "YulIdentifier", + "src": "1091:6:70" + }, + "nativeSrc": "1091:60:70", + "nodeType": "YulFunctionCall", + "src": "1091:60:70" + }, + "nativeSrc": "1091:60:70", + "nodeType": "YulExpressionStatement", + "src": "1091:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1171:9:70", + "nodeType": "YulIdentifier", + "src": "1171:9:70" + }, + { + "kind": "number", + "nativeSrc": "1182:2:70", + "nodeType": "YulLiteral", + "src": "1182:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1167:3:70", + "nodeType": "YulIdentifier", + "src": "1167:3:70" + }, + "nativeSrc": "1167:18:70", + "nodeType": "YulFunctionCall", + "src": "1167:18:70" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "1191:6:70", + "nodeType": "YulIdentifier", + "src": "1191:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1207:3:70", + "nodeType": "YulLiteral", + "src": "1207:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1212:1:70", + "nodeType": "YulLiteral", + "src": "1212:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1203:3:70", + "nodeType": "YulIdentifier", + "src": "1203:3:70" + }, + "nativeSrc": "1203:11:70", + "nodeType": "YulFunctionCall", + "src": "1203:11:70" + }, + { + "kind": "number", + "nativeSrc": "1216:1:70", + "nodeType": "YulLiteral", + "src": "1216:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1199:3:70", + "nodeType": "YulIdentifier", + "src": "1199:3:70" + }, + "nativeSrc": "1199:19:70", + "nodeType": "YulFunctionCall", + "src": "1199:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1187:3:70", + "nodeType": "YulIdentifier", + "src": "1187:3:70" + }, + "nativeSrc": "1187:32:70", + "nodeType": "YulFunctionCall", + "src": "1187:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1160:6:70", + "nodeType": "YulIdentifier", + "src": "1160:6:70" + }, + "nativeSrc": "1160:60:70", + "nodeType": "YulFunctionCall", + "src": "1160:60:70" + }, + "nativeSrc": "1160:60:70", + "nodeType": "YulExpressionStatement", + "src": "1160:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1240:9:70", + "nodeType": "YulIdentifier", + "src": "1240:9:70" + }, + { + "kind": "number", + "nativeSrc": "1251:3:70", + "nodeType": "YulLiteral", + "src": "1251:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1236:3:70", + "nodeType": "YulIdentifier", + "src": "1236:3:70" + }, + "nativeSrc": "1236:19:70", + "nodeType": "YulFunctionCall", + "src": "1236:19:70" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "1261:6:70", + "nodeType": "YulIdentifier", + "src": "1261:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1277:3:70", + "nodeType": "YulLiteral", + "src": "1277:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1282:1:70", + "nodeType": "YulLiteral", + "src": "1282:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1273:3:70", + "nodeType": "YulIdentifier", + "src": "1273:3:70" + }, + "nativeSrc": "1273:11:70", + "nodeType": "YulFunctionCall", + "src": "1273:11:70" + }, + { + "kind": "number", + "nativeSrc": "1286:1:70", + "nodeType": "YulLiteral", + "src": "1286:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1269:3:70", + "nodeType": "YulIdentifier", + "src": "1269:3:70" + }, + "nativeSrc": "1269:19:70", + "nodeType": "YulFunctionCall", + "src": "1269:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1257:3:70", + "nodeType": "YulIdentifier", + "src": "1257:3:70" + }, + "nativeSrc": "1257:32:70", + "nodeType": "YulFunctionCall", + "src": "1257:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1229:6:70", + "nodeType": "YulIdentifier", + "src": "1229:6:70" + }, + "nativeSrc": "1229:61:70", + "nodeType": "YulFunctionCall", + "src": "1229:61:70" + }, + "nativeSrc": "1229:61:70", + "nodeType": "YulExpressionStatement", + "src": "1229:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1310:9:70", + "nodeType": "YulIdentifier", + "src": "1310:9:70" + }, + { + "kind": "number", + "nativeSrc": "1321:3:70", + "nodeType": "YulLiteral", + "src": "1321:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1306:3:70", + "nodeType": "YulIdentifier", + "src": "1306:3:70" + }, + "nativeSrc": "1306:19:70", + "nodeType": "YulFunctionCall", + "src": "1306:19:70" + }, + { + "arguments": [ + { + "name": "value5", + "nativeSrc": "1331:6:70", + "nodeType": "YulIdentifier", + "src": "1331:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1347:3:70", + "nodeType": "YulLiteral", + "src": "1347:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1352:1:70", + "nodeType": "YulLiteral", + "src": "1352:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1343:3:70", + "nodeType": "YulIdentifier", + "src": "1343:3:70" + }, + "nativeSrc": "1343:11:70", + "nodeType": "YulFunctionCall", + "src": "1343:11:70" + }, + { + "kind": "number", + "nativeSrc": "1356:1:70", + "nodeType": "YulLiteral", + "src": "1356:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1339:3:70", + "nodeType": "YulIdentifier", + "src": "1339:3:70" + }, + "nativeSrc": "1339:19:70", + "nodeType": "YulFunctionCall", + "src": "1339:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1327:3:70", + "nodeType": "YulIdentifier", + "src": "1327:3:70" + }, + "nativeSrc": "1327:32:70", + "nodeType": "YulFunctionCall", + "src": "1327:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1299:6:70", + "nodeType": "YulIdentifier", + "src": "1299:6:70" + }, + "nativeSrc": "1299:61:70", + "nodeType": "YulFunctionCall", + "src": "1299:61:70" + }, + "nativeSrc": "1299:61:70", + "nodeType": "YulExpressionStatement", + "src": "1299:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1380:9:70", + "nodeType": "YulIdentifier", + "src": "1380:9:70" + }, + { + "kind": "number", + "nativeSrc": "1391:3:70", + "nodeType": "YulLiteral", + "src": "1391:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1376:3:70", + "nodeType": "YulIdentifier", + "src": "1376:3:70" + }, + "nativeSrc": "1376:19:70", + "nodeType": "YulFunctionCall", + "src": "1376:19:70" + }, + { + "arguments": [ + { + "name": "value6", + "nativeSrc": "1401:6:70", + "nodeType": "YulIdentifier", + "src": "1401:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1417:3:70", + "nodeType": "YulLiteral", + "src": "1417:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1422:1:70", + "nodeType": "YulLiteral", + "src": "1422:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1413:3:70", + "nodeType": "YulIdentifier", + "src": "1413:3:70" + }, + "nativeSrc": "1413:11:70", + "nodeType": "YulFunctionCall", + "src": "1413:11:70" + }, + { + "kind": "number", + "nativeSrc": "1426:1:70", + "nodeType": "YulLiteral", + "src": "1426:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1409:3:70", + "nodeType": "YulIdentifier", + "src": "1409:3:70" + }, + "nativeSrc": "1409:19:70", + "nodeType": "YulFunctionCall", + "src": "1409:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1397:3:70", + "nodeType": "YulIdentifier", + "src": "1397:3:70" + }, + "nativeSrc": "1397:32:70", + "nodeType": "YulFunctionCall", + "src": "1397:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1369:6:70", + "nodeType": "YulIdentifier", + "src": "1369:6:70" + }, + "nativeSrc": "1369:61:70", + "nodeType": "YulFunctionCall", + "src": "1369:61:70" + }, + "nativeSrc": "1369:61:70", + "nodeType": "YulExpressionStatement", + "src": "1369:61:70" + } + ] + }, + "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:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "837:9:70", + "nodeType": "YulTypedName", + "src": "837:9:70", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "848:6:70", + "nodeType": "YulTypedName", + "src": "848:6:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "856:6:70", + "nodeType": "YulTypedName", + "src": "856:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "864:6:70", + "nodeType": "YulTypedName", + "src": "864:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "872:6:70", + "nodeType": "YulTypedName", + "src": "872:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "880:6:70", + "nodeType": "YulTypedName", + "src": "880:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "888:6:70", + "nodeType": "YulTypedName", + "src": "888:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "896:6:70", + "nodeType": "YulTypedName", + "src": "896:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "907:4:70", + "nodeType": "YulTypedName", + "src": "907:4:70", + "type": "" + } + ], + "src": "647:789:70" + }, + { + "body": { + "nativeSrc": "1542:76:70", + "nodeType": "YulBlock", + "src": "1542:76:70", + "statements": [ + { + "nativeSrc": "1552:26:70", + "nodeType": "YulAssignment", + "src": "1552:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1564:9:70", + "nodeType": "YulIdentifier", + "src": "1564:9:70" + }, + { + "kind": "number", + "nativeSrc": "1575:2:70", + "nodeType": "YulLiteral", + "src": "1575:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1560:3:70", + "nodeType": "YulIdentifier", + "src": "1560:3:70" + }, + "nativeSrc": "1560:18:70", + "nodeType": "YulFunctionCall", + "src": "1560:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1552:4:70", + "nodeType": "YulIdentifier", + "src": "1552:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1594:9:70", + "nodeType": "YulIdentifier", + "src": "1594:9:70" + }, + { + "name": "value0", + "nativeSrc": "1605:6:70", + "nodeType": "YulIdentifier", + "src": "1605:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1587:6:70", + "nodeType": "YulIdentifier", + "src": "1587:6:70" + }, + "nativeSrc": "1587:25:70", + "nodeType": "YulFunctionCall", + "src": "1587:25:70" + }, + "nativeSrc": "1587:25:70", + "nodeType": "YulExpressionStatement", + "src": "1587:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "1441:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1511:9:70", + "nodeType": "YulTypedName", + "src": "1511:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1522:6:70", + "nodeType": "YulTypedName", + "src": "1522:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1533:4:70", + "nodeType": "YulTypedName", + "src": "1533:4:70", + "type": "" + } + ], + "src": "1441:177:70" + }, + { + "body": { + "nativeSrc": "1742:406:70", + "nodeType": "YulBlock", + "src": "1742:406:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1759:9:70", + "nodeType": "YulIdentifier", + "src": "1759:9:70" + }, + { + "kind": "number", + "nativeSrc": "1770:2:70", + "nodeType": "YulLiteral", + "src": "1770:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1752:6:70", + "nodeType": "YulIdentifier", + "src": "1752:6:70" + }, + "nativeSrc": "1752:21:70", + "nodeType": "YulFunctionCall", + "src": "1752:21:70" + }, + "nativeSrc": "1752:21:70", + "nodeType": "YulExpressionStatement", + "src": "1752:21:70" + }, + { + "nativeSrc": "1782:27:70", + "nodeType": "YulVariableDeclaration", + "src": "1782:27:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1802:6:70", + "nodeType": "YulIdentifier", + "src": "1802:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1796:5:70", + "nodeType": "YulIdentifier", + "src": "1796:5:70" + }, + "nativeSrc": "1796:13:70", + "nodeType": "YulFunctionCall", + "src": "1796:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1786:6:70", + "nodeType": "YulTypedName", + "src": "1786:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1829:9:70", + "nodeType": "YulIdentifier", + "src": "1829:9:70" + }, + { + "kind": "number", + "nativeSrc": "1840:2:70", + "nodeType": "YulLiteral", + "src": "1840:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1825:3:70", + "nodeType": "YulIdentifier", + "src": "1825:3:70" + }, + "nativeSrc": "1825:18:70", + "nodeType": "YulFunctionCall", + "src": "1825:18:70" + }, + { + "name": "length", + "nativeSrc": "1845:6:70", + "nodeType": "YulIdentifier", + "src": "1845:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1818:6:70", + "nodeType": "YulIdentifier", + "src": "1818:6:70" + }, + "nativeSrc": "1818:34:70", + "nodeType": "YulFunctionCall", + "src": "1818:34:70" + }, + "nativeSrc": "1818:34:70", + "nodeType": "YulExpressionStatement", + "src": "1818:34:70" + }, + { + "nativeSrc": "1861:10:70", + "nodeType": "YulVariableDeclaration", + "src": "1861:10:70", + "value": { + "kind": "number", + "nativeSrc": "1870:1:70", + "nodeType": "YulLiteral", + "src": "1870:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1865:1:70", + "nodeType": "YulTypedName", + "src": "1865:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1930:90:70", + "nodeType": "YulBlock", + "src": "1930:90:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1959:9:70", + "nodeType": "YulIdentifier", + "src": "1959:9:70" + }, + { + "name": "i", + "nativeSrc": "1970:1:70", + "nodeType": "YulIdentifier", + "src": "1970:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1955:3:70", + "nodeType": "YulIdentifier", + "src": "1955:3:70" + }, + "nativeSrc": "1955:17:70", + "nodeType": "YulFunctionCall", + "src": "1955:17:70" + }, + { + "kind": "number", + "nativeSrc": "1974:2:70", + "nodeType": "YulLiteral", + "src": "1974:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1951:3:70", + "nodeType": "YulIdentifier", + "src": "1951:3:70" + }, + "nativeSrc": "1951:26:70", + "nodeType": "YulFunctionCall", + "src": "1951:26:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1993:6:70", + "nodeType": "YulIdentifier", + "src": "1993:6:70" + }, + { + "name": "i", + "nativeSrc": "2001:1:70", + "nodeType": "YulIdentifier", + "src": "2001:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1989:3:70", + "nodeType": "YulIdentifier", + "src": "1989:3:70" + }, + "nativeSrc": "1989:14:70", + "nodeType": "YulFunctionCall", + "src": "1989:14:70" + }, + { + "kind": "number", + "nativeSrc": "2005:2:70", + "nodeType": "YulLiteral", + "src": "2005:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1985:3:70", + "nodeType": "YulIdentifier", + "src": "1985:3:70" + }, + "nativeSrc": "1985:23:70", + "nodeType": "YulFunctionCall", + "src": "1985:23:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1979:5:70", + "nodeType": "YulIdentifier", + "src": "1979:5:70" + }, + "nativeSrc": "1979:30:70", + "nodeType": "YulFunctionCall", + "src": "1979:30:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1944:6:70", + "nodeType": "YulIdentifier", + "src": "1944:6:70" + }, + "nativeSrc": "1944:66:70", + "nodeType": "YulFunctionCall", + "src": "1944:66:70" + }, + "nativeSrc": "1944:66:70", + "nodeType": "YulExpressionStatement", + "src": "1944:66:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1891:1:70", + "nodeType": "YulIdentifier", + "src": "1891:1:70" + }, + { + "name": "length", + "nativeSrc": "1894:6:70", + "nodeType": "YulIdentifier", + "src": "1894:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1888:2:70", + "nodeType": "YulIdentifier", + "src": "1888:2:70" + }, + "nativeSrc": "1888:13:70", + "nodeType": "YulFunctionCall", + "src": "1888:13:70" + }, + "nativeSrc": "1880:140:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1902:19:70", + "nodeType": "YulBlock", + "src": "1902:19:70", + "statements": [ + { + "nativeSrc": "1904:15:70", + "nodeType": "YulAssignment", + "src": "1904:15:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1913:1:70", + "nodeType": "YulIdentifier", + "src": "1913:1:70" + }, + { + "kind": "number", + "nativeSrc": "1916:2:70", + "nodeType": "YulLiteral", + "src": "1916:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1909:3:70", + "nodeType": "YulIdentifier", + "src": "1909:3:70" + }, + "nativeSrc": "1909:10:70", + "nodeType": "YulFunctionCall", + "src": "1909:10:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1904:1:70", + "nodeType": "YulIdentifier", + "src": "1904:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1884:3:70", + "nodeType": "YulBlock", + "src": "1884:3:70", + "statements": [] + }, + "src": "1880:140:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2044:9:70", + "nodeType": "YulIdentifier", + "src": "2044:9:70" + }, + { + "name": "length", + "nativeSrc": "2055:6:70", + "nodeType": "YulIdentifier", + "src": "2055:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2040:3:70", + "nodeType": "YulIdentifier", + "src": "2040:3:70" + }, + "nativeSrc": "2040:22:70", + "nodeType": "YulFunctionCall", + "src": "2040:22:70" + }, + { + "kind": "number", + "nativeSrc": "2064:2:70", + "nodeType": "YulLiteral", + "src": "2064:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2036:3:70", + "nodeType": "YulIdentifier", + "src": "2036:3:70" + }, + "nativeSrc": "2036:31:70", + "nodeType": "YulFunctionCall", + "src": "2036:31:70" + }, + { + "kind": "number", + "nativeSrc": "2069:1:70", + "nodeType": "YulLiteral", + "src": "2069:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2029:6:70", + "nodeType": "YulIdentifier", + "src": "2029:6:70" + }, + "nativeSrc": "2029:42:70", + "nodeType": "YulFunctionCall", + "src": "2029:42:70" + }, + "nativeSrc": "2029:42:70", + "nodeType": "YulExpressionStatement", + "src": "2029:42:70" + }, + { + "nativeSrc": "2080:62:70", + "nodeType": "YulAssignment", + "src": "2080:62:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2096:9:70", + "nodeType": "YulIdentifier", + "src": "2096:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2115:6:70", + "nodeType": "YulIdentifier", + "src": "2115:6:70" + }, + { + "kind": "number", + "nativeSrc": "2123:2:70", + "nodeType": "YulLiteral", + "src": "2123:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2111:3:70", + "nodeType": "YulIdentifier", + "src": "2111:3:70" + }, + "nativeSrc": "2111:15:70", + "nodeType": "YulFunctionCall", + "src": "2111:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2132:2:70", + "nodeType": "YulLiteral", + "src": "2132:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2128:3:70", + "nodeType": "YulIdentifier", + "src": "2128:3:70" + }, + "nativeSrc": "2128:7:70", + "nodeType": "YulFunctionCall", + "src": "2128:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2107:3:70", + "nodeType": "YulIdentifier", + "src": "2107:3:70" + }, + "nativeSrc": "2107:29:70", + "nodeType": "YulFunctionCall", + "src": "2107:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:70", + "nodeType": "YulIdentifier", + "src": "2092:3:70" + }, + "nativeSrc": "2092:45:70", + "nodeType": "YulFunctionCall", + "src": "2092:45:70" + }, + { + "kind": "number", + "nativeSrc": "2139:2:70", + "nodeType": "YulLiteral", + "src": "2139:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2088:3:70", + "nodeType": "YulIdentifier", + "src": "2088:3:70" + }, + "nativeSrc": "2088:54:70", + "nodeType": "YulFunctionCall", + "src": "2088:54:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2080:4:70", + "nodeType": "YulIdentifier", + "src": "2080:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "1623:525:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1711:9:70", + "nodeType": "YulTypedName", + "src": "1711:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1722:6:70", + "nodeType": "YulTypedName", + "src": "1722:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1733:4:70", + "nodeType": "YulTypedName", + "src": "1733:4:70", + "type": "" + } + ], + "src": "1623:525:70" + }, + { + "body": { + "nativeSrc": "2252:101:70", + "nodeType": "YulBlock", + "src": "2252:101:70", + "statements": [ + { + "nativeSrc": "2262:26:70", + "nodeType": "YulAssignment", + "src": "2262:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2274:9:70", + "nodeType": "YulIdentifier", + "src": "2274:9:70" + }, + { + "kind": "number", + "nativeSrc": "2285:2:70", + "nodeType": "YulLiteral", + "src": "2285:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2270:3:70", + "nodeType": "YulIdentifier", + "src": "2270:3:70" + }, + "nativeSrc": "2270:18:70", + "nodeType": "YulFunctionCall", + "src": "2270:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2262:4:70", + "nodeType": "YulIdentifier", + "src": "2262:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2304:9:70", + "nodeType": "YulIdentifier", + "src": "2304:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2319:6:70", + "nodeType": "YulIdentifier", + "src": "2319:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2335:2:70", + "nodeType": "YulLiteral", + "src": "2335:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "2339:1:70", + "nodeType": "YulLiteral", + "src": "2339:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2331:3:70", + "nodeType": "YulIdentifier", + "src": "2331:3:70" + }, + "nativeSrc": "2331:10:70", + "nodeType": "YulFunctionCall", + "src": "2331:10:70" + }, + { + "kind": "number", + "nativeSrc": "2343:1:70", + "nodeType": "YulLiteral", + "src": "2343:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2327:3:70", + "nodeType": "YulIdentifier", + "src": "2327:3:70" + }, + "nativeSrc": "2327:18:70", + "nodeType": "YulFunctionCall", + "src": "2327:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2315:3:70", + "nodeType": "YulIdentifier", + "src": "2315:3:70" + }, + "nativeSrc": "2315:31:70", + "nodeType": "YulFunctionCall", + "src": "2315:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2297:6:70", + "nodeType": "YulIdentifier", + "src": "2297:6:70" + }, + "nativeSrc": "2297:50:70", + "nodeType": "YulFunctionCall", + "src": "2297:50:70" + }, + "nativeSrc": "2297:50:70", + "nodeType": "YulExpressionStatement", + "src": "2297:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "2153:200:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2221:9:70", + "nodeType": "YulTypedName", + "src": "2221:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2232:6:70", + "nodeType": "YulTypedName", + "src": "2232:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2243:4:70", + "nodeType": "YulTypedName", + "src": "2243:4:70", + "type": "" + } + ], + "src": "2153:200:70" + } + ] + }, + "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": 70, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "6101c060405234801561001157600080fd5b50604051613b6e380380613b6e8339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516135f261057c60003960005050600050506000505060005050600050506000505060005050600050506000611f23015260006119cc01526135f26000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "opcodes": "PUSH2 0x1C0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3B6E CODESIZE SUB DUP1 PUSH2 0x3B6E 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 0x35F2 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 0x1F23 ADD MSTORE PUSH1 0x0 PUSH2 0x19CC ADD MSTORE PUSH2 0x35F2 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 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50B17AD EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x533E1BA EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xBC7344B EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x11BE1997 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x16972978 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x17337B46 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x1792F194 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x26058249 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x29E03FF1 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0x36167E03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x4BC5839A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x5AEA0EC4 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x5BF31D4D EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x6369DF6B EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x6CC6CDE1 EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x76C993AE EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0x8D4E9008 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x902A4938 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x9334EA52 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x93A90A1E EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x9F81A7CF EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0xB0E2F7E9 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xB0EEFABE EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xBB2A2B47 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xBE41F384 EQ PUSH2 0x419 JUMPI DUP1 PUSH4 0xC133B429 EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xC50A77B1 EQ PUSH2 0x44F JUMPI DUP1 PUSH4 0xC894222E EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xC9747F51 EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xCC2D55CD EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xD36FC9D4 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0xD76F62D1 EQ PUSH2 0x4B8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4CB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1D2 SWAP1 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B9 PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH2 0x263 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 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 DUP8 ADD SLOAD PUSH1 0x7 SWAP1 SWAP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND SWAP8 SWAP7 SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 PUSH1 0xFF DUP1 DUP5 AND SWAP5 PUSH2 0x100 SWAP1 SWAP5 DIV AND SWAP3 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB5 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x734 JUMP JUMPDEST PUSH2 0x1D2 PUSH3 0x7A120 DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x748 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH2 0x2BB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2D1 PUSH1 0x35 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E34 JUMP JUMPDEST PUSH2 0x9AE 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 PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x319 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x34E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E74 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x2BB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x2E8F JUMP JUMPDEST PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x2EAC JUMP JUMPDEST PUSH2 0xA24 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1D2 SWAP1 PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0xDE0 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E8F JUMP JUMPDEST PUSH2 0xEF0 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F1D JUMP JUMPDEST PUSH2 0xF01 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x1062 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x42C PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x44A CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x45D CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA4 JUMP JUMPDEST PUSH2 0x1141 JUMP JUMPDEST PUSH2 0x475 PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FE5 JUMP JUMPDEST PUSH2 0x11D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x13E2 JUMP JUMPDEST PUSH2 0x2D1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x42C PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x317C JUMP JUMPDEST PUSH2 0x14CD JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x4C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x31B2 JUMP JUMPDEST PUSH2 0x14F5 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x4D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x1506 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x509 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 0x513 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x56C JUMPI PUSH2 0x56C PUSH2 0x2D8B 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 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD DUP4 SWAP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x64D0C32B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5F6 DUP5 DUP3 DUP6 PUSH2 0x1541 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x606 PUSH2 0x15F2 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 0x62D JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x649 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x657 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x675 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x69E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6A7 DUP12 PUSH2 0x161B JUMP JUMPDEST PUSH2 0x6AF PUSH2 0x162C JUMP JUMPDEST PUSH2 0x6B8 DUP11 PUSH2 0x163C JUMP JUMPDEST PUSH2 0x6C1 DUP10 PUSH2 0x16AD JUMP JUMPDEST PUSH2 0x6CA DUP9 PUSH2 0x1736 JUMP JUMPDEST PUSH2 0x6D3 DUP8 PUSH2 0x1799 JUMP JUMPDEST PUSH2 0x6DC DUP7 PUSH2 0x180B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x727 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH2 0x71E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x73C PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1736 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0x752 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x774 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x7AF 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 0x7B9 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x7DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x809 JUMPI PUSH2 0x809 PUSH2 0x2D8B 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 0x843 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD TIMESTAMP LT ISZERO PUSH2 0x877 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D7753D5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x881 DUP5 DUP3 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8D3 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 0x8DD DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x92D JUMPI PUSH2 0x92D PUSH2 0x2D8B 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 0x967 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD DUP4 SWAP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x40 MLOAD PUSH4 0x64D0C32B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH2 0x9A9 DUP4 DUP3 PUSH2 0x194B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CF CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x9DD CALLER PUSH1 0x35 SLOAD DUP6 DUP6 PUSH2 0x1AA6 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E0 PUSH2 0x9FA CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1E28 JUMP JUMPDEST PUSH2 0xA07 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0xA11 PUSH1 0x0 PUSH2 0x1EC5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA1B PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA52 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP8 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x6C6567616379 PUSH1 0xD0 SHL PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x3A 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 PUSH1 0x0 PUSH2 0xAA0 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xACB SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE9 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 0xB0D SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST MLOAD SWAP1 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xC0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x34 SLOAD PUSH1 0xE0 DUP4 ADD SWAP2 PUSH2 0xBA1 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH2 0x330C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 SWAP2 DUP3 ADD DUP2 SWAP1 MSTORE DUP5 DUP2 MSTORE PUSH1 0x37 DUP3 MSTORE PUSH1 0x40 SWAP1 DUP2 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 SWAP4 DUP6 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD SWAP4 SWAP5 SWAP2 SWAP4 SWAP1 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP2 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0xC2F JUMPI PUSH2 0xC2F PUSH2 0x2D8B 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 0xC59 JUMPI PUSH2 0xC59 PUSH2 0x2D8B JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE PUSH1 0x0 PUSH2 0xC89 PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCB8347FE DUP4 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCAE SWAP3 SWAP2 SWAP1 PUSH2 0x3054 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 0xCDA SWAP3 SWAP2 SWAP1 PUSH2 0x3365 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xD29 DUP8 DUP7 PUSH2 0xD19 PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1F81 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE SWAP2 DUP2 ADD DUP8 SWAP1 MSTORE DUP2 DUP10 AND SWAP2 DUP5 AND SWAP1 DUP6 SWAP1 PUSH32 0x587A1FC7E80E653A2AB7F63F98C080F5818B8CEDCFD1374590C8C786290ED031 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x359D DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH1 0x40 MLOAD PUSH2 0xDB1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDD0 PUSH2 0x1FBC 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 0xE0B 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 0xE15 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xE37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0xE65 JUMPI PUSH2 0xE65 PUSH2 0x2D8B 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 0xE9F JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xEB8 DUP4 DUP3 PUSH2 0x1FE0 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD ISZERO PUSH2 0x9A9 JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x9A9 SWAP2 SWAP1 PUSH2 0x1FE0 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x205F JUMP JUMPDEST PUSH2 0xEF8 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0xF36 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xF58 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0xF86 JUMPI PUSH2 0xF86 PUSH2 0x2D8B 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 0xFC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD ISZERO ISZERO DUP6 SWAP1 PUSH2 0xFFA JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xD62C07 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1014 DUP7 DUP3 DUP8 PUSH2 0x1541 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x103D JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1038 SWAP2 SWAP1 DUP6 PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x105A JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x105A SWAP2 SWAP1 PUSH2 0x1FE0 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x106A PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x163C 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 0x10A1 JUMPI PUSH2 0x10A1 PUSH2 0x2D8B JUMP JUMPDEST EQ ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10B4 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP5 PUSH2 0x10CB PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E8 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1106 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 0x112A SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST SWAP1 POP PUSH2 0x113A DUP4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1152 CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH2 0x9DD CALLER PUSH1 0x35 SLOAD PUSH2 0x1198 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 0x2165 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 0x22A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH2 0x121D 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 0x2165 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1260 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 0x2165 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH2 0x126C DUP3 DUP3 PUSH2 0x25A4 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 0x12CB 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 0x535 JUMP JUMPDEST POP POP POP POP POP POP PUSH2 0x12E0 CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1332 DUP5 PUSH1 0x2 PUSH1 0x35 SLOAD PUSH2 0x12F5 SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST 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 0x22A5 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1386 DUP6 PUSH1 0x2 PUSH1 0x35 SLOAD PUSH2 0x1349 SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST 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 0x22A5 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 0x13EE DUP4 PUSH2 0x25D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13FA PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1425 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1443 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 0x1467 SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1495 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP2 DUP2 EQ PUSH2 0x14C3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA24CFE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9DD PUSH2 0x14E1 CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x14F0 CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x25A4 JUMP JUMPDEST PUSH2 0x14FD PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x16AD JUMP JUMPDEST PUSH2 0x150E PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1538 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1EC5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1562 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x265E JUMP JUMPDEST PUSH1 0x4 DUP5 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 SWAP3 POP PUSH2 0x15A2 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x159A SWAP1 DUP5 PUSH2 0x330C JUMP JUMPDEST PUSH2 0xD19 PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x359D DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 PUSH2 0x15DB SWAP1 DUP7 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x9E0 JUMP JUMPDEST PUSH2 0x1623 PUSH2 0x280F JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x1634 PUSH2 0x280F JUMP JUMPDEST PUSH2 0xA11 PUSH2 0x283C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1663 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 0x16D7 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 PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x310462A9BF49FFF4A57910EC647C77CBF8AAF2F13394554AC6CDF14FC68DB7E6 SWAP1 PUSH2 0x172B SWAP1 DUP4 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP1 PUSH8 0xDE0B6B3A7640000 DUP2 LT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x40 MLOAD PUSH4 0x33F4E05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 PUSH2 0x172B JUMP JUMPDEST DUP1 PUSH3 0x7A120 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x432E6643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC573DC0F869F6A1D0A74FC7712A63BAABCB5567131D2D98005E163924EDDCBAB SWAP1 PUSH2 0x172B SWAP1 DUP4 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x1837 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E9374FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x20 SHL 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 PUSH32 0x7EFAF01BEC3CDA8D104163BB466D01D7E16F68848301C7EB0749CFA59D680502 SWAP4 PUSH2 0x172B SWAP4 SWAP3 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 PUSH2 0x2CAC JUMP JUMPDEST CALLER PUSH2 0x189B PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA11 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x500 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x18F5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xD19 PUSH2 0x19CA 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 DUP5 SWAP1 PUSH32 0x223103F8EB52E5F43A75655152ACD882A605D70DF57A5C0FEFD30F516B1756D2 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x197C SWAP1 PUSH2 0x196D PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x290E 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 DUP5 SWAP1 PUSH32 0x2226EBD23625A7938FB786DF2248BD171D2E6AD70CB2B654EA1BE830CA17224D SWAP1 PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 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 JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A4A 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 0x1A6E SWAP2 SWAP1 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x9A9 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 0x535 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 0x1AED DUP2 PUSH2 0x1073 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x1B10 JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1B1B PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B4B SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B69 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 0x1B8D SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1BBB JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1BC6 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP4 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF3 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C11 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 0x1C35 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x1C5A 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 0x1C6A DUP4 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x34 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1C8D SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP16 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP14 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 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x37 DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP5 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 SWAP4 DUP7 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 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 0x1D64 JUMPI PUSH2 0x1D64 PUSH2 0x2D8B 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 0x1D8E JUMPI PUSH2 0x1D8E PUSH2 0x2D8B JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE DUP5 MLOAD PUSH1 0x40 DUP1 MLOAD DUP14 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP16 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 PUSH32 0x8A1ECCECCE948A912E2E195DE5960359755AEAC90AD88A3FDE55A77E1A73796B SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP5 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP 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 0x1ECF PUSH2 0x1FBC 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 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F71 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD088B4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 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 PUSH2 0x1A2B JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x300 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x2011 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xD19 PUSH2 0x19CA 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 DUP5 SWAP1 PUSH32 0xF0912EFB86EA1D65A17D64D48393CDB1CA0EA5220DD2BBE438621199D30955B7 SWAP1 PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2086 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 PUSH1 0x0 DUP1 PUSH2 0x20DB PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x561285E4 DUP6 PUSH2 0x20F2 PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x210F SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x212C 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 0x2150 SWAP2 SWAP1 PUSH2 0x34A5 JUMP JUMPDEST MLOAD SWAP1 POP PUSH2 0x215D DUP2 DUP5 PUSH2 0x330C JUMP JUMPDEST SWAP5 SWAP4 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 0x21A4 PUSH1 0x20 DUP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21AE SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21B9 SWAP1 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 EQ SWAP1 PUSH1 0x1 PUSH2 0x21CC PUSH1 0x20 DUP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21D6 SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21E1 SWAP1 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x2202 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x221D SWAP2 SWAP1 PUSH2 0x3524 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2230 DUP7 PUSH1 0x60 PUSH2 0x296E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2249 DUP8 PUSH2 0x2244 PUSH1 0x20 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x296E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x226D DUP9 PUSH1 0x20 PUSH2 0x225E DUP2 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x2268 SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x29B9 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 0x22B1 DUP5 PUSH2 0x13E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22BD PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP4 PUSH2 0x22D4 PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F1 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x230F 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 0x2333 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x2358 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 0x23C1 DUP2 PUSH2 0x1073 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x23E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x23F5 DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x34 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2418 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 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 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x37 DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP5 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 SWAP4 DUP7 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 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 0x24ED JUMPI PUSH2 0x24ED PUSH2 0x2D8B 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 0x2517 JUMPI PUSH2 0x2517 PUSH2 0x2D8B 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 PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE SWAP1 POP POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH32 0xFB70FAF7306B83C2CEC6D8C1627BAAD892CB79968A02CC0353174499ECFD8B35 DUP13 DUP13 PUSH1 0x40 ADD MLOAD DUP13 DUP8 DUP10 PUSH1 0x40 MLOAD PUSH2 0x258E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3552 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP2 EQ DUP1 ISZERO PUSH2 0x25BF JUMPI POP DUP2 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x9DD 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 0x2605 DUP3 PUSH2 0x1E28 JUMP JUMPDEST SWAP1 POP PUSH2 0x215D DUP2 DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x264A 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 0x2A04 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2669 PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2675 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP8 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26A2 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C0 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 0x26E4 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2709 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x2A2E AND JUMP JUMPDEST SWAP1 POP DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x271A JUMPI POP DUP1 DUP7 GT ISZERO JUMPDEST DUP7 DUP3 SWAP1 SWAP2 PUSH2 0x273D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC6B7C41 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP PUSH1 0x0 PUSH2 0x274F DUP8 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2A8E JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x36 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x2770 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x2A8E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x277E DUP3 DUP5 PUSH2 0x2A2E JUMP JUMPDEST SWAP1 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCB8347FE DUP12 DUP12 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27A3 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 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 0x27CF SWAP3 SWAP2 SWAP1 PUSH2 0x3365 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2817 PUSH2 0x2AA5 JUMP JUMPDEST PUSH2 0xA11 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x150E PUSH2 0x280F JUMP JUMPDEST PUSH2 0x2844 PUSH2 0x280F 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 DUP1 ISZERO PUSH2 0x296A 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 0x2956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x105A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x297B PUSH1 0x20 DUP4 PUSH2 0x330C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x298D PUSH1 0x20 DUP6 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x29AE JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C6 PUSH1 0x1 DUP4 PUSH2 0x330C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x29D8 PUSH1 0x1 DUP6 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x29F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A14 DUP7 DUP7 PUSH2 0x2ABF JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2A24 DUP3 DUP3 PUSH2 0x2B0C JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A3D DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x2A50 JUMPI POP PUSH2 0x2A50 DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x2A84 DUP4 DUP6 PUSH2 0x3585 JUMP JUMPDEST PUSH2 0x9DD SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x2A9E JUMPI DUP2 PUSH2 0x9DD JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AAF PUSH2 0x15F2 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 0x2AF9 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2AEB DUP9 DUP3 DUP6 DUP6 PUSH2 0x2BC5 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x2B05 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 0x2B20 JUMPI PUSH2 0x2B20 PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B29 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2B3D JUMPI PUSH2 0x2B3D PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B5B 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 0x2B6F JUMPI PUSH2 0x2B6F PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x535 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2BA4 JUMPI PUSH2 0x2BA4 PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x296A JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x535 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x2BF6 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2C80 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 0x2C4A 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 0x2C76 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2C80 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 0x2C9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF 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 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2D1D DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH2 0x2D2D DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x2D3D DUP2 PUSH2 0x2CD2 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x2D54 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x2D64 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D84 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 0x2DB1 JUMPI PUSH2 0x2DB1 PUSH2 0x2D8B JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE DUP10 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH2 0x120 DUP2 ADD PUSH1 0x4 DUP8 LT PUSH2 0x2DEC JUMPI PUSH2 0x2DEC PUSH2 0x2D8B JUMP JUMPDEST DUP7 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2DFF PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2DA1 JUMP JUMPDEST DUP5 PUSH1 0xC0 DUP4 ADD MSTORE DUP4 PUSH1 0xE0 DUP4 ADD MSTORE DUP3 PUSH2 0x100 DUP4 ADD MSTORE SWAP11 SWAP10 POP POP POP POP 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 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2E52 DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CE7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2ECD DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2EDD DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CBD JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F4C DUP2 PUSH2 0x2F0F JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2F6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FD9 DUP6 DUP3 DUP7 ADD PUSH2 0x2F5C 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 0x2FFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x301D DUP8 DUP3 DUP9 ADD PUSH2 0x2F5C 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 0x303C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3048 DUP8 DUP3 DUP9 ADD PUSH2 0x2F5C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 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 0x3092 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 0x3092 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3092 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x310D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x3118 PUSH2 0x3062 JUMP JUMPDEST DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x3157 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3176 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x180 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x319A DUP5 DUP5 PUSH2 0x3164 JUMP JUMPDEST SWAP2 POP PUSH2 0x31A9 DUP5 PUSH1 0xC0 DUP6 ADD PUSH2 0x3164 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CD2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E0 DUP3 DUP5 PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x31F0 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 0x3222 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 DUP1 MLOAD PUSH2 0x3253 DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3273 PUSH2 0x3098 JUMP JUMPDEST SWAP1 POP PUSH2 0x327E DUP3 PUSH2 0x3248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 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 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9DD DUP4 DUP4 PUSH2 0x3258 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 0x9E0 JUMPI PUSH2 0x9E0 PUSH2 0x32F6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3345 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x3329 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 0x215D SWAP1 DUP4 ADD DUP5 PUSH2 0x331F 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 0x3253 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3253 DUP2 PUSH2 0x2CD2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x33CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x33D8 PUSH2 0x30C9 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 0x33FC PUSH1 0x60 DUP6 ADD PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x340D PUSH1 0x80 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x341E PUSH1 0xA0 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x342F PUSH1 0xC0 DUP6 ADD PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x3440 PUSH1 0xE0 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3483 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x349A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x113A DUP2 PUSH2 0x2F0F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x34B8 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 0x34EA 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 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3539 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 DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3571 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x331F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x9E0 JUMPI PUSH2 0x9E0 PUSH2 0x32F6 JUMP INVALID PUSH14 0x800AAAF64B9A1F321DCD63DA0436 SWAP14 CALLER 0xD8 LOG0 0xD4 SWAP11 0xD0 0xFB 0xBA ADDMOD GAS 0xAB BLOBBASEFEE SWAP9 0xBF BALANCE 0xC4 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 SIGNEXTEND RETURNDATASIZE 0xEC 0x1E TSTORE 0x2D SAR EQ SMOD CALLER 0xDC 0xA7 0xD5 AND CODECOPY STOP 0xC1 0xFC DUP9 0x29 SELFBALANCE 0xB3 KECCAK256 DUP9 PUSH5 0x910C6F452D 0xE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "2323:25016:55:-:0;;;3976:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4023:10;-1:-1:-1;;;;;4355:24:37;;4347:81;;;;-1:-1:-1;;;4347:81:37;;510:2:70;4347:81:37;;;492:21:70;549:2;529:18;;;522:30;-1:-1:-1;;;568:18:70;;;561:40;618:18;;4347:81:37;;;;;;;;;-1:-1:-1;;;;;4439:42:37;;;;4517:40;;;;;;;;;;;;-1:-1:-1;;;4517:40:37;;;;;;:26;:40::i;:::-;-1:-1:-1;;;;;4491:67:37;;;4600:37;;;;;;;;;;;;-1:-1:-1;;;4600:37:37;;;;;;:26;:37::i;:::-;-1:-1:-1;;;;;4568:70:37;;;4680:43;;;;;;;;;;;;-1:-1:-1;;;4680:43:37;;;;;;:26;:43::i;:::-;-1:-1:-1;;;;;4648:76:37;;;4774:44;;;;;;;;;;;;-1:-1:-1;;;4774:44:37;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4734:85:37;;;4865:42;;;;;;;;;;;;-1:-1:-1;;;4865:42:37;;;;;;:26;:42::i;:::-;-1:-1:-1;;;;;4829:79:37;;;4958:44;;;;;;;;;;;;-1:-1:-1;;;4958:44:37;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4918:85:37;;;5049:47;;;;;;;;;;;;-1:-1:-1;;;5049:47:37;;;;;;:26;:47::i;:::-;-1:-1:-1;;;;;5013:84:37;;;5144:45;;;;;;;;;;;;-1:-1:-1;;;5144:45:37;;;;;;:26;:45::i;:::-;-1:-1:-1;;;;;5107:83:37;;;5227:38;;;;;;;;;;;;-1:-1:-1;;;5227:38:37;;;;;;:26;:38::i;:::-;-1:-1:-1;;;;;5200:66:37;;;;;;;5480:16;;5363:13;;5329:11;;5399:14;;5436:21;;5519:19;;5561:21;;5605:19;;5647:17;;5282:430;;;;;;;;;;;;;;;;;;;5647:17;;-1:-1:-1;;;;;980:32:70;;;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;5282:430:37;;;;;;;;-1:-1:-1;4045:22:55::1;:20;:22::i;:::-;3976:98:::0;2323:25016;;8217:326:37;8303:7;8322:23;8348:16;;-1:-1:-1;;;;;8348:33:37;;8392:13;8382:24;;;;;;8348:59;;;;;;;;;;;;;1587:25:70;;1575:2;1560:18;;1441:177;8348:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8322:85;-1:-1:-1;8489:13:37;-1:-1:-1;;;;;8425:29:37;;8417:87;;;;-1:-1:-1;;;8417:87:37;;;;;;;;:::i;:::-;-1:-1:-1;8521:15:37;8217:326;-1:-1:-1;;8217:326:37:o;7709:422:39:-;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:39;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:39;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:39;-1:-1:-1;;;;;8033:33:39;;;;;8085:29;;2297:50:70;;;8085:29:39;;2285:2:70;2270:18;8085:29:39;;;;;;;7979:146;7758:373;7709:422::o;14:290:70:-;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:70;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:70: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::-;2323:25016:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MAX_FISHERMAN_REWARD_CUT_11901": { + "entryPoint": null, + "id": 11901, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@MIN_DISPUTE_DEPOSIT_11905": { + "entryPoint": null, + "id": 11905, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__AttestationManager_init_17454": { + "entryPoint": 5676, + "id": 17454, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__AttestationManager_init_unchained_17479": { + "entryPoint": 10300, + "id": 17479, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__Ownable_init_4983": { + "entryPoint": 5659, + "id": 4983, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Ownable_init_unchained_5010": { + "entryPoint": 10292, + "id": 5010, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_acceptDispute_13118": { + "entryPoint": 5441, + "id": 13118, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_cancelDispute_13227": { + "entryPoint": 6340, + "id": 13227, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkInitializing_5299": { + "entryPoint": 10255, + "id": 5299, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_5051": { + "entryPoint": 6290, + "id": 5051, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_createIndexingDisputeWithAllocation_13065": { + "entryPoint": 6822, + "id": 13065, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_createQueryDisputeWithAttestation_12923": { + "entryPoint": 8869, + "id": 12923, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_drawDispute_13190": { + "entryPoint": 8160, + "id": 13190, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_encodeReceipt_17554": { + "entryPoint": 7720, + "id": 17554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getInitializableStorage_5390": { + "entryPoint": 5618, + "id": 5390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnableStorage_4954": { + "entryPoint": 8124, + "id": 4954, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getStakeSnapshot_13541": { + "entryPoint": 8400, + "id": 13541, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_getSubgraphService_13494": { + "entryPoint": 8005, + "id": 13494, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphStaking_4815": { + "entryPoint": 7969, + "id": 4815, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphToken_4805": { + "entryPoint": 6602, + "id": 4805, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5376": { + "entryPoint": null, + "id": 5376, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isDisputeInConflict_13512": { + "entryPoint": null, + "id": 13512, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isInitializing_5367": { + "entryPoint": 10917, + "id": 5367, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_msgSender_5419": { + "entryPoint": null, + "id": 5419, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_recoverSigner_17524": { + "entryPoint": 9685, + "id": 17524, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_rejectDispute_13153": { + "entryPoint": 6475, + "id": 13153, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setArbitrator_13346": { + "entryPoint": 5692, + "id": 13346, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setDisputeDeposit_13393": { + "entryPoint": 5942, + "id": 13393, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setDisputePeriod_13369": { + "entryPoint": 5805, + "id": 13369, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setFishermanRewardCut_13417": { + "entryPoint": 6041, + "id": 13417, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setMaxSlashingCut_13442": { + "entryPoint": 6155, + "id": 13442, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setSubgraphService_13470": { + "entryPoint": 8287, + "id": 13470, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_slashIndexer_13320": { + "entryPoint": 9822, + "id": 13320, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_throwError_8230": { + "entryPoint": 11020, + "id": 8230, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_toBytes32_16289": { + "entryPoint": 10606, + "id": 16289, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_toUint8_16256": { + "entryPoint": 10681, + "id": 16256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_transferOwnership_5122": { + "entryPoint": 7877, + "id": 5122, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@acceptDisputeConflict_12431": { + "entryPoint": 3841, + "id": 12431, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@acceptDispute_12365": { + "entryPoint": 1246, + "id": 12365, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@arbitrator_13556": { + "entryPoint": null, + "id": 13556, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@areConflictingAttestations_12726": { + "entryPoint": 5325, + "id": 12726, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@areConflicting_16153": { + "entryPoint": 9636, + "id": 16153, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@burnTokens_839": { + "entryPoint": 10510, + "id": 839, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@cancelDispute_12555": { + "entryPoint": 1864, + "id": 12555, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@createAndAcceptLegacyDispute_12325": { + "entryPoint": 2596, + "id": 12325, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@createIndexingDispute_12068": { + "entryPoint": 2478, + "id": 12068, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@createQueryDisputeConflict_12211": { + "entryPoint": 4564, + "id": 12211, + "parameterSlots": 4, + "returnSlots": 2 + }, + "@createQueryDispute_12097": { + "entryPoint": 4417, + "id": 12097, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@disputeDeposit_13562": { + "entryPoint": null, + "id": 13562, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@disputePeriod_13559": { + "entryPoint": null, + "id": 13559, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@disputes_13574": { + "entryPoint": null, + "id": 13574, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@drawDispute_12505": { + "entryPoint": 3552, + "id": 12505, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@encodeReceipt_12654": { + "entryPoint": 2534, + "id": 12654, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@fishermanRewardCut_13565": { + "entryPoint": null, + "id": 13565, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@getAttestationIndexer_12783": { + "entryPoint": 5090, + "id": 12783, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getDisputePeriod_12674": { + "entryPoint": null, + "id": 12674, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getFishermanRewardCut_12664": { + "entryPoint": null, + "id": 12664, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getStakeSnapshot_12706": { + "entryPoint": 4265, + "id": 12706, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@initialize_12040": { + "entryPoint": 1532, + "id": 12040, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@isDisputeCreated_12801": { + "entryPoint": 4211, + "id": 12801, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isValidPPM_4538": { + "entryPoint": null, + "id": 4538, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@maxSlashingCut_13568": { + "entryPoint": null, + "id": 13568, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@min_4423": { + "entryPoint": 10894, + "id": 4423, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mulPPM_4496": { + "entryPoint": 10798, + "id": 4496, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_5034": { + "entryPoint": 3525, + "id": 5034, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@parse_16223": { + "entryPoint": 8549, + "id": 16223, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@pullTokens_792": { + "entryPoint": 6638, + "id": 792, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@pushTokens_818": { + "entryPoint": 8065, + "id": 818, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@recover_7987": { + "entryPoint": 10756, + "id": 7987, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@rejectDispute_12466": { + "entryPoint": 2216, + "id": 12466, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@renounceOwnership_5065": { + "entryPoint": 2559, + "id": 5065, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setArbitrator_12569": { + "entryPoint": 4194, + "id": 12569, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setDisputeDeposit_12597": { + "entryPoint": 1844, + "id": 12597, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setDisputePeriod_12583": { + "entryPoint": 5365, + "id": 12583, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFishermanRewardCut_12611": { + "entryPoint": 2579, + "id": 12611, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMaxSlashingCut_12625": { + "entryPoint": 3824, + "id": 12625, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setSubgraphService_12639": { + "entryPoint": 3807, + "id": 12639, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@subgraphService_13553": { + "entryPoint": null, + "id": 13553, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferOwnership_5093": { + "entryPoint": 5382, + "id": 5093, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@tryRecover_7957": { + "entryPoint": 10943, + "id": 7957, + "parameterSlots": 2, + "returnSlots": 3 + }, + "@tryRecover_8145": { + "entryPoint": 11205, + "id": 8145, + "parameterSlots": 4, + "returnSlots": 3 + }, + "abi_decode_address_fromMemory": { + "entryPoint": 12872, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_bytes_calldata": { + "entryPoint": 12124, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_struct_Allocation_fromMemory": { + "entryPoint": 12888, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_struct_State_calldata": { + "entryPoint": 12644, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 12018, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256": { + "entryPoint": 11948, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_addresst_uint64t_uint256t_uint32t_uint32": { + "entryPoint": 11513, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_bytes32": { + "entryPoint": 11828, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 13448, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 11634, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_bytes32t_bytes32_fromMemory": { + "entryPoint": 13604, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bytes32t_uint256": { + "entryPoint": 11402, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32t_uint256t_boolt_uint256": { + "entryPoint": 12061, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bytes_calldata_ptr": { + "entryPoint": 12196, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr": { + "entryPoint": 12261, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_struct$_Allocation_$3073_memory_ptr_fromMemory": { + "entryPoint": 13017, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_DelegationPool_$3992_memory_ptr_fromMemory": { + "entryPoint": 13477, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Provision_$3962_memory_ptr_fromMemory": { + "entryPoint": 13241, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Receipt_$16044_calldata_ptr": { + "entryPoint": 11892, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Receipt_$16044_memory_ptr": { + "entryPoint": 12765, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_State_$15663_memory_ptr_fromMemory": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_State_$16058_calldata_ptrt_struct$_State_$16058_calldata_ptr": { + "entryPoint": 12668, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_State_$16058_memory_ptr": { + "entryPoint": 12538, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint32": { + "entryPoint": 11919, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint64": { + "entryPoint": 12722, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_uint32_fromMemory": { + "entryPoint": 13219, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_uint64_fromMemory": { + "entryPoint": 13230, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_bytes": { + "entryPoint": 13087, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_enum_DisputeStatus": { + "entryPoint": 11681, + "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_address_t_stringliteral_b7ccb6878fbded310d2d05350bca9c84568ecb568d4b626c83e0508c3193ce89__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "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": 13193, + "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_$14913_t_enum$_DisputeStatus_$14921_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 11701, + "id": null, + "parameterSlots": 10, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13157, + "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_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "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": 12372, + "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_$15634__to_t_address__fromStack_reversed": { + "entryPoint": 11808, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_enum$_DisputeStatus_$14921__to_t_uint8__fromStack_reversed": { + "entryPoint": 12751, + "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_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 13650, + "id": null, + "parameterSlots": 6, + "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": 11436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": 11872, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 12386, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_2390": { + "entryPoint": 12440, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_2392": { + "entryPoint": 12489, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 13068, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 13414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 13701, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 13046, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 11659, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_address": { + "entryPoint": 11453, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_bool": { + "entryPoint": 12047, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint32": { + "entryPoint": 11495, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint64": { + "entryPoint": 11474, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:26391:70", + "nodeType": "YulBlock", + "src": "0:26391:70", + "statements": [ + { + "nativeSrc": "6:3:70", + "nodeType": "YulBlock", + "src": "6:3:70", + "statements": [] + }, + { + "body": { + "nativeSrc": "101:259:70", + "nodeType": "YulBlock", + "src": "101:259:70", + "statements": [ + { + "body": { + "nativeSrc": "147:16:70", + "nodeType": "YulBlock", + "src": "147:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "156:1:70", + "nodeType": "YulLiteral", + "src": "156:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "159:1:70", + "nodeType": "YulLiteral", + "src": "159:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "149:6:70", + "nodeType": "YulIdentifier", + "src": "149:6:70" + }, + "nativeSrc": "149:12:70", + "nodeType": "YulFunctionCall", + "src": "149:12:70" + }, + "nativeSrc": "149:12:70", + "nodeType": "YulExpressionStatement", + "src": "149:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "122:7:70", + "nodeType": "YulIdentifier", + "src": "122:7:70" + }, + { + "name": "headStart", + "nativeSrc": "131:9:70", + "nodeType": "YulIdentifier", + "src": "131:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "118:3:70", + "nodeType": "YulIdentifier", + "src": "118:3:70" + }, + "nativeSrc": "118:23:70", + "nodeType": "YulFunctionCall", + "src": "118:23:70" + }, + { + "kind": "number", + "nativeSrc": "143:2:70", + "nodeType": "YulLiteral", + "src": "143:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "114:3:70", + "nodeType": "YulIdentifier", + "src": "114:3:70" + }, + "nativeSrc": "114:32:70", + "nodeType": "YulFunctionCall", + "src": "114:32:70" + }, + "nativeSrc": "111:52:70", + "nodeType": "YulIf", + "src": "111:52:70" + }, + { + "nativeSrc": "172:14:70", + "nodeType": "YulVariableDeclaration", + "src": "172:14:70", + "value": { + "kind": "number", + "nativeSrc": "185:1:70", + "nodeType": "YulLiteral", + "src": "185:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "176:5:70", + "nodeType": "YulTypedName", + "src": "176:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "195:32:70", + "nodeType": "YulAssignment", + "src": "195:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "217:9:70", + "nodeType": "YulIdentifier", + "src": "217:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "204:12:70", + "nodeType": "YulIdentifier", + "src": "204:12:70" + }, + "nativeSrc": "204:23:70", + "nodeType": "YulFunctionCall", + "src": "204:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "195:5:70", + "nodeType": "YulIdentifier", + "src": "195:5:70" + } + ] + }, + { + "nativeSrc": "236:15:70", + "nodeType": "YulAssignment", + "src": "236:15:70", + "value": { + "name": "value", + "nativeSrc": "246:5:70", + "nodeType": "YulIdentifier", + "src": "246:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "236:6:70", + "nodeType": "YulIdentifier", + "src": "236:6:70" + } + ] + }, + { + "nativeSrc": "260:16:70", + "nodeType": "YulVariableDeclaration", + "src": "260:16:70", + "value": { + "kind": "number", + "nativeSrc": "275:1:70", + "nodeType": "YulLiteral", + "src": "275:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "264:7:70", + "nodeType": "YulTypedName", + "src": "264:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "285:43:70", + "nodeType": "YulAssignment", + "src": "285:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "313:9:70", + "nodeType": "YulIdentifier", + "src": "313:9:70" + }, + { + "kind": "number", + "nativeSrc": "324:2:70", + "nodeType": "YulLiteral", + "src": "324:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "309:3:70", + "nodeType": "YulIdentifier", + "src": "309:3:70" + }, + "nativeSrc": "309:18:70", + "nodeType": "YulFunctionCall", + "src": "309:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "296:12:70", + "nodeType": "YulIdentifier", + "src": "296:12:70" + }, + "nativeSrc": "296:32:70", + "nodeType": "YulFunctionCall", + "src": "296:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "285:7:70", + "nodeType": "YulIdentifier", + "src": "285:7:70" + } + ] + }, + { + "nativeSrc": "337:17:70", + "nodeType": "YulAssignment", + "src": "337:17:70", + "value": { + "name": "value_1", + "nativeSrc": "347:7:70", + "nodeType": "YulIdentifier", + "src": "347:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "337:6:70", + "nodeType": "YulIdentifier", + "src": "337:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nativeSrc": "14:346:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "59:9:70", + "nodeType": "YulTypedName", + "src": "59:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "70:7:70", + "nodeType": "YulTypedName", + "src": "70:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "82:6:70", + "nodeType": "YulTypedName", + "src": "82:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "90:6:70", + "nodeType": "YulTypedName", + "src": "90:6:70", + "type": "" + } + ], + "src": "14:346:70" + }, + { + "body": { + "nativeSrc": "464:93:70", + "nodeType": "YulBlock", + "src": "464:93:70", + "statements": [ + { + "nativeSrc": "474:26:70", + "nodeType": "YulAssignment", + "src": "474:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "486:9:70", + "nodeType": "YulIdentifier", + "src": "486:9:70" + }, + { + "kind": "number", + "nativeSrc": "497:2:70", + "nodeType": "YulLiteral", + "src": "497:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "482:3:70", + "nodeType": "YulIdentifier", + "src": "482:3:70" + }, + "nativeSrc": "482:18:70", + "nodeType": "YulFunctionCall", + "src": "482:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "474:4:70", + "nodeType": "YulIdentifier", + "src": "474:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "516:9:70", + "nodeType": "YulIdentifier", + "src": "516:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "531:6:70", + "nodeType": "YulIdentifier", + "src": "531:6:70" + }, + { + "kind": "number", + "nativeSrc": "539:10:70", + "nodeType": "YulLiteral", + "src": "539:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "527:3:70", + "nodeType": "YulIdentifier", + "src": "527:3:70" + }, + "nativeSrc": "527:23:70", + "nodeType": "YulFunctionCall", + "src": "527:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "509:6:70", + "nodeType": "YulIdentifier", + "src": "509:6:70" + }, + "nativeSrc": "509:42:70", + "nodeType": "YulFunctionCall", + "src": "509:42:70" + }, + "nativeSrc": "509:42:70", + "nodeType": "YulExpressionStatement", + "src": "509:42:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed", + "nativeSrc": "365:192:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "433:9:70", + "nodeType": "YulTypedName", + "src": "433:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "444:6:70", + "nodeType": "YulTypedName", + "src": "444:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "455:4:70", + "nodeType": "YulTypedName", + "src": "455:4:70", + "type": "" + } + ], + "src": "365:192:70" + }, + { + "body": { + "nativeSrc": "607:86:70", + "nodeType": "YulBlock", + "src": "607:86:70", + "statements": [ + { + "body": { + "nativeSrc": "671:16:70", + "nodeType": "YulBlock", + "src": "671:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "680:1:70", + "nodeType": "YulLiteral", + "src": "680:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "683:1:70", + "nodeType": "YulLiteral", + "src": "683:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "673:6:70", + "nodeType": "YulIdentifier", + "src": "673:6:70" + }, + "nativeSrc": "673:12:70", + "nodeType": "YulFunctionCall", + "src": "673:12:70" + }, + "nativeSrc": "673:12:70", + "nodeType": "YulExpressionStatement", + "src": "673:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "630:5:70", + "nodeType": "YulIdentifier", + "src": "630:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "641:5:70", + "nodeType": "YulIdentifier", + "src": "641:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "656:3:70", + "nodeType": "YulLiteral", + "src": "656:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "661:1:70", + "nodeType": "YulLiteral", + "src": "661:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "652:3:70", + "nodeType": "YulIdentifier", + "src": "652:3:70" + }, + "nativeSrc": "652:11:70", + "nodeType": "YulFunctionCall", + "src": "652:11:70" + }, + { + "kind": "number", + "nativeSrc": "665:1:70", + "nodeType": "YulLiteral", + "src": "665:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "648:3:70", + "nodeType": "YulIdentifier", + "src": "648:3:70" + }, + "nativeSrc": "648:19:70", + "nodeType": "YulFunctionCall", + "src": "648:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "637:3:70", + "nodeType": "YulIdentifier", + "src": "637:3:70" + }, + "nativeSrc": "637:31:70", + "nodeType": "YulFunctionCall", + "src": "637:31:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "627:2:70", + "nodeType": "YulIdentifier", + "src": "627:2:70" + }, + "nativeSrc": "627:42:70", + "nodeType": "YulFunctionCall", + "src": "627:42:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "620:6:70", + "nodeType": "YulIdentifier", + "src": "620:6:70" + }, + "nativeSrc": "620:50:70", + "nodeType": "YulFunctionCall", + "src": "620:50:70" + }, + "nativeSrc": "617:70:70", + "nodeType": "YulIf", + "src": "617:70:70" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "562:131:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "596:5:70", + "nodeType": "YulTypedName", + "src": "596:5:70", + "type": "" + } + ], + "src": "562:131:70" + }, + { + "body": { + "nativeSrc": "742:85:70", + "nodeType": "YulBlock", + "src": "742:85:70", + "statements": [ + { + "body": { + "nativeSrc": "805:16:70", + "nodeType": "YulBlock", + "src": "805:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "814:1:70", + "nodeType": "YulLiteral", + "src": "814:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "817:1:70", + "nodeType": "YulLiteral", + "src": "817:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "807:6:70", + "nodeType": "YulIdentifier", + "src": "807:6:70" + }, + "nativeSrc": "807:12:70", + "nodeType": "YulFunctionCall", + "src": "807:12:70" + }, + "nativeSrc": "807:12:70", + "nodeType": "YulExpressionStatement", + "src": "807:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "765:5:70", + "nodeType": "YulIdentifier", + "src": "765:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "776:5:70", + "nodeType": "YulIdentifier", + "src": "776:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "791:2:70", + "nodeType": "YulLiteral", + "src": "791:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "795:1:70", + "nodeType": "YulLiteral", + "src": "795:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "787:3:70", + "nodeType": "YulIdentifier", + "src": "787:3:70" + }, + "nativeSrc": "787:10:70", + "nodeType": "YulFunctionCall", + "src": "787:10:70" + }, + { + "kind": "number", + "nativeSrc": "799:1:70", + "nodeType": "YulLiteral", + "src": "799:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "783:3:70", + "nodeType": "YulIdentifier", + "src": "783:3:70" + }, + "nativeSrc": "783:18:70", + "nodeType": "YulFunctionCall", + "src": "783:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "772:3:70", + "nodeType": "YulIdentifier", + "src": "772:3:70" + }, + "nativeSrc": "772:30:70", + "nodeType": "YulFunctionCall", + "src": "772:30:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "762:2:70", + "nodeType": "YulIdentifier", + "src": "762:2:70" + }, + "nativeSrc": "762:41:70", + "nodeType": "YulFunctionCall", + "src": "762:41:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "755:6:70", + "nodeType": "YulIdentifier", + "src": "755:6:70" + }, + "nativeSrc": "755:49:70", + "nodeType": "YulFunctionCall", + "src": "755:49:70" + }, + "nativeSrc": "752:69:70", + "nodeType": "YulIf", + "src": "752:69:70" + } + ] + }, + "name": "validator_revert_uint64", + "nativeSrc": "698:129:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "731:5:70", + "nodeType": "YulTypedName", + "src": "731:5:70", + "type": "" + } + ], + "src": "698:129:70" + }, + { + "body": { + "nativeSrc": "876:77:70", + "nodeType": "YulBlock", + "src": "876:77:70", + "statements": [ + { + "body": { + "nativeSrc": "931:16:70", + "nodeType": "YulBlock", + "src": "931:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "940:1:70", + "nodeType": "YulLiteral", + "src": "940:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "943:1:70", + "nodeType": "YulLiteral", + "src": "943:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "933:6:70", + "nodeType": "YulIdentifier", + "src": "933:6:70" + }, + "nativeSrc": "933:12:70", + "nodeType": "YulFunctionCall", + "src": "933:12:70" + }, + "nativeSrc": "933:12:70", + "nodeType": "YulExpressionStatement", + "src": "933:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "899:5:70", + "nodeType": "YulIdentifier", + "src": "899:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "910:5:70", + "nodeType": "YulIdentifier", + "src": "910:5:70" + }, + { + "kind": "number", + "nativeSrc": "917:10:70", + "nodeType": "YulLiteral", + "src": "917:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "906:3:70", + "nodeType": "YulIdentifier", + "src": "906:3:70" + }, + "nativeSrc": "906:22:70", + "nodeType": "YulFunctionCall", + "src": "906:22:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "896:2:70", + "nodeType": "YulIdentifier", + "src": "896:2:70" + }, + "nativeSrc": "896:33:70", + "nodeType": "YulFunctionCall", + "src": "896:33:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "889:6:70", + "nodeType": "YulIdentifier", + "src": "889:6:70" + }, + "nativeSrc": "889:41:70", + "nodeType": "YulFunctionCall", + "src": "889:41:70" + }, + "nativeSrc": "886:61:70", + "nodeType": "YulIf", + "src": "886:61:70" + } + ] + }, + "name": "validator_revert_uint32", + "nativeSrc": "832:121:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "865:5:70", + "nodeType": "YulTypedName", + "src": "865:5:70", + "type": "" + } + ], + "src": "832:121:70" + }, + { + "body": { + "nativeSrc": "1110:776:70", + "nodeType": "YulBlock", + "src": "1110:776:70", + "statements": [ + { + "body": { + "nativeSrc": "1157:16:70", + "nodeType": "YulBlock", + "src": "1157:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1166:1:70", + "nodeType": "YulLiteral", + "src": "1166:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1169:1:70", + "nodeType": "YulLiteral", + "src": "1169:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1159:6:70", + "nodeType": "YulIdentifier", + "src": "1159:6:70" + }, + "nativeSrc": "1159:12:70", + "nodeType": "YulFunctionCall", + "src": "1159:12:70" + }, + "nativeSrc": "1159:12:70", + "nodeType": "YulExpressionStatement", + "src": "1159:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1131:7:70", + "nodeType": "YulIdentifier", + "src": "1131:7:70" + }, + { + "name": "headStart", + "nativeSrc": "1140:9:70", + "nodeType": "YulIdentifier", + "src": "1140:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1127:3:70", + "nodeType": "YulIdentifier", + "src": "1127:3:70" + }, + "nativeSrc": "1127:23:70", + "nodeType": "YulFunctionCall", + "src": "1127:23:70" + }, + { + "kind": "number", + "nativeSrc": "1152:3:70", + "nodeType": "YulLiteral", + "src": "1152:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1123:3:70", + "nodeType": "YulIdentifier", + "src": "1123:3:70" + }, + "nativeSrc": "1123:33:70", + "nodeType": "YulFunctionCall", + "src": "1123:33:70" + }, + "nativeSrc": "1120:53:70", + "nodeType": "YulIf", + "src": "1120:53:70" + }, + { + "nativeSrc": "1182:36:70", + "nodeType": "YulVariableDeclaration", + "src": "1182:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1208:9:70", + "nodeType": "YulIdentifier", + "src": "1208:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1195:12:70", + "nodeType": "YulIdentifier", + "src": "1195:12:70" + }, + "nativeSrc": "1195:23:70", + "nodeType": "YulFunctionCall", + "src": "1195:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "1186:5:70", + "nodeType": "YulTypedName", + "src": "1186:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1252:5:70", + "nodeType": "YulIdentifier", + "src": "1252:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "1227:24:70", + "nodeType": "YulIdentifier", + "src": "1227:24:70" + }, + "nativeSrc": "1227:31:70", + "nodeType": "YulFunctionCall", + "src": "1227:31:70" + }, + "nativeSrc": "1227:31:70", + "nodeType": "YulExpressionStatement", + "src": "1227:31:70" + }, + { + "nativeSrc": "1267:15:70", + "nodeType": "YulAssignment", + "src": "1267:15:70", + "value": { + "name": "value", + "nativeSrc": "1277:5:70", + "nodeType": "YulIdentifier", + "src": "1277:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1267:6:70", + "nodeType": "YulIdentifier", + "src": "1267:6:70" + } + ] + }, + { + "nativeSrc": "1291:47:70", + "nodeType": "YulVariableDeclaration", + "src": "1291:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1323:9:70", + "nodeType": "YulIdentifier", + "src": "1323:9:70" + }, + { + "kind": "number", + "nativeSrc": "1334:2:70", + "nodeType": "YulLiteral", + "src": "1334:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1319:3:70", + "nodeType": "YulIdentifier", + "src": "1319:3:70" + }, + "nativeSrc": "1319:18:70", + "nodeType": "YulFunctionCall", + "src": "1319:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1306:12:70", + "nodeType": "YulIdentifier", + "src": "1306:12:70" + }, + "nativeSrc": "1306:32:70", + "nodeType": "YulFunctionCall", + "src": "1306:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "1295:7:70", + "nodeType": "YulTypedName", + "src": "1295:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "1372:7:70", + "nodeType": "YulIdentifier", + "src": "1372:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "1347:24:70", + "nodeType": "YulIdentifier", + "src": "1347:24:70" + }, + "nativeSrc": "1347:33:70", + "nodeType": "YulFunctionCall", + "src": "1347:33:70" + }, + "nativeSrc": "1347:33:70", + "nodeType": "YulExpressionStatement", + "src": "1347:33:70" + }, + { + "nativeSrc": "1389:17:70", + "nodeType": "YulAssignment", + "src": "1389:17:70", + "value": { + "name": "value_1", + "nativeSrc": "1399:7:70", + "nodeType": "YulIdentifier", + "src": "1399:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1389:6:70", + "nodeType": "YulIdentifier", + "src": "1389:6:70" + } + ] + }, + { + "nativeSrc": "1415:47:70", + "nodeType": "YulVariableDeclaration", + "src": "1415:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1447:9:70", + "nodeType": "YulIdentifier", + "src": "1447:9:70" + }, + { + "kind": "number", + "nativeSrc": "1458:2:70", + "nodeType": "YulLiteral", + "src": "1458:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1443:3:70", + "nodeType": "YulIdentifier", + "src": "1443:3:70" + }, + "nativeSrc": "1443:18:70", + "nodeType": "YulFunctionCall", + "src": "1443:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1430:12:70", + "nodeType": "YulIdentifier", + "src": "1430:12:70" + }, + "nativeSrc": "1430:32:70", + "nodeType": "YulFunctionCall", + "src": "1430:32:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "1419:7:70", + "nodeType": "YulTypedName", + "src": "1419:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "1495:7:70", + "nodeType": "YulIdentifier", + "src": "1495:7:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "1471:23:70", + "nodeType": "YulIdentifier", + "src": "1471:23:70" + }, + "nativeSrc": "1471:32:70", + "nodeType": "YulFunctionCall", + "src": "1471:32:70" + }, + "nativeSrc": "1471:32:70", + "nodeType": "YulExpressionStatement", + "src": "1471:32:70" + }, + { + "nativeSrc": "1512:17:70", + "nodeType": "YulAssignment", + "src": "1512:17:70", + "value": { + "name": "value_2", + "nativeSrc": "1522:7:70", + "nodeType": "YulIdentifier", + "src": "1522:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1512:6:70", + "nodeType": "YulIdentifier", + "src": "1512:6:70" + } + ] + }, + { + "nativeSrc": "1538:16:70", + "nodeType": "YulVariableDeclaration", + "src": "1538:16:70", + "value": { + "kind": "number", + "nativeSrc": "1553:1:70", + "nodeType": "YulLiteral", + "src": "1553:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "1542:7:70", + "nodeType": "YulTypedName", + "src": "1542:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "1563:43:70", + "nodeType": "YulAssignment", + "src": "1563:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1591:9:70", + "nodeType": "YulIdentifier", + "src": "1591:9:70" + }, + { + "kind": "number", + "nativeSrc": "1602:2:70", + "nodeType": "YulLiteral", + "src": "1602:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1587:3:70", + "nodeType": "YulIdentifier", + "src": "1587:3:70" + }, + "nativeSrc": "1587:18:70", + "nodeType": "YulFunctionCall", + "src": "1587:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1574:12:70", + "nodeType": "YulIdentifier", + "src": "1574:12:70" + }, + "nativeSrc": "1574:32:70", + "nodeType": "YulFunctionCall", + "src": "1574:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "1563:7:70", + "nodeType": "YulIdentifier", + "src": "1563:7:70" + } + ] + }, + { + "nativeSrc": "1615:17:70", + "nodeType": "YulAssignment", + "src": "1615:17:70", + "value": { + "name": "value_3", + "nativeSrc": "1625:7:70", + "nodeType": "YulIdentifier", + "src": "1625:7:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1615:6:70", + "nodeType": "YulIdentifier", + "src": "1615:6:70" + } + ] + }, + { + "nativeSrc": "1641:48:70", + "nodeType": "YulVariableDeclaration", + "src": "1641:48:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1673:9:70", + "nodeType": "YulIdentifier", + "src": "1673:9:70" + }, + { + "kind": "number", + "nativeSrc": "1684:3:70", + "nodeType": "YulLiteral", + "src": "1684:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1669:3:70", + "nodeType": "YulIdentifier", + "src": "1669:3:70" + }, + "nativeSrc": "1669:19:70", + "nodeType": "YulFunctionCall", + "src": "1669:19:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1656:12:70", + "nodeType": "YulIdentifier", + "src": "1656:12:70" + }, + "nativeSrc": "1656:33:70", + "nodeType": "YulFunctionCall", + "src": "1656:33:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "1645:7:70", + "nodeType": "YulTypedName", + "src": "1645:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_4", + "nativeSrc": "1722:7:70", + "nodeType": "YulIdentifier", + "src": "1722:7:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "1698:23:70", + "nodeType": "YulIdentifier", + "src": "1698:23:70" + }, + "nativeSrc": "1698:32:70", + "nodeType": "YulFunctionCall", + "src": "1698:32:70" + }, + "nativeSrc": "1698:32:70", + "nodeType": "YulExpressionStatement", + "src": "1698:32:70" + }, + { + "nativeSrc": "1739:17:70", + "nodeType": "YulAssignment", + "src": "1739:17:70", + "value": { + "name": "value_4", + "nativeSrc": "1749:7:70", + "nodeType": "YulIdentifier", + "src": "1749:7:70" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "1739:6:70", + "nodeType": "YulIdentifier", + "src": "1739:6:70" + } + ] + }, + { + "nativeSrc": "1765:48:70", + "nodeType": "YulVariableDeclaration", + "src": "1765:48:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1797:9:70", + "nodeType": "YulIdentifier", + "src": "1797:9:70" + }, + { + "kind": "number", + "nativeSrc": "1808:3:70", + "nodeType": "YulLiteral", + "src": "1808:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1793:3:70", + "nodeType": "YulIdentifier", + "src": "1793:3:70" + }, + "nativeSrc": "1793:19:70", + "nodeType": "YulFunctionCall", + "src": "1793:19:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1780:12:70", + "nodeType": "YulIdentifier", + "src": "1780:12:70" + }, + "nativeSrc": "1780:33:70", + "nodeType": "YulFunctionCall", + "src": "1780:33:70" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "1769:7:70", + "nodeType": "YulTypedName", + "src": "1769:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_5", + "nativeSrc": "1846:7:70", + "nodeType": "YulIdentifier", + "src": "1846:7:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "1822:23:70", + "nodeType": "YulIdentifier", + "src": "1822:23:70" + }, + "nativeSrc": "1822:32:70", + "nodeType": "YulFunctionCall", + "src": "1822:32:70" + }, + "nativeSrc": "1822:32:70", + "nodeType": "YulExpressionStatement", + "src": "1822:32:70" + }, + { + "nativeSrc": "1863:17:70", + "nodeType": "YulAssignment", + "src": "1863:17:70", + "value": { + "name": "value_5", + "nativeSrc": "1873:7:70", + "nodeType": "YulIdentifier", + "src": "1873:7:70" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "1863:6:70", + "nodeType": "YulIdentifier", + "src": "1863:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint64t_uint256t_uint32t_uint32", + "nativeSrc": "958:928:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1036:9:70", + "nodeType": "YulTypedName", + "src": "1036:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1047:7:70", + "nodeType": "YulTypedName", + "src": "1047:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1059:6:70", + "nodeType": "YulTypedName", + "src": "1059:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1067:6:70", + "nodeType": "YulTypedName", + "src": "1067:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1075:6:70", + "nodeType": "YulTypedName", + "src": "1075:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1083:6:70", + "nodeType": "YulTypedName", + "src": "1083:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "1091:6:70", + "nodeType": "YulTypedName", + "src": "1091:6:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "1099:6:70", + "nodeType": "YulTypedName", + "src": "1099:6:70", + "type": "" + } + ], + "src": "958:928:70" + }, + { + "body": { + "nativeSrc": "1961:156:70", + "nodeType": "YulBlock", + "src": "1961:156:70", + "statements": [ + { + "body": { + "nativeSrc": "2007:16:70", + "nodeType": "YulBlock", + "src": "2007:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2016:1:70", + "nodeType": "YulLiteral", + "src": "2016:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2019:1:70", + "nodeType": "YulLiteral", + "src": "2019:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2009:6:70", + "nodeType": "YulIdentifier", + "src": "2009:6:70" + }, + "nativeSrc": "2009:12:70", + "nodeType": "YulFunctionCall", + "src": "2009:12:70" + }, + "nativeSrc": "2009:12:70", + "nodeType": "YulExpressionStatement", + "src": "2009:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1982:7:70", + "nodeType": "YulIdentifier", + "src": "1982:7:70" + }, + { + "name": "headStart", + "nativeSrc": "1991:9:70", + "nodeType": "YulIdentifier", + "src": "1991:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1978:3:70", + "nodeType": "YulIdentifier", + "src": "1978:3:70" + }, + "nativeSrc": "1978:23:70", + "nodeType": "YulFunctionCall", + "src": "1978:23:70" + }, + { + "kind": "number", + "nativeSrc": "2003:2:70", + "nodeType": "YulLiteral", + "src": "2003:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1974:3:70", + "nodeType": "YulIdentifier", + "src": "1974:3:70" + }, + "nativeSrc": "1974:32:70", + "nodeType": "YulFunctionCall", + "src": "1974:32:70" + }, + "nativeSrc": "1971:52:70", + "nodeType": "YulIf", + "src": "1971:52:70" + }, + { + "nativeSrc": "2032:14:70", + "nodeType": "YulVariableDeclaration", + "src": "2032:14:70", + "value": { + "kind": "number", + "nativeSrc": "2045:1:70", + "nodeType": "YulLiteral", + "src": "2045:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2036:5:70", + "nodeType": "YulTypedName", + "src": "2036:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "2055:32:70", + "nodeType": "YulAssignment", + "src": "2055:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2077:9:70", + "nodeType": "YulIdentifier", + "src": "2077:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2064:12:70", + "nodeType": "YulIdentifier", + "src": "2064:12:70" + }, + "nativeSrc": "2064:23:70", + "nodeType": "YulFunctionCall", + "src": "2064:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2055:5:70", + "nodeType": "YulIdentifier", + "src": "2055:5:70" + } + ] + }, + { + "nativeSrc": "2096:15:70", + "nodeType": "YulAssignment", + "src": "2096:15:70", + "value": { + "name": "value", + "nativeSrc": "2106:5:70", + "nodeType": "YulIdentifier", + "src": "2106:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2096:6:70", + "nodeType": "YulIdentifier", + "src": "2096:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "1891:226:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1927:9:70", + "nodeType": "YulTypedName", + "src": "1927:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1938:7:70", + "nodeType": "YulTypedName", + "src": "1938:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1950:6:70", + "nodeType": "YulTypedName", + "src": "1950:6:70", + "type": "" + } + ], + "src": "1891:226:70" + }, + { + "body": { + "nativeSrc": "2154:95:70", + "nodeType": "YulBlock", + "src": "2154:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2171:1:70", + "nodeType": "YulLiteral", + "src": "2171:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2178:3:70", + "nodeType": "YulLiteral", + "src": "2178:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "2183:10:70", + "nodeType": "YulLiteral", + "src": "2183:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2174:3:70", + "nodeType": "YulIdentifier", + "src": "2174:3:70" + }, + "nativeSrc": "2174:20:70", + "nodeType": "YulFunctionCall", + "src": "2174:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2164:6:70", + "nodeType": "YulIdentifier", + "src": "2164:6:70" + }, + "nativeSrc": "2164:31:70", + "nodeType": "YulFunctionCall", + "src": "2164:31:70" + }, + "nativeSrc": "2164:31:70", + "nodeType": "YulExpressionStatement", + "src": "2164:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2211:1:70", + "nodeType": "YulLiteral", + "src": "2211:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2214:4:70", + "nodeType": "YulLiteral", + "src": "2214:4:70", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2204:6:70", + "nodeType": "YulIdentifier", + "src": "2204:6:70" + }, + "nativeSrc": "2204:15:70", + "nodeType": "YulFunctionCall", + "src": "2204:15:70" + }, + "nativeSrc": "2204:15:70", + "nodeType": "YulExpressionStatement", + "src": "2204:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2235:1:70", + "nodeType": "YulLiteral", + "src": "2235:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2238:4:70", + "nodeType": "YulLiteral", + "src": "2238:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2228:6:70", + "nodeType": "YulIdentifier", + "src": "2228:6:70" + }, + "nativeSrc": "2228:15:70", + "nodeType": "YulFunctionCall", + "src": "2228:15:70" + }, + "nativeSrc": "2228:15:70", + "nodeType": "YulExpressionStatement", + "src": "2228:15:70" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "2122:127:70", + "nodeType": "YulFunctionDefinition", + "src": "2122:127:70" + }, + { + "body": { + "nativeSrc": "2309:89:70", + "nodeType": "YulBlock", + "src": "2309:89:70", + "statements": [ + { + "body": { + "nativeSrc": "2343:22:70", + "nodeType": "YulBlock", + "src": "2343:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x21", + "nativeSrc": "2345:16:70", + "nodeType": "YulIdentifier", + "src": "2345:16:70" + }, + "nativeSrc": "2345:18:70", + "nodeType": "YulFunctionCall", + "src": "2345:18:70" + }, + "nativeSrc": "2345:18:70", + "nodeType": "YulExpressionStatement", + "src": "2345:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2332:5:70", + "nodeType": "YulIdentifier", + "src": "2332:5:70" + }, + { + "kind": "number", + "nativeSrc": "2339:1:70", + "nodeType": "YulLiteral", + "src": "2339:1:70", + "type": "", + "value": "6" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2329:2:70", + "nodeType": "YulIdentifier", + "src": "2329:2:70" + }, + "nativeSrc": "2329:12:70", + "nodeType": "YulFunctionCall", + "src": "2329:12:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2322:6:70", + "nodeType": "YulIdentifier", + "src": "2322:6:70" + }, + "nativeSrc": "2322:20:70", + "nodeType": "YulFunctionCall", + "src": "2322:20:70" + }, + "nativeSrc": "2319:46:70", + "nodeType": "YulIf", + "src": "2319:46:70" + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2381:3:70", + "nodeType": "YulIdentifier", + "src": "2381:3:70" + }, + { + "name": "value", + "nativeSrc": "2386:5:70", + "nodeType": "YulIdentifier", + "src": "2386:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2374:6:70", + "nodeType": "YulIdentifier", + "src": "2374:6:70" + }, + "nativeSrc": "2374:18:70", + "nodeType": "YulFunctionCall", + "src": "2374:18:70" + }, + "nativeSrc": "2374:18:70", + "nodeType": "YulExpressionStatement", + "src": "2374:18:70" + } + ] + }, + "name": "abi_encode_enum_DisputeStatus", + "nativeSrc": "2254:144:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2293:5:70", + "nodeType": "YulTypedName", + "src": "2293:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2300:3:70", + "nodeType": "YulTypedName", + "src": "2300:3:70", + "type": "" + } + ], + "src": "2254:144:70" + }, + { + "body": { + "nativeSrc": "2760:557:70", + "nodeType": "YulBlock", + "src": "2760:557:70", + "statements": [ + { + "nativeSrc": "2770:27:70", + "nodeType": "YulAssignment", + "src": "2770:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2782:9:70", + "nodeType": "YulIdentifier", + "src": "2782:9:70" + }, + { + "kind": "number", + "nativeSrc": "2793:3:70", + "nodeType": "YulLiteral", + "src": "2793:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2778:3:70", + "nodeType": "YulIdentifier", + "src": "2778:3:70" + }, + "nativeSrc": "2778:19:70", + "nodeType": "YulFunctionCall", + "src": "2778:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2770:4:70", + "nodeType": "YulIdentifier", + "src": "2770:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2813:9:70", + "nodeType": "YulIdentifier", + "src": "2813:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2828:6:70", + "nodeType": "YulIdentifier", + "src": "2828:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2844:3:70", + "nodeType": "YulLiteral", + "src": "2844:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2849:1:70", + "nodeType": "YulLiteral", + "src": "2849:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2840:3:70", + "nodeType": "YulIdentifier", + "src": "2840:3:70" + }, + "nativeSrc": "2840:11:70", + "nodeType": "YulFunctionCall", + "src": "2840:11:70" + }, + { + "kind": "number", + "nativeSrc": "2853:1:70", + "nodeType": "YulLiteral", + "src": "2853:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2836:3:70", + "nodeType": "YulIdentifier", + "src": "2836:3:70" + }, + "nativeSrc": "2836:19:70", + "nodeType": "YulFunctionCall", + "src": "2836:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2824:3:70", + "nodeType": "YulIdentifier", + "src": "2824:3:70" + }, + "nativeSrc": "2824:32:70", + "nodeType": "YulFunctionCall", + "src": "2824:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2806:6:70", + "nodeType": "YulIdentifier", + "src": "2806:6:70" + }, + "nativeSrc": "2806:51:70", + "nodeType": "YulFunctionCall", + "src": "2806:51:70" + }, + "nativeSrc": "2806:51:70", + "nodeType": "YulExpressionStatement", + "src": "2806:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2877:9:70", + "nodeType": "YulIdentifier", + "src": "2877:9:70" + }, + { + "kind": "number", + "nativeSrc": "2888:2:70", + "nodeType": "YulLiteral", + "src": "2888:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2873:3:70", + "nodeType": "YulIdentifier", + "src": "2873:3:70" + }, + "nativeSrc": "2873:18:70", + "nodeType": "YulFunctionCall", + "src": "2873:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2897:6:70", + "nodeType": "YulIdentifier", + "src": "2897:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2913:3:70", + "nodeType": "YulLiteral", + "src": "2913:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2918:1:70", + "nodeType": "YulLiteral", + "src": "2918:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2909:3:70", + "nodeType": "YulIdentifier", + "src": "2909:3:70" + }, + "nativeSrc": "2909:11:70", + "nodeType": "YulFunctionCall", + "src": "2909:11:70" + }, + { + "kind": "number", + "nativeSrc": "2922:1:70", + "nodeType": "YulLiteral", + "src": "2922:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2905:3:70", + "nodeType": "YulIdentifier", + "src": "2905:3:70" + }, + "nativeSrc": "2905:19:70", + "nodeType": "YulFunctionCall", + "src": "2905:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2893:3:70", + "nodeType": "YulIdentifier", + "src": "2893:3:70" + }, + "nativeSrc": "2893:32:70", + "nodeType": "YulFunctionCall", + "src": "2893:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2866:6:70", + "nodeType": "YulIdentifier", + "src": "2866:6:70" + }, + "nativeSrc": "2866:60:70", + "nodeType": "YulFunctionCall", + "src": "2866:60:70" + }, + "nativeSrc": "2866:60:70", + "nodeType": "YulExpressionStatement", + "src": "2866:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2946:9:70", + "nodeType": "YulIdentifier", + "src": "2946:9:70" + }, + { + "kind": "number", + "nativeSrc": "2957:2:70", + "nodeType": "YulLiteral", + "src": "2957:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2942:3:70", + "nodeType": "YulIdentifier", + "src": "2942:3:70" + }, + "nativeSrc": "2942:18:70", + "nodeType": "YulFunctionCall", + "src": "2942:18:70" + }, + { + "name": "value2", + "nativeSrc": "2962:6:70", + "nodeType": "YulIdentifier", + "src": "2962:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2935:6:70", + "nodeType": "YulIdentifier", + "src": "2935:6:70" + }, + "nativeSrc": "2935:34:70", + "nodeType": "YulFunctionCall", + "src": "2935:34:70" + }, + "nativeSrc": "2935:34:70", + "nodeType": "YulExpressionStatement", + "src": "2935:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2989:9:70", + "nodeType": "YulIdentifier", + "src": "2989:9:70" + }, + { + "kind": "number", + "nativeSrc": "3000:2:70", + "nodeType": "YulLiteral", + "src": "3000:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2985:3:70", + "nodeType": "YulIdentifier", + "src": "2985:3:70" + }, + "nativeSrc": "2985:18:70", + "nodeType": "YulFunctionCall", + "src": "2985:18:70" + }, + { + "name": "value3", + "nativeSrc": "3005:6:70", + "nodeType": "YulIdentifier", + "src": "3005:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2978:6:70", + "nodeType": "YulIdentifier", + "src": "2978:6:70" + }, + "nativeSrc": "2978:34:70", + "nodeType": "YulFunctionCall", + "src": "2978:34:70" + }, + "nativeSrc": "2978:34:70", + "nodeType": "YulExpressionStatement", + "src": "2978:34:70" + }, + { + "body": { + "nativeSrc": "3046:22:70", + "nodeType": "YulBlock", + "src": "3046:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x21", + "nativeSrc": "3048:16:70", + "nodeType": "YulIdentifier", + "src": "3048:16:70" + }, + "nativeSrc": "3048:18:70", + "nodeType": "YulFunctionCall", + "src": "3048:18:70" + }, + "nativeSrc": "3048:18:70", + "nodeType": "YulExpressionStatement", + "src": "3048:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "3034:6:70", + "nodeType": "YulIdentifier", + "src": "3034:6:70" + }, + { + "kind": "number", + "nativeSrc": "3042:1:70", + "nodeType": "YulLiteral", + "src": "3042:1:70", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3031:2:70", + "nodeType": "YulIdentifier", + "src": "3031:2:70" + }, + "nativeSrc": "3031:13:70", + "nodeType": "YulFunctionCall", + "src": "3031:13:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3024:6:70", + "nodeType": "YulIdentifier", + "src": "3024:6:70" + }, + "nativeSrc": "3024:21:70", + "nodeType": "YulFunctionCall", + "src": "3024:21:70" + }, + "nativeSrc": "3021:47:70", + "nodeType": "YulIf", + "src": "3021:47:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3088:9:70", + "nodeType": "YulIdentifier", + "src": "3088:9:70" + }, + { + "kind": "number", + "nativeSrc": "3099:3:70", + "nodeType": "YulLiteral", + "src": "3099:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3084:3:70", + "nodeType": "YulIdentifier", + "src": "3084:3:70" + }, + "nativeSrc": "3084:19:70", + "nodeType": "YulFunctionCall", + "src": "3084:19:70" + }, + { + "name": "value4", + "nativeSrc": "3105:6:70", + "nodeType": "YulIdentifier", + "src": "3105:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3077:6:70", + "nodeType": "YulIdentifier", + "src": "3077:6:70" + }, + "nativeSrc": "3077:35:70", + "nodeType": "YulFunctionCall", + "src": "3077:35:70" + }, + "nativeSrc": "3077:35:70", + "nodeType": "YulExpressionStatement", + "src": "3077:35:70" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "3151:6:70", + "nodeType": "YulIdentifier", + "src": "3151:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3163:9:70", + "nodeType": "YulIdentifier", + "src": "3163:9:70" + }, + { + "kind": "number", + "nativeSrc": "3174:3:70", + "nodeType": "YulLiteral", + "src": "3174:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3159:3:70", + "nodeType": "YulIdentifier", + "src": "3159:3:70" + }, + "nativeSrc": "3159:19:70", + "nodeType": "YulFunctionCall", + "src": "3159:19:70" + } + ], + "functionName": { + "name": "abi_encode_enum_DisputeStatus", + "nativeSrc": "3121:29:70", + "nodeType": "YulIdentifier", + "src": "3121:29:70" + }, + "nativeSrc": "3121:58:70", + "nodeType": "YulFunctionCall", + "src": "3121:58:70" + }, + "nativeSrc": "3121:58:70", + "nodeType": "YulExpressionStatement", + "src": "3121:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3199:9:70", + "nodeType": "YulIdentifier", + "src": "3199:9:70" + }, + { + "kind": "number", + "nativeSrc": "3210:3:70", + "nodeType": "YulLiteral", + "src": "3210:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3195:3:70", + "nodeType": "YulIdentifier", + "src": "3195:3:70" + }, + "nativeSrc": "3195:19:70", + "nodeType": "YulFunctionCall", + "src": "3195:19:70" + }, + { + "name": "value6", + "nativeSrc": "3216:6:70", + "nodeType": "YulIdentifier", + "src": "3216:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3188:6:70", + "nodeType": "YulIdentifier", + "src": "3188:6:70" + }, + "nativeSrc": "3188:35:70", + "nodeType": "YulFunctionCall", + "src": "3188:35:70" + }, + "nativeSrc": "3188:35:70", + "nodeType": "YulExpressionStatement", + "src": "3188:35:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3243:9:70", + "nodeType": "YulIdentifier", + "src": "3243:9:70" + }, + { + "kind": "number", + "nativeSrc": "3254:3:70", + "nodeType": "YulLiteral", + "src": "3254:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3239:3:70", + "nodeType": "YulIdentifier", + "src": "3239:3:70" + }, + "nativeSrc": "3239:19:70", + "nodeType": "YulFunctionCall", + "src": "3239:19:70" + }, + { + "name": "value7", + "nativeSrc": "3260:6:70", + "nodeType": "YulIdentifier", + "src": "3260:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3232:6:70", + "nodeType": "YulIdentifier", + "src": "3232:6:70" + }, + "nativeSrc": "3232:35:70", + "nodeType": "YulFunctionCall", + "src": "3232:35:70" + }, + "nativeSrc": "3232:35:70", + "nodeType": "YulExpressionStatement", + "src": "3232:35:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3287:9:70", + "nodeType": "YulIdentifier", + "src": "3287:9:70" + }, + { + "kind": "number", + "nativeSrc": "3298:3:70", + "nodeType": "YulLiteral", + "src": "3298:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3283:3:70", + "nodeType": "YulIdentifier", + "src": "3283:3:70" + }, + "nativeSrc": "3283:19:70", + "nodeType": "YulFunctionCall", + "src": "3283:19:70" + }, + { + "name": "value8", + "nativeSrc": "3304:6:70", + "nodeType": "YulIdentifier", + "src": "3304:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3276:6:70", + "nodeType": "YulIdentifier", + "src": "3276:6:70" + }, + "nativeSrc": "3276:35:70", + "nodeType": "YulFunctionCall", + "src": "3276:35:70" + }, + "nativeSrc": "3276:35:70", + "nodeType": "YulExpressionStatement", + "src": "3276:35:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes32_t_enum$_DisputeType_$14913_t_enum$_DisputeStatus_$14921_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "2403:914:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2665:9:70", + "nodeType": "YulTypedName", + "src": "2665:9:70", + "type": "" + }, + { + "name": "value8", + "nativeSrc": "2676:6:70", + "nodeType": "YulTypedName", + "src": "2676:6:70", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "2684:6:70", + "nodeType": "YulTypedName", + "src": "2684:6:70", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "2692:6:70", + "nodeType": "YulTypedName", + "src": "2692:6:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "2700:6:70", + "nodeType": "YulTypedName", + "src": "2700:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "2708:6:70", + "nodeType": "YulTypedName", + "src": "2708:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "2716:6:70", + "nodeType": "YulTypedName", + "src": "2716:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2724:6:70", + "nodeType": "YulTypedName", + "src": "2724:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2732:6:70", + "nodeType": "YulTypedName", + "src": "2732:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2740:6:70", + "nodeType": "YulTypedName", + "src": "2740:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2751:4:70", + "nodeType": "YulTypedName", + "src": "2751:4:70", + "type": "" + } + ], + "src": "2403:914:70" + }, + { + "body": { + "nativeSrc": "3392:156:70", + "nodeType": "YulBlock", + "src": "3392:156:70", + "statements": [ + { + "body": { + "nativeSrc": "3438:16:70", + "nodeType": "YulBlock", + "src": "3438:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3447:1:70", + "nodeType": "YulLiteral", + "src": "3447:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3450:1:70", + "nodeType": "YulLiteral", + "src": "3450:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3440:6:70", + "nodeType": "YulIdentifier", + "src": "3440:6:70" + }, + "nativeSrc": "3440:12:70", + "nodeType": "YulFunctionCall", + "src": "3440:12:70" + }, + "nativeSrc": "3440:12:70", + "nodeType": "YulExpressionStatement", + "src": "3440:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3413:7:70", + "nodeType": "YulIdentifier", + "src": "3413:7:70" + }, + { + "name": "headStart", + "nativeSrc": "3422:9:70", + "nodeType": "YulIdentifier", + "src": "3422:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3409:3:70", + "nodeType": "YulIdentifier", + "src": "3409:3:70" + }, + "nativeSrc": "3409:23:70", + "nodeType": "YulFunctionCall", + "src": "3409:23:70" + }, + { + "kind": "number", + "nativeSrc": "3434:2:70", + "nodeType": "YulLiteral", + "src": "3434:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3405:3:70", + "nodeType": "YulIdentifier", + "src": "3405:3:70" + }, + "nativeSrc": "3405:32:70", + "nodeType": "YulFunctionCall", + "src": "3405:32:70" + }, + "nativeSrc": "3402:52:70", + "nodeType": "YulIf", + "src": "3402:52:70" + }, + { + "nativeSrc": "3463:14:70", + "nodeType": "YulVariableDeclaration", + "src": "3463:14:70", + "value": { + "kind": "number", + "nativeSrc": "3476:1:70", + "nodeType": "YulLiteral", + "src": "3476:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3467:5:70", + "nodeType": "YulTypedName", + "src": "3467:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "3486:32:70", + "nodeType": "YulAssignment", + "src": "3486:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3508:9:70", + "nodeType": "YulIdentifier", + "src": "3508:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3495:12:70", + "nodeType": "YulIdentifier", + "src": "3495:12:70" + }, + "nativeSrc": "3495:23:70", + "nodeType": "YulFunctionCall", + "src": "3495:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3486:5:70", + "nodeType": "YulIdentifier", + "src": "3486:5:70" + } + ] + }, + { + "nativeSrc": "3527:15:70", + "nodeType": "YulAssignment", + "src": "3527:15:70", + "value": { + "name": "value", + "nativeSrc": "3537:5:70", + "nodeType": "YulIdentifier", + "src": "3537:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3527:6:70", + "nodeType": "YulIdentifier", + "src": "3527:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3322:226:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3358:9:70", + "nodeType": "YulTypedName", + "src": "3358:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3369:7:70", + "nodeType": "YulTypedName", + "src": "3369:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3381:6:70", + "nodeType": "YulTypedName", + "src": "3381:6:70", + "type": "" + } + ], + "src": "3322:226:70" + }, + { + "body": { + "nativeSrc": "3680:102:70", + "nodeType": "YulBlock", + "src": "3680:102:70", + "statements": [ + { + "nativeSrc": "3690:26:70", + "nodeType": "YulAssignment", + "src": "3690:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3702:9:70", + "nodeType": "YulIdentifier", + "src": "3702:9:70" + }, + { + "kind": "number", + "nativeSrc": "3713:2:70", + "nodeType": "YulLiteral", + "src": "3713:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3698:3:70", + "nodeType": "YulIdentifier", + "src": "3698:3:70" + }, + "nativeSrc": "3698:18:70", + "nodeType": "YulFunctionCall", + "src": "3698:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3690:4:70", + "nodeType": "YulIdentifier", + "src": "3690:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3732:9:70", + "nodeType": "YulIdentifier", + "src": "3732:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3747:6:70", + "nodeType": "YulIdentifier", + "src": "3747:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3763:3:70", + "nodeType": "YulLiteral", + "src": "3763:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "3768:1:70", + "nodeType": "YulLiteral", + "src": "3768:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3759:3:70", + "nodeType": "YulIdentifier", + "src": "3759:3:70" + }, + "nativeSrc": "3759:11:70", + "nodeType": "YulFunctionCall", + "src": "3759:11:70" + }, + { + "kind": "number", + "nativeSrc": "3772:1:70", + "nodeType": "YulLiteral", + "src": "3772:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3755:3:70", + "nodeType": "YulIdentifier", + "src": "3755:3:70" + }, + "nativeSrc": "3755:19:70", + "nodeType": "YulFunctionCall", + "src": "3755:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3743:3:70", + "nodeType": "YulIdentifier", + "src": "3743:3:70" + }, + "nativeSrc": "3743:32:70", + "nodeType": "YulFunctionCall", + "src": "3743:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3725:6:70", + "nodeType": "YulIdentifier", + "src": "3725:6:70" + }, + "nativeSrc": "3725:51:70", + "nodeType": "YulFunctionCall", + "src": "3725:51:70" + }, + "nativeSrc": "3725:51:70", + "nodeType": "YulExpressionStatement", + "src": "3725:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_ISubgraphService_$15634__to_t_address__fromStack_reversed", + "nativeSrc": "3553:229:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3649:9:70", + "nodeType": "YulTypedName", + "src": "3649:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3660:6:70", + "nodeType": "YulTypedName", + "src": "3660:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3671:4:70", + "nodeType": "YulTypedName", + "src": "3671:4:70", + "type": "" + } + ], + "src": "3553:229:70" + }, + { + "body": { + "nativeSrc": "3888:76:70", + "nodeType": "YulBlock", + "src": "3888:76:70", + "statements": [ + { + "nativeSrc": "3898:26:70", + "nodeType": "YulAssignment", + "src": "3898:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3910:9:70", + "nodeType": "YulIdentifier", + "src": "3910:9:70" + }, + { + "kind": "number", + "nativeSrc": "3921:2:70", + "nodeType": "YulLiteral", + "src": "3921:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3906:3:70", + "nodeType": "YulIdentifier", + "src": "3906:3:70" + }, + "nativeSrc": "3906:18:70", + "nodeType": "YulFunctionCall", + "src": "3906:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3898:4:70", + "nodeType": "YulIdentifier", + "src": "3898:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3940:9:70", + "nodeType": "YulIdentifier", + "src": "3940:9:70" + }, + { + "name": "value0", + "nativeSrc": "3951:6:70", + "nodeType": "YulIdentifier", + "src": "3951:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3933:6:70", + "nodeType": "YulIdentifier", + "src": "3933:6:70" + }, + "nativeSrc": "3933:25:70", + "nodeType": "YulFunctionCall", + "src": "3933:25:70" + }, + "nativeSrc": "3933:25:70", + "nodeType": "YulExpressionStatement", + "src": "3933:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "3787:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3857:9:70", + "nodeType": "YulTypedName", + "src": "3857:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3868:6:70", + "nodeType": "YulTypedName", + "src": "3868:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3879:4:70", + "nodeType": "YulTypedName", + "src": "3879:4:70", + "type": "" + } + ], + "src": "3787:177:70" + }, + { + "body": { + "nativeSrc": "4056:280:70", + "nodeType": "YulBlock", + "src": "4056:280:70", + "statements": [ + { + "body": { + "nativeSrc": "4102:16:70", + "nodeType": "YulBlock", + "src": "4102:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4111:1:70", + "nodeType": "YulLiteral", + "src": "4111:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4114:1:70", + "nodeType": "YulLiteral", + "src": "4114:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4104:6:70", + "nodeType": "YulIdentifier", + "src": "4104:6:70" + }, + "nativeSrc": "4104:12:70", + "nodeType": "YulFunctionCall", + "src": "4104:12:70" + }, + "nativeSrc": "4104:12:70", + "nodeType": "YulExpressionStatement", + "src": "4104:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4077:7:70", + "nodeType": "YulIdentifier", + "src": "4077:7:70" + }, + { + "name": "headStart", + "nativeSrc": "4086:9:70", + "nodeType": "YulIdentifier", + "src": "4086:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4073:3:70", + "nodeType": "YulIdentifier", + "src": "4073:3:70" + }, + "nativeSrc": "4073:23:70", + "nodeType": "YulFunctionCall", + "src": "4073:23:70" + }, + { + "kind": "number", + "nativeSrc": "4098:2:70", + "nodeType": "YulLiteral", + "src": "4098:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4069:3:70", + "nodeType": "YulIdentifier", + "src": "4069:3:70" + }, + "nativeSrc": "4069:32:70", + "nodeType": "YulFunctionCall", + "src": "4069:32:70" + }, + "nativeSrc": "4066:52:70", + "nodeType": "YulIf", + "src": "4066:52:70" + }, + { + "nativeSrc": "4127:36:70", + "nodeType": "YulVariableDeclaration", + "src": "4127:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4153:9:70", + "nodeType": "YulIdentifier", + "src": "4153:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4140:12:70", + "nodeType": "YulIdentifier", + "src": "4140:12:70" + }, + "nativeSrc": "4140:23:70", + "nodeType": "YulFunctionCall", + "src": "4140:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4131:5:70", + "nodeType": "YulTypedName", + "src": "4131:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4197:5:70", + "nodeType": "YulIdentifier", + "src": "4197:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "4172:24:70", + "nodeType": "YulIdentifier", + "src": "4172:24:70" + }, + "nativeSrc": "4172:31:70", + "nodeType": "YulFunctionCall", + "src": "4172:31:70" + }, + "nativeSrc": "4172:31:70", + "nodeType": "YulExpressionStatement", + "src": "4172:31:70" + }, + { + "nativeSrc": "4212:15:70", + "nodeType": "YulAssignment", + "src": "4212:15:70", + "value": { + "name": "value", + "nativeSrc": "4222:5:70", + "nodeType": "YulIdentifier", + "src": "4222:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4212:6:70", + "nodeType": "YulIdentifier", + "src": "4212:6:70" + } + ] + }, + { + "nativeSrc": "4236:16:70", + "nodeType": "YulVariableDeclaration", + "src": "4236:16:70", + "value": { + "kind": "number", + "nativeSrc": "4251:1:70", + "nodeType": "YulLiteral", + "src": "4251:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4240:7:70", + "nodeType": "YulTypedName", + "src": "4240:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "4261:43:70", + "nodeType": "YulAssignment", + "src": "4261:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4289:9:70", + "nodeType": "YulIdentifier", + "src": "4289:9:70" + }, + { + "kind": "number", + "nativeSrc": "4300:2:70", + "nodeType": "YulLiteral", + "src": "4300:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4285:3:70", + "nodeType": "YulIdentifier", + "src": "4285:3:70" + }, + "nativeSrc": "4285:18:70", + "nodeType": "YulFunctionCall", + "src": "4285:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4272:12:70", + "nodeType": "YulIdentifier", + "src": "4272:12:70" + }, + "nativeSrc": "4272:32:70", + "nodeType": "YulFunctionCall", + "src": "4272:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "4261:7:70", + "nodeType": "YulIdentifier", + "src": "4261:7:70" + } + ] + }, + { + "nativeSrc": "4313:17:70", + "nodeType": "YulAssignment", + "src": "4313:17:70", + "value": { + "name": "value_1", + "nativeSrc": "4323:7:70", + "nodeType": "YulIdentifier", + "src": "4323:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4313:6:70", + "nodeType": "YulIdentifier", + "src": "4313:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes32", + "nativeSrc": "3969:367:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4014:9:70", + "nodeType": "YulTypedName", + "src": "4014:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4025:7:70", + "nodeType": "YulTypedName", + "src": "4025:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4037:6:70", + "nodeType": "YulTypedName", + "src": "4037:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4045:6:70", + "nodeType": "YulTypedName", + "src": "4045:6:70", + "type": "" + } + ], + "src": "3969:367:70" + }, + { + "body": { + "nativeSrc": "4442:76:70", + "nodeType": "YulBlock", + "src": "4442:76:70", + "statements": [ + { + "nativeSrc": "4452:26:70", + "nodeType": "YulAssignment", + "src": "4452:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4464:9:70", + "nodeType": "YulIdentifier", + "src": "4464:9:70" + }, + { + "kind": "number", + "nativeSrc": "4475:2:70", + "nodeType": "YulLiteral", + "src": "4475:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4460:3:70", + "nodeType": "YulIdentifier", + "src": "4460:3:70" + }, + "nativeSrc": "4460:18:70", + "nodeType": "YulFunctionCall", + "src": "4460:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4452:4:70", + "nodeType": "YulIdentifier", + "src": "4452:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4494:9:70", + "nodeType": "YulIdentifier", + "src": "4494:9:70" + }, + { + "name": "value0", + "nativeSrc": "4505:6:70", + "nodeType": "YulIdentifier", + "src": "4505:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4487:6:70", + "nodeType": "YulIdentifier", + "src": "4487:6:70" + }, + "nativeSrc": "4487:25:70", + "nodeType": "YulFunctionCall", + "src": "4487:25:70" + }, + "nativeSrc": "4487:25:70", + "nodeType": "YulExpressionStatement", + "src": "4487:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "4341:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4411:9:70", + "nodeType": "YulTypedName", + "src": "4411:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4422:6:70", + "nodeType": "YulTypedName", + "src": "4422:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4433:4:70", + "nodeType": "YulTypedName", + "src": "4433:4:70", + "type": "" + } + ], + "src": "4341:177:70" + }, + { + "body": { + "nativeSrc": "4622:101:70", + "nodeType": "YulBlock", + "src": "4622:101:70", + "statements": [ + { + "nativeSrc": "4632:26:70", + "nodeType": "YulAssignment", + "src": "4632:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4644:9:70", + "nodeType": "YulIdentifier", + "src": "4644:9:70" + }, + { + "kind": "number", + "nativeSrc": "4655:2:70", + "nodeType": "YulLiteral", + "src": "4655:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4640:3:70", + "nodeType": "YulIdentifier", + "src": "4640:3:70" + }, + "nativeSrc": "4640:18:70", + "nodeType": "YulFunctionCall", + "src": "4640:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4632:4:70", + "nodeType": "YulIdentifier", + "src": "4632:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4674:9:70", + "nodeType": "YulIdentifier", + "src": "4674:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4689:6:70", + "nodeType": "YulIdentifier", + "src": "4689:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4705:2:70", + "nodeType": "YulLiteral", + "src": "4705:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "4709:1:70", + "nodeType": "YulLiteral", + "src": "4709:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4701:3:70", + "nodeType": "YulIdentifier", + "src": "4701:3:70" + }, + "nativeSrc": "4701:10:70", + "nodeType": "YulFunctionCall", + "src": "4701:10:70" + }, + { + "kind": "number", + "nativeSrc": "4713:1:70", + "nodeType": "YulLiteral", + "src": "4713:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4697:3:70", + "nodeType": "YulIdentifier", + "src": "4697:3:70" + }, + "nativeSrc": "4697:18:70", + "nodeType": "YulFunctionCall", + "src": "4697:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4685:3:70", + "nodeType": "YulIdentifier", + "src": "4685:3:70" + }, + "nativeSrc": "4685:31:70", + "nodeType": "YulFunctionCall", + "src": "4685:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4667:6:70", + "nodeType": "YulIdentifier", + "src": "4667:6:70" + }, + "nativeSrc": "4667:50:70", + "nodeType": "YulFunctionCall", + "src": "4667:50:70" + }, + "nativeSrc": "4667:50:70", + "nodeType": "YulExpressionStatement", + "src": "4667:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "4523:200:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4591:9:70", + "nodeType": "YulTypedName", + "src": "4591:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4602:6:70", + "nodeType": "YulTypedName", + "src": "4602:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4613:4:70", + "nodeType": "YulTypedName", + "src": "4613:4:70", + "type": "" + } + ], + "src": "4523:200:70" + }, + { + "body": { + "nativeSrc": "4826:133:70", + "nodeType": "YulBlock", + "src": "4826:133:70", + "statements": [ + { + "nativeSrc": "4836:42:70", + "nodeType": "YulVariableDeclaration", + "src": "4836:42:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4854:7:70", + "nodeType": "YulIdentifier", + "src": "4854:7:70" + }, + { + "name": "headStart", + "nativeSrc": "4863:9:70", + "nodeType": "YulIdentifier", + "src": "4863:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4850:3:70", + "nodeType": "YulIdentifier", + "src": "4850:3:70" + }, + "nativeSrc": "4850:23:70", + "nodeType": "YulFunctionCall", + "src": "4850:23:70" + }, + { + "kind": "number", + "nativeSrc": "4875:2:70", + "nodeType": "YulLiteral", + "src": "4875:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4846:3:70", + "nodeType": "YulIdentifier", + "src": "4846:3:70" + }, + "nativeSrc": "4846:32:70", + "nodeType": "YulFunctionCall", + "src": "4846:32:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "4840:2:70", + "nodeType": "YulTypedName", + "src": "4840:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4893:16:70", + "nodeType": "YulBlock", + "src": "4893:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4902:1:70", + "nodeType": "YulLiteral", + "src": "4902:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4905:1:70", + "nodeType": "YulLiteral", + "src": "4905:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4895:6:70", + "nodeType": "YulIdentifier", + "src": "4895:6:70" + }, + "nativeSrc": "4895:12:70", + "nodeType": "YulFunctionCall", + "src": "4895:12:70" + }, + "nativeSrc": "4895:12:70", + "nodeType": "YulExpressionStatement", + "src": "4895:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "4890:2:70", + "nodeType": "YulIdentifier", + "src": "4890:2:70" + }, + "nativeSrc": "4887:22:70", + "nodeType": "YulIf", + "src": "4887:22:70" + }, + { + "nativeSrc": "4918:7:70", + "nodeType": "YulAssignment", + "src": "4918:7:70", + "value": { + "kind": "number", + "nativeSrc": "4924:1:70", + "nodeType": "YulLiteral", + "src": "4924:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "4918:2:70", + "nodeType": "YulIdentifier", + "src": "4918:2:70" + } + ] + }, + { + "nativeSrc": "4934:19:70", + "nodeType": "YulAssignment", + "src": "4934:19:70", + "value": { + "name": "headStart", + "nativeSrc": "4944:9:70", + "nodeType": "YulIdentifier", + "src": "4944:9:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4934:6:70", + "nodeType": "YulIdentifier", + "src": "4934:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Receipt_$16044_calldata_ptr", + "nativeSrc": "4728:231:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4792:9:70", + "nodeType": "YulTypedName", + "src": "4792:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4803:7:70", + "nodeType": "YulTypedName", + "src": "4803:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4815:6:70", + "nodeType": "YulTypedName", + "src": "4815:6:70", + "type": "" + } + ], + "src": "4728:231:70" + }, + { + "body": { + "nativeSrc": "5065:102:70", + "nodeType": "YulBlock", + "src": "5065:102:70", + "statements": [ + { + "nativeSrc": "5075:26:70", + "nodeType": "YulAssignment", + "src": "5075:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5087:9:70", + "nodeType": "YulIdentifier", + "src": "5087:9:70" + }, + { + "kind": "number", + "nativeSrc": "5098:2:70", + "nodeType": "YulLiteral", + "src": "5098:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5083:3:70", + "nodeType": "YulIdentifier", + "src": "5083:3:70" + }, + "nativeSrc": "5083:18:70", + "nodeType": "YulFunctionCall", + "src": "5083:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5075:4:70", + "nodeType": "YulIdentifier", + "src": "5075:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5117:9:70", + "nodeType": "YulIdentifier", + "src": "5117:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5132:6:70", + "nodeType": "YulIdentifier", + "src": "5132:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5148:3:70", + "nodeType": "YulLiteral", + "src": "5148:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "5153:1:70", + "nodeType": "YulLiteral", + "src": "5153:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5144:3:70", + "nodeType": "YulIdentifier", + "src": "5144:3:70" + }, + "nativeSrc": "5144:11:70", + "nodeType": "YulFunctionCall", + "src": "5144:11:70" + }, + { + "kind": "number", + "nativeSrc": "5157:1:70", + "nodeType": "YulLiteral", + "src": "5157:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5140:3:70", + "nodeType": "YulIdentifier", + "src": "5140:3:70" + }, + "nativeSrc": "5140:19:70", + "nodeType": "YulFunctionCall", + "src": "5140:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5128:3:70", + "nodeType": "YulIdentifier", + "src": "5128:3:70" + }, + "nativeSrc": "5128:32:70", + "nodeType": "YulFunctionCall", + "src": "5128:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5110:6:70", + "nodeType": "YulIdentifier", + "src": "5110:6:70" + }, + "nativeSrc": "5110:51:70", + "nodeType": "YulFunctionCall", + "src": "5110:51:70" + }, + "nativeSrc": "5110:51:70", + "nodeType": "YulExpressionStatement", + "src": "5110:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "4964:203:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5034:9:70", + "nodeType": "YulTypedName", + "src": "5034:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5045:6:70", + "nodeType": "YulTypedName", + "src": "5045:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5056:4:70", + "nodeType": "YulTypedName", + "src": "5056:4:70", + "type": "" + } + ], + "src": "4964:203:70" + }, + { + "body": { + "nativeSrc": "5241:176:70", + "nodeType": "YulBlock", + "src": "5241:176:70", + "statements": [ + { + "body": { + "nativeSrc": "5287:16:70", + "nodeType": "YulBlock", + "src": "5287:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5296:1:70", + "nodeType": "YulLiteral", + "src": "5296:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5299:1:70", + "nodeType": "YulLiteral", + "src": "5299:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5289:6:70", + "nodeType": "YulIdentifier", + "src": "5289:6:70" + }, + "nativeSrc": "5289:12:70", + "nodeType": "YulFunctionCall", + "src": "5289:12:70" + }, + "nativeSrc": "5289:12:70", + "nodeType": "YulExpressionStatement", + "src": "5289:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5262:7:70", + "nodeType": "YulIdentifier", + "src": "5262:7:70" + }, + { + "name": "headStart", + "nativeSrc": "5271:9:70", + "nodeType": "YulIdentifier", + "src": "5271:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5258:3:70", + "nodeType": "YulIdentifier", + "src": "5258:3:70" + }, + "nativeSrc": "5258:23:70", + "nodeType": "YulFunctionCall", + "src": "5258:23:70" + }, + { + "kind": "number", + "nativeSrc": "5283:2:70", + "nodeType": "YulLiteral", + "src": "5283:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5254:3:70", + "nodeType": "YulIdentifier", + "src": "5254:3:70" + }, + "nativeSrc": "5254:32:70", + "nodeType": "YulFunctionCall", + "src": "5254:32:70" + }, + "nativeSrc": "5251:52:70", + "nodeType": "YulIf", + "src": "5251:52:70" + }, + { + "nativeSrc": "5312:36:70", + "nodeType": "YulVariableDeclaration", + "src": "5312:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5338:9:70", + "nodeType": "YulIdentifier", + "src": "5338:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5325:12:70", + "nodeType": "YulIdentifier", + "src": "5325:12:70" + }, + "nativeSrc": "5325:23:70", + "nodeType": "YulFunctionCall", + "src": "5325:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5316:5:70", + "nodeType": "YulTypedName", + "src": "5316:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5381:5:70", + "nodeType": "YulIdentifier", + "src": "5381:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "5357:23:70", + "nodeType": "YulIdentifier", + "src": "5357:23:70" + }, + "nativeSrc": "5357:30:70", + "nodeType": "YulFunctionCall", + "src": "5357:30:70" + }, + "nativeSrc": "5357:30:70", + "nodeType": "YulExpressionStatement", + "src": "5357:30:70" + }, + { + "nativeSrc": "5396:15:70", + "nodeType": "YulAssignment", + "src": "5396:15:70", + "value": { + "name": "value", + "nativeSrc": "5406:5:70", + "nodeType": "YulIdentifier", + "src": "5406:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5396:6:70", + "nodeType": "YulIdentifier", + "src": "5396:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint32", + "nativeSrc": "5172:245:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5207:9:70", + "nodeType": "YulTypedName", + "src": "5207:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5218:7:70", + "nodeType": "YulTypedName", + "src": "5218:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5230:6:70", + "nodeType": "YulTypedName", + "src": "5230:6:70", + "type": "" + } + ], + "src": "5172:245:70" + }, + { + "body": { + "nativeSrc": "5543:508:70", + "nodeType": "YulBlock", + "src": "5543:508:70", + "statements": [ + { + "body": { + "nativeSrc": "5590:16:70", + "nodeType": "YulBlock", + "src": "5590:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5599:1:70", + "nodeType": "YulLiteral", + "src": "5599:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5602:1:70", + "nodeType": "YulLiteral", + "src": "5602:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5592:6:70", + "nodeType": "YulIdentifier", + "src": "5592:6:70" + }, + "nativeSrc": "5592:12:70", + "nodeType": "YulFunctionCall", + "src": "5592:12:70" + }, + "nativeSrc": "5592:12:70", + "nodeType": "YulExpressionStatement", + "src": "5592:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5564:7:70", + "nodeType": "YulIdentifier", + "src": "5564:7:70" + }, + { + "name": "headStart", + "nativeSrc": "5573:9:70", + "nodeType": "YulIdentifier", + "src": "5573:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5560:3:70", + "nodeType": "YulIdentifier", + "src": "5560:3:70" + }, + "nativeSrc": "5560:23:70", + "nodeType": "YulFunctionCall", + "src": "5560:23:70" + }, + { + "kind": "number", + "nativeSrc": "5585:3:70", + "nodeType": "YulLiteral", + "src": "5585:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5556:3:70", + "nodeType": "YulIdentifier", + "src": "5556:3:70" + }, + "nativeSrc": "5556:33:70", + "nodeType": "YulFunctionCall", + "src": "5556:33:70" + }, + "nativeSrc": "5553:53:70", + "nodeType": "YulIf", + "src": "5553:53:70" + }, + { + "nativeSrc": "5615:36:70", + "nodeType": "YulVariableDeclaration", + "src": "5615:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5641:9:70", + "nodeType": "YulIdentifier", + "src": "5641:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5628:12:70", + "nodeType": "YulIdentifier", + "src": "5628:12:70" + }, + "nativeSrc": "5628:23:70", + "nodeType": "YulFunctionCall", + "src": "5628:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5619:5:70", + "nodeType": "YulTypedName", + "src": "5619:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5685:5:70", + "nodeType": "YulIdentifier", + "src": "5685:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "5660:24:70", + "nodeType": "YulIdentifier", + "src": "5660:24:70" + }, + "nativeSrc": "5660:31:70", + "nodeType": "YulFunctionCall", + "src": "5660:31:70" + }, + "nativeSrc": "5660:31:70", + "nodeType": "YulExpressionStatement", + "src": "5660:31:70" + }, + { + "nativeSrc": "5700:15:70", + "nodeType": "YulAssignment", + "src": "5700:15:70", + "value": { + "name": "value", + "nativeSrc": "5710:5:70", + "nodeType": "YulIdentifier", + "src": "5710:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5700:6:70", + "nodeType": "YulIdentifier", + "src": "5700:6:70" + } + ] + }, + { + "nativeSrc": "5724:47:70", + "nodeType": "YulVariableDeclaration", + "src": "5724:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5756:9:70", + "nodeType": "YulIdentifier", + "src": "5756:9:70" + }, + { + "kind": "number", + "nativeSrc": "5767:2:70", + "nodeType": "YulLiteral", + "src": "5767:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5752:3:70", + "nodeType": "YulIdentifier", + "src": "5752:3:70" + }, + "nativeSrc": "5752:18:70", + "nodeType": "YulFunctionCall", + "src": "5752:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5739:12:70", + "nodeType": "YulIdentifier", + "src": "5739:12:70" + }, + "nativeSrc": "5739:32:70", + "nodeType": "YulFunctionCall", + "src": "5739:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "5728:7:70", + "nodeType": "YulTypedName", + "src": "5728:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "5805:7:70", + "nodeType": "YulIdentifier", + "src": "5805:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "5780:24:70", + "nodeType": "YulIdentifier", + "src": "5780:24:70" + }, + "nativeSrc": "5780:33:70", + "nodeType": "YulFunctionCall", + "src": "5780:33:70" + }, + "nativeSrc": "5780:33:70", + "nodeType": "YulExpressionStatement", + "src": "5780:33:70" + }, + { + "nativeSrc": "5822:17:70", + "nodeType": "YulAssignment", + "src": "5822:17:70", + "value": { + "name": "value_1", + "nativeSrc": "5832:7:70", + "nodeType": "YulIdentifier", + "src": "5832:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5822:6:70", + "nodeType": "YulIdentifier", + "src": "5822:6:70" + } + ] + }, + { + "nativeSrc": "5848:16:70", + "nodeType": "YulVariableDeclaration", + "src": "5848:16:70", + "value": { + "kind": "number", + "nativeSrc": "5863:1:70", + "nodeType": "YulLiteral", + "src": "5863:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "5852:7:70", + "nodeType": "YulTypedName", + "src": "5852:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "5873:43:70", + "nodeType": "YulAssignment", + "src": "5873:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5901:9:70", + "nodeType": "YulIdentifier", + "src": "5901:9:70" + }, + { + "kind": "number", + "nativeSrc": "5912:2:70", + "nodeType": "YulLiteral", + "src": "5912:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5897:3:70", + "nodeType": "YulIdentifier", + "src": "5897:3:70" + }, + "nativeSrc": "5897:18:70", + "nodeType": "YulFunctionCall", + "src": "5897:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5884:12:70", + "nodeType": "YulIdentifier", + "src": "5884:12:70" + }, + "nativeSrc": "5884:32:70", + "nodeType": "YulFunctionCall", + "src": "5884:32:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "5873:7:70", + "nodeType": "YulIdentifier", + "src": "5873:7:70" + } + ] + }, + { + "nativeSrc": "5925:17:70", + "nodeType": "YulAssignment", + "src": "5925:17:70", + "value": { + "name": "value_2", + "nativeSrc": "5935:7:70", + "nodeType": "YulIdentifier", + "src": "5935:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5925:6:70", + "nodeType": "YulIdentifier", + "src": "5925:6:70" + } + ] + }, + { + "nativeSrc": "5951:16:70", + "nodeType": "YulVariableDeclaration", + "src": "5951:16:70", + "value": { + "kind": "number", + "nativeSrc": "5966:1:70", + "nodeType": "YulLiteral", + "src": "5966:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "5955:7:70", + "nodeType": "YulTypedName", + "src": "5955:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "5976:43:70", + "nodeType": "YulAssignment", + "src": "5976:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6004:9:70", + "nodeType": "YulIdentifier", + "src": "6004:9:70" + }, + { + "kind": "number", + "nativeSrc": "6015:2:70", + "nodeType": "YulLiteral", + "src": "6015:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6000:3:70", + "nodeType": "YulIdentifier", + "src": "6000:3:70" + }, + "nativeSrc": "6000:18:70", + "nodeType": "YulFunctionCall", + "src": "6000:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5987:12:70", + "nodeType": "YulIdentifier", + "src": "5987:12:70" + }, + "nativeSrc": "5987:32:70", + "nodeType": "YulFunctionCall", + "src": "5987:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "5976:7:70", + "nodeType": "YulIdentifier", + "src": "5976:7:70" + } + ] + }, + { + "nativeSrc": "6028:17:70", + "nodeType": "YulAssignment", + "src": "6028:17:70", + "value": { + "name": "value_3", + "nativeSrc": "6038:7:70", + "nodeType": "YulIdentifier", + "src": "6038:7:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "6028:6:70", + "nodeType": "YulIdentifier", + "src": "6028:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "nativeSrc": "5422:629:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5485:9:70", + "nodeType": "YulTypedName", + "src": "5485:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5496:7:70", + "nodeType": "YulTypedName", + "src": "5496:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5508:6:70", + "nodeType": "YulTypedName", + "src": "5508:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5516:6:70", + "nodeType": "YulTypedName", + "src": "5516:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5524:6:70", + "nodeType": "YulTypedName", + "src": "5524:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "5532:6:70", + "nodeType": "YulTypedName", + "src": "5532:6:70", + "type": "" + } + ], + "src": "5422:629:70" + }, + { + "body": { + "nativeSrc": "6126:177:70", + "nodeType": "YulBlock", + "src": "6126:177:70", + "statements": [ + { + "body": { + "nativeSrc": "6172:16:70", + "nodeType": "YulBlock", + "src": "6172:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6181:1:70", + "nodeType": "YulLiteral", + "src": "6181:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6184:1:70", + "nodeType": "YulLiteral", + "src": "6184:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6174:6:70", + "nodeType": "YulIdentifier", + "src": "6174:6:70" + }, + "nativeSrc": "6174:12:70", + "nodeType": "YulFunctionCall", + "src": "6174:12:70" + }, + "nativeSrc": "6174:12:70", + "nodeType": "YulExpressionStatement", + "src": "6174:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6147:7:70", + "nodeType": "YulIdentifier", + "src": "6147:7:70" + }, + { + "name": "headStart", + "nativeSrc": "6156:9:70", + "nodeType": "YulIdentifier", + "src": "6156:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6143:3:70", + "nodeType": "YulIdentifier", + "src": "6143:3:70" + }, + "nativeSrc": "6143:23:70", + "nodeType": "YulFunctionCall", + "src": "6143:23:70" + }, + { + "kind": "number", + "nativeSrc": "6168:2:70", + "nodeType": "YulLiteral", + "src": "6168:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6139:3:70", + "nodeType": "YulIdentifier", + "src": "6139:3:70" + }, + "nativeSrc": "6139:32:70", + "nodeType": "YulFunctionCall", + "src": "6139:32:70" + }, + "nativeSrc": "6136:52:70", + "nodeType": "YulIf", + "src": "6136:52:70" + }, + { + "nativeSrc": "6197:36:70", + "nodeType": "YulVariableDeclaration", + "src": "6197:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6223:9:70", + "nodeType": "YulIdentifier", + "src": "6223:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6210:12:70", + "nodeType": "YulIdentifier", + "src": "6210:12:70" + }, + "nativeSrc": "6210:23:70", + "nodeType": "YulFunctionCall", + "src": "6210:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "6201:5:70", + "nodeType": "YulTypedName", + "src": "6201:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6267:5:70", + "nodeType": "YulIdentifier", + "src": "6267:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "6242:24:70", + "nodeType": "YulIdentifier", + "src": "6242:24:70" + }, + "nativeSrc": "6242:31:70", + "nodeType": "YulFunctionCall", + "src": "6242:31:70" + }, + "nativeSrc": "6242:31:70", + "nodeType": "YulExpressionStatement", + "src": "6242:31:70" + }, + { + "nativeSrc": "6282:15:70", + "nodeType": "YulAssignment", + "src": "6282:15:70", + "value": { + "name": "value", + "nativeSrc": "6292:5:70", + "nodeType": "YulIdentifier", + "src": "6292:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6282:6:70", + "nodeType": "YulIdentifier", + "src": "6282:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "6056:247:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6092:9:70", + "nodeType": "YulTypedName", + "src": "6092:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6103:7:70", + "nodeType": "YulTypedName", + "src": "6103:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6115:6:70", + "nodeType": "YulTypedName", + "src": "6115:6:70", + "type": "" + } + ], + "src": "6056:247:70" + }, + { + "body": { + "nativeSrc": "6350:76:70", + "nodeType": "YulBlock", + "src": "6350:76:70", + "statements": [ + { + "body": { + "nativeSrc": "6404:16:70", + "nodeType": "YulBlock", + "src": "6404:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6413:1:70", + "nodeType": "YulLiteral", + "src": "6413:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6416:1:70", + "nodeType": "YulLiteral", + "src": "6416:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6406:6:70", + "nodeType": "YulIdentifier", + "src": "6406:6:70" + }, + "nativeSrc": "6406:12:70", + "nodeType": "YulFunctionCall", + "src": "6406:12:70" + }, + "nativeSrc": "6406:12:70", + "nodeType": "YulExpressionStatement", + "src": "6406:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6373:5:70", + "nodeType": "YulIdentifier", + "src": "6373:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6394:5:70", + "nodeType": "YulIdentifier", + "src": "6394:5:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6387:6:70", + "nodeType": "YulIdentifier", + "src": "6387:6:70" + }, + "nativeSrc": "6387:13:70", + "nodeType": "YulFunctionCall", + "src": "6387:13:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6380:6:70", + "nodeType": "YulIdentifier", + "src": "6380:6:70" + }, + "nativeSrc": "6380:21:70", + "nodeType": "YulFunctionCall", + "src": "6380:21:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "6370:2:70", + "nodeType": "YulIdentifier", + "src": "6370:2:70" + }, + "nativeSrc": "6370:32:70", + "nodeType": "YulFunctionCall", + "src": "6370:32:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6363:6:70", + "nodeType": "YulIdentifier", + "src": "6363:6:70" + }, + "nativeSrc": "6363:40:70", + "nodeType": "YulFunctionCall", + "src": "6363:40:70" + }, + "nativeSrc": "6360:60:70", + "nodeType": "YulIf", + "src": "6360:60:70" + } + ] + }, + "name": "validator_revert_bool", + "nativeSrc": "6308:118:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6339:5:70", + "nodeType": "YulTypedName", + "src": "6339:5:70", + "type": "" + } + ], + "src": "6308:118:70" + }, + { + "body": { + "nativeSrc": "6549:484:70", + "nodeType": "YulBlock", + "src": "6549:484:70", + "statements": [ + { + "body": { + "nativeSrc": "6596:16:70", + "nodeType": "YulBlock", + "src": "6596:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6605:1:70", + "nodeType": "YulLiteral", + "src": "6605:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6608:1:70", + "nodeType": "YulLiteral", + "src": "6608:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6598:6:70", + "nodeType": "YulIdentifier", + "src": "6598:6:70" + }, + "nativeSrc": "6598:12:70", + "nodeType": "YulFunctionCall", + "src": "6598:12:70" + }, + "nativeSrc": "6598:12:70", + "nodeType": "YulExpressionStatement", + "src": "6598:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6570:7:70", + "nodeType": "YulIdentifier", + "src": "6570:7:70" + }, + { + "name": "headStart", + "nativeSrc": "6579:9:70", + "nodeType": "YulIdentifier", + "src": "6579:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6566:3:70", + "nodeType": "YulIdentifier", + "src": "6566:3:70" + }, + "nativeSrc": "6566:23:70", + "nodeType": "YulFunctionCall", + "src": "6566:23:70" + }, + { + "kind": "number", + "nativeSrc": "6591:3:70", + "nodeType": "YulLiteral", + "src": "6591:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6562:3:70", + "nodeType": "YulIdentifier", + "src": "6562:3:70" + }, + "nativeSrc": "6562:33:70", + "nodeType": "YulFunctionCall", + "src": "6562:33:70" + }, + "nativeSrc": "6559:53:70", + "nodeType": "YulIf", + "src": "6559:53:70" + }, + { + "nativeSrc": "6621:14:70", + "nodeType": "YulVariableDeclaration", + "src": "6621:14:70", + "value": { + "kind": "number", + "nativeSrc": "6634:1:70", + "nodeType": "YulLiteral", + "src": "6634:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "6625:5:70", + "nodeType": "YulTypedName", + "src": "6625:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "6644:32:70", + "nodeType": "YulAssignment", + "src": "6644:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6666:9:70", + "nodeType": "YulIdentifier", + "src": "6666:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6653:12:70", + "nodeType": "YulIdentifier", + "src": "6653:12:70" + }, + "nativeSrc": "6653:23:70", + "nodeType": "YulFunctionCall", + "src": "6653:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6644:5:70", + "nodeType": "YulIdentifier", + "src": "6644:5:70" + } + ] + }, + { + "nativeSrc": "6685:15:70", + "nodeType": "YulAssignment", + "src": "6685:15:70", + "value": { + "name": "value", + "nativeSrc": "6695:5:70", + "nodeType": "YulIdentifier", + "src": "6695:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6685:6:70", + "nodeType": "YulIdentifier", + "src": "6685:6:70" + } + ] + }, + { + "nativeSrc": "6709:16:70", + "nodeType": "YulVariableDeclaration", + "src": "6709:16:70", + "value": { + "kind": "number", + "nativeSrc": "6724:1:70", + "nodeType": "YulLiteral", + "src": "6724:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "6713:7:70", + "nodeType": "YulTypedName", + "src": "6713:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "6734:43:70", + "nodeType": "YulAssignment", + "src": "6734:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6762:9:70", + "nodeType": "YulIdentifier", + "src": "6762:9:70" + }, + { + "kind": "number", + "nativeSrc": "6773:2:70", + "nodeType": "YulLiteral", + "src": "6773:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6758:3:70", + "nodeType": "YulIdentifier", + "src": "6758:3:70" + }, + "nativeSrc": "6758:18:70", + "nodeType": "YulFunctionCall", + "src": "6758:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6745:12:70", + "nodeType": "YulIdentifier", + "src": "6745:12:70" + }, + "nativeSrc": "6745:32:70", + "nodeType": "YulFunctionCall", + "src": "6745:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "6734:7:70", + "nodeType": "YulIdentifier", + "src": "6734:7:70" + } + ] + }, + { + "nativeSrc": "6786:17:70", + "nodeType": "YulAssignment", + "src": "6786:17:70", + "value": { + "name": "value_1", + "nativeSrc": "6796:7:70", + "nodeType": "YulIdentifier", + "src": "6796:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6786:6:70", + "nodeType": "YulIdentifier", + "src": "6786:6:70" + } + ] + }, + { + "nativeSrc": "6812:47:70", + "nodeType": "YulVariableDeclaration", + "src": "6812:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6844:9:70", + "nodeType": "YulIdentifier", + "src": "6844:9:70" + }, + { + "kind": "number", + "nativeSrc": "6855:2:70", + "nodeType": "YulLiteral", + "src": "6855:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6840:3:70", + "nodeType": "YulIdentifier", + "src": "6840:3:70" + }, + "nativeSrc": "6840:18:70", + "nodeType": "YulFunctionCall", + "src": "6840:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6827:12:70", + "nodeType": "YulIdentifier", + "src": "6827:12:70" + }, + "nativeSrc": "6827:32:70", + "nodeType": "YulFunctionCall", + "src": "6827:32:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "6816:7:70", + "nodeType": "YulTypedName", + "src": "6816:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "6890:7:70", + "nodeType": "YulIdentifier", + "src": "6890:7:70" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "6868:21:70", + "nodeType": "YulIdentifier", + "src": "6868:21:70" + }, + "nativeSrc": "6868:30:70", + "nodeType": "YulFunctionCall", + "src": "6868:30:70" + }, + "nativeSrc": "6868:30:70", + "nodeType": "YulExpressionStatement", + "src": "6868:30:70" + }, + { + "nativeSrc": "6907:17:70", + "nodeType": "YulAssignment", + "src": "6907:17:70", + "value": { + "name": "value_2", + "nativeSrc": "6917:7:70", + "nodeType": "YulIdentifier", + "src": "6917:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "6907:6:70", + "nodeType": "YulIdentifier", + "src": "6907:6:70" + } + ] + }, + { + "nativeSrc": "6933:16:70", + "nodeType": "YulVariableDeclaration", + "src": "6933:16:70", + "value": { + "kind": "number", + "nativeSrc": "6948:1:70", + "nodeType": "YulLiteral", + "src": "6948:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "6937:7:70", + "nodeType": "YulTypedName", + "src": "6937:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "6958:43:70", + "nodeType": "YulAssignment", + "src": "6958:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6986:9:70", + "nodeType": "YulIdentifier", + "src": "6986:9:70" + }, + { + "kind": "number", + "nativeSrc": "6997:2:70", + "nodeType": "YulLiteral", + "src": "6997:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6982:3:70", + "nodeType": "YulIdentifier", + "src": "6982:3:70" + }, + "nativeSrc": "6982:18:70", + "nodeType": "YulFunctionCall", + "src": "6982:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6969:12:70", + "nodeType": "YulIdentifier", + "src": "6969:12:70" + }, + "nativeSrc": "6969:32:70", + "nodeType": "YulFunctionCall", + "src": "6969:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "6958:7:70", + "nodeType": "YulIdentifier", + "src": "6958:7:70" + } + ] + }, + { + "nativeSrc": "7010:17:70", + "nodeType": "YulAssignment", + "src": "7010:17:70", + "value": { + "name": "value_3", + "nativeSrc": "7020:7:70", + "nodeType": "YulIdentifier", + "src": "7020:7:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "7010:6:70", + "nodeType": "YulIdentifier", + "src": "7010:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256t_boolt_uint256", + "nativeSrc": "6431:602:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6491:9:70", + "nodeType": "YulTypedName", + "src": "6491:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6502:7:70", + "nodeType": "YulTypedName", + "src": "6502:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6514:6:70", + "nodeType": "YulTypedName", + "src": "6514:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6522:6:70", + "nodeType": "YulTypedName", + "src": "6522:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6530:6:70", + "nodeType": "YulTypedName", + "src": "6530:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6538:6:70", + "nodeType": "YulTypedName", + "src": "6538:6:70", + "type": "" + } + ], + "src": "6431:602:70" + }, + { + "body": { + "nativeSrc": "7133:92:70", + "nodeType": "YulBlock", + "src": "7133:92:70", + "statements": [ + { + "nativeSrc": "7143:26:70", + "nodeType": "YulAssignment", + "src": "7143:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7155:9:70", + "nodeType": "YulIdentifier", + "src": "7155:9:70" + }, + { + "kind": "number", + "nativeSrc": "7166:2:70", + "nodeType": "YulLiteral", + "src": "7166:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7151:3:70", + "nodeType": "YulIdentifier", + "src": "7151:3:70" + }, + "nativeSrc": "7151:18:70", + "nodeType": "YulFunctionCall", + "src": "7151:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7143:4:70", + "nodeType": "YulIdentifier", + "src": "7143:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7185:9:70", + "nodeType": "YulIdentifier", + "src": "7185:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7210:6:70", + "nodeType": "YulIdentifier", + "src": "7210:6:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7203:6:70", + "nodeType": "YulIdentifier", + "src": "7203:6:70" + }, + "nativeSrc": "7203:14:70", + "nodeType": "YulFunctionCall", + "src": "7203:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7196:6:70", + "nodeType": "YulIdentifier", + "src": "7196:6:70" + }, + "nativeSrc": "7196:22:70", + "nodeType": "YulFunctionCall", + "src": "7196:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7178:6:70", + "nodeType": "YulIdentifier", + "src": "7178:6:70" + }, + "nativeSrc": "7178:41:70", + "nodeType": "YulFunctionCall", + "src": "7178:41:70" + }, + "nativeSrc": "7178:41:70", + "nodeType": "YulExpressionStatement", + "src": "7178:41:70" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "7038:187:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7102:9:70", + "nodeType": "YulTypedName", + "src": "7102:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7113:6:70", + "nodeType": "YulTypedName", + "src": "7113:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7124:4:70", + "nodeType": "YulTypedName", + "src": "7124:4:70", + "type": "" + } + ], + "src": "7038:187:70" + }, + { + "body": { + "nativeSrc": "7302:275:70", + "nodeType": "YulBlock", + "src": "7302:275:70", + "statements": [ + { + "body": { + "nativeSrc": "7351:16:70", + "nodeType": "YulBlock", + "src": "7351:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7360:1:70", + "nodeType": "YulLiteral", + "src": "7360:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7363:1:70", + "nodeType": "YulLiteral", + "src": "7363:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7353:6:70", + "nodeType": "YulIdentifier", + "src": "7353:6:70" + }, + "nativeSrc": "7353:12:70", + "nodeType": "YulFunctionCall", + "src": "7353:12:70" + }, + "nativeSrc": "7353:12:70", + "nodeType": "YulExpressionStatement", + "src": "7353:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7330:6:70", + "nodeType": "YulIdentifier", + "src": "7330:6:70" + }, + { + "kind": "number", + "nativeSrc": "7338:4:70", + "nodeType": "YulLiteral", + "src": "7338:4:70", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7326:3:70", + "nodeType": "YulIdentifier", + "src": "7326:3:70" + }, + "nativeSrc": "7326:17:70", + "nodeType": "YulFunctionCall", + "src": "7326:17:70" + }, + { + "name": "end", + "nativeSrc": "7345:3:70", + "nodeType": "YulIdentifier", + "src": "7345:3:70" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7322:3:70", + "nodeType": "YulIdentifier", + "src": "7322:3:70" + }, + "nativeSrc": "7322:27:70", + "nodeType": "YulFunctionCall", + "src": "7322:27:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7315:6:70", + "nodeType": "YulIdentifier", + "src": "7315:6:70" + }, + "nativeSrc": "7315:35:70", + "nodeType": "YulFunctionCall", + "src": "7315:35:70" + }, + "nativeSrc": "7312:55:70", + "nodeType": "YulIf", + "src": "7312:55:70" + }, + { + "nativeSrc": "7376:30:70", + "nodeType": "YulAssignment", + "src": "7376:30:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7399:6:70", + "nodeType": "YulIdentifier", + "src": "7399:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7386:12:70", + "nodeType": "YulIdentifier", + "src": "7386:12:70" + }, + "nativeSrc": "7386:20:70", + "nodeType": "YulFunctionCall", + "src": "7386:20:70" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "7376:6:70", + "nodeType": "YulIdentifier", + "src": "7376:6:70" + } + ] + }, + { + "body": { + "nativeSrc": "7449:16:70", + "nodeType": "YulBlock", + "src": "7449:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7458:1:70", + "nodeType": "YulLiteral", + "src": "7458:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7461:1:70", + "nodeType": "YulLiteral", + "src": "7461:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7451:6:70", + "nodeType": "YulIdentifier", + "src": "7451:6:70" + }, + "nativeSrc": "7451:12:70", + "nodeType": "YulFunctionCall", + "src": "7451:12:70" + }, + "nativeSrc": "7451:12:70", + "nodeType": "YulExpressionStatement", + "src": "7451:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7421:6:70", + "nodeType": "YulIdentifier", + "src": "7421:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7437:2:70", + "nodeType": "YulLiteral", + "src": "7437:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "7441:1:70", + "nodeType": "YulLiteral", + "src": "7441:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7433:3:70", + "nodeType": "YulIdentifier", + "src": "7433:3:70" + }, + "nativeSrc": "7433:10:70", + "nodeType": "YulFunctionCall", + "src": "7433:10:70" + }, + { + "kind": "number", + "nativeSrc": "7445:1:70", + "nodeType": "YulLiteral", + "src": "7445:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7429:3:70", + "nodeType": "YulIdentifier", + "src": "7429:3:70" + }, + "nativeSrc": "7429:18:70", + "nodeType": "YulFunctionCall", + "src": "7429:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7418:2:70", + "nodeType": "YulIdentifier", + "src": "7418:2:70" + }, + "nativeSrc": "7418:30:70", + "nodeType": "YulFunctionCall", + "src": "7418:30:70" + }, + "nativeSrc": "7415:50:70", + "nodeType": "YulIf", + "src": "7415:50:70" + }, + { + "nativeSrc": "7474:29:70", + "nodeType": "YulAssignment", + "src": "7474:29:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7490:6:70", + "nodeType": "YulIdentifier", + "src": "7490:6:70" + }, + { + "kind": "number", + "nativeSrc": "7498:4:70", + "nodeType": "YulLiteral", + "src": "7498:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7486:3:70", + "nodeType": "YulIdentifier", + "src": "7486:3:70" + }, + "nativeSrc": "7486:17:70", + "nodeType": "YulFunctionCall", + "src": "7486:17:70" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "7474:8:70", + "nodeType": "YulIdentifier", + "src": "7474:8:70" + } + ] + }, + { + "body": { + "nativeSrc": "7555:16:70", + "nodeType": "YulBlock", + "src": "7555:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7564:1:70", + "nodeType": "YulLiteral", + "src": "7564:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7567:1:70", + "nodeType": "YulLiteral", + "src": "7567:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7557:6:70", + "nodeType": "YulIdentifier", + "src": "7557:6:70" + }, + "nativeSrc": "7557:12:70", + "nodeType": "YulFunctionCall", + "src": "7557:12:70" + }, + "nativeSrc": "7557:12:70", + "nodeType": "YulExpressionStatement", + "src": "7557:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7526:6:70", + "nodeType": "YulIdentifier", + "src": "7526:6:70" + }, + { + "name": "length", + "nativeSrc": "7534:6:70", + "nodeType": "YulIdentifier", + "src": "7534:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7522:3:70", + "nodeType": "YulIdentifier", + "src": "7522:3:70" + }, + "nativeSrc": "7522:19:70", + "nodeType": "YulFunctionCall", + "src": "7522:19:70" + }, + { + "kind": "number", + "nativeSrc": "7543:4:70", + "nodeType": "YulLiteral", + "src": "7543:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7518:3:70", + "nodeType": "YulIdentifier", + "src": "7518:3:70" + }, + "nativeSrc": "7518:30:70", + "nodeType": "YulFunctionCall", + "src": "7518:30:70" + }, + { + "name": "end", + "nativeSrc": "7550:3:70", + "nodeType": "YulIdentifier", + "src": "7550:3:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7515:2:70", + "nodeType": "YulIdentifier", + "src": "7515:2:70" + }, + "nativeSrc": "7515:39:70", + "nodeType": "YulFunctionCall", + "src": "7515:39:70" + }, + "nativeSrc": "7512:59:70", + "nodeType": "YulIf", + "src": "7512:59:70" + } + ] + }, + "name": "abi_decode_bytes_calldata", + "nativeSrc": "7230:347:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7265:6:70", + "nodeType": "YulTypedName", + "src": "7265:6:70", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7273:3:70", + "nodeType": "YulTypedName", + "src": "7273:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "7281:8:70", + "nodeType": "YulTypedName", + "src": "7281:8:70", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7291:6:70", + "nodeType": "YulTypedName", + "src": "7291:6:70", + "type": "" + } + ], + "src": "7230:347:70" + }, + { + "body": { + "nativeSrc": "7671:320:70", + "nodeType": "YulBlock", + "src": "7671:320:70", + "statements": [ + { + "body": { + "nativeSrc": "7717:16:70", + "nodeType": "YulBlock", + "src": "7717:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7726:1:70", + "nodeType": "YulLiteral", + "src": "7726:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7729:1:70", + "nodeType": "YulLiteral", + "src": "7729:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7719:6:70", + "nodeType": "YulIdentifier", + "src": "7719:6:70" + }, + "nativeSrc": "7719:12:70", + "nodeType": "YulFunctionCall", + "src": "7719:12:70" + }, + "nativeSrc": "7719:12:70", + "nodeType": "YulExpressionStatement", + "src": "7719:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7692:7:70", + "nodeType": "YulIdentifier", + "src": "7692:7:70" + }, + { + "name": "headStart", + "nativeSrc": "7701:9:70", + "nodeType": "YulIdentifier", + "src": "7701:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7688:3:70", + "nodeType": "YulIdentifier", + "src": "7688:3:70" + }, + "nativeSrc": "7688:23:70", + "nodeType": "YulFunctionCall", + "src": "7688:23:70" + }, + { + "kind": "number", + "nativeSrc": "7713:2:70", + "nodeType": "YulLiteral", + "src": "7713:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7684:3:70", + "nodeType": "YulIdentifier", + "src": "7684:3:70" + }, + "nativeSrc": "7684:32:70", + "nodeType": "YulFunctionCall", + "src": "7684:32:70" + }, + "nativeSrc": "7681:52:70", + "nodeType": "YulIf", + "src": "7681:52:70" + }, + { + "nativeSrc": "7742:37:70", + "nodeType": "YulVariableDeclaration", + "src": "7742:37:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7769:9:70", + "nodeType": "YulIdentifier", + "src": "7769:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7756:12:70", + "nodeType": "YulIdentifier", + "src": "7756:12:70" + }, + "nativeSrc": "7756:23:70", + "nodeType": "YulFunctionCall", + "src": "7756:23:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7746:6:70", + "nodeType": "YulTypedName", + "src": "7746:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7822:16:70", + "nodeType": "YulBlock", + "src": "7822:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7831:1:70", + "nodeType": "YulLiteral", + "src": "7831:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7834:1:70", + "nodeType": "YulLiteral", + "src": "7834:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7824:6:70", + "nodeType": "YulIdentifier", + "src": "7824:6:70" + }, + "nativeSrc": "7824:12:70", + "nodeType": "YulFunctionCall", + "src": "7824:12:70" + }, + "nativeSrc": "7824:12:70", + "nodeType": "YulExpressionStatement", + "src": "7824:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7794:6:70", + "nodeType": "YulIdentifier", + "src": "7794:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7810:2:70", + "nodeType": "YulLiteral", + "src": "7810:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "7814:1:70", + "nodeType": "YulLiteral", + "src": "7814:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7806:3:70", + "nodeType": "YulIdentifier", + "src": "7806:3:70" + }, + "nativeSrc": "7806:10:70", + "nodeType": "YulFunctionCall", + "src": "7806:10:70" + }, + { + "kind": "number", + "nativeSrc": "7818:1:70", + "nodeType": "YulLiteral", + "src": "7818:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7802:3:70", + "nodeType": "YulIdentifier", + "src": "7802:3:70" + }, + "nativeSrc": "7802:18:70", + "nodeType": "YulFunctionCall", + "src": "7802:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7791:2:70", + "nodeType": "YulIdentifier", + "src": "7791:2:70" + }, + "nativeSrc": "7791:30:70", + "nodeType": "YulFunctionCall", + "src": "7791:30:70" + }, + "nativeSrc": "7788:50:70", + "nodeType": "YulIf", + "src": "7788:50:70" + }, + { + "nativeSrc": "7847:84:70", + "nodeType": "YulVariableDeclaration", + "src": "7847:84:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7903:9:70", + "nodeType": "YulIdentifier", + "src": "7903:9:70" + }, + { + "name": "offset", + "nativeSrc": "7914:6:70", + "nodeType": "YulIdentifier", + "src": "7914:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7899:3:70", + "nodeType": "YulIdentifier", + "src": "7899:3:70" + }, + "nativeSrc": "7899:22:70", + "nodeType": "YulFunctionCall", + "src": "7899:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "7923:7:70", + "nodeType": "YulIdentifier", + "src": "7923:7:70" + } + ], + "functionName": { + "name": "abi_decode_bytes_calldata", + "nativeSrc": "7873:25:70", + "nodeType": "YulIdentifier", + "src": "7873:25:70" + }, + "nativeSrc": "7873:58:70", + "nodeType": "YulFunctionCall", + "src": "7873:58:70" + }, + "variables": [ + { + "name": "value0_1", + "nativeSrc": "7851:8:70", + "nodeType": "YulTypedName", + "src": "7851:8:70", + "type": "" + }, + { + "name": "value1_1", + "nativeSrc": "7861:8:70", + "nodeType": "YulTypedName", + "src": "7861:8:70", + "type": "" + } + ] + }, + { + "nativeSrc": "7940:18:70", + "nodeType": "YulAssignment", + "src": "7940:18:70", + "value": { + "name": "value0_1", + "nativeSrc": "7950:8:70", + "nodeType": "YulIdentifier", + "src": "7950:8:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7940:6:70", + "nodeType": "YulIdentifier", + "src": "7940:6:70" + } + ] + }, + { + "nativeSrc": "7967:18:70", + "nodeType": "YulAssignment", + "src": "7967:18:70", + "value": { + "name": "value1_1", + "nativeSrc": "7977:8:70", + "nodeType": "YulIdentifier", + "src": "7977:8:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "7967:6:70", + "nodeType": "YulIdentifier", + "src": "7967:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_calldata_ptr", + "nativeSrc": "7582:409:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7629:9:70", + "nodeType": "YulTypedName", + "src": "7629:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7640:7:70", + "nodeType": "YulTypedName", + "src": "7640:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7652:6:70", + "nodeType": "YulTypedName", + "src": "7652:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7660:6:70", + "nodeType": "YulTypedName", + "src": "7660:6:70", + "type": "" + } + ], + "src": "7582:409:70" + }, + { + "body": { + "nativeSrc": "8121:587:70", + "nodeType": "YulBlock", + "src": "8121:587:70", + "statements": [ + { + "body": { + "nativeSrc": "8167:16:70", + "nodeType": "YulBlock", + "src": "8167:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8176:1:70", + "nodeType": "YulLiteral", + "src": "8176:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8179:1:70", + "nodeType": "YulLiteral", + "src": "8179:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8169:6:70", + "nodeType": "YulIdentifier", + "src": "8169:6:70" + }, + "nativeSrc": "8169:12:70", + "nodeType": "YulFunctionCall", + "src": "8169:12:70" + }, + "nativeSrc": "8169:12:70", + "nodeType": "YulExpressionStatement", + "src": "8169:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8142:7:70", + "nodeType": "YulIdentifier", + "src": "8142:7:70" + }, + { + "name": "headStart", + "nativeSrc": "8151:9:70", + "nodeType": "YulIdentifier", + "src": "8151:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8138:3:70", + "nodeType": "YulIdentifier", + "src": "8138:3:70" + }, + "nativeSrc": "8138:23:70", + "nodeType": "YulFunctionCall", + "src": "8138:23:70" + }, + { + "kind": "number", + "nativeSrc": "8163:2:70", + "nodeType": "YulLiteral", + "src": "8163:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8134:3:70", + "nodeType": "YulIdentifier", + "src": "8134:3:70" + }, + "nativeSrc": "8134:32:70", + "nodeType": "YulFunctionCall", + "src": "8134:32:70" + }, + "nativeSrc": "8131:52:70", + "nodeType": "YulIf", + "src": "8131:52:70" + }, + { + "nativeSrc": "8192:37:70", + "nodeType": "YulVariableDeclaration", + "src": "8192:37:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8219:9:70", + "nodeType": "YulIdentifier", + "src": "8219:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8206:12:70", + "nodeType": "YulIdentifier", + "src": "8206:12:70" + }, + "nativeSrc": "8206:23:70", + "nodeType": "YulFunctionCall", + "src": "8206:23:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8196:6:70", + "nodeType": "YulTypedName", + "src": "8196:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8272:16:70", + "nodeType": "YulBlock", + "src": "8272:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8281:1:70", + "nodeType": "YulLiteral", + "src": "8281:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8284:1:70", + "nodeType": "YulLiteral", + "src": "8284:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8274:6:70", + "nodeType": "YulIdentifier", + "src": "8274:6:70" + }, + "nativeSrc": "8274:12:70", + "nodeType": "YulFunctionCall", + "src": "8274:12:70" + }, + "nativeSrc": "8274:12:70", + "nodeType": "YulExpressionStatement", + "src": "8274:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8244:6:70", + "nodeType": "YulIdentifier", + "src": "8244:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8260:2:70", + "nodeType": "YulLiteral", + "src": "8260:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "8264:1:70", + "nodeType": "YulLiteral", + "src": "8264:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8256:3:70", + "nodeType": "YulIdentifier", + "src": "8256:3:70" + }, + "nativeSrc": "8256:10:70", + "nodeType": "YulFunctionCall", + "src": "8256:10:70" + }, + { + "kind": "number", + "nativeSrc": "8268:1:70", + "nodeType": "YulLiteral", + "src": "8268:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8252:3:70", + "nodeType": "YulIdentifier", + "src": "8252:3:70" + }, + "nativeSrc": "8252:18:70", + "nodeType": "YulFunctionCall", + "src": "8252:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8241:2:70", + "nodeType": "YulIdentifier", + "src": "8241:2:70" + }, + "nativeSrc": "8241:30:70", + "nodeType": "YulFunctionCall", + "src": "8241:30:70" + }, + "nativeSrc": "8238:50:70", + "nodeType": "YulIf", + "src": "8238:50:70" + }, + { + "nativeSrc": "8297:84:70", + "nodeType": "YulVariableDeclaration", + "src": "8297:84:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8353:9:70", + "nodeType": "YulIdentifier", + "src": "8353:9:70" + }, + { + "name": "offset", + "nativeSrc": "8364:6:70", + "nodeType": "YulIdentifier", + "src": "8364:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8349:3:70", + "nodeType": "YulIdentifier", + "src": "8349:3:70" + }, + "nativeSrc": "8349:22:70", + "nodeType": "YulFunctionCall", + "src": "8349:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "8373:7:70", + "nodeType": "YulIdentifier", + "src": "8373:7:70" + } + ], + "functionName": { + "name": "abi_decode_bytes_calldata", + "nativeSrc": "8323:25:70", + "nodeType": "YulIdentifier", + "src": "8323:25:70" + }, + "nativeSrc": "8323:58:70", + "nodeType": "YulFunctionCall", + "src": "8323:58:70" + }, + "variables": [ + { + "name": "value0_1", + "nativeSrc": "8301:8:70", + "nodeType": "YulTypedName", + "src": "8301:8:70", + "type": "" + }, + { + "name": "value1_1", + "nativeSrc": "8311:8:70", + "nodeType": "YulTypedName", + "src": "8311:8:70", + "type": "" + } + ] + }, + { + "nativeSrc": "8390:18:70", + "nodeType": "YulAssignment", + "src": "8390:18:70", + "value": { + "name": "value0_1", + "nativeSrc": "8400:8:70", + "nodeType": "YulIdentifier", + "src": "8400:8:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8390:6:70", + "nodeType": "YulIdentifier", + "src": "8390:6:70" + } + ] + }, + { + "nativeSrc": "8417:18:70", + "nodeType": "YulAssignment", + "src": "8417:18:70", + "value": { + "name": "value1_1", + "nativeSrc": "8427:8:70", + "nodeType": "YulIdentifier", + "src": "8427:8:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8417:6:70", + "nodeType": "YulIdentifier", + "src": "8417:6:70" + } + ] + }, + { + "nativeSrc": "8444:48:70", + "nodeType": "YulVariableDeclaration", + "src": "8444:48:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8477:9:70", + "nodeType": "YulIdentifier", + "src": "8477:9:70" + }, + { + "kind": "number", + "nativeSrc": "8488:2:70", + "nodeType": "YulLiteral", + "src": "8488:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8473:3:70", + "nodeType": "YulIdentifier", + "src": "8473:3:70" + }, + "nativeSrc": "8473:18:70", + "nodeType": "YulFunctionCall", + "src": "8473:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8460:12:70", + "nodeType": "YulIdentifier", + "src": "8460:12:70" + }, + "nativeSrc": "8460:32:70", + "nodeType": "YulFunctionCall", + "src": "8460:32:70" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "8448:8:70", + "nodeType": "YulTypedName", + "src": "8448:8:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8537:16:70", + "nodeType": "YulBlock", + "src": "8537:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8546:1:70", + "nodeType": "YulLiteral", + "src": "8546:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8549:1:70", + "nodeType": "YulLiteral", + "src": "8549:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8539:6:70", + "nodeType": "YulIdentifier", + "src": "8539:6:70" + }, + "nativeSrc": "8539:12:70", + "nodeType": "YulFunctionCall", + "src": "8539:12:70" + }, + "nativeSrc": "8539:12:70", + "nodeType": "YulExpressionStatement", + "src": "8539:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "8507:8:70", + "nodeType": "YulIdentifier", + "src": "8507:8:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8525:2:70", + "nodeType": "YulLiteral", + "src": "8525:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "8529:1:70", + "nodeType": "YulLiteral", + "src": "8529:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8521:3:70", + "nodeType": "YulIdentifier", + "src": "8521:3:70" + }, + "nativeSrc": "8521:10:70", + "nodeType": "YulFunctionCall", + "src": "8521:10:70" + }, + { + "kind": "number", + "nativeSrc": "8533:1:70", + "nodeType": "YulLiteral", + "src": "8533:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8517:3:70", + "nodeType": "YulIdentifier", + "src": "8517:3:70" + }, + "nativeSrc": "8517:18:70", + "nodeType": "YulFunctionCall", + "src": "8517:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8504:2:70", + "nodeType": "YulIdentifier", + "src": "8504:2:70" + }, + "nativeSrc": "8504:32:70", + "nodeType": "YulFunctionCall", + "src": "8504:32:70" + }, + "nativeSrc": "8501:52:70", + "nodeType": "YulIf", + "src": "8501:52:70" + }, + { + "nativeSrc": "8562:86:70", + "nodeType": "YulVariableDeclaration", + "src": "8562:86:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8618:9:70", + "nodeType": "YulIdentifier", + "src": "8618:9:70" + }, + { + "name": "offset_1", + "nativeSrc": "8629:8:70", + "nodeType": "YulIdentifier", + "src": "8629:8:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8614:3:70", + "nodeType": "YulIdentifier", + "src": "8614:3:70" + }, + "nativeSrc": "8614:24:70", + "nodeType": "YulFunctionCall", + "src": "8614:24:70" + }, + { + "name": "dataEnd", + "nativeSrc": "8640:7:70", + "nodeType": "YulIdentifier", + "src": "8640:7:70" + } + ], + "functionName": { + "name": "abi_decode_bytes_calldata", + "nativeSrc": "8588:25:70", + "nodeType": "YulIdentifier", + "src": "8588:25:70" + }, + "nativeSrc": "8588:60:70", + "nodeType": "YulFunctionCall", + "src": "8588:60:70" + }, + "variables": [ + { + "name": "value2_1", + "nativeSrc": "8566:8:70", + "nodeType": "YulTypedName", + "src": "8566:8:70", + "type": "" + }, + { + "name": "value3_1", + "nativeSrc": "8576:8:70", + "nodeType": "YulTypedName", + "src": "8576:8:70", + "type": "" + } + ] + }, + { + "nativeSrc": "8657:18:70", + "nodeType": "YulAssignment", + "src": "8657:18:70", + "value": { + "name": "value2_1", + "nativeSrc": "8667:8:70", + "nodeType": "YulIdentifier", + "src": "8667:8:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "8657:6:70", + "nodeType": "YulIdentifier", + "src": "8657:6:70" + } + ] + }, + { + "nativeSrc": "8684:18:70", + "nodeType": "YulAssignment", + "src": "8684:18:70", + "value": { + "name": "value3_1", + "nativeSrc": "8694:8:70", + "nodeType": "YulIdentifier", + "src": "8694:8:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "8684:6:70", + "nodeType": "YulIdentifier", + "src": "8684:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr", + "nativeSrc": "7996:712:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8063:9:70", + "nodeType": "YulTypedName", + "src": "8063:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8074:7:70", + "nodeType": "YulTypedName", + "src": "8074:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8086:6:70", + "nodeType": "YulTypedName", + "src": "8086:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8094:6:70", + "nodeType": "YulTypedName", + "src": "8094:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8102:6:70", + "nodeType": "YulTypedName", + "src": "8102:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "8110:6:70", + "nodeType": "YulTypedName", + "src": "8110:6:70", + "type": "" + } + ], + "src": "7996:712:70" + }, + { + "body": { + "nativeSrc": "8842:119:70", + "nodeType": "YulBlock", + "src": "8842:119:70", + "statements": [ + { + "nativeSrc": "8852:26:70", + "nodeType": "YulAssignment", + "src": "8852:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8864:9:70", + "nodeType": "YulIdentifier", + "src": "8864:9:70" + }, + { + "kind": "number", + "nativeSrc": "8875:2:70", + "nodeType": "YulLiteral", + "src": "8875:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8860:3:70", + "nodeType": "YulIdentifier", + "src": "8860:3:70" + }, + "nativeSrc": "8860:18:70", + "nodeType": "YulFunctionCall", + "src": "8860:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8852:4:70", + "nodeType": "YulIdentifier", + "src": "8852:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8894:9:70", + "nodeType": "YulIdentifier", + "src": "8894:9:70" + }, + { + "name": "value0", + "nativeSrc": "8905:6:70", + "nodeType": "YulIdentifier", + "src": "8905:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8887:6:70", + "nodeType": "YulIdentifier", + "src": "8887:6:70" + }, + "nativeSrc": "8887:25:70", + "nodeType": "YulFunctionCall", + "src": "8887:25:70" + }, + "nativeSrc": "8887:25:70", + "nodeType": "YulExpressionStatement", + "src": "8887:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8932:9:70", + "nodeType": "YulIdentifier", + "src": "8932:9:70" + }, + { + "kind": "number", + "nativeSrc": "8943:2:70", + "nodeType": "YulLiteral", + "src": "8943:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8928:3:70", + "nodeType": "YulIdentifier", + "src": "8928:3:70" + }, + "nativeSrc": "8928:18:70", + "nodeType": "YulFunctionCall", + "src": "8928:18:70" + }, + { + "name": "value1", + "nativeSrc": "8948:6:70", + "nodeType": "YulIdentifier", + "src": "8948:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8921:6:70", + "nodeType": "YulIdentifier", + "src": "8921:6:70" + }, + "nativeSrc": "8921:34:70", + "nodeType": "YulFunctionCall", + "src": "8921:34:70" + }, + "nativeSrc": "8921:34:70", + "nodeType": "YulExpressionStatement", + "src": "8921:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "8713:248:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8803:9:70", + "nodeType": "YulTypedName", + "src": "8803:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8814:6:70", + "nodeType": "YulTypedName", + "src": "8814:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8822:6:70", + "nodeType": "YulTypedName", + "src": "8822:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8833:4:70", + "nodeType": "YulTypedName", + "src": "8833:4:70", + "type": "" + } + ], + "src": "8713:248:70" + }, + { + "body": { + "nativeSrc": "9007:303:70", + "nodeType": "YulBlock", + "src": "9007:303:70", + "statements": [ + { + "nativeSrc": "9017:19:70", + "nodeType": "YulAssignment", + "src": "9017:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9033:2:70", + "nodeType": "YulLiteral", + "src": "9033:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9027:5:70", + "nodeType": "YulIdentifier", + "src": "9027:5:70" + }, + "nativeSrc": "9027:9:70", + "nodeType": "YulFunctionCall", + "src": "9027:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "9017:6:70", + "nodeType": "YulIdentifier", + "src": "9017:6:70" + } + ] + }, + { + "nativeSrc": "9045:34:70", + "nodeType": "YulVariableDeclaration", + "src": "9045:34:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9067:6:70", + "nodeType": "YulIdentifier", + "src": "9067:6:70" + }, + { + "kind": "number", + "nativeSrc": "9075:3:70", + "nodeType": "YulLiteral", + "src": "9075:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9063:3:70", + "nodeType": "YulIdentifier", + "src": "9063:3:70" + }, + "nativeSrc": "9063:16:70", + "nodeType": "YulFunctionCall", + "src": "9063:16:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "9049:10:70", + "nodeType": "YulTypedName", + "src": "9049:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9162:111:70", + "nodeType": "YulBlock", + "src": "9162:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9183:1:70", + "nodeType": "YulLiteral", + "src": "9183:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9190:3:70", + "nodeType": "YulLiteral", + "src": "9190:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "9195:10:70", + "nodeType": "YulLiteral", + "src": "9195:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9186:3:70", + "nodeType": "YulIdentifier", + "src": "9186:3:70" + }, + "nativeSrc": "9186:20:70", + "nodeType": "YulFunctionCall", + "src": "9186:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9176:6:70", + "nodeType": "YulIdentifier", + "src": "9176:6:70" + }, + "nativeSrc": "9176:31:70", + "nodeType": "YulFunctionCall", + "src": "9176:31:70" + }, + "nativeSrc": "9176:31:70", + "nodeType": "YulExpressionStatement", + "src": "9176:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9227:1:70", + "nodeType": "YulLiteral", + "src": "9227:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "9230:4:70", + "nodeType": "YulLiteral", + "src": "9230:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9220:6:70", + "nodeType": "YulIdentifier", + "src": "9220:6:70" + }, + "nativeSrc": "9220:15:70", + "nodeType": "YulFunctionCall", + "src": "9220:15:70" + }, + "nativeSrc": "9220:15:70", + "nodeType": "YulExpressionStatement", + "src": "9220:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9255:1:70", + "nodeType": "YulLiteral", + "src": "9255:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9258:4:70", + "nodeType": "YulLiteral", + "src": "9258:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9248:6:70", + "nodeType": "YulIdentifier", + "src": "9248:6:70" + }, + "nativeSrc": "9248:15:70", + "nodeType": "YulFunctionCall", + "src": "9248:15:70" + }, + "nativeSrc": "9248:15:70", + "nodeType": "YulExpressionStatement", + "src": "9248:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9097:10:70", + "nodeType": "YulIdentifier", + "src": "9097:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9117:2:70", + "nodeType": "YulLiteral", + "src": "9117:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "9121:1:70", + "nodeType": "YulLiteral", + "src": "9121:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9113:3:70", + "nodeType": "YulIdentifier", + "src": "9113:3:70" + }, + "nativeSrc": "9113:10:70", + "nodeType": "YulFunctionCall", + "src": "9113:10:70" + }, + { + "kind": "number", + "nativeSrc": "9125:1:70", + "nodeType": "YulLiteral", + "src": "9125:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9109:3:70", + "nodeType": "YulIdentifier", + "src": "9109:3:70" + }, + "nativeSrc": "9109:18:70", + "nodeType": "YulFunctionCall", + "src": "9109:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9094:2:70", + "nodeType": "YulIdentifier", + "src": "9094:2:70" + }, + "nativeSrc": "9094:34:70", + "nodeType": "YulFunctionCall", + "src": "9094:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9133:10:70", + "nodeType": "YulIdentifier", + "src": "9133:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "9145:6:70", + "nodeType": "YulIdentifier", + "src": "9145:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9130:2:70", + "nodeType": "YulIdentifier", + "src": "9130:2:70" + }, + "nativeSrc": "9130:22:70", + "nodeType": "YulFunctionCall", + "src": "9130:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "9091:2:70", + "nodeType": "YulIdentifier", + "src": "9091:2:70" + }, + "nativeSrc": "9091:62:70", + "nodeType": "YulFunctionCall", + "src": "9091:62:70" + }, + "nativeSrc": "9088:185:70", + "nodeType": "YulIf", + "src": "9088:185:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9289:2:70", + "nodeType": "YulLiteral", + "src": "9289:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "9293:10:70", + "nodeType": "YulIdentifier", + "src": "9293:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9282:6:70", + "nodeType": "YulIdentifier", + "src": "9282:6:70" + }, + "nativeSrc": "9282:22:70", + "nodeType": "YulFunctionCall", + "src": "9282:22:70" + }, + "nativeSrc": "9282:22:70", + "nodeType": "YulExpressionStatement", + "src": "9282:22:70" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "8966:344:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "8996:6:70", + "nodeType": "YulTypedName", + "src": "8996:6:70", + "type": "" + } + ], + "src": "8966:344:70" + }, + { + "body": { + "nativeSrc": "9361:306:70", + "nodeType": "YulBlock", + "src": "9361:306:70", + "statements": [ + { + "nativeSrc": "9371:19:70", + "nodeType": "YulAssignment", + "src": "9371:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9387:2:70", + "nodeType": "YulLiteral", + "src": "9387:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9381:5:70", + "nodeType": "YulIdentifier", + "src": "9381:5:70" + }, + "nativeSrc": "9381:9:70", + "nodeType": "YulFunctionCall", + "src": "9381:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "9371:6:70", + "nodeType": "YulIdentifier", + "src": "9371:6:70" + } + ] + }, + { + "nativeSrc": "9399:37:70", + "nodeType": "YulVariableDeclaration", + "src": "9399:37:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9421:6:70", + "nodeType": "YulIdentifier", + "src": "9421:6:70" + }, + { + "kind": "number", + "nativeSrc": "9429:6:70", + "nodeType": "YulLiteral", + "src": "9429:6:70", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9417:3:70", + "nodeType": "YulIdentifier", + "src": "9417:3:70" + }, + "nativeSrc": "9417:19:70", + "nodeType": "YulFunctionCall", + "src": "9417:19:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "9403:10:70", + "nodeType": "YulTypedName", + "src": "9403:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9519:111:70", + "nodeType": "YulBlock", + "src": "9519:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9540:1:70", + "nodeType": "YulLiteral", + "src": "9540:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9547:3:70", + "nodeType": "YulLiteral", + "src": "9547:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "9552:10:70", + "nodeType": "YulLiteral", + "src": "9552:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9543:3:70", + "nodeType": "YulIdentifier", + "src": "9543:3:70" + }, + "nativeSrc": "9543:20:70", + "nodeType": "YulFunctionCall", + "src": "9543:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9533:6:70", + "nodeType": "YulIdentifier", + "src": "9533:6:70" + }, + "nativeSrc": "9533:31:70", + "nodeType": "YulFunctionCall", + "src": "9533:31:70" + }, + "nativeSrc": "9533:31:70", + "nodeType": "YulExpressionStatement", + "src": "9533:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9584:1:70", + "nodeType": "YulLiteral", + "src": "9584:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "9587:4:70", + "nodeType": "YulLiteral", + "src": "9587:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9577:6:70", + "nodeType": "YulIdentifier", + "src": "9577:6:70" + }, + "nativeSrc": "9577:15:70", + "nodeType": "YulFunctionCall", + "src": "9577:15:70" + }, + "nativeSrc": "9577:15:70", + "nodeType": "YulExpressionStatement", + "src": "9577:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9612:1:70", + "nodeType": "YulLiteral", + "src": "9612:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9615:4:70", + "nodeType": "YulLiteral", + "src": "9615:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9605:6:70", + "nodeType": "YulIdentifier", + "src": "9605:6:70" + }, + "nativeSrc": "9605:15:70", + "nodeType": "YulFunctionCall", + "src": "9605:15:70" + }, + "nativeSrc": "9605:15:70", + "nodeType": "YulExpressionStatement", + "src": "9605:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9454:10:70", + "nodeType": "YulIdentifier", + "src": "9454:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9474:2:70", + "nodeType": "YulLiteral", + "src": "9474:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "9478:1:70", + "nodeType": "YulLiteral", + "src": "9478:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9470:3:70", + "nodeType": "YulIdentifier", + "src": "9470:3:70" + }, + "nativeSrc": "9470:10:70", + "nodeType": "YulFunctionCall", + "src": "9470:10:70" + }, + { + "kind": "number", + "nativeSrc": "9482:1:70", + "nodeType": "YulLiteral", + "src": "9482:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9466:3:70", + "nodeType": "YulIdentifier", + "src": "9466:3:70" + }, + "nativeSrc": "9466:18:70", + "nodeType": "YulFunctionCall", + "src": "9466:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9451:2:70", + "nodeType": "YulIdentifier", + "src": "9451:2:70" + }, + "nativeSrc": "9451:34:70", + "nodeType": "YulFunctionCall", + "src": "9451:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9490:10:70", + "nodeType": "YulIdentifier", + "src": "9490:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "9502:6:70", + "nodeType": "YulIdentifier", + "src": "9502:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9487:2:70", + "nodeType": "YulIdentifier", + "src": "9487:2:70" + }, + "nativeSrc": "9487:22:70", + "nodeType": "YulFunctionCall", + "src": "9487:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "9448:2:70", + "nodeType": "YulIdentifier", + "src": "9448:2:70" + }, + "nativeSrc": "9448:62:70", + "nodeType": "YulFunctionCall", + "src": "9448:62:70" + }, + "nativeSrc": "9445:185:70", + "nodeType": "YulIf", + "src": "9445:185:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9646:2:70", + "nodeType": "YulLiteral", + "src": "9646:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "9650:10:70", + "nodeType": "YulIdentifier", + "src": "9650:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9639:6:70", + "nodeType": "YulIdentifier", + "src": "9639:6:70" + }, + "nativeSrc": "9639:22:70", + "nodeType": "YulFunctionCall", + "src": "9639:22:70" + }, + "nativeSrc": "9639:22:70", + "nodeType": "YulExpressionStatement", + "src": "9639:22:70" + } + ] + }, + "name": "allocate_memory_2390", + "nativeSrc": "9315:352:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "9350:6:70", + "nodeType": "YulTypedName", + "src": "9350:6:70", + "type": "" + } + ], + "src": "9315:352:70" + }, + { + "body": { + "nativeSrc": "9718:303:70", + "nodeType": "YulBlock", + "src": "9718:303:70", + "statements": [ + { + "nativeSrc": "9728:19:70", + "nodeType": "YulAssignment", + "src": "9728:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9744:2:70", + "nodeType": "YulLiteral", + "src": "9744:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9738:5:70", + "nodeType": "YulIdentifier", + "src": "9738:5:70" + }, + "nativeSrc": "9738:9:70", + "nodeType": "YulFunctionCall", + "src": "9738:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "9728:6:70", + "nodeType": "YulIdentifier", + "src": "9728:6:70" + } + ] + }, + { + "nativeSrc": "9756:34:70", + "nodeType": "YulVariableDeclaration", + "src": "9756:34:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9778:6:70", + "nodeType": "YulIdentifier", + "src": "9778:6:70" + }, + { + "kind": "number", + "nativeSrc": "9786:3:70", + "nodeType": "YulLiteral", + "src": "9786:3:70", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9774:3:70", + "nodeType": "YulIdentifier", + "src": "9774:3:70" + }, + "nativeSrc": "9774:16:70", + "nodeType": "YulFunctionCall", + "src": "9774:16:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "9760:10:70", + "nodeType": "YulTypedName", + "src": "9760:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9873:111:70", + "nodeType": "YulBlock", + "src": "9873:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9894:1:70", + "nodeType": "YulLiteral", + "src": "9894:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9901:3:70", + "nodeType": "YulLiteral", + "src": "9901:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "9906:10:70", + "nodeType": "YulLiteral", + "src": "9906:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9897:3:70", + "nodeType": "YulIdentifier", + "src": "9897:3:70" + }, + "nativeSrc": "9897:20:70", + "nodeType": "YulFunctionCall", + "src": "9897:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9887:6:70", + "nodeType": "YulIdentifier", + "src": "9887:6:70" + }, + "nativeSrc": "9887:31:70", + "nodeType": "YulFunctionCall", + "src": "9887:31:70" + }, + "nativeSrc": "9887:31:70", + "nodeType": "YulExpressionStatement", + "src": "9887:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9938:1:70", + "nodeType": "YulLiteral", + "src": "9938:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "9941:4:70", + "nodeType": "YulLiteral", + "src": "9941:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9931:6:70", + "nodeType": "YulIdentifier", + "src": "9931:6:70" + }, + "nativeSrc": "9931:15:70", + "nodeType": "YulFunctionCall", + "src": "9931:15:70" + }, + "nativeSrc": "9931:15:70", + "nodeType": "YulExpressionStatement", + "src": "9931:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9966:1:70", + "nodeType": "YulLiteral", + "src": "9966:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9969:4:70", + "nodeType": "YulLiteral", + "src": "9969:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9959:6:70", + "nodeType": "YulIdentifier", + "src": "9959:6:70" + }, + "nativeSrc": "9959:15:70", + "nodeType": "YulFunctionCall", + "src": "9959:15:70" + }, + "nativeSrc": "9959:15:70", + "nodeType": "YulExpressionStatement", + "src": "9959:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9808:10:70", + "nodeType": "YulIdentifier", + "src": "9808:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9828:2:70", + "nodeType": "YulLiteral", + "src": "9828:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "9832:1:70", + "nodeType": "YulLiteral", + "src": "9832:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9824:3:70", + "nodeType": "YulIdentifier", + "src": "9824:3:70" + }, + "nativeSrc": "9824:10:70", + "nodeType": "YulFunctionCall", + "src": "9824:10:70" + }, + { + "kind": "number", + "nativeSrc": "9836:1:70", + "nodeType": "YulLiteral", + "src": "9836:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9820:3:70", + "nodeType": "YulIdentifier", + "src": "9820:3:70" + }, + "nativeSrc": "9820:18:70", + "nodeType": "YulFunctionCall", + "src": "9820:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9805:2:70", + "nodeType": "YulIdentifier", + "src": "9805:2:70" + }, + "nativeSrc": "9805:34:70", + "nodeType": "YulFunctionCall", + "src": "9805:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "9844:10:70", + "nodeType": "YulIdentifier", + "src": "9844:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "9856:6:70", + "nodeType": "YulIdentifier", + "src": "9856:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9841:2:70", + "nodeType": "YulIdentifier", + "src": "9841:2:70" + }, + "nativeSrc": "9841:22:70", + "nodeType": "YulFunctionCall", + "src": "9841:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "9802:2:70", + "nodeType": "YulIdentifier", + "src": "9802:2:70" + }, + "nativeSrc": "9802:62:70", + "nodeType": "YulFunctionCall", + "src": "9802:62:70" + }, + "nativeSrc": "9799:185:70", + "nodeType": "YulIf", + "src": "9799:185:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10000:2:70", + "nodeType": "YulLiteral", + "src": "10000:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "10004:10:70", + "nodeType": "YulIdentifier", + "src": "10004:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9993:6:70", + "nodeType": "YulIdentifier", + "src": "9993:6:70" + }, + "nativeSrc": "9993:22:70", + "nodeType": "YulFunctionCall", + "src": "9993:22:70" + }, + "nativeSrc": "9993:22:70", + "nodeType": "YulExpressionStatement", + "src": "9993:22:70" + } + ] + }, + "name": "allocate_memory_2392", + "nativeSrc": "9672:349:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "9707:6:70", + "nodeType": "YulTypedName", + "src": "9707:6:70", + "type": "" + } + ], + "src": "9672:349:70" + }, + { + "body": { + "nativeSrc": "10120:911:70", + "nodeType": "YulBlock", + "src": "10120:911:70", + "statements": [ + { + "nativeSrc": "10130:43:70", + "nodeType": "YulVariableDeclaration", + "src": "10130:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10148:7:70", + "nodeType": "YulIdentifier", + "src": "10148:7:70" + }, + { + "name": "headStart", + "nativeSrc": "10157:9:70", + "nodeType": "YulIdentifier", + "src": "10157:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10144:3:70", + "nodeType": "YulIdentifier", + "src": "10144:3:70" + }, + "nativeSrc": "10144:23:70", + "nodeType": "YulFunctionCall", + "src": "10144:23:70" + }, + { + "kind": "number", + "nativeSrc": "10169:3:70", + "nodeType": "YulLiteral", + "src": "10169:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10140:3:70", + "nodeType": "YulIdentifier", + "src": "10140:3:70" + }, + "nativeSrc": "10140:33:70", + "nodeType": "YulFunctionCall", + "src": "10140:33:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "10134:2:70", + "nodeType": "YulTypedName", + "src": "10134:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10188:16:70", + "nodeType": "YulBlock", + "src": "10188:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10197:1:70", + "nodeType": "YulLiteral", + "src": "10197:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10200:1:70", + "nodeType": "YulLiteral", + "src": "10200:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10190:6:70", + "nodeType": "YulIdentifier", + "src": "10190:6:70" + }, + "nativeSrc": "10190:12:70", + "nodeType": "YulFunctionCall", + "src": "10190:12:70" + }, + "nativeSrc": "10190:12:70", + "nodeType": "YulExpressionStatement", + "src": "10190:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "10185:2:70", + "nodeType": "YulIdentifier", + "src": "10185:2:70" + }, + "nativeSrc": "10182:22:70", + "nodeType": "YulIf", + "src": "10182:22:70" + }, + { + "nativeSrc": "10213:7:70", + "nodeType": "YulAssignment", + "src": "10213:7:70", + "value": { + "kind": "number", + "nativeSrc": "10219:1:70", + "nodeType": "YulLiteral", + "src": "10219:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "10213:2:70", + "nodeType": "YulIdentifier", + "src": "10213:2:70" + } + ] + }, + { + "nativeSrc": "10229:30:70", + "nodeType": "YulVariableDeclaration", + "src": "10229:30:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "10242:15:70", + "nodeType": "YulIdentifier", + "src": "10242:15:70" + }, + "nativeSrc": "10242:17:70", + "nodeType": "YulFunctionCall", + "src": "10242:17:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "10233:5:70", + "nodeType": "YulTypedName", + "src": "10233:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10268:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10268:17:70", + "value": { + "name": "_1", + "nativeSrc": "10283:2:70", + "nodeType": "YulIdentifier", + "src": "10283:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "10272:7:70", + "nodeType": "YulTypedName", + "src": "10272:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10294:34:70", + "nodeType": "YulAssignment", + "src": "10294:34:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10318:9:70", + "nodeType": "YulIdentifier", + "src": "10318:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10305:12:70", + "nodeType": "YulIdentifier", + "src": "10305:12:70" + }, + "nativeSrc": "10305:23:70", + "nodeType": "YulFunctionCall", + "src": "10305:23:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "10294:7:70", + "nodeType": "YulIdentifier", + "src": "10294:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10344:5:70", + "nodeType": "YulIdentifier", + "src": "10344:5:70" + }, + { + "name": "value_1", + "nativeSrc": "10351:7:70", + "nodeType": "YulIdentifier", + "src": "10351:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10337:6:70", + "nodeType": "YulIdentifier", + "src": "10337:6:70" + }, + "nativeSrc": "10337:22:70", + "nodeType": "YulFunctionCall", + "src": "10337:22:70" + }, + "nativeSrc": "10337:22:70", + "nodeType": "YulExpressionStatement", + "src": "10337:22:70" + }, + { + "nativeSrc": "10368:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10368:17:70", + "value": { + "name": "_1", + "nativeSrc": "10383:2:70", + "nodeType": "YulIdentifier", + "src": "10383:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "10372:7:70", + "nodeType": "YulTypedName", + "src": "10372:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10394:43:70", + "nodeType": "YulAssignment", + "src": "10394:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10422:9:70", + "nodeType": "YulIdentifier", + "src": "10422:9:70" + }, + { + "kind": "number", + "nativeSrc": "10433:2:70", + "nodeType": "YulLiteral", + "src": "10433:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10418:3:70", + "nodeType": "YulIdentifier", + "src": "10418:3:70" + }, + "nativeSrc": "10418:18:70", + "nodeType": "YulFunctionCall", + "src": "10418:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10405:12:70", + "nodeType": "YulIdentifier", + "src": "10405:12:70" + }, + "nativeSrc": "10405:32:70", + "nodeType": "YulFunctionCall", + "src": "10405:32:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "10394:7:70", + "nodeType": "YulIdentifier", + "src": "10394:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10457:5:70", + "nodeType": "YulIdentifier", + "src": "10457:5:70" + }, + { + "kind": "number", + "nativeSrc": "10464:2:70", + "nodeType": "YulLiteral", + "src": "10464:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10453:3:70", + "nodeType": "YulIdentifier", + "src": "10453:3:70" + }, + "nativeSrc": "10453:14:70", + "nodeType": "YulFunctionCall", + "src": "10453:14:70" + }, + { + "name": "value_2", + "nativeSrc": "10469:7:70", + "nodeType": "YulIdentifier", + "src": "10469:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10446:6:70", + "nodeType": "YulIdentifier", + "src": "10446:6:70" + }, + "nativeSrc": "10446:31:70", + "nodeType": "YulFunctionCall", + "src": "10446:31:70" + }, + "nativeSrc": "10446:31:70", + "nodeType": "YulExpressionStatement", + "src": "10446:31:70" + }, + { + "nativeSrc": "10486:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10486:17:70", + "value": { + "name": "_1", + "nativeSrc": "10501:2:70", + "nodeType": "YulIdentifier", + "src": "10501:2:70" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "10490:7:70", + "nodeType": "YulTypedName", + "src": "10490:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10512:43:70", + "nodeType": "YulAssignment", + "src": "10512:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10540:9:70", + "nodeType": "YulIdentifier", + "src": "10540:9:70" + }, + { + "kind": "number", + "nativeSrc": "10551:2:70", + "nodeType": "YulLiteral", + "src": "10551:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10536:3:70", + "nodeType": "YulIdentifier", + "src": "10536:3:70" + }, + "nativeSrc": "10536:18:70", + "nodeType": "YulFunctionCall", + "src": "10536:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10523:12:70", + "nodeType": "YulIdentifier", + "src": "10523:12:70" + }, + "nativeSrc": "10523:32:70", + "nodeType": "YulFunctionCall", + "src": "10523:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "10512:7:70", + "nodeType": "YulIdentifier", + "src": "10512:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10575:5:70", + "nodeType": "YulIdentifier", + "src": "10575:5:70" + }, + { + "kind": "number", + "nativeSrc": "10582:2:70", + "nodeType": "YulLiteral", + "src": "10582:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10571:3:70", + "nodeType": "YulIdentifier", + "src": "10571:3:70" + }, + "nativeSrc": "10571:14:70", + "nodeType": "YulFunctionCall", + "src": "10571:14:70" + }, + { + "name": "value_3", + "nativeSrc": "10587:7:70", + "nodeType": "YulIdentifier", + "src": "10587:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10564:6:70", + "nodeType": "YulIdentifier", + "src": "10564:6:70" + }, + "nativeSrc": "10564:31:70", + "nodeType": "YulFunctionCall", + "src": "10564:31:70" + }, + "nativeSrc": "10564:31:70", + "nodeType": "YulExpressionStatement", + "src": "10564:31:70" + }, + { + "nativeSrc": "10604:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10604:17:70", + "value": { + "name": "_1", + "nativeSrc": "10619:2:70", + "nodeType": "YulIdentifier", + "src": "10619:2:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "10608:7:70", + "nodeType": "YulTypedName", + "src": "10608:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10630:43:70", + "nodeType": "YulAssignment", + "src": "10630:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10658:9:70", + "nodeType": "YulIdentifier", + "src": "10658:9:70" + }, + { + "kind": "number", + "nativeSrc": "10669:2:70", + "nodeType": "YulLiteral", + "src": "10669:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10654:3:70", + "nodeType": "YulIdentifier", + "src": "10654:3:70" + }, + "nativeSrc": "10654:18:70", + "nodeType": "YulFunctionCall", + "src": "10654:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10641:12:70", + "nodeType": "YulIdentifier", + "src": "10641:12:70" + }, + "nativeSrc": "10641:32:70", + "nodeType": "YulFunctionCall", + "src": "10641:32:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "10630:7:70", + "nodeType": "YulIdentifier", + "src": "10630:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10693:5:70", + "nodeType": "YulIdentifier", + "src": "10693:5:70" + }, + { + "kind": "number", + "nativeSrc": "10700:2:70", + "nodeType": "YulLiteral", + "src": "10700:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10689:3:70", + "nodeType": "YulIdentifier", + "src": "10689:3:70" + }, + "nativeSrc": "10689:14:70", + "nodeType": "YulFunctionCall", + "src": "10689:14:70" + }, + { + "name": "value_4", + "nativeSrc": "10705:7:70", + "nodeType": "YulIdentifier", + "src": "10705:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10682:6:70", + "nodeType": "YulIdentifier", + "src": "10682:6:70" + }, + "nativeSrc": "10682:31:70", + "nodeType": "YulFunctionCall", + "src": "10682:31:70" + }, + "nativeSrc": "10682:31:70", + "nodeType": "YulExpressionStatement", + "src": "10682:31:70" + }, + { + "nativeSrc": "10722:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10722:17:70", + "value": { + "name": "_1", + "nativeSrc": "10737:2:70", + "nodeType": "YulIdentifier", + "src": "10737:2:70" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "10726:7:70", + "nodeType": "YulTypedName", + "src": "10726:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10748:44:70", + "nodeType": "YulAssignment", + "src": "10748:44:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10776:9:70", + "nodeType": "YulIdentifier", + "src": "10776:9:70" + }, + { + "kind": "number", + "nativeSrc": "10787:3:70", + "nodeType": "YulLiteral", + "src": "10787:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10772:3:70", + "nodeType": "YulIdentifier", + "src": "10772:3:70" + }, + "nativeSrc": "10772:19:70", + "nodeType": "YulFunctionCall", + "src": "10772:19:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10759:12:70", + "nodeType": "YulIdentifier", + "src": "10759:12:70" + }, + "nativeSrc": "10759:33:70", + "nodeType": "YulFunctionCall", + "src": "10759:33:70" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "10748:7:70", + "nodeType": "YulIdentifier", + "src": "10748:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10812:5:70", + "nodeType": "YulIdentifier", + "src": "10812:5:70" + }, + { + "kind": "number", + "nativeSrc": "10819:3:70", + "nodeType": "YulLiteral", + "src": "10819:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10808:3:70", + "nodeType": "YulIdentifier", + "src": "10808:3:70" + }, + "nativeSrc": "10808:15:70", + "nodeType": "YulFunctionCall", + "src": "10808:15:70" + }, + { + "name": "value_5", + "nativeSrc": "10825:7:70", + "nodeType": "YulIdentifier", + "src": "10825:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10801:6:70", + "nodeType": "YulIdentifier", + "src": "10801:6:70" + }, + "nativeSrc": "10801:32:70", + "nodeType": "YulFunctionCall", + "src": "10801:32:70" + }, + "nativeSrc": "10801:32:70", + "nodeType": "YulExpressionStatement", + "src": "10801:32:70" + }, + { + "nativeSrc": "10842:48:70", + "nodeType": "YulVariableDeclaration", + "src": "10842:48:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10874:9:70", + "nodeType": "YulIdentifier", + "src": "10874:9:70" + }, + { + "kind": "number", + "nativeSrc": "10885:3:70", + "nodeType": "YulLiteral", + "src": "10885:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10870:3:70", + "nodeType": "YulIdentifier", + "src": "10870:3:70" + }, + "nativeSrc": "10870:19:70", + "nodeType": "YulFunctionCall", + "src": "10870:19:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10857:12:70", + "nodeType": "YulIdentifier", + "src": "10857:12:70" + }, + "nativeSrc": "10857:33:70", + "nodeType": "YulFunctionCall", + "src": "10857:33:70" + }, + "variables": [ + { + "name": "value_6", + "nativeSrc": "10846:7:70", + "nodeType": "YulTypedName", + "src": "10846:7:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10942:18:70", + "nodeType": "YulBlock", + "src": "10942:18:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "10951:2:70", + "nodeType": "YulIdentifier", + "src": "10951:2:70" + }, + { + "name": "_1", + "nativeSrc": "10955:2:70", + "nodeType": "YulIdentifier", + "src": "10955:2:70" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10944:6:70", + "nodeType": "YulIdentifier", + "src": "10944:6:70" + }, + "nativeSrc": "10944:14:70", + "nodeType": "YulFunctionCall", + "src": "10944:14:70" + }, + "nativeSrc": "10944:14:70", + "nodeType": "YulExpressionStatement", + "src": "10944:14:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value_6", + "nativeSrc": "10912:7:70", + "nodeType": "YulIdentifier", + "src": "10912:7:70" + }, + { + "arguments": [ + { + "name": "value_6", + "nativeSrc": "10925:7:70", + "nodeType": "YulIdentifier", + "src": "10925:7:70" + }, + { + "kind": "number", + "nativeSrc": "10934:4:70", + "nodeType": "YulLiteral", + "src": "10934:4:70", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10921:3:70", + "nodeType": "YulIdentifier", + "src": "10921:3:70" + }, + "nativeSrc": "10921:18:70", + "nodeType": "YulFunctionCall", + "src": "10921:18:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "10909:2:70", + "nodeType": "YulIdentifier", + "src": "10909:2:70" + }, + "nativeSrc": "10909:31:70", + "nodeType": "YulFunctionCall", + "src": "10909:31:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10902:6:70", + "nodeType": "YulIdentifier", + "src": "10902:6:70" + }, + "nativeSrc": "10902:39:70", + "nodeType": "YulFunctionCall", + "src": "10902:39:70" + }, + "nativeSrc": "10899:61:70", + "nodeType": "YulIf", + "src": "10899:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10980:5:70", + "nodeType": "YulIdentifier", + "src": "10980:5:70" + }, + { + "kind": "number", + "nativeSrc": "10987:3:70", + "nodeType": "YulLiteral", + "src": "10987:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10976:3:70", + "nodeType": "YulIdentifier", + "src": "10976:3:70" + }, + "nativeSrc": "10976:15:70", + "nodeType": "YulFunctionCall", + "src": "10976:15:70" + }, + { + "name": "value_6", + "nativeSrc": "10993:7:70", + "nodeType": "YulIdentifier", + "src": "10993:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10969:6:70", + "nodeType": "YulIdentifier", + "src": "10969:6:70" + }, + "nativeSrc": "10969:32:70", + "nodeType": "YulFunctionCall", + "src": "10969:32:70" + }, + "nativeSrc": "10969:32:70", + "nodeType": "YulExpressionStatement", + "src": "10969:32:70" + }, + { + "nativeSrc": "11010:15:70", + "nodeType": "YulAssignment", + "src": "11010:15:70", + "value": { + "name": "value", + "nativeSrc": "11020:5:70", + "nodeType": "YulIdentifier", + "src": "11020:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11010:6:70", + "nodeType": "YulIdentifier", + "src": "11010:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_State_$16058_memory_ptr", + "nativeSrc": "10026:1005:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10086:9:70", + "nodeType": "YulTypedName", + "src": "10086:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10097:7:70", + "nodeType": "YulTypedName", + "src": "10097:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10109:6:70", + "nodeType": "YulTypedName", + "src": "10109:6:70", + "type": "" + } + ], + "src": "10026:1005:70" + }, + { + "body": { + "nativeSrc": "11104:86:70", + "nodeType": "YulBlock", + "src": "11104:86:70", + "statements": [ + { + "body": { + "nativeSrc": "11144:16:70", + "nodeType": "YulBlock", + "src": "11144:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11153:1:70", + "nodeType": "YulLiteral", + "src": "11153:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11156:1:70", + "nodeType": "YulLiteral", + "src": "11156:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11146:6:70", + "nodeType": "YulIdentifier", + "src": "11146:6:70" + }, + "nativeSrc": "11146:12:70", + "nodeType": "YulFunctionCall", + "src": "11146:12:70" + }, + "nativeSrc": "11146:12:70", + "nodeType": "YulExpressionStatement", + "src": "11146:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "11125:3:70", + "nodeType": "YulIdentifier", + "src": "11125:3:70" + }, + { + "name": "offset", + "nativeSrc": "11130:6:70", + "nodeType": "YulIdentifier", + "src": "11130:6:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11121:3:70", + "nodeType": "YulIdentifier", + "src": "11121:3:70" + }, + "nativeSrc": "11121:16:70", + "nodeType": "YulFunctionCall", + "src": "11121:16:70" + }, + { + "kind": "number", + "nativeSrc": "11139:3:70", + "nodeType": "YulLiteral", + "src": "11139:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11117:3:70", + "nodeType": "YulIdentifier", + "src": "11117:3:70" + }, + "nativeSrc": "11117:26:70", + "nodeType": "YulFunctionCall", + "src": "11117:26:70" + }, + "nativeSrc": "11114:46:70", + "nodeType": "YulIf", + "src": "11114:46:70" + }, + { + "nativeSrc": "11169:15:70", + "nodeType": "YulAssignment", + "src": "11169:15:70", + "value": { + "name": "offset", + "nativeSrc": "11178:6:70", + "nodeType": "YulIdentifier", + "src": "11178:6:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "11169:5:70", + "nodeType": "YulIdentifier", + "src": "11169:5:70" + } + ] + } + ] + }, + "name": "abi_decode_struct_State_calldata", + "nativeSrc": "11036:154:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11078:6:70", + "nodeType": "YulTypedName", + "src": "11078:6:70", + "type": "" + }, + { + "name": "end", + "nativeSrc": "11086:3:70", + "nodeType": "YulTypedName", + "src": "11086:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "11094:5:70", + "nodeType": "YulTypedName", + "src": "11094:5:70", + "type": "" + } + ], + "src": "11036:154:70" + }, + { + "body": { + "nativeSrc": "11334:221:70", + "nodeType": "YulBlock", + "src": "11334:221:70", + "statements": [ + { + "body": { + "nativeSrc": "11381:16:70", + "nodeType": "YulBlock", + "src": "11381:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11390:1:70", + "nodeType": "YulLiteral", + "src": "11390:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11393:1:70", + "nodeType": "YulLiteral", + "src": "11393:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11383:6:70", + "nodeType": "YulIdentifier", + "src": "11383:6:70" + }, + "nativeSrc": "11383:12:70", + "nodeType": "YulFunctionCall", + "src": "11383:12:70" + }, + "nativeSrc": "11383:12:70", + "nodeType": "YulExpressionStatement", + "src": "11383:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11355:7:70", + "nodeType": "YulIdentifier", + "src": "11355:7:70" + }, + { + "name": "headStart", + "nativeSrc": "11364:9:70", + "nodeType": "YulIdentifier", + "src": "11364:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11351:3:70", + "nodeType": "YulIdentifier", + "src": "11351:3:70" + }, + "nativeSrc": "11351:23:70", + "nodeType": "YulFunctionCall", + "src": "11351:23:70" + }, + { + "kind": "number", + "nativeSrc": "11376:3:70", + "nodeType": "YulLiteral", + "src": "11376:3:70", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11347:3:70", + "nodeType": "YulIdentifier", + "src": "11347:3:70" + }, + "nativeSrc": "11347:33:70", + "nodeType": "YulFunctionCall", + "src": "11347:33:70" + }, + "nativeSrc": "11344:53:70", + "nodeType": "YulIf", + "src": "11344:53:70" + }, + { + "nativeSrc": "11406:62:70", + "nodeType": "YulAssignment", + "src": "11406:62:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11449:9:70", + "nodeType": "YulIdentifier", + "src": "11449:9:70" + }, + { + "name": "dataEnd", + "nativeSrc": "11460:7:70", + "nodeType": "YulIdentifier", + "src": "11460:7:70" + } + ], + "functionName": { + "name": "abi_decode_struct_State_calldata", + "nativeSrc": "11416:32:70", + "nodeType": "YulIdentifier", + "src": "11416:32:70" + }, + "nativeSrc": "11416:52:70", + "nodeType": "YulFunctionCall", + "src": "11416:52:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11406:6:70", + "nodeType": "YulIdentifier", + "src": "11406:6:70" + } + ] + }, + { + "nativeSrc": "11477:72:70", + "nodeType": "YulAssignment", + "src": "11477:72:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11524:9:70", + "nodeType": "YulIdentifier", + "src": "11524:9:70" + }, + { + "kind": "number", + "nativeSrc": "11535:3:70", + "nodeType": "YulLiteral", + "src": "11535:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11520:3:70", + "nodeType": "YulIdentifier", + "src": "11520:3:70" + }, + "nativeSrc": "11520:19:70", + "nodeType": "YulFunctionCall", + "src": "11520:19:70" + }, + { + "name": "dataEnd", + "nativeSrc": "11541:7:70", + "nodeType": "YulIdentifier", + "src": "11541:7:70" + } + ], + "functionName": { + "name": "abi_decode_struct_State_calldata", + "nativeSrc": "11487:32:70", + "nodeType": "YulIdentifier", + "src": "11487:32:70" + }, + "nativeSrc": "11487:62:70", + "nodeType": "YulFunctionCall", + "src": "11487:62:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11477:6:70", + "nodeType": "YulIdentifier", + "src": "11477:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_State_$16058_calldata_ptrt_struct$_State_$16058_calldata_ptr", + "nativeSrc": "11195:360:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11292:9:70", + "nodeType": "YulTypedName", + "src": "11292:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11303:7:70", + "nodeType": "YulTypedName", + "src": "11303:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11315:6:70", + "nodeType": "YulTypedName", + "src": "11315:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11323:6:70", + "nodeType": "YulTypedName", + "src": "11323:6:70", + "type": "" + } + ], + "src": "11195:360:70" + }, + { + "body": { + "nativeSrc": "11629:176:70", + "nodeType": "YulBlock", + "src": "11629:176:70", + "statements": [ + { + "body": { + "nativeSrc": "11675:16:70", + "nodeType": "YulBlock", + "src": "11675:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11684:1:70", + "nodeType": "YulLiteral", + "src": "11684:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11687:1:70", + "nodeType": "YulLiteral", + "src": "11687:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11677:6:70", + "nodeType": "YulIdentifier", + "src": "11677:6:70" + }, + "nativeSrc": "11677:12:70", + "nodeType": "YulFunctionCall", + "src": "11677:12:70" + }, + "nativeSrc": "11677:12:70", + "nodeType": "YulExpressionStatement", + "src": "11677:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11650:7:70", + "nodeType": "YulIdentifier", + "src": "11650:7:70" + }, + { + "name": "headStart", + "nativeSrc": "11659:9:70", + "nodeType": "YulIdentifier", + "src": "11659:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11646:3:70", + "nodeType": "YulIdentifier", + "src": "11646:3:70" + }, + "nativeSrc": "11646:23:70", + "nodeType": "YulFunctionCall", + "src": "11646:23:70" + }, + { + "kind": "number", + "nativeSrc": "11671:2:70", + "nodeType": "YulLiteral", + "src": "11671:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11642:3:70", + "nodeType": "YulIdentifier", + "src": "11642:3:70" + }, + "nativeSrc": "11642:32:70", + "nodeType": "YulFunctionCall", + "src": "11642:32:70" + }, + "nativeSrc": "11639:52:70", + "nodeType": "YulIf", + "src": "11639:52:70" + }, + { + "nativeSrc": "11700:36:70", + "nodeType": "YulVariableDeclaration", + "src": "11700:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11726:9:70", + "nodeType": "YulIdentifier", + "src": "11726:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11713:12:70", + "nodeType": "YulIdentifier", + "src": "11713:12:70" + }, + "nativeSrc": "11713:23:70", + "nodeType": "YulFunctionCall", + "src": "11713:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "11704:5:70", + "nodeType": "YulTypedName", + "src": "11704:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11769:5:70", + "nodeType": "YulIdentifier", + "src": "11769:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "11745:23:70", + "nodeType": "YulIdentifier", + "src": "11745:23:70" + }, + "nativeSrc": "11745:30:70", + "nodeType": "YulFunctionCall", + "src": "11745:30:70" + }, + "nativeSrc": "11745:30:70", + "nodeType": "YulExpressionStatement", + "src": "11745:30:70" + }, + { + "nativeSrc": "11784:15:70", + "nodeType": "YulAssignment", + "src": "11784:15:70", + "value": { + "name": "value", + "nativeSrc": "11794:5:70", + "nodeType": "YulIdentifier", + "src": "11794:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11784:6:70", + "nodeType": "YulIdentifier", + "src": "11784:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64", + "nativeSrc": "11560:245:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11595:9:70", + "nodeType": "YulTypedName", + "src": "11595:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11606:7:70", + "nodeType": "YulTypedName", + "src": "11606:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11618:6:70", + "nodeType": "YulTypedName", + "src": "11618:6:70", + "type": "" + } + ], + "src": "11560:245:70" + }, + { + "body": { + "nativeSrc": "11928:99:70", + "nodeType": "YulBlock", + "src": "11928:99:70", + "statements": [ + { + "nativeSrc": "11938:26:70", + "nodeType": "YulAssignment", + "src": "11938:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11950:9:70", + "nodeType": "YulIdentifier", + "src": "11950:9:70" + }, + { + "kind": "number", + "nativeSrc": "11961:2:70", + "nodeType": "YulLiteral", + "src": "11961:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11946:3:70", + "nodeType": "YulIdentifier", + "src": "11946:3:70" + }, + "nativeSrc": "11946:18:70", + "nodeType": "YulFunctionCall", + "src": "11946:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11938:4:70", + "nodeType": "YulIdentifier", + "src": "11938:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12003:6:70", + "nodeType": "YulIdentifier", + "src": "12003:6:70" + }, + { + "name": "headStart", + "nativeSrc": "12011:9:70", + "nodeType": "YulIdentifier", + "src": "12011:9:70" + } + ], + "functionName": { + "name": "abi_encode_enum_DisputeStatus", + "nativeSrc": "11973:29:70", + "nodeType": "YulIdentifier", + "src": "11973:29:70" + }, + "nativeSrc": "11973:48:70", + "nodeType": "YulFunctionCall", + "src": "11973:48:70" + }, + "nativeSrc": "11973:48:70", + "nodeType": "YulExpressionStatement", + "src": "11973:48:70" + } + ] + }, + "name": "abi_encode_tuple_t_enum$_DisputeStatus_$14921__to_t_uint8__fromStack_reversed", + "nativeSrc": "11810:217:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11897:9:70", + "nodeType": "YulTypedName", + "src": "11897:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11908:6:70", + "nodeType": "YulTypedName", + "src": "11908:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11919:4:70", + "nodeType": "YulTypedName", + "src": "11919:4:70", + "type": "" + } + ], + "src": "11810:217:70" + }, + { + "body": { + "nativeSrc": "12140:101:70", + "nodeType": "YulBlock", + "src": "12140:101:70", + "statements": [ + { + "nativeSrc": "12150:26:70", + "nodeType": "YulAssignment", + "src": "12150:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12162:9:70", + "nodeType": "YulIdentifier", + "src": "12162:9:70" + }, + { + "kind": "number", + "nativeSrc": "12173:2:70", + "nodeType": "YulLiteral", + "src": "12173:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12158:3:70", + "nodeType": "YulIdentifier", + "src": "12158:3:70" + }, + "nativeSrc": "12158:18:70", + "nodeType": "YulFunctionCall", + "src": "12158:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12150:4:70", + "nodeType": "YulIdentifier", + "src": "12150:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12192:9:70", + "nodeType": "YulIdentifier", + "src": "12192:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12207:6:70", + "nodeType": "YulIdentifier", + "src": "12207:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12223:2:70", + "nodeType": "YulLiteral", + "src": "12223:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "12227:1:70", + "nodeType": "YulLiteral", + "src": "12227:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12219:3:70", + "nodeType": "YulIdentifier", + "src": "12219:3:70" + }, + "nativeSrc": "12219:10:70", + "nodeType": "YulFunctionCall", + "src": "12219:10:70" + }, + { + "kind": "number", + "nativeSrc": "12231:1:70", + "nodeType": "YulLiteral", + "src": "12231:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12215:3:70", + "nodeType": "YulIdentifier", + "src": "12215:3:70" + }, + "nativeSrc": "12215:18:70", + "nodeType": "YulFunctionCall", + "src": "12215:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12203:3:70", + "nodeType": "YulIdentifier", + "src": "12203:3:70" + }, + "nativeSrc": "12203:31:70", + "nodeType": "YulFunctionCall", + "src": "12203:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12185:6:70", + "nodeType": "YulIdentifier", + "src": "12185:6:70" + }, + "nativeSrc": "12185:50:70", + "nodeType": "YulFunctionCall", + "src": "12185:50:70" + }, + "nativeSrc": "12185:50:70", + "nodeType": "YulExpressionStatement", + "src": "12185:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "12032:209:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12109:9:70", + "nodeType": "YulTypedName", + "src": "12109:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12120:6:70", + "nodeType": "YulTypedName", + "src": "12120:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12131:4:70", + "nodeType": "YulTypedName", + "src": "12131:4:70", + "type": "" + } + ], + "src": "12032:209:70" + }, + { + "body": { + "nativeSrc": "12342:785:70", + "nodeType": "YulBlock", + "src": "12342:785:70", + "statements": [ + { + "nativeSrc": "12352:42:70", + "nodeType": "YulVariableDeclaration", + "src": "12352:42:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12370:7:70", + "nodeType": "YulIdentifier", + "src": "12370:7:70" + }, + { + "name": "headStart", + "nativeSrc": "12379:9:70", + "nodeType": "YulIdentifier", + "src": "12379:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12366:3:70", + "nodeType": "YulIdentifier", + "src": "12366:3:70" + }, + "nativeSrc": "12366:23:70", + "nodeType": "YulFunctionCall", + "src": "12366:23:70" + }, + { + "kind": "number", + "nativeSrc": "12391:2:70", + "nodeType": "YulLiteral", + "src": "12391:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12362:3:70", + "nodeType": "YulIdentifier", + "src": "12362:3:70" + }, + "nativeSrc": "12362:32:70", + "nodeType": "YulFunctionCall", + "src": "12362:32:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "12356:2:70", + "nodeType": "YulTypedName", + "src": "12356:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12409:16:70", + "nodeType": "YulBlock", + "src": "12409:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12418:1:70", + "nodeType": "YulLiteral", + "src": "12418:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12421:1:70", + "nodeType": "YulLiteral", + "src": "12421:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12411:6:70", + "nodeType": "YulIdentifier", + "src": "12411:6:70" + }, + "nativeSrc": "12411:12:70", + "nodeType": "YulFunctionCall", + "src": "12411:12:70" + }, + "nativeSrc": "12411:12:70", + "nodeType": "YulExpressionStatement", + "src": "12411:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "12406:2:70", + "nodeType": "YulIdentifier", + "src": "12406:2:70" + }, + "nativeSrc": "12403:22:70", + "nodeType": "YulIf", + "src": "12403:22:70" + }, + { + "nativeSrc": "12434:7:70", + "nodeType": "YulAssignment", + "src": "12434:7:70", + "value": { + "kind": "number", + "nativeSrc": "12440:1:70", + "nodeType": "YulLiteral", + "src": "12440:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "12434:2:70", + "nodeType": "YulIdentifier", + "src": "12434:2:70" + } + ] + }, + { + "nativeSrc": "12450:16:70", + "nodeType": "YulVariableDeclaration", + "src": "12450:16:70", + "value": { + "name": "_1", + "nativeSrc": "12464:2:70", + "nodeType": "YulIdentifier", + "src": "12464:2:70" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "12454:6:70", + "nodeType": "YulTypedName", + "src": "12454:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "12475:19:70", + "nodeType": "YulAssignment", + "src": "12475:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12491:2:70", + "nodeType": "YulLiteral", + "src": "12491:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12485:5:70", + "nodeType": "YulIdentifier", + "src": "12485:5:70" + }, + "nativeSrc": "12485:9:70", + "nodeType": "YulFunctionCall", + "src": "12485:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "12475:6:70", + "nodeType": "YulIdentifier", + "src": "12475:6:70" + } + ] + }, + { + "nativeSrc": "12503:33:70", + "nodeType": "YulVariableDeclaration", + "src": "12503:33:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12525:6:70", + "nodeType": "YulIdentifier", + "src": "12525:6:70" + }, + { + "kind": "number", + "nativeSrc": "12533:2:70", + "nodeType": "YulLiteral", + "src": "12533:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12521:3:70", + "nodeType": "YulIdentifier", + "src": "12521:3:70" + }, + "nativeSrc": "12521:15:70", + "nodeType": "YulFunctionCall", + "src": "12521:15:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "12507:10:70", + "nodeType": "YulTypedName", + "src": "12507:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12619:113:70", + "nodeType": "YulBlock", + "src": "12619:113:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "12640:2:70", + "nodeType": "YulIdentifier", + "src": "12640:2:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12648:3:70", + "nodeType": "YulLiteral", + "src": "12648:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "12653:10:70", + "nodeType": "YulLiteral", + "src": "12653:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12644:3:70", + "nodeType": "YulIdentifier", + "src": "12644:3:70" + }, + "nativeSrc": "12644:20:70", + "nodeType": "YulFunctionCall", + "src": "12644:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12633:6:70", + "nodeType": "YulIdentifier", + "src": "12633:6:70" + }, + "nativeSrc": "12633:32:70", + "nodeType": "YulFunctionCall", + "src": "12633:32:70" + }, + "nativeSrc": "12633:32:70", + "nodeType": "YulExpressionStatement", + "src": "12633:32:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12685:1:70", + "nodeType": "YulLiteral", + "src": "12685:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12688:4:70", + "nodeType": "YulLiteral", + "src": "12688:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12678:6:70", + "nodeType": "YulIdentifier", + "src": "12678:6:70" + }, + "nativeSrc": "12678:15:70", + "nodeType": "YulFunctionCall", + "src": "12678:15:70" + }, + "nativeSrc": "12678:15:70", + "nodeType": "YulExpressionStatement", + "src": "12678:15:70" + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "12713:2:70", + "nodeType": "YulIdentifier", + "src": "12713:2:70" + }, + { + "kind": "number", + "nativeSrc": "12717:4:70", + "nodeType": "YulLiteral", + "src": "12717:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12706:6:70", + "nodeType": "YulIdentifier", + "src": "12706:6:70" + }, + "nativeSrc": "12706:16:70", + "nodeType": "YulFunctionCall", + "src": "12706:16:70" + }, + "nativeSrc": "12706:16:70", + "nodeType": "YulExpressionStatement", + "src": "12706:16:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "12554:10:70", + "nodeType": "YulIdentifier", + "src": "12554:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12574:2:70", + "nodeType": "YulLiteral", + "src": "12574:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "12578:1:70", + "nodeType": "YulLiteral", + "src": "12578:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12570:3:70", + "nodeType": "YulIdentifier", + "src": "12570:3:70" + }, + "nativeSrc": "12570:10:70", + "nodeType": "YulFunctionCall", + "src": "12570:10:70" + }, + { + "kind": "number", + "nativeSrc": "12582:1:70", + "nodeType": "YulLiteral", + "src": "12582:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12566:3:70", + "nodeType": "YulIdentifier", + "src": "12566:3:70" + }, + "nativeSrc": "12566:18:70", + "nodeType": "YulFunctionCall", + "src": "12566:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12551:2:70", + "nodeType": "YulIdentifier", + "src": "12551:2:70" + }, + "nativeSrc": "12551:34:70", + "nodeType": "YulFunctionCall", + "src": "12551:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "12590:10:70", + "nodeType": "YulIdentifier", + "src": "12590:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "12602:6:70", + "nodeType": "YulIdentifier", + "src": "12602:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12587:2:70", + "nodeType": "YulIdentifier", + "src": "12587:2:70" + }, + "nativeSrc": "12587:22:70", + "nodeType": "YulFunctionCall", + "src": "12587:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "12548:2:70", + "nodeType": "YulIdentifier", + "src": "12548:2:70" + }, + "nativeSrc": "12548:62:70", + "nodeType": "YulFunctionCall", + "src": "12548:62:70" + }, + "nativeSrc": "12545:187:70", + "nodeType": "YulIf", + "src": "12545:187:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12748:2:70", + "nodeType": "YulLiteral", + "src": "12748:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "12752:10:70", + "nodeType": "YulIdentifier", + "src": "12752:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12741:6:70", + "nodeType": "YulIdentifier", + "src": "12741:6:70" + }, + "nativeSrc": "12741:22:70", + "nodeType": "YulFunctionCall", + "src": "12741:22:70" + }, + "nativeSrc": "12741:22:70", + "nodeType": "YulExpressionStatement", + "src": "12741:22:70" + }, + { + "nativeSrc": "12772:15:70", + "nodeType": "YulVariableDeclaration", + "src": "12772:15:70", + "value": { + "name": "_1", + "nativeSrc": "12785:2:70", + "nodeType": "YulIdentifier", + "src": "12785:2:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "12776:5:70", + "nodeType": "YulTypedName", + "src": "12776:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "12796:32:70", + "nodeType": "YulAssignment", + "src": "12796:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12818:9:70", + "nodeType": "YulIdentifier", + "src": "12818:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12805:12:70", + "nodeType": "YulIdentifier", + "src": "12805:12:70" + }, + "nativeSrc": "12805:23:70", + "nodeType": "YulFunctionCall", + "src": "12805:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "12796:5:70", + "nodeType": "YulIdentifier", + "src": "12796:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12844:6:70", + "nodeType": "YulIdentifier", + "src": "12844:6:70" + }, + { + "name": "value", + "nativeSrc": "12852:5:70", + "nodeType": "YulIdentifier", + "src": "12852:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12837:6:70", + "nodeType": "YulIdentifier", + "src": "12837:6:70" + }, + "nativeSrc": "12837:21:70", + "nodeType": "YulFunctionCall", + "src": "12837:21:70" + }, + "nativeSrc": "12837:21:70", + "nodeType": "YulExpressionStatement", + "src": "12837:21:70" + }, + { + "nativeSrc": "12867:17:70", + "nodeType": "YulVariableDeclaration", + "src": "12867:17:70", + "value": { + "name": "_1", + "nativeSrc": "12882:2:70", + "nodeType": "YulIdentifier", + "src": "12882:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "12871:7:70", + "nodeType": "YulTypedName", + "src": "12871:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "12893:43:70", + "nodeType": "YulAssignment", + "src": "12893:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12921:9:70", + "nodeType": "YulIdentifier", + "src": "12921:9:70" + }, + { + "kind": "number", + "nativeSrc": "12932:2:70", + "nodeType": "YulLiteral", + "src": "12932:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12917:3:70", + "nodeType": "YulIdentifier", + "src": "12917:3:70" + }, + "nativeSrc": "12917:18:70", + "nodeType": "YulFunctionCall", + "src": "12917:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12904:12:70", + "nodeType": "YulIdentifier", + "src": "12904:12:70" + }, + "nativeSrc": "12904:32:70", + "nodeType": "YulFunctionCall", + "src": "12904:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "12893:7:70", + "nodeType": "YulIdentifier", + "src": "12893:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12956:6:70", + "nodeType": "YulIdentifier", + "src": "12956:6:70" + }, + { + "kind": "number", + "nativeSrc": "12964:2:70", + "nodeType": "YulLiteral", + "src": "12964:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12952:3:70", + "nodeType": "YulIdentifier", + "src": "12952:3:70" + }, + "nativeSrc": "12952:15:70", + "nodeType": "YulFunctionCall", + "src": "12952:15:70" + }, + { + "name": "value_1", + "nativeSrc": "12969:7:70", + "nodeType": "YulIdentifier", + "src": "12969:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12945:6:70", + "nodeType": "YulIdentifier", + "src": "12945:6:70" + }, + "nativeSrc": "12945:32:70", + "nodeType": "YulFunctionCall", + "src": "12945:32:70" + }, + "nativeSrc": "12945:32:70", + "nodeType": "YulExpressionStatement", + "src": "12945:32:70" + }, + { + "nativeSrc": "12986:17:70", + "nodeType": "YulVariableDeclaration", + "src": "12986:17:70", + "value": { + "name": "_1", + "nativeSrc": "13001:2:70", + "nodeType": "YulIdentifier", + "src": "13001:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "12990:7:70", + "nodeType": "YulTypedName", + "src": "12990:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "13012:43:70", + "nodeType": "YulAssignment", + "src": "13012:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13040:9:70", + "nodeType": "YulIdentifier", + "src": "13040:9:70" + }, + { + "kind": "number", + "nativeSrc": "13051:2:70", + "nodeType": "YulLiteral", + "src": "13051:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13036:3:70", + "nodeType": "YulIdentifier", + "src": "13036:3:70" + }, + "nativeSrc": "13036:18:70", + "nodeType": "YulFunctionCall", + "src": "13036:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13023:12:70", + "nodeType": "YulIdentifier", + "src": "13023:12:70" + }, + "nativeSrc": "13023:32:70", + "nodeType": "YulFunctionCall", + "src": "13023:32:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "13012:7:70", + "nodeType": "YulIdentifier", + "src": "13012:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "13075:6:70", + "nodeType": "YulIdentifier", + "src": "13075:6:70" + }, + { + "kind": "number", + "nativeSrc": "13083:2:70", + "nodeType": "YulLiteral", + "src": "13083:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13071:3:70", + "nodeType": "YulIdentifier", + "src": "13071:3:70" + }, + "nativeSrc": "13071:15:70", + "nodeType": "YulFunctionCall", + "src": "13071:15:70" + }, + { + "name": "value_2", + "nativeSrc": "13088:7:70", + "nodeType": "YulIdentifier", + "src": "13088:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13064:6:70", + "nodeType": "YulIdentifier", + "src": "13064:6:70" + }, + "nativeSrc": "13064:32:70", + "nodeType": "YulFunctionCall", + "src": "13064:32:70" + }, + "nativeSrc": "13064:32:70", + "nodeType": "YulExpressionStatement", + "src": "13064:32:70" + }, + { + "nativeSrc": "13105:16:70", + "nodeType": "YulAssignment", + "src": "13105:16:70", + "value": { + "name": "memPtr", + "nativeSrc": "13115:6:70", + "nodeType": "YulIdentifier", + "src": "13115:6:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13105:6:70", + "nodeType": "YulIdentifier", + "src": "13105:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Receipt_$16044_memory_ptr", + "nativeSrc": "12246:881:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12308:9:70", + "nodeType": "YulTypedName", + "src": "12308:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12319:7:70", + "nodeType": "YulTypedName", + "src": "12319:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12331:6:70", + "nodeType": "YulTypedName", + "src": "12331:6:70", + "type": "" + } + ], + "src": "12246:881:70" + }, + { + "body": { + "nativeSrc": "13352:141:70", + "nodeType": "YulBlock", + "src": "13352:141:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13369:3:70", + "nodeType": "YulIdentifier", + "src": "13369:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13382:2:70", + "nodeType": "YulLiteral", + "src": "13382:2:70", + "type": "", + "value": "96" + }, + { + "name": "value0", + "nativeSrc": "13386:6:70", + "nodeType": "YulIdentifier", + "src": "13386:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13378:3:70", + "nodeType": "YulIdentifier", + "src": "13378:3:70" + }, + "nativeSrc": "13378:15:70", + "nodeType": "YulFunctionCall", + "src": "13378:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13407:2:70", + "nodeType": "YulLiteral", + "src": "13407:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "13411:1:70", + "nodeType": "YulLiteral", + "src": "13411:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13403:3:70", + "nodeType": "YulIdentifier", + "src": "13403:3:70" + }, + "nativeSrc": "13403:10:70", + "nodeType": "YulFunctionCall", + "src": "13403:10:70" + }, + { + "kind": "number", + "nativeSrc": "13415:1:70", + "nodeType": "YulLiteral", + "src": "13415:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13399:3:70", + "nodeType": "YulIdentifier", + "src": "13399:3:70" + }, + "nativeSrc": "13399:18:70", + "nodeType": "YulFunctionCall", + "src": "13399:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "13395:3:70", + "nodeType": "YulIdentifier", + "src": "13395:3:70" + }, + "nativeSrc": "13395:23:70", + "nodeType": "YulFunctionCall", + "src": "13395:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13374:3:70", + "nodeType": "YulIdentifier", + "src": "13374:3:70" + }, + "nativeSrc": "13374:45:70", + "nodeType": "YulFunctionCall", + "src": "13374:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13362:6:70", + "nodeType": "YulIdentifier", + "src": "13362:6:70" + }, + "nativeSrc": "13362:58:70", + "nodeType": "YulFunctionCall", + "src": "13362:58:70" + }, + "nativeSrc": "13362:58:70", + "nodeType": "YulExpressionStatement", + "src": "13362:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13440:3:70", + "nodeType": "YulIdentifier", + "src": "13440:3:70" + }, + { + "kind": "number", + "nativeSrc": "13445:2:70", + "nodeType": "YulLiteral", + "src": "13445:2:70", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13436:3:70", + "nodeType": "YulIdentifier", + "src": "13436:3:70" + }, + "nativeSrc": "13436:12:70", + "nodeType": "YulFunctionCall", + "src": "13436:12:70" + }, + { + "hexValue": "6c6567616379", + "kind": "string", + "nativeSrc": "13450:8:70", + "nodeType": "YulLiteral", + "src": "13450:8:70", + "type": "", + "value": "legacy" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13429:6:70", + "nodeType": "YulIdentifier", + "src": "13429:6:70" + }, + "nativeSrc": "13429:30:70", + "nodeType": "YulFunctionCall", + "src": "13429:30:70" + }, + "nativeSrc": "13429:30:70", + "nodeType": "YulExpressionStatement", + "src": "13429:30:70" + }, + { + "nativeSrc": "13468:19:70", + "nodeType": "YulAssignment", + "src": "13468:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13479:3:70", + "nodeType": "YulIdentifier", + "src": "13479:3:70" + }, + { + "kind": "number", + "nativeSrc": "13484:2:70", + "nodeType": "YulLiteral", + "src": "13484:2:70", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13475:3:70", + "nodeType": "YulIdentifier", + "src": "13475:3:70" + }, + "nativeSrc": "13475:12:70", + "nodeType": "YulFunctionCall", + "src": "13475:12:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13468:3:70", + "nodeType": "YulIdentifier", + "src": "13468:3:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_stringliteral_b7ccb6878fbded310d2d05350bca9c84568ecb568d4b626c83e0508c3193ce89__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "13132:361:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13328:3:70", + "nodeType": "YulTypedName", + "src": "13328:3:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13333:6:70", + "nodeType": "YulTypedName", + "src": "13333:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13344:3:70", + "nodeType": "YulTypedName", + "src": "13344:3:70", + "type": "" + } + ], + "src": "13132:361:70" + }, + { + "body": { + "nativeSrc": "13558:78:70", + "nodeType": "YulBlock", + "src": "13558:78:70", + "statements": [ + { + "nativeSrc": "13568:22:70", + "nodeType": "YulAssignment", + "src": "13568:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13583:6:70", + "nodeType": "YulIdentifier", + "src": "13583:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13577:5:70", + "nodeType": "YulIdentifier", + "src": "13577:5:70" + }, + "nativeSrc": "13577:13:70", + "nodeType": "YulFunctionCall", + "src": "13577:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13568:5:70", + "nodeType": "YulIdentifier", + "src": "13568:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13624:5:70", + "nodeType": "YulIdentifier", + "src": "13624:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "13599:24:70", + "nodeType": "YulIdentifier", + "src": "13599:24:70" + }, + "nativeSrc": "13599:31:70", + "nodeType": "YulFunctionCall", + "src": "13599:31:70" + }, + "nativeSrc": "13599:31:70", + "nodeType": "YulExpressionStatement", + "src": "13599:31:70" + } + ] + }, + "name": "abi_decode_address_fromMemory", + "nativeSrc": "13498:138:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "13537:6:70", + "nodeType": "YulTypedName", + "src": "13537:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "13548:5:70", + "nodeType": "YulTypedName", + "src": "13548:5:70", + "type": "" + } + ], + "src": "13498:138:70" + }, + { + "body": { + "nativeSrc": "13719:1062:70", + "nodeType": "YulBlock", + "src": "13719:1062:70", + "statements": [ + { + "body": { + "nativeSrc": "13765:16:70", + "nodeType": "YulBlock", + "src": "13765:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13774:1:70", + "nodeType": "YulLiteral", + "src": "13774:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13777:1:70", + "nodeType": "YulLiteral", + "src": "13777:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13767:6:70", + "nodeType": "YulIdentifier", + "src": "13767:6:70" + }, + "nativeSrc": "13767:12:70", + "nodeType": "YulFunctionCall", + "src": "13767:12:70" + }, + "nativeSrc": "13767:12:70", + "nodeType": "YulExpressionStatement", + "src": "13767:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "13740:3:70", + "nodeType": "YulIdentifier", + "src": "13740:3:70" + }, + { + "name": "headStart", + "nativeSrc": "13745:9:70", + "nodeType": "YulIdentifier", + "src": "13745:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13736:3:70", + "nodeType": "YulIdentifier", + "src": "13736:3:70" + }, + "nativeSrc": "13736:19:70", + "nodeType": "YulFunctionCall", + "src": "13736:19:70" + }, + { + "kind": "number", + "nativeSrc": "13757:6:70", + "nodeType": "YulLiteral", + "src": "13757:6:70", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13732:3:70", + "nodeType": "YulIdentifier", + "src": "13732:3:70" + }, + "nativeSrc": "13732:32:70", + "nodeType": "YulFunctionCall", + "src": "13732:32:70" + }, + "nativeSrc": "13729:52:70", + "nodeType": "YulIf", + "src": "13729:52:70" + }, + { + "nativeSrc": "13790:31:70", + "nodeType": "YulAssignment", + "src": "13790:31:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_2390", + "nativeSrc": "13799:20:70", + "nodeType": "YulIdentifier", + "src": "13799:20:70" + }, + "nativeSrc": "13799:22:70", + "nodeType": "YulFunctionCall", + "src": "13799:22:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13790:5:70", + "nodeType": "YulIdentifier", + "src": "13790:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13837:5:70", + "nodeType": "YulIdentifier", + "src": "13837:5:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13874:9:70", + "nodeType": "YulIdentifier", + "src": "13874:9:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "13844:29:70", + "nodeType": "YulIdentifier", + "src": "13844:29:70" + }, + "nativeSrc": "13844:40:70", + "nodeType": "YulFunctionCall", + "src": "13844:40:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13830:6:70", + "nodeType": "YulIdentifier", + "src": "13830:6:70" + }, + "nativeSrc": "13830:55:70", + "nodeType": "YulFunctionCall", + "src": "13830:55:70" + }, + "nativeSrc": "13830:55:70", + "nodeType": "YulExpressionStatement", + "src": "13830:55:70" + }, + { + "nativeSrc": "13894:16:70", + "nodeType": "YulVariableDeclaration", + "src": "13894:16:70", + "value": { + "kind": "number", + "nativeSrc": "13909:1:70", + "nodeType": "YulLiteral", + "src": "13909:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "13898:7:70", + "nodeType": "YulTypedName", + "src": "13898:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "13919:36:70", + "nodeType": "YulAssignment", + "src": "13919:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13940:9:70", + "nodeType": "YulIdentifier", + "src": "13940:9:70" + }, + { + "kind": "number", + "nativeSrc": "13951:2:70", + "nodeType": "YulLiteral", + "src": "13951:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13936:3:70", + "nodeType": "YulIdentifier", + "src": "13936:3:70" + }, + "nativeSrc": "13936:18:70", + "nodeType": "YulFunctionCall", + "src": "13936:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13930:5:70", + "nodeType": "YulIdentifier", + "src": "13930:5:70" + }, + "nativeSrc": "13930:25:70", + "nodeType": "YulFunctionCall", + "src": "13930:25:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "13919:7:70", + "nodeType": "YulIdentifier", + "src": "13919:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "13975:5:70", + "nodeType": "YulIdentifier", + "src": "13975:5:70" + }, + { + "kind": "number", + "nativeSrc": "13982:2:70", + "nodeType": "YulLiteral", + "src": "13982:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13971:3:70", + "nodeType": "YulIdentifier", + "src": "13971:3:70" + }, + "nativeSrc": "13971:14:70", + "nodeType": "YulFunctionCall", + "src": "13971:14:70" + }, + { + "name": "value_1", + "nativeSrc": "13987:7:70", + "nodeType": "YulIdentifier", + "src": "13987:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13964:6:70", + "nodeType": "YulIdentifier", + "src": "13964:6:70" + }, + "nativeSrc": "13964:31:70", + "nodeType": "YulFunctionCall", + "src": "13964:31:70" + }, + "nativeSrc": "13964:31:70", + "nodeType": "YulExpressionStatement", + "src": "13964:31:70" + }, + { + "nativeSrc": "14004:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14004:16:70", + "value": { + "kind": "number", + "nativeSrc": "14019:1:70", + "nodeType": "YulLiteral", + "src": "14019:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "14008:7:70", + "nodeType": "YulTypedName", + "src": "14008:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14029:36:70", + "nodeType": "YulAssignment", + "src": "14029:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14050:9:70", + "nodeType": "YulIdentifier", + "src": "14050:9:70" + }, + { + "kind": "number", + "nativeSrc": "14061:2:70", + "nodeType": "YulLiteral", + "src": "14061:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14046:3:70", + "nodeType": "YulIdentifier", + "src": "14046:3:70" + }, + "nativeSrc": "14046:18:70", + "nodeType": "YulFunctionCall", + "src": "14046:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14040:5:70", + "nodeType": "YulIdentifier", + "src": "14040:5:70" + }, + "nativeSrc": "14040:25:70", + "nodeType": "YulFunctionCall", + "src": "14040:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "14029:7:70", + "nodeType": "YulIdentifier", + "src": "14029:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14085:5:70", + "nodeType": "YulIdentifier", + "src": "14085:5:70" + }, + { + "kind": "number", + "nativeSrc": "14092:2:70", + "nodeType": "YulLiteral", + "src": "14092:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14081:3:70", + "nodeType": "YulIdentifier", + "src": "14081:3:70" + }, + "nativeSrc": "14081:14:70", + "nodeType": "YulFunctionCall", + "src": "14081:14:70" + }, + { + "name": "value_2", + "nativeSrc": "14097:7:70", + "nodeType": "YulIdentifier", + "src": "14097:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14074:6:70", + "nodeType": "YulIdentifier", + "src": "14074:6:70" + }, + "nativeSrc": "14074:31:70", + "nodeType": "YulFunctionCall", + "src": "14074:31:70" + }, + "nativeSrc": "14074:31:70", + "nodeType": "YulExpressionStatement", + "src": "14074:31:70" + }, + { + "nativeSrc": "14114:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14114:16:70", + "value": { + "kind": "number", + "nativeSrc": "14129:1:70", + "nodeType": "YulLiteral", + "src": "14129:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "14118:7:70", + "nodeType": "YulTypedName", + "src": "14118:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14139:36:70", + "nodeType": "YulAssignment", + "src": "14139:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14160:9:70", + "nodeType": "YulIdentifier", + "src": "14160:9:70" + }, + { + "kind": "number", + "nativeSrc": "14171:2:70", + "nodeType": "YulLiteral", + "src": "14171:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14156:3:70", + "nodeType": "YulIdentifier", + "src": "14156:3:70" + }, + "nativeSrc": "14156:18:70", + "nodeType": "YulFunctionCall", + "src": "14156:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14150:5:70", + "nodeType": "YulIdentifier", + "src": "14150:5:70" + }, + "nativeSrc": "14150:25:70", + "nodeType": "YulFunctionCall", + "src": "14150:25:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "14139:7:70", + "nodeType": "YulIdentifier", + "src": "14139:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14195:5:70", + "nodeType": "YulIdentifier", + "src": "14195:5:70" + }, + { + "kind": "number", + "nativeSrc": "14202:2:70", + "nodeType": "YulLiteral", + "src": "14202:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14191:3:70", + "nodeType": "YulIdentifier", + "src": "14191:3:70" + }, + "nativeSrc": "14191:14:70", + "nodeType": "YulFunctionCall", + "src": "14191:14:70" + }, + { + "name": "value_3", + "nativeSrc": "14207:7:70", + "nodeType": "YulIdentifier", + "src": "14207:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14184:6:70", + "nodeType": "YulIdentifier", + "src": "14184:6:70" + }, + "nativeSrc": "14184:31:70", + "nodeType": "YulFunctionCall", + "src": "14184:31:70" + }, + "nativeSrc": "14184:31:70", + "nodeType": "YulExpressionStatement", + "src": "14184:31:70" + }, + { + "nativeSrc": "14224:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14224:16:70", + "value": { + "kind": "number", + "nativeSrc": "14239:1:70", + "nodeType": "YulLiteral", + "src": "14239:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "14228:7:70", + "nodeType": "YulTypedName", + "src": "14228:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14249:37:70", + "nodeType": "YulAssignment", + "src": "14249:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14270:9:70", + "nodeType": "YulIdentifier", + "src": "14270:9:70" + }, + { + "kind": "number", + "nativeSrc": "14281:3:70", + "nodeType": "YulLiteral", + "src": "14281:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14266:3:70", + "nodeType": "YulIdentifier", + "src": "14266:3:70" + }, + "nativeSrc": "14266:19:70", + "nodeType": "YulFunctionCall", + "src": "14266:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14260:5:70", + "nodeType": "YulIdentifier", + "src": "14260:5:70" + }, + "nativeSrc": "14260:26:70", + "nodeType": "YulFunctionCall", + "src": "14260:26:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "14249:7:70", + "nodeType": "YulIdentifier", + "src": "14249:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14306:5:70", + "nodeType": "YulIdentifier", + "src": "14306:5:70" + }, + { + "kind": "number", + "nativeSrc": "14313:3:70", + "nodeType": "YulLiteral", + "src": "14313:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14302:3:70", + "nodeType": "YulIdentifier", + "src": "14302:3:70" + }, + "nativeSrc": "14302:15:70", + "nodeType": "YulFunctionCall", + "src": "14302:15:70" + }, + { + "name": "value_4", + "nativeSrc": "14319:7:70", + "nodeType": "YulIdentifier", + "src": "14319:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14295:6:70", + "nodeType": "YulIdentifier", + "src": "14295:6:70" + }, + "nativeSrc": "14295:32:70", + "nodeType": "YulFunctionCall", + "src": "14295:32:70" + }, + "nativeSrc": "14295:32:70", + "nodeType": "YulExpressionStatement", + "src": "14295:32:70" + }, + { + "nativeSrc": "14336:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14336:16:70", + "value": { + "kind": "number", + "nativeSrc": "14351:1:70", + "nodeType": "YulLiteral", + "src": "14351:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "14340:7:70", + "nodeType": "YulTypedName", + "src": "14340:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14361:37:70", + "nodeType": "YulAssignment", + "src": "14361:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14382:9:70", + "nodeType": "YulIdentifier", + "src": "14382:9:70" + }, + { + "kind": "number", + "nativeSrc": "14393:3:70", + "nodeType": "YulLiteral", + "src": "14393:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14378:3:70", + "nodeType": "YulIdentifier", + "src": "14378:3:70" + }, + "nativeSrc": "14378:19:70", + "nodeType": "YulFunctionCall", + "src": "14378:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14372:5:70", + "nodeType": "YulIdentifier", + "src": "14372:5:70" + }, + "nativeSrc": "14372:26:70", + "nodeType": "YulFunctionCall", + "src": "14372:26:70" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "14361:7:70", + "nodeType": "YulIdentifier", + "src": "14361:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14418:5:70", + "nodeType": "YulIdentifier", + "src": "14418:5:70" + }, + { + "kind": "number", + "nativeSrc": "14425:3:70", + "nodeType": "YulLiteral", + "src": "14425:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14414:3:70", + "nodeType": "YulIdentifier", + "src": "14414:3:70" + }, + "nativeSrc": "14414:15:70", + "nodeType": "YulFunctionCall", + "src": "14414:15:70" + }, + { + "name": "value_5", + "nativeSrc": "14431:7:70", + "nodeType": "YulIdentifier", + "src": "14431:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14407:6:70", + "nodeType": "YulIdentifier", + "src": "14407:6:70" + }, + "nativeSrc": "14407:32:70", + "nodeType": "YulFunctionCall", + "src": "14407:32:70" + }, + "nativeSrc": "14407:32:70", + "nodeType": "YulExpressionStatement", + "src": "14407:32:70" + }, + { + "nativeSrc": "14448:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14448:16:70", + "value": { + "kind": "number", + "nativeSrc": "14463:1:70", + "nodeType": "YulLiteral", + "src": "14463:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_6", + "nativeSrc": "14452:7:70", + "nodeType": "YulTypedName", + "src": "14452:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14473:37:70", + "nodeType": "YulAssignment", + "src": "14473:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14494:9:70", + "nodeType": "YulIdentifier", + "src": "14494:9:70" + }, + { + "kind": "number", + "nativeSrc": "14505:3:70", + "nodeType": "YulLiteral", + "src": "14505:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14490:3:70", + "nodeType": "YulIdentifier", + "src": "14490:3:70" + }, + "nativeSrc": "14490:19:70", + "nodeType": "YulFunctionCall", + "src": "14490:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14484:5:70", + "nodeType": "YulIdentifier", + "src": "14484:5:70" + }, + "nativeSrc": "14484:26:70", + "nodeType": "YulFunctionCall", + "src": "14484:26:70" + }, + "variableNames": [ + { + "name": "value_6", + "nativeSrc": "14473:7:70", + "nodeType": "YulIdentifier", + "src": "14473:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14530:5:70", + "nodeType": "YulIdentifier", + "src": "14530:5:70" + }, + { + "kind": "number", + "nativeSrc": "14537:3:70", + "nodeType": "YulLiteral", + "src": "14537:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14526:3:70", + "nodeType": "YulIdentifier", + "src": "14526:3:70" + }, + "nativeSrc": "14526:15:70", + "nodeType": "YulFunctionCall", + "src": "14526:15:70" + }, + { + "name": "value_6", + "nativeSrc": "14543:7:70", + "nodeType": "YulIdentifier", + "src": "14543:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14519:6:70", + "nodeType": "YulIdentifier", + "src": "14519:6:70" + }, + "nativeSrc": "14519:32:70", + "nodeType": "YulFunctionCall", + "src": "14519:32:70" + }, + "nativeSrc": "14519:32:70", + "nodeType": "YulExpressionStatement", + "src": "14519:32:70" + }, + { + "nativeSrc": "14560:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14560:16:70", + "value": { + "kind": "number", + "nativeSrc": "14575:1:70", + "nodeType": "YulLiteral", + "src": "14575:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_7", + "nativeSrc": "14564:7:70", + "nodeType": "YulTypedName", + "src": "14564:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14585:37:70", + "nodeType": "YulAssignment", + "src": "14585:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14606:9:70", + "nodeType": "YulIdentifier", + "src": "14606:9:70" + }, + { + "kind": "number", + "nativeSrc": "14617:3:70", + "nodeType": "YulLiteral", + "src": "14617:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14602:3:70", + "nodeType": "YulIdentifier", + "src": "14602:3:70" + }, + "nativeSrc": "14602:19:70", + "nodeType": "YulFunctionCall", + "src": "14602:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14596:5:70", + "nodeType": "YulIdentifier", + "src": "14596:5:70" + }, + "nativeSrc": "14596:26:70", + "nodeType": "YulFunctionCall", + "src": "14596:26:70" + }, + "variableNames": [ + { + "name": "value_7", + "nativeSrc": "14585:7:70", + "nodeType": "YulIdentifier", + "src": "14585:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14642:5:70", + "nodeType": "YulIdentifier", + "src": "14642:5:70" + }, + { + "kind": "number", + "nativeSrc": "14649:3:70", + "nodeType": "YulLiteral", + "src": "14649:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14638:3:70", + "nodeType": "YulIdentifier", + "src": "14638:3:70" + }, + "nativeSrc": "14638:15:70", + "nodeType": "YulFunctionCall", + "src": "14638:15:70" + }, + { + "name": "value_7", + "nativeSrc": "14655:7:70", + "nodeType": "YulIdentifier", + "src": "14655:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14631:6:70", + "nodeType": "YulIdentifier", + "src": "14631:6:70" + }, + "nativeSrc": "14631:32:70", + "nodeType": "YulFunctionCall", + "src": "14631:32:70" + }, + "nativeSrc": "14631:32:70", + "nodeType": "YulExpressionStatement", + "src": "14631:32:70" + }, + { + "nativeSrc": "14672:16:70", + "nodeType": "YulVariableDeclaration", + "src": "14672:16:70", + "value": { + "kind": "number", + "nativeSrc": "14687:1:70", + "nodeType": "YulLiteral", + "src": "14687:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_8", + "nativeSrc": "14676:7:70", + "nodeType": "YulTypedName", + "src": "14676:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "14697:37:70", + "nodeType": "YulAssignment", + "src": "14697:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14718:9:70", + "nodeType": "YulIdentifier", + "src": "14718:9:70" + }, + { + "kind": "number", + "nativeSrc": "14729:3:70", + "nodeType": "YulLiteral", + "src": "14729:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14714:3:70", + "nodeType": "YulIdentifier", + "src": "14714:3:70" + }, + "nativeSrc": "14714:19:70", + "nodeType": "YulFunctionCall", + "src": "14714:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14708:5:70", + "nodeType": "YulIdentifier", + "src": "14708:5:70" + }, + "nativeSrc": "14708:26:70", + "nodeType": "YulFunctionCall", + "src": "14708:26:70" + }, + "variableNames": [ + { + "name": "value_8", + "nativeSrc": "14697:7:70", + "nodeType": "YulIdentifier", + "src": "14697:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14754:5:70", + "nodeType": "YulIdentifier", + "src": "14754:5:70" + }, + { + "kind": "number", + "nativeSrc": "14761:3:70", + "nodeType": "YulLiteral", + "src": "14761:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14750:3:70", + "nodeType": "YulIdentifier", + "src": "14750:3:70" + }, + "nativeSrc": "14750:15:70", + "nodeType": "YulFunctionCall", + "src": "14750:15:70" + }, + { + "name": "value_8", + "nativeSrc": "14767:7:70", + "nodeType": "YulIdentifier", + "src": "14767:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14743:6:70", + "nodeType": "YulIdentifier", + "src": "14743:6:70" + }, + "nativeSrc": "14743:32:70", + "nodeType": "YulFunctionCall", + "src": "14743:32:70" + }, + "nativeSrc": "14743:32:70", + "nodeType": "YulExpressionStatement", + "src": "14743:32:70" + } + ] + }, + "name": "abi_decode_struct_Allocation_fromMemory", + "nativeSrc": "13641:1140:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13690:9:70", + "nodeType": "YulTypedName", + "src": "13690:9:70", + "type": "" + }, + { + "name": "end", + "nativeSrc": "13701:3:70", + "nodeType": "YulTypedName", + "src": "13701:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "13709:5:70", + "nodeType": "YulTypedName", + "src": "13709:5:70", + "type": "" + } + ], + "src": "13641:1140:70" + }, + { + "body": { + "nativeSrc": "14895:147:70", + "nodeType": "YulBlock", + "src": "14895:147:70", + "statements": [ + { + "body": { + "nativeSrc": "14942:16:70", + "nodeType": "YulBlock", + "src": "14942:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14951:1:70", + "nodeType": "YulLiteral", + "src": "14951:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14954:1:70", + "nodeType": "YulLiteral", + "src": "14954:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14944:6:70", + "nodeType": "YulIdentifier", + "src": "14944:6:70" + }, + "nativeSrc": "14944:12:70", + "nodeType": "YulFunctionCall", + "src": "14944:12:70" + }, + "nativeSrc": "14944:12:70", + "nodeType": "YulExpressionStatement", + "src": "14944:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "14916:7:70", + "nodeType": "YulIdentifier", + "src": "14916:7:70" + }, + { + "name": "headStart", + "nativeSrc": "14925:9:70", + "nodeType": "YulIdentifier", + "src": "14925:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14912:3:70", + "nodeType": "YulIdentifier", + "src": "14912:3:70" + }, + "nativeSrc": "14912:23:70", + "nodeType": "YulFunctionCall", + "src": "14912:23:70" + }, + { + "kind": "number", + "nativeSrc": "14937:3:70", + "nodeType": "YulLiteral", + "src": "14937:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14908:3:70", + "nodeType": "YulIdentifier", + "src": "14908:3:70" + }, + "nativeSrc": "14908:33:70", + "nodeType": "YulFunctionCall", + "src": "14908:33:70" + }, + "nativeSrc": "14905:53:70", + "nodeType": "YulIf", + "src": "14905:53:70" + }, + { + "nativeSrc": "14967:69:70", + "nodeType": "YulAssignment", + "src": "14967:69:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15017:9:70", + "nodeType": "YulIdentifier", + "src": "15017:9:70" + }, + { + "name": "dataEnd", + "nativeSrc": "15028:7:70", + "nodeType": "YulIdentifier", + "src": "15028:7:70" + } + ], + "functionName": { + "name": "abi_decode_struct_Allocation_fromMemory", + "nativeSrc": "14977:39:70", + "nodeType": "YulIdentifier", + "src": "14977:39:70" + }, + "nativeSrc": "14977:59:70", + "nodeType": "YulFunctionCall", + "src": "14977:59:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "14967:6:70", + "nodeType": "YulIdentifier", + "src": "14967:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Allocation_$3073_memory_ptr_fromMemory", + "nativeSrc": "14786:256:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14861:9:70", + "nodeType": "YulTypedName", + "src": "14861:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "14872:7:70", + "nodeType": "YulTypedName", + "src": "14872:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "14884:6:70", + "nodeType": "YulTypedName", + "src": "14884:6:70", + "type": "" + } + ], + "src": "14786:256:70" + }, + { + "body": { + "nativeSrc": "15079:95:70", + "nodeType": "YulBlock", + "src": "15079:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15096:1:70", + "nodeType": "YulLiteral", + "src": "15096:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15103:3:70", + "nodeType": "YulLiteral", + "src": "15103:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "15108:10:70", + "nodeType": "YulLiteral", + "src": "15108:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15099:3:70", + "nodeType": "YulIdentifier", + "src": "15099:3:70" + }, + "nativeSrc": "15099:20:70", + "nodeType": "YulFunctionCall", + "src": "15099:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15089:6:70", + "nodeType": "YulIdentifier", + "src": "15089:6:70" + }, + "nativeSrc": "15089:31:70", + "nodeType": "YulFunctionCall", + "src": "15089:31:70" + }, + "nativeSrc": "15089:31:70", + "nodeType": "YulExpressionStatement", + "src": "15089:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15136:1:70", + "nodeType": "YulLiteral", + "src": "15136:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "15139:4:70", + "nodeType": "YulLiteral", + "src": "15139:4:70", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15129:6:70", + "nodeType": "YulIdentifier", + "src": "15129:6:70" + }, + "nativeSrc": "15129:15:70", + "nodeType": "YulFunctionCall", + "src": "15129:15:70" + }, + "nativeSrc": "15129:15:70", + "nodeType": "YulExpressionStatement", + "src": "15129:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15160:1:70", + "nodeType": "YulLiteral", + "src": "15160:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15163:4:70", + "nodeType": "YulLiteral", + "src": "15163:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15153:6:70", + "nodeType": "YulIdentifier", + "src": "15153:6:70" + }, + "nativeSrc": "15153:15:70", + "nodeType": "YulFunctionCall", + "src": "15153:15:70" + }, + "nativeSrc": "15153:15:70", + "nodeType": "YulExpressionStatement", + "src": "15153:15:70" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "15047:127:70", + "nodeType": "YulFunctionDefinition", + "src": "15047:127:70" + }, + { + "body": { + "nativeSrc": "15227:77:70", + "nodeType": "YulBlock", + "src": "15227:77:70", + "statements": [ + { + "nativeSrc": "15237:16:70", + "nodeType": "YulAssignment", + "src": "15237:16:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15248:1:70", + "nodeType": "YulIdentifier", + "src": "15248:1:70" + }, + { + "name": "y", + "nativeSrc": "15251:1:70", + "nodeType": "YulIdentifier", + "src": "15251:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15244:3:70", + "nodeType": "YulIdentifier", + "src": "15244:3:70" + }, + "nativeSrc": "15244:9:70", + "nodeType": "YulFunctionCall", + "src": "15244:9:70" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "15237:3:70", + "nodeType": "YulIdentifier", + "src": "15237:3:70" + } + ] + }, + { + "body": { + "nativeSrc": "15276:22:70", + "nodeType": "YulBlock", + "src": "15276:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "15278:16:70", + "nodeType": "YulIdentifier", + "src": "15278:16:70" + }, + "nativeSrc": "15278:18:70", + "nodeType": "YulFunctionCall", + "src": "15278:18:70" + }, + "nativeSrc": "15278:18:70", + "nodeType": "YulExpressionStatement", + "src": "15278:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15268:1:70", + "nodeType": "YulIdentifier", + "src": "15268:1:70" + }, + { + "name": "sum", + "nativeSrc": "15271:3:70", + "nodeType": "YulIdentifier", + "src": "15271:3:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15265:2:70", + "nodeType": "YulIdentifier", + "src": "15265:2:70" + }, + "nativeSrc": "15265:10:70", + "nodeType": "YulFunctionCall", + "src": "15265:10:70" + }, + "nativeSrc": "15262:36:70", + "nodeType": "YulIf", + "src": "15262:36:70" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "15179:125:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "15210:1:70", + "nodeType": "YulTypedName", + "src": "15210:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "15213:1:70", + "nodeType": "YulTypedName", + "src": "15213:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "15219:3:70", + "nodeType": "YulTypedName", + "src": "15219:3:70", + "type": "" + } + ], + "src": "15179:125:70" + }, + { + "body": { + "nativeSrc": "15438:119:70", + "nodeType": "YulBlock", + "src": "15438:119:70", + "statements": [ + { + "nativeSrc": "15448:26:70", + "nodeType": "YulAssignment", + "src": "15448:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15460:9:70", + "nodeType": "YulIdentifier", + "src": "15460:9:70" + }, + { + "kind": "number", + "nativeSrc": "15471:2:70", + "nodeType": "YulLiteral", + "src": "15471:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15456:3:70", + "nodeType": "YulIdentifier", + "src": "15456:3:70" + }, + "nativeSrc": "15456:18:70", + "nodeType": "YulFunctionCall", + "src": "15456:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15448:4:70", + "nodeType": "YulIdentifier", + "src": "15448:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15490:9:70", + "nodeType": "YulIdentifier", + "src": "15490:9:70" + }, + { + "name": "value0", + "nativeSrc": "15501:6:70", + "nodeType": "YulIdentifier", + "src": "15501:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15483:6:70", + "nodeType": "YulIdentifier", + "src": "15483:6:70" + }, + "nativeSrc": "15483:25:70", + "nodeType": "YulFunctionCall", + "src": "15483:25:70" + }, + "nativeSrc": "15483:25:70", + "nodeType": "YulExpressionStatement", + "src": "15483:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15528:9:70", + "nodeType": "YulIdentifier", + "src": "15528:9:70" + }, + { + "kind": "number", + "nativeSrc": "15539:2:70", + "nodeType": "YulLiteral", + "src": "15539:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15524:3:70", + "nodeType": "YulIdentifier", + "src": "15524:3:70" + }, + "nativeSrc": "15524:18:70", + "nodeType": "YulFunctionCall", + "src": "15524:18:70" + }, + { + "name": "value1", + "nativeSrc": "15544:6:70", + "nodeType": "YulIdentifier", + "src": "15544:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15517:6:70", + "nodeType": "YulIdentifier", + "src": "15517:6:70" + }, + "nativeSrc": "15517:34:70", + "nodeType": "YulFunctionCall", + "src": "15517:34:70" + }, + "nativeSrc": "15517:34:70", + "nodeType": "YulExpressionStatement", + "src": "15517:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "15309:248:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15399:9:70", + "nodeType": "YulTypedName", + "src": "15399:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15410:6:70", + "nodeType": "YulTypedName", + "src": "15410:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15418:6:70", + "nodeType": "YulTypedName", + "src": "15418:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15429:4:70", + "nodeType": "YulTypedName", + "src": "15429:4:70", + "type": "" + } + ], + "src": "15309:248:70" + }, + { + "body": { + "nativeSrc": "15611:350:70", + "nodeType": "YulBlock", + "src": "15611:350:70", + "statements": [ + { + "nativeSrc": "15621:26:70", + "nodeType": "YulVariableDeclaration", + "src": "15621:26:70", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15641:5:70", + "nodeType": "YulIdentifier", + "src": "15641:5:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15635:5:70", + "nodeType": "YulIdentifier", + "src": "15635:5:70" + }, + "nativeSrc": "15635:12:70", + "nodeType": "YulFunctionCall", + "src": "15635:12:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "15625:6:70", + "nodeType": "YulTypedName", + "src": "15625:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15663:3:70", + "nodeType": "YulIdentifier", + "src": "15663:3:70" + }, + { + "name": "length", + "nativeSrc": "15668:6:70", + "nodeType": "YulIdentifier", + "src": "15668:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15656:6:70", + "nodeType": "YulIdentifier", + "src": "15656:6:70" + }, + "nativeSrc": "15656:19:70", + "nodeType": "YulFunctionCall", + "src": "15656:19:70" + }, + "nativeSrc": "15656:19:70", + "nodeType": "YulExpressionStatement", + "src": "15656:19:70" + }, + { + "nativeSrc": "15684:10:70", + "nodeType": "YulVariableDeclaration", + "src": "15684:10:70", + "value": { + "kind": "number", + "nativeSrc": "15693:1:70", + "nodeType": "YulLiteral", + "src": "15693:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "15688:1:70", + "nodeType": "YulTypedName", + "src": "15688:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15755:87:70", + "nodeType": "YulBlock", + "src": "15755:87:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15784:3:70", + "nodeType": "YulIdentifier", + "src": "15784:3:70" + }, + { + "name": "i", + "nativeSrc": "15789:1:70", + "nodeType": "YulIdentifier", + "src": "15789:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15780:3:70", + "nodeType": "YulIdentifier", + "src": "15780:3:70" + }, + "nativeSrc": "15780:11:70", + "nodeType": "YulFunctionCall", + "src": "15780:11:70" + }, + { + "kind": "number", + "nativeSrc": "15793:4:70", + "nodeType": "YulLiteral", + "src": "15793:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15776:3:70", + "nodeType": "YulIdentifier", + "src": "15776:3:70" + }, + "nativeSrc": "15776:22:70", + "nodeType": "YulFunctionCall", + "src": "15776:22:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15814:5:70", + "nodeType": "YulIdentifier", + "src": "15814:5:70" + }, + { + "name": "i", + "nativeSrc": "15821:1:70", + "nodeType": "YulIdentifier", + "src": "15821:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15810:3:70", + "nodeType": "YulIdentifier", + "src": "15810:3:70" + }, + "nativeSrc": "15810:13:70", + "nodeType": "YulFunctionCall", + "src": "15810:13:70" + }, + { + "kind": "number", + "nativeSrc": "15825:4:70", + "nodeType": "YulLiteral", + "src": "15825:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15806:3:70", + "nodeType": "YulIdentifier", + "src": "15806:3:70" + }, + "nativeSrc": "15806:24:70", + "nodeType": "YulFunctionCall", + "src": "15806:24:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15800:5:70", + "nodeType": "YulIdentifier", + "src": "15800:5:70" + }, + "nativeSrc": "15800:31:70", + "nodeType": "YulFunctionCall", + "src": "15800:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15769:6:70", + "nodeType": "YulIdentifier", + "src": "15769:6:70" + }, + "nativeSrc": "15769:63:70", + "nodeType": "YulFunctionCall", + "src": "15769:63:70" + }, + "nativeSrc": "15769:63:70", + "nodeType": "YulExpressionStatement", + "src": "15769:63:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15714:1:70", + "nodeType": "YulIdentifier", + "src": "15714:1:70" + }, + { + "name": "length", + "nativeSrc": "15717:6:70", + "nodeType": "YulIdentifier", + "src": "15717:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15711:2:70", + "nodeType": "YulIdentifier", + "src": "15711:2:70" + }, + "nativeSrc": "15711:13:70", + "nodeType": "YulFunctionCall", + "src": "15711:13:70" + }, + "nativeSrc": "15703:139:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "15725:21:70", + "nodeType": "YulBlock", + "src": "15725:21:70", + "statements": [ + { + "nativeSrc": "15727:17:70", + "nodeType": "YulAssignment", + "src": "15727:17:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15736:1:70", + "nodeType": "YulIdentifier", + "src": "15736:1:70" + }, + { + "kind": "number", + "nativeSrc": "15739:4:70", + "nodeType": "YulLiteral", + "src": "15739:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15732:3:70", + "nodeType": "YulIdentifier", + "src": "15732:3:70" + }, + "nativeSrc": "15732:12:70", + "nodeType": "YulFunctionCall", + "src": "15732:12:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "15727:1:70", + "nodeType": "YulIdentifier", + "src": "15727:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15707:3:70", + "nodeType": "YulBlock", + "src": "15707:3:70", + "statements": [] + }, + "src": "15703:139:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15866:3:70", + "nodeType": "YulIdentifier", + "src": "15866:3:70" + }, + { + "name": "length", + "nativeSrc": "15871:6:70", + "nodeType": "YulIdentifier", + "src": "15871:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15862:3:70", + "nodeType": "YulIdentifier", + "src": "15862:3:70" + }, + "nativeSrc": "15862:16:70", + "nodeType": "YulFunctionCall", + "src": "15862:16:70" + }, + { + "kind": "number", + "nativeSrc": "15880:4:70", + "nodeType": "YulLiteral", + "src": "15880:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15858:3:70", + "nodeType": "YulIdentifier", + "src": "15858:3:70" + }, + "nativeSrc": "15858:27:70", + "nodeType": "YulFunctionCall", + "src": "15858:27:70" + }, + { + "kind": "number", + "nativeSrc": "15887:1:70", + "nodeType": "YulLiteral", + "src": "15887:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15851:6:70", + "nodeType": "YulIdentifier", + "src": "15851:6:70" + }, + "nativeSrc": "15851:38:70", + "nodeType": "YulFunctionCall", + "src": "15851:38:70" + }, + "nativeSrc": "15851:38:70", + "nodeType": "YulExpressionStatement", + "src": "15851:38:70" + }, + { + "nativeSrc": "15898:57:70", + "nodeType": "YulAssignment", + "src": "15898:57:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15913:3:70", + "nodeType": "YulIdentifier", + "src": "15913:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "15926:6:70", + "nodeType": "YulIdentifier", + "src": "15926:6:70" + }, + { + "kind": "number", + "nativeSrc": "15934:2:70", + "nodeType": "YulLiteral", + "src": "15934:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15922:3:70", + "nodeType": "YulIdentifier", + "src": "15922:3:70" + }, + "nativeSrc": "15922:15:70", + "nodeType": "YulFunctionCall", + "src": "15922:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15943:2:70", + "nodeType": "YulLiteral", + "src": "15943:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "15939:3:70", + "nodeType": "YulIdentifier", + "src": "15939:3:70" + }, + "nativeSrc": "15939:7:70", + "nodeType": "YulFunctionCall", + "src": "15939:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15918:3:70", + "nodeType": "YulIdentifier", + "src": "15918:3:70" + }, + "nativeSrc": "15918:29:70", + "nodeType": "YulFunctionCall", + "src": "15918:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15909:3:70", + "nodeType": "YulIdentifier", + "src": "15909:3:70" + }, + "nativeSrc": "15909:39:70", + "nodeType": "YulFunctionCall", + "src": "15909:39:70" + }, + { + "kind": "number", + "nativeSrc": "15950:4:70", + "nodeType": "YulLiteral", + "src": "15950:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15905:3:70", + "nodeType": "YulIdentifier", + "src": "15905:3:70" + }, + "nativeSrc": "15905:50:70", + "nodeType": "YulFunctionCall", + "src": "15905:50:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15898:3:70", + "nodeType": "YulIdentifier", + "src": "15898:3:70" + } + ] + } + ] + }, + "name": "abi_encode_bytes", + "nativeSrc": "15562:399:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "15588:5:70", + "nodeType": "YulTypedName", + "src": "15588:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "15595:3:70", + "nodeType": "YulTypedName", + "src": "15595:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15603:3:70", + "nodeType": "YulTypedName", + "src": "15603:3:70", + "type": "" + } + ], + "src": "15562:399:70" + }, + { + "body": { + "nativeSrc": "16113:167:70", + "nodeType": "YulBlock", + "src": "16113:167:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16130:9:70", + "nodeType": "YulIdentifier", + "src": "16130:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "16145:6:70", + "nodeType": "YulIdentifier", + "src": "16145:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16161:3:70", + "nodeType": "YulLiteral", + "src": "16161:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "16166:1:70", + "nodeType": "YulLiteral", + "src": "16166:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16157:3:70", + "nodeType": "YulIdentifier", + "src": "16157:3:70" + }, + "nativeSrc": "16157:11:70", + "nodeType": "YulFunctionCall", + "src": "16157:11:70" + }, + { + "kind": "number", + "nativeSrc": "16170:1:70", + "nodeType": "YulLiteral", + "src": "16170:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16153:3:70", + "nodeType": "YulIdentifier", + "src": "16153:3:70" + }, + "nativeSrc": "16153:19:70", + "nodeType": "YulFunctionCall", + "src": "16153:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16141:3:70", + "nodeType": "YulIdentifier", + "src": "16141:3:70" + }, + "nativeSrc": "16141:32:70", + "nodeType": "YulFunctionCall", + "src": "16141:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16123:6:70", + "nodeType": "YulIdentifier", + "src": "16123:6:70" + }, + "nativeSrc": "16123:51:70", + "nodeType": "YulFunctionCall", + "src": "16123:51:70" + }, + "nativeSrc": "16123:51:70", + "nodeType": "YulExpressionStatement", + "src": "16123:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16194:9:70", + "nodeType": "YulIdentifier", + "src": "16194:9:70" + }, + { + "kind": "number", + "nativeSrc": "16205:2:70", + "nodeType": "YulLiteral", + "src": "16205:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16190:3:70", + "nodeType": "YulIdentifier", + "src": "16190:3:70" + }, + "nativeSrc": "16190:18:70", + "nodeType": "YulFunctionCall", + "src": "16190:18:70" + }, + { + "kind": "number", + "nativeSrc": "16210:2:70", + "nodeType": "YulLiteral", + "src": "16210:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16183:6:70", + "nodeType": "YulIdentifier", + "src": "16183:6:70" + }, + "nativeSrc": "16183:30:70", + "nodeType": "YulFunctionCall", + "src": "16183:30:70" + }, + "nativeSrc": "16183:30:70", + "nodeType": "YulExpressionStatement", + "src": "16183:30:70" + }, + { + "nativeSrc": "16222:52:70", + "nodeType": "YulAssignment", + "src": "16222:52:70", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16247:6:70", + "nodeType": "YulIdentifier", + "src": "16247:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16259:9:70", + "nodeType": "YulIdentifier", + "src": "16259:9:70" + }, + { + "kind": "number", + "nativeSrc": "16270:2:70", + "nodeType": "YulLiteral", + "src": "16270:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16255:3:70", + "nodeType": "YulIdentifier", + "src": "16255:3:70" + }, + "nativeSrc": "16255:18:70", + "nodeType": "YulFunctionCall", + "src": "16255:18:70" + } + ], + "functionName": { + "name": "abi_encode_bytes", + "nativeSrc": "16230:16:70", + "nodeType": "YulIdentifier", + "src": "16230:16:70" + }, + "nativeSrc": "16230:44:70", + "nodeType": "YulFunctionCall", + "src": "16230:44:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16222:4:70", + "nodeType": "YulIdentifier", + "src": "16222:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "15966:314:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16074:9:70", + "nodeType": "YulTypedName", + "src": "16074:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16085:6:70", + "nodeType": "YulTypedName", + "src": "16085:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16093:6:70", + "nodeType": "YulTypedName", + "src": "16093:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16104:4:70", + "nodeType": "YulTypedName", + "src": "16104:4:70", + "type": "" + } + ], + "src": "15966:314:70" + }, + { + "body": { + "nativeSrc": "16442:188:70", + "nodeType": "YulBlock", + "src": "16442:188:70", + "statements": [ + { + "nativeSrc": "16452:26:70", + "nodeType": "YulAssignment", + "src": "16452:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16464:9:70", + "nodeType": "YulIdentifier", + "src": "16464:9:70" + }, + { + "kind": "number", + "nativeSrc": "16475:2:70", + "nodeType": "YulLiteral", + "src": "16475:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16460:3:70", + "nodeType": "YulIdentifier", + "src": "16460:3:70" + }, + "nativeSrc": "16460:18:70", + "nodeType": "YulFunctionCall", + "src": "16460:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16452:4:70", + "nodeType": "YulIdentifier", + "src": "16452:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16494:9:70", + "nodeType": "YulIdentifier", + "src": "16494:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "16509:6:70", + "nodeType": "YulIdentifier", + "src": "16509:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16525:3:70", + "nodeType": "YulLiteral", + "src": "16525:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "16530:1:70", + "nodeType": "YulLiteral", + "src": "16530:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16521:3:70", + "nodeType": "YulIdentifier", + "src": "16521:3:70" + }, + "nativeSrc": "16521:11:70", + "nodeType": "YulFunctionCall", + "src": "16521:11:70" + }, + { + "kind": "number", + "nativeSrc": "16534:1:70", + "nodeType": "YulLiteral", + "src": "16534:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16517:3:70", + "nodeType": "YulIdentifier", + "src": "16517:3:70" + }, + "nativeSrc": "16517:19:70", + "nodeType": "YulFunctionCall", + "src": "16517:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16505:3:70", + "nodeType": "YulIdentifier", + "src": "16505:3:70" + }, + "nativeSrc": "16505:32:70", + "nodeType": "YulFunctionCall", + "src": "16505:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16487:6:70", + "nodeType": "YulIdentifier", + "src": "16487:6:70" + }, + "nativeSrc": "16487:51:70", + "nodeType": "YulFunctionCall", + "src": "16487:51:70" + }, + "nativeSrc": "16487:51:70", + "nodeType": "YulExpressionStatement", + "src": "16487:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16558:9:70", + "nodeType": "YulIdentifier", + "src": "16558:9:70" + }, + { + "kind": "number", + "nativeSrc": "16569:2:70", + "nodeType": "YulLiteral", + "src": "16569:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16554:3:70", + "nodeType": "YulIdentifier", + "src": "16554:3:70" + }, + "nativeSrc": "16554:18:70", + "nodeType": "YulFunctionCall", + "src": "16554:18:70" + }, + { + "name": "value1", + "nativeSrc": "16574:6:70", + "nodeType": "YulIdentifier", + "src": "16574:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16547:6:70", + "nodeType": "YulIdentifier", + "src": "16547:6:70" + }, + "nativeSrc": "16547:34:70", + "nodeType": "YulFunctionCall", + "src": "16547:34:70" + }, + "nativeSrc": "16547:34:70", + "nodeType": "YulExpressionStatement", + "src": "16547:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16601:9:70", + "nodeType": "YulIdentifier", + "src": "16601:9:70" + }, + { + "kind": "number", + "nativeSrc": "16612:2:70", + "nodeType": "YulLiteral", + "src": "16612:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16597:3:70", + "nodeType": "YulIdentifier", + "src": "16597:3:70" + }, + "nativeSrc": "16597:18:70", + "nodeType": "YulFunctionCall", + "src": "16597:18:70" + }, + { + "name": "value2", + "nativeSrc": "16617:6:70", + "nodeType": "YulIdentifier", + "src": "16617:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16590:6:70", + "nodeType": "YulIdentifier", + "src": "16590:6:70" + }, + "nativeSrc": "16590:34:70", + "nodeType": "YulFunctionCall", + "src": "16590:34:70" + }, + "nativeSrc": "16590:34:70", + "nodeType": "YulExpressionStatement", + "src": "16590:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "16285:345:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16395:9:70", + "nodeType": "YulTypedName", + "src": "16395:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16406:6:70", + "nodeType": "YulTypedName", + "src": "16406:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16414:6:70", + "nodeType": "YulTypedName", + "src": "16414:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16422:6:70", + "nodeType": "YulTypedName", + "src": "16422:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16433:4:70", + "nodeType": "YulTypedName", + "src": "16433:4:70", + "type": "" + } + ], + "src": "16285:345:70" + }, + { + "body": { + "nativeSrc": "16764:171:70", + "nodeType": "YulBlock", + "src": "16764:171:70", + "statements": [ + { + "nativeSrc": "16774:26:70", + "nodeType": "YulAssignment", + "src": "16774:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16786:9:70", + "nodeType": "YulIdentifier", + "src": "16786:9:70" + }, + { + "kind": "number", + "nativeSrc": "16797:2:70", + "nodeType": "YulLiteral", + "src": "16797:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16782:3:70", + "nodeType": "YulIdentifier", + "src": "16782:3:70" + }, + "nativeSrc": "16782:18:70", + "nodeType": "YulFunctionCall", + "src": "16782:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16774:4:70", + "nodeType": "YulIdentifier", + "src": "16774:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16816:9:70", + "nodeType": "YulIdentifier", + "src": "16816:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "16831:6:70", + "nodeType": "YulIdentifier", + "src": "16831:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16847:3:70", + "nodeType": "YulLiteral", + "src": "16847:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "16852:1:70", + "nodeType": "YulLiteral", + "src": "16852:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16843:3:70", + "nodeType": "YulIdentifier", + "src": "16843:3:70" + }, + "nativeSrc": "16843:11:70", + "nodeType": "YulFunctionCall", + "src": "16843:11:70" + }, + { + "kind": "number", + "nativeSrc": "16856:1:70", + "nodeType": "YulLiteral", + "src": "16856:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16839:3:70", + "nodeType": "YulIdentifier", + "src": "16839:3:70" + }, + "nativeSrc": "16839:19:70", + "nodeType": "YulFunctionCall", + "src": "16839:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16827:3:70", + "nodeType": "YulIdentifier", + "src": "16827:3:70" + }, + "nativeSrc": "16827:32:70", + "nodeType": "YulFunctionCall", + "src": "16827:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16809:6:70", + "nodeType": "YulIdentifier", + "src": "16809:6:70" + }, + "nativeSrc": "16809:51:70", + "nodeType": "YulFunctionCall", + "src": "16809:51:70" + }, + "nativeSrc": "16809:51:70", + "nodeType": "YulExpressionStatement", + "src": "16809:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16880:9:70", + "nodeType": "YulIdentifier", + "src": "16880:9:70" + }, + { + "kind": "number", + "nativeSrc": "16891:2:70", + "nodeType": "YulLiteral", + "src": "16891:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16876:3:70", + "nodeType": "YulIdentifier", + "src": "16876:3:70" + }, + "nativeSrc": "16876:18:70", + "nodeType": "YulFunctionCall", + "src": "16876:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16900:6:70", + "nodeType": "YulIdentifier", + "src": "16900:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16916:3:70", + "nodeType": "YulLiteral", + "src": "16916:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "16921:1:70", + "nodeType": "YulLiteral", + "src": "16921:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16912:3:70", + "nodeType": "YulIdentifier", + "src": "16912:3:70" + }, + "nativeSrc": "16912:11:70", + "nodeType": "YulFunctionCall", + "src": "16912:11:70" + }, + { + "kind": "number", + "nativeSrc": "16925:1:70", + "nodeType": "YulLiteral", + "src": "16925:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16908:3:70", + "nodeType": "YulIdentifier", + "src": "16908:3:70" + }, + "nativeSrc": "16908:19:70", + "nodeType": "YulFunctionCall", + "src": "16908:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16896:3:70", + "nodeType": "YulIdentifier", + "src": "16896:3:70" + }, + "nativeSrc": "16896:32:70", + "nodeType": "YulFunctionCall", + "src": "16896:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16869:6:70", + "nodeType": "YulIdentifier", + "src": "16869:6:70" + }, + "nativeSrc": "16869:60:70", + "nodeType": "YulFunctionCall", + "src": "16869:60:70" + }, + "nativeSrc": "16869:60:70", + "nodeType": "YulExpressionStatement", + "src": "16869:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "16635:300:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16725:9:70", + "nodeType": "YulTypedName", + "src": "16725:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16736:6:70", + "nodeType": "YulTypedName", + "src": "16736:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16744:6:70", + "nodeType": "YulTypedName", + "src": "16744:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16755:4:70", + "nodeType": "YulTypedName", + "src": "16755:4:70", + "type": "" + } + ], + "src": "16635:300:70" + }, + { + "body": { + "nativeSrc": "16999:77:70", + "nodeType": "YulBlock", + "src": "16999:77:70", + "statements": [ + { + "nativeSrc": "17009:22:70", + "nodeType": "YulAssignment", + "src": "17009:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17024:6:70", + "nodeType": "YulIdentifier", + "src": "17024:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17018:5:70", + "nodeType": "YulIdentifier", + "src": "17018:5:70" + }, + "nativeSrc": "17018:13:70", + "nodeType": "YulFunctionCall", + "src": "17018:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17009:5:70", + "nodeType": "YulIdentifier", + "src": "17009:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17064:5:70", + "nodeType": "YulIdentifier", + "src": "17064:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "17040:23:70", + "nodeType": "YulIdentifier", + "src": "17040:23:70" + }, + "nativeSrc": "17040:30:70", + "nodeType": "YulFunctionCall", + "src": "17040:30:70" + }, + "nativeSrc": "17040:30:70", + "nodeType": "YulExpressionStatement", + "src": "17040:30:70" + } + ] + }, + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "16940:136:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "16978:6:70", + "nodeType": "YulTypedName", + "src": "16978:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "16989:5:70", + "nodeType": "YulTypedName", + "src": "16989:5:70", + "type": "" + } + ], + "src": "16940:136:70" + }, + { + "body": { + "nativeSrc": "17140:77:70", + "nodeType": "YulBlock", + "src": "17140:77:70", + "statements": [ + { + "nativeSrc": "17150:22:70", + "nodeType": "YulAssignment", + "src": "17150:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17165:6:70", + "nodeType": "YulIdentifier", + "src": "17165:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17159:5:70", + "nodeType": "YulIdentifier", + "src": "17159:5:70" + }, + "nativeSrc": "17159:13:70", + "nodeType": "YulFunctionCall", + "src": "17159:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17150:5:70", + "nodeType": "YulIdentifier", + "src": "17150:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17205:5:70", + "nodeType": "YulIdentifier", + "src": "17205:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "17181:23:70", + "nodeType": "YulIdentifier", + "src": "17181:23:70" + }, + "nativeSrc": "17181:30:70", + "nodeType": "YulFunctionCall", + "src": "17181:30:70" + }, + "nativeSrc": "17181:30:70", + "nodeType": "YulExpressionStatement", + "src": "17181:30:70" + } + ] + }, + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "17081:136:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "17119:6:70", + "nodeType": "YulTypedName", + "src": "17119:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "17130:5:70", + "nodeType": "YulTypedName", + "src": "17130:5:70", + "type": "" + } + ], + "src": "17081:136:70" + }, + { + "body": { + "nativeSrc": "17330:1128:70", + "nodeType": "YulBlock", + "src": "17330:1128:70", + "statements": [ + { + "nativeSrc": "17340:43:70", + "nodeType": "YulVariableDeclaration", + "src": "17340:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "17358:7:70", + "nodeType": "YulIdentifier", + "src": "17358:7:70" + }, + { + "name": "headStart", + "nativeSrc": "17367:9:70", + "nodeType": "YulIdentifier", + "src": "17367:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17354:3:70", + "nodeType": "YulIdentifier", + "src": "17354:3:70" + }, + "nativeSrc": "17354:23:70", + "nodeType": "YulFunctionCall", + "src": "17354:23:70" + }, + { + "kind": "number", + "nativeSrc": "17379:3:70", + "nodeType": "YulLiteral", + "src": "17379:3:70", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17350:3:70", + "nodeType": "YulIdentifier", + "src": "17350:3:70" + }, + "nativeSrc": "17350:33:70", + "nodeType": "YulFunctionCall", + "src": "17350:33:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "17344:2:70", + "nodeType": "YulTypedName", + "src": "17344:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17398:16:70", + "nodeType": "YulBlock", + "src": "17398:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17407:1:70", + "nodeType": "YulLiteral", + "src": "17407:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17410:1:70", + "nodeType": "YulLiteral", + "src": "17410:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17400:6:70", + "nodeType": "YulIdentifier", + "src": "17400:6:70" + }, + "nativeSrc": "17400:12:70", + "nodeType": "YulFunctionCall", + "src": "17400:12:70" + }, + "nativeSrc": "17400:12:70", + "nodeType": "YulExpressionStatement", + "src": "17400:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "17395:2:70", + "nodeType": "YulIdentifier", + "src": "17395:2:70" + }, + "nativeSrc": "17392:22:70", + "nodeType": "YulIf", + "src": "17392:22:70" + }, + { + "nativeSrc": "17423:7:70", + "nodeType": "YulAssignment", + "src": "17423:7:70", + "value": { + "kind": "number", + "nativeSrc": "17429:1:70", + "nodeType": "YulLiteral", + "src": "17429:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "17423:2:70", + "nodeType": "YulIdentifier", + "src": "17423:2:70" + } + ] + }, + { + "nativeSrc": "17439:35:70", + "nodeType": "YulVariableDeclaration", + "src": "17439:35:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_2392", + "nativeSrc": "17452:20:70", + "nodeType": "YulIdentifier", + "src": "17452:20:70" + }, + "nativeSrc": "17452:22:70", + "nodeType": "YulFunctionCall", + "src": "17452:22:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "17443:5:70", + "nodeType": "YulTypedName", + "src": "17443:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "17483:17:70", + "nodeType": "YulVariableDeclaration", + "src": "17483:17:70", + "value": { + "name": "_1", + "nativeSrc": "17498:2:70", + "nodeType": "YulIdentifier", + "src": "17498:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "17487:7:70", + "nodeType": "YulTypedName", + "src": "17487:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "17509:27:70", + "nodeType": "YulAssignment", + "src": "17509:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17526:9:70", + "nodeType": "YulIdentifier", + "src": "17526:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17520:5:70", + "nodeType": "YulIdentifier", + "src": "17520:5:70" + }, + "nativeSrc": "17520:16:70", + "nodeType": "YulFunctionCall", + "src": "17520:16:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "17509:7:70", + "nodeType": "YulIdentifier", + "src": "17509:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17552:5:70", + "nodeType": "YulIdentifier", + "src": "17552:5:70" + }, + { + "name": "value_1", + "nativeSrc": "17559:7:70", + "nodeType": "YulIdentifier", + "src": "17559:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17545:6:70", + "nodeType": "YulIdentifier", + "src": "17545:6:70" + }, + "nativeSrc": "17545:22:70", + "nodeType": "YulFunctionCall", + "src": "17545:22:70" + }, + "nativeSrc": "17545:22:70", + "nodeType": "YulExpressionStatement", + "src": "17545:22:70" + }, + { + "nativeSrc": "17576:17:70", + "nodeType": "YulVariableDeclaration", + "src": "17576:17:70", + "value": { + "name": "_1", + "nativeSrc": "17591:2:70", + "nodeType": "YulIdentifier", + "src": "17591:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "17580:7:70", + "nodeType": "YulTypedName", + "src": "17580:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "17602:36:70", + "nodeType": "YulAssignment", + "src": "17602:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17623:9:70", + "nodeType": "YulIdentifier", + "src": "17623:9:70" + }, + { + "kind": "number", + "nativeSrc": "17634:2:70", + "nodeType": "YulLiteral", + "src": "17634:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17619:3:70", + "nodeType": "YulIdentifier", + "src": "17619:3:70" + }, + "nativeSrc": "17619:18:70", + "nodeType": "YulFunctionCall", + "src": "17619:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17613:5:70", + "nodeType": "YulIdentifier", + "src": "17613:5:70" + }, + "nativeSrc": "17613:25:70", + "nodeType": "YulFunctionCall", + "src": "17613:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "17602:7:70", + "nodeType": "YulIdentifier", + "src": "17602:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17658:5:70", + "nodeType": "YulIdentifier", + "src": "17658:5:70" + }, + { + "kind": "number", + "nativeSrc": "17665:2:70", + "nodeType": "YulLiteral", + "src": "17665:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17654:3:70", + "nodeType": "YulIdentifier", + "src": "17654:3:70" + }, + "nativeSrc": "17654:14:70", + "nodeType": "YulFunctionCall", + "src": "17654:14:70" + }, + { + "name": "value_2", + "nativeSrc": "17670:7:70", + "nodeType": "YulIdentifier", + "src": "17670:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17647:6:70", + "nodeType": "YulIdentifier", + "src": "17647:6:70" + }, + "nativeSrc": "17647:31:70", + "nodeType": "YulFunctionCall", + "src": "17647:31:70" + }, + "nativeSrc": "17647:31:70", + "nodeType": "YulExpressionStatement", + "src": "17647:31:70" + }, + { + "nativeSrc": "17687:17:70", + "nodeType": "YulVariableDeclaration", + "src": "17687:17:70", + "value": { + "name": "_1", + "nativeSrc": "17702:2:70", + "nodeType": "YulIdentifier", + "src": "17702:2:70" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "17691:7:70", + "nodeType": "YulTypedName", + "src": "17691:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "17713:36:70", + "nodeType": "YulAssignment", + "src": "17713:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17734:9:70", + "nodeType": "YulIdentifier", + "src": "17734:9:70" + }, + { + "kind": "number", + "nativeSrc": "17745:2:70", + "nodeType": "YulLiteral", + "src": "17745:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17730:3:70", + "nodeType": "YulIdentifier", + "src": "17730:3:70" + }, + "nativeSrc": "17730:18:70", + "nodeType": "YulFunctionCall", + "src": "17730:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17724:5:70", + "nodeType": "YulIdentifier", + "src": "17724:5:70" + }, + "nativeSrc": "17724:25:70", + "nodeType": "YulFunctionCall", + "src": "17724:25:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "17713:7:70", + "nodeType": "YulIdentifier", + "src": "17713:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17769:5:70", + "nodeType": "YulIdentifier", + "src": "17769:5:70" + }, + { + "kind": "number", + "nativeSrc": "17776:2:70", + "nodeType": "YulLiteral", + "src": "17776:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17765:3:70", + "nodeType": "YulIdentifier", + "src": "17765:3:70" + }, + "nativeSrc": "17765:14:70", + "nodeType": "YulFunctionCall", + "src": "17765:14:70" + }, + { + "name": "value_3", + "nativeSrc": "17781:7:70", + "nodeType": "YulIdentifier", + "src": "17781:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17758:6:70", + "nodeType": "YulIdentifier", + "src": "17758:6:70" + }, + "nativeSrc": "17758:31:70", + "nodeType": "YulFunctionCall", + "src": "17758:31:70" + }, + "nativeSrc": "17758:31:70", + "nodeType": "YulExpressionStatement", + "src": "17758:31:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17809:5:70", + "nodeType": "YulIdentifier", + "src": "17809:5:70" + }, + { + "kind": "number", + "nativeSrc": "17816:2:70", + "nodeType": "YulLiteral", + "src": "17816:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17805:3:70", + "nodeType": "YulIdentifier", + "src": "17805:3:70" + }, + "nativeSrc": "17805:14:70", + "nodeType": "YulFunctionCall", + "src": "17805:14:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17854:9:70", + "nodeType": "YulIdentifier", + "src": "17854:9:70" + }, + { + "kind": "number", + "nativeSrc": "17865:2:70", + "nodeType": "YulLiteral", + "src": "17865:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17850:3:70", + "nodeType": "YulIdentifier", + "src": "17850:3:70" + }, + "nativeSrc": "17850:18:70", + "nodeType": "YulFunctionCall", + "src": "17850:18:70" + } + ], + "functionName": { + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "17821:28:70", + "nodeType": "YulIdentifier", + "src": "17821:28:70" + }, + "nativeSrc": "17821:48:70", + "nodeType": "YulFunctionCall", + "src": "17821:48:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17798:6:70", + "nodeType": "YulIdentifier", + "src": "17798:6:70" + }, + "nativeSrc": "17798:72:70", + "nodeType": "YulFunctionCall", + "src": "17798:72:70" + }, + "nativeSrc": "17798:72:70", + "nodeType": "YulExpressionStatement", + "src": "17798:72:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17890:5:70", + "nodeType": "YulIdentifier", + "src": "17890:5:70" + }, + { + "kind": "number", + "nativeSrc": "17897:3:70", + "nodeType": "YulLiteral", + "src": "17897:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17886:3:70", + "nodeType": "YulIdentifier", + "src": "17886:3:70" + }, + "nativeSrc": "17886:15:70", + "nodeType": "YulFunctionCall", + "src": "17886:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17936:9:70", + "nodeType": "YulIdentifier", + "src": "17936:9:70" + }, + { + "kind": "number", + "nativeSrc": "17947:3:70", + "nodeType": "YulLiteral", + "src": "17947:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17932:3:70", + "nodeType": "YulIdentifier", + "src": "17932:3:70" + }, + "nativeSrc": "17932:19:70", + "nodeType": "YulFunctionCall", + "src": "17932:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "17903:28:70", + "nodeType": "YulIdentifier", + "src": "17903:28:70" + }, + "nativeSrc": "17903:49:70", + "nodeType": "YulFunctionCall", + "src": "17903:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17879:6:70", + "nodeType": "YulIdentifier", + "src": "17879:6:70" + }, + "nativeSrc": "17879:74:70", + "nodeType": "YulFunctionCall", + "src": "17879:74:70" + }, + "nativeSrc": "17879:74:70", + "nodeType": "YulExpressionStatement", + "src": "17879:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17973:5:70", + "nodeType": "YulIdentifier", + "src": "17973:5:70" + }, + { + "kind": "number", + "nativeSrc": "17980:3:70", + "nodeType": "YulLiteral", + "src": "17980:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17969:3:70", + "nodeType": "YulIdentifier", + "src": "17969:3:70" + }, + "nativeSrc": "17969:15:70", + "nodeType": "YulFunctionCall", + "src": "17969:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18019:9:70", + "nodeType": "YulIdentifier", + "src": "18019:9:70" + }, + { + "kind": "number", + "nativeSrc": "18030:3:70", + "nodeType": "YulLiteral", + "src": "18030:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18015:3:70", + "nodeType": "YulIdentifier", + "src": "18015:3:70" + }, + "nativeSrc": "18015:19:70", + "nodeType": "YulFunctionCall", + "src": "18015:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "17986:28:70", + "nodeType": "YulIdentifier", + "src": "17986:28:70" + }, + "nativeSrc": "17986:49:70", + "nodeType": "YulFunctionCall", + "src": "17986:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17962:6:70", + "nodeType": "YulIdentifier", + "src": "17962:6:70" + }, + "nativeSrc": "17962:74:70", + "nodeType": "YulFunctionCall", + "src": "17962:74:70" + }, + "nativeSrc": "17962:74:70", + "nodeType": "YulExpressionStatement", + "src": "17962:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18056:5:70", + "nodeType": "YulIdentifier", + "src": "18056:5:70" + }, + { + "kind": "number", + "nativeSrc": "18063:3:70", + "nodeType": "YulLiteral", + "src": "18063:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18052:3:70", + "nodeType": "YulIdentifier", + "src": "18052:3:70" + }, + "nativeSrc": "18052:15:70", + "nodeType": "YulFunctionCall", + "src": "18052:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18102:9:70", + "nodeType": "YulIdentifier", + "src": "18102:9:70" + }, + { + "kind": "number", + "nativeSrc": "18113:3:70", + "nodeType": "YulLiteral", + "src": "18113:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18098:3:70", + "nodeType": "YulIdentifier", + "src": "18098:3:70" + }, + "nativeSrc": "18098:19:70", + "nodeType": "YulFunctionCall", + "src": "18098:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "18069:28:70", + "nodeType": "YulIdentifier", + "src": "18069:28:70" + }, + "nativeSrc": "18069:49:70", + "nodeType": "YulFunctionCall", + "src": "18069:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18045:6:70", + "nodeType": "YulIdentifier", + "src": "18045:6:70" + }, + "nativeSrc": "18045:74:70", + "nodeType": "YulFunctionCall", + "src": "18045:74:70" + }, + "nativeSrc": "18045:74:70", + "nodeType": "YulExpressionStatement", + "src": "18045:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18139:5:70", + "nodeType": "YulIdentifier", + "src": "18139:5:70" + }, + { + "kind": "number", + "nativeSrc": "18146:3:70", + "nodeType": "YulLiteral", + "src": "18146:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18135:3:70", + "nodeType": "YulIdentifier", + "src": "18135:3:70" + }, + "nativeSrc": "18135:15:70", + "nodeType": "YulFunctionCall", + "src": "18135:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18185:9:70", + "nodeType": "YulIdentifier", + "src": "18185:9:70" + }, + { + "kind": "number", + "nativeSrc": "18196:3:70", + "nodeType": "YulLiteral", + "src": "18196:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18181:3:70", + "nodeType": "YulIdentifier", + "src": "18181:3:70" + }, + "nativeSrc": "18181:19:70", + "nodeType": "YulFunctionCall", + "src": "18181:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "18152:28:70", + "nodeType": "YulIdentifier", + "src": "18152:28:70" + }, + "nativeSrc": "18152:49:70", + "nodeType": "YulFunctionCall", + "src": "18152:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18128:6:70", + "nodeType": "YulIdentifier", + "src": "18128:6:70" + }, + "nativeSrc": "18128:74:70", + "nodeType": "YulFunctionCall", + "src": "18128:74:70" + }, + "nativeSrc": "18128:74:70", + "nodeType": "YulExpressionStatement", + "src": "18128:74:70" + }, + { + "nativeSrc": "18211:17:70", + "nodeType": "YulVariableDeclaration", + "src": "18211:17:70", + "value": { + "name": "_1", + "nativeSrc": "18226:2:70", + "nodeType": "YulIdentifier", + "src": "18226:2:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "18215:7:70", + "nodeType": "YulTypedName", + "src": "18215:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18237:37:70", + "nodeType": "YulAssignment", + "src": "18237:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18258:9:70", + "nodeType": "YulIdentifier", + "src": "18258:9:70" + }, + { + "kind": "number", + "nativeSrc": "18269:3:70", + "nodeType": "YulLiteral", + "src": "18269:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18254:3:70", + "nodeType": "YulIdentifier", + "src": "18254:3:70" + }, + "nativeSrc": "18254:19:70", + "nodeType": "YulFunctionCall", + "src": "18254:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18248:5:70", + "nodeType": "YulIdentifier", + "src": "18248:5:70" + }, + "nativeSrc": "18248:26:70", + "nodeType": "YulFunctionCall", + "src": "18248:26:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "18237:7:70", + "nodeType": "YulIdentifier", + "src": "18237:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18294:5:70", + "nodeType": "YulIdentifier", + "src": "18294:5:70" + }, + { + "kind": "number", + "nativeSrc": "18301:3:70", + "nodeType": "YulLiteral", + "src": "18301:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18290:3:70", + "nodeType": "YulIdentifier", + "src": "18290:3:70" + }, + "nativeSrc": "18290:15:70", + "nodeType": "YulFunctionCall", + "src": "18290:15:70" + }, + { + "name": "value_4", + "nativeSrc": "18307:7:70", + "nodeType": "YulIdentifier", + "src": "18307:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18283:6:70", + "nodeType": "YulIdentifier", + "src": "18283:6:70" + }, + "nativeSrc": "18283:32:70", + "nodeType": "YulFunctionCall", + "src": "18283:32:70" + }, + "nativeSrc": "18283:32:70", + "nodeType": "YulExpressionStatement", + "src": "18283:32:70" + }, + { + "nativeSrc": "18324:17:70", + "nodeType": "YulVariableDeclaration", + "src": "18324:17:70", + "value": { + "name": "_1", + "nativeSrc": "18339:2:70", + "nodeType": "YulIdentifier", + "src": "18339:2:70" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "18328:7:70", + "nodeType": "YulTypedName", + "src": "18328:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18350:37:70", + "nodeType": "YulAssignment", + "src": "18350:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18371:9:70", + "nodeType": "YulIdentifier", + "src": "18371:9:70" + }, + { + "kind": "number", + "nativeSrc": "18382:3:70", + "nodeType": "YulLiteral", + "src": "18382:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18367:3:70", + "nodeType": "YulIdentifier", + "src": "18367:3:70" + }, + "nativeSrc": "18367:19:70", + "nodeType": "YulFunctionCall", + "src": "18367:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18361:5:70", + "nodeType": "YulIdentifier", + "src": "18361:5:70" + }, + "nativeSrc": "18361:26:70", + "nodeType": "YulFunctionCall", + "src": "18361:26:70" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "18350:7:70", + "nodeType": "YulIdentifier", + "src": "18350:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18407:5:70", + "nodeType": "YulIdentifier", + "src": "18407:5:70" + }, + { + "kind": "number", + "nativeSrc": "18414:3:70", + "nodeType": "YulLiteral", + "src": "18414:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18403:3:70", + "nodeType": "YulIdentifier", + "src": "18403:3:70" + }, + "nativeSrc": "18403:15:70", + "nodeType": "YulFunctionCall", + "src": "18403:15:70" + }, + { + "name": "value_5", + "nativeSrc": "18420:7:70", + "nodeType": "YulIdentifier", + "src": "18420:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18396:6:70", + "nodeType": "YulIdentifier", + "src": "18396:6:70" + }, + "nativeSrc": "18396:32:70", + "nodeType": "YulFunctionCall", + "src": "18396:32:70" + }, + "nativeSrc": "18396:32:70", + "nodeType": "YulExpressionStatement", + "src": "18396:32:70" + }, + { + "nativeSrc": "18437:15:70", + "nodeType": "YulAssignment", + "src": "18437:15:70", + "value": { + "name": "value", + "nativeSrc": "18447:5:70", + "nodeType": "YulIdentifier", + "src": "18447:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18437:6:70", + "nodeType": "YulIdentifier", + "src": "18437:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Provision_$3962_memory_ptr_fromMemory", + "nativeSrc": "17222:1236:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17296:9:70", + "nodeType": "YulTypedName", + "src": "17296:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "17307:7:70", + "nodeType": "YulTypedName", + "src": "17307:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "17319:6:70", + "nodeType": "YulTypedName", + "src": "17319:6:70", + "type": "" + } + ], + "src": "17222:1236:70" + }, + { + "body": { + "nativeSrc": "18704:294:70", + "nodeType": "YulBlock", + "src": "18704:294:70", + "statements": [ + { + "nativeSrc": "18714:27:70", + "nodeType": "YulAssignment", + "src": "18714:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18726:9:70", + "nodeType": "YulIdentifier", + "src": "18726:9:70" + }, + { + "kind": "number", + "nativeSrc": "18737:3:70", + "nodeType": "YulLiteral", + "src": "18737:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18722:3:70", + "nodeType": "YulIdentifier", + "src": "18722:3:70" + }, + "nativeSrc": "18722:19:70", + "nodeType": "YulFunctionCall", + "src": "18722:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18714:4:70", + "nodeType": "YulIdentifier", + "src": "18714:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18757:9:70", + "nodeType": "YulIdentifier", + "src": "18757:9:70" + }, + { + "name": "value0", + "nativeSrc": "18768:6:70", + "nodeType": "YulIdentifier", + "src": "18768:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18750:6:70", + "nodeType": "YulIdentifier", + "src": "18750:6:70" + }, + "nativeSrc": "18750:25:70", + "nodeType": "YulFunctionCall", + "src": "18750:25:70" + }, + "nativeSrc": "18750:25:70", + "nodeType": "YulExpressionStatement", + "src": "18750:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18795:9:70", + "nodeType": "YulIdentifier", + "src": "18795:9:70" + }, + { + "kind": "number", + "nativeSrc": "18806:2:70", + "nodeType": "YulLiteral", + "src": "18806:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18791:3:70", + "nodeType": "YulIdentifier", + "src": "18791:3:70" + }, + "nativeSrc": "18791:18:70", + "nodeType": "YulFunctionCall", + "src": "18791:18:70" + }, + { + "name": "value1", + "nativeSrc": "18811:6:70", + "nodeType": "YulIdentifier", + "src": "18811:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18784:6:70", + "nodeType": "YulIdentifier", + "src": "18784:6:70" + }, + "nativeSrc": "18784:34:70", + "nodeType": "YulFunctionCall", + "src": "18784:34:70" + }, + "nativeSrc": "18784:34:70", + "nodeType": "YulExpressionStatement", + "src": "18784:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18838:9:70", + "nodeType": "YulIdentifier", + "src": "18838:9:70" + }, + { + "kind": "number", + "nativeSrc": "18849:2:70", + "nodeType": "YulLiteral", + "src": "18849:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18834:3:70", + "nodeType": "YulIdentifier", + "src": "18834:3:70" + }, + "nativeSrc": "18834:18:70", + "nodeType": "YulFunctionCall", + "src": "18834:18:70" + }, + { + "name": "value2", + "nativeSrc": "18854:6:70", + "nodeType": "YulIdentifier", + "src": "18854:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18827:6:70", + "nodeType": "YulIdentifier", + "src": "18827:6:70" + }, + "nativeSrc": "18827:34:70", + "nodeType": "YulFunctionCall", + "src": "18827:34:70" + }, + "nativeSrc": "18827:34:70", + "nodeType": "YulExpressionStatement", + "src": "18827:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18881:9:70", + "nodeType": "YulIdentifier", + "src": "18881:9:70" + }, + { + "kind": "number", + "nativeSrc": "18892:2:70", + "nodeType": "YulLiteral", + "src": "18892:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18877:3:70", + "nodeType": "YulIdentifier", + "src": "18877:3:70" + }, + "nativeSrc": "18877:18:70", + "nodeType": "YulFunctionCall", + "src": "18877:18:70" + }, + { + "name": "value3", + "nativeSrc": "18897:6:70", + "nodeType": "YulIdentifier", + "src": "18897:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18870:6:70", + "nodeType": "YulIdentifier", + "src": "18870:6:70" + }, + "nativeSrc": "18870:34:70", + "nodeType": "YulFunctionCall", + "src": "18870:34:70" + }, + "nativeSrc": "18870:34:70", + "nodeType": "YulExpressionStatement", + "src": "18870:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18924:9:70", + "nodeType": "YulIdentifier", + "src": "18924:9:70" + }, + { + "kind": "number", + "nativeSrc": "18935:3:70", + "nodeType": "YulLiteral", + "src": "18935:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18920:3:70", + "nodeType": "YulIdentifier", + "src": "18920:3:70" + }, + "nativeSrc": "18920:19:70", + "nodeType": "YulFunctionCall", + "src": "18920:19:70" + }, + { + "name": "value4", + "nativeSrc": "18941:6:70", + "nodeType": "YulIdentifier", + "src": "18941:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18913:6:70", + "nodeType": "YulIdentifier", + "src": "18913:6:70" + }, + "nativeSrc": "18913:35:70", + "nodeType": "YulFunctionCall", + "src": "18913:35:70" + }, + "nativeSrc": "18913:35:70", + "nodeType": "YulExpressionStatement", + "src": "18913:35:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18968:9:70", + "nodeType": "YulIdentifier", + "src": "18968:9:70" + }, + { + "kind": "number", + "nativeSrc": "18979:3:70", + "nodeType": "YulLiteral", + "src": "18979:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18964:3:70", + "nodeType": "YulIdentifier", + "src": "18964:3:70" + }, + "nativeSrc": "18964:19:70", + "nodeType": "YulFunctionCall", + "src": "18964:19:70" + }, + { + "name": "value5", + "nativeSrc": "18985:6:70", + "nodeType": "YulIdentifier", + "src": "18985:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18957:6:70", + "nodeType": "YulIdentifier", + "src": "18957:6:70" + }, + "nativeSrc": "18957:35:70", + "nodeType": "YulFunctionCall", + "src": "18957:35:70" + }, + "nativeSrc": "18957:35:70", + "nodeType": "YulExpressionStatement", + "src": "18957:35:70" + } + ] + }, + "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": "18463:535:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18633:9:70", + "nodeType": "YulTypedName", + "src": "18633:9:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "18644:6:70", + "nodeType": "YulTypedName", + "src": "18644:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "18652:6:70", + "nodeType": "YulTypedName", + "src": "18652:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "18660:6:70", + "nodeType": "YulTypedName", + "src": "18660:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "18668:6:70", + "nodeType": "YulTypedName", + "src": "18668:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18676:6:70", + "nodeType": "YulTypedName", + "src": "18676:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "18684:6:70", + "nodeType": "YulTypedName", + "src": "18684:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "18695:4:70", + "nodeType": "YulTypedName", + "src": "18695:4:70", + "type": "" + } + ], + "src": "18463:535:70" + }, + { + "body": { + "nativeSrc": "19049:171:70", + "nodeType": "YulBlock", + "src": "19049:171:70", + "statements": [ + { + "body": { + "nativeSrc": "19080:111:70", + "nodeType": "YulBlock", + "src": "19080:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19101:1:70", + "nodeType": "YulLiteral", + "src": "19101:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19108:3:70", + "nodeType": "YulLiteral", + "src": "19108:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "19113:10:70", + "nodeType": "YulLiteral", + "src": "19113:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19104:3:70", + "nodeType": "YulIdentifier", + "src": "19104:3:70" + }, + "nativeSrc": "19104:20:70", + "nodeType": "YulFunctionCall", + "src": "19104:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19094:6:70", + "nodeType": "YulIdentifier", + "src": "19094:6:70" + }, + "nativeSrc": "19094:31:70", + "nodeType": "YulFunctionCall", + "src": "19094:31:70" + }, + "nativeSrc": "19094:31:70", + "nodeType": "YulExpressionStatement", + "src": "19094:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19145:1:70", + "nodeType": "YulLiteral", + "src": "19145:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "19148:4:70", + "nodeType": "YulLiteral", + "src": "19148:4:70", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19138:6:70", + "nodeType": "YulIdentifier", + "src": "19138:6:70" + }, + "nativeSrc": "19138:15:70", + "nodeType": "YulFunctionCall", + "src": "19138:15:70" + }, + "nativeSrc": "19138:15:70", + "nodeType": "YulExpressionStatement", + "src": "19138:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19173:1:70", + "nodeType": "YulLiteral", + "src": "19173:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19176:4:70", + "nodeType": "YulLiteral", + "src": "19176:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19166:6:70", + "nodeType": "YulIdentifier", + "src": "19166:6:70" + }, + "nativeSrc": "19166:15:70", + "nodeType": "YulFunctionCall", + "src": "19166:15:70" + }, + "nativeSrc": "19166:15:70", + "nodeType": "YulExpressionStatement", + "src": "19166:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "19069:1:70", + "nodeType": "YulIdentifier", + "src": "19069:1:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "19062:6:70", + "nodeType": "YulIdentifier", + "src": "19062:6:70" + }, + "nativeSrc": "19062:9:70", + "nodeType": "YulFunctionCall", + "src": "19062:9:70" + }, + "nativeSrc": "19059:132:70", + "nodeType": "YulIf", + "src": "19059:132:70" + }, + { + "nativeSrc": "19200:14:70", + "nodeType": "YulAssignment", + "src": "19200:14:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "19209:1:70", + "nodeType": "YulIdentifier", + "src": "19209:1:70" + }, + { + "name": "y", + "nativeSrc": "19212:1:70", + "nodeType": "YulIdentifier", + "src": "19212:1:70" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "19205:3:70", + "nodeType": "YulIdentifier", + "src": "19205:3:70" + }, + "nativeSrc": "19205:9:70", + "nodeType": "YulFunctionCall", + "src": "19205:9:70" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "19200:1:70", + "nodeType": "YulIdentifier", + "src": "19200:1:70" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "19003:217:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "19034:1:70", + "nodeType": "YulTypedName", + "src": "19034:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "19037:1:70", + "nodeType": "YulTypedName", + "src": "19037:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "19043:1:70", + "nodeType": "YulTypedName", + "src": "19043:1:70", + "type": "" + } + ], + "src": "19003:217:70" + }, + { + "body": { + "nativeSrc": "19330:147:70", + "nodeType": "YulBlock", + "src": "19330:147:70", + "statements": [ + { + "body": { + "nativeSrc": "19377:16:70", + "nodeType": "YulBlock", + "src": "19377:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19386:1:70", + "nodeType": "YulLiteral", + "src": "19386:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19389:1:70", + "nodeType": "YulLiteral", + "src": "19389:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19379:6:70", + "nodeType": "YulIdentifier", + "src": "19379:6:70" + }, + "nativeSrc": "19379:12:70", + "nodeType": "YulFunctionCall", + "src": "19379:12:70" + }, + "nativeSrc": "19379:12:70", + "nodeType": "YulExpressionStatement", + "src": "19379:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19351:7:70", + "nodeType": "YulIdentifier", + "src": "19351:7:70" + }, + { + "name": "headStart", + "nativeSrc": "19360:9:70", + "nodeType": "YulIdentifier", + "src": "19360:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19347:3:70", + "nodeType": "YulIdentifier", + "src": "19347:3:70" + }, + "nativeSrc": "19347:23:70", + "nodeType": "YulFunctionCall", + "src": "19347:23:70" + }, + { + "kind": "number", + "nativeSrc": "19372:3:70", + "nodeType": "YulLiteral", + "src": "19372:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19343:3:70", + "nodeType": "YulIdentifier", + "src": "19343:3:70" + }, + "nativeSrc": "19343:33:70", + "nodeType": "YulFunctionCall", + "src": "19343:33:70" + }, + "nativeSrc": "19340:53:70", + "nodeType": "YulIf", + "src": "19340:53:70" + }, + { + "nativeSrc": "19402:69:70", + "nodeType": "YulAssignment", + "src": "19402:69:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19452:9:70", + "nodeType": "YulIdentifier", + "src": "19452:9:70" + }, + { + "name": "dataEnd", + "nativeSrc": "19463:7:70", + "nodeType": "YulIdentifier", + "src": "19463:7:70" + } + ], + "functionName": { + "name": "abi_decode_struct_Allocation_fromMemory", + "nativeSrc": "19412:39:70", + "nodeType": "YulIdentifier", + "src": "19412:39:70" + }, + "nativeSrc": "19412:59:70", + "nodeType": "YulFunctionCall", + "src": "19412:59:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19402:6:70", + "nodeType": "YulIdentifier", + "src": "19402:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_State_$15663_memory_ptr_fromMemory", + "nativeSrc": "19225:252:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19296:9:70", + "nodeType": "YulTypedName", + "src": "19296:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19307:7:70", + "nodeType": "YulTypedName", + "src": "19307:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19319:6:70", + "nodeType": "YulTypedName", + "src": "19319:6:70", + "type": "" + } + ], + "src": "19225:252:70" + }, + { + "body": { + "nativeSrc": "19639:214:70", + "nodeType": "YulBlock", + "src": "19639:214:70", + "statements": [ + { + "nativeSrc": "19649:26:70", + "nodeType": "YulAssignment", + "src": "19649:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19661:9:70", + "nodeType": "YulIdentifier", + "src": "19661:9:70" + }, + { + "kind": "number", + "nativeSrc": "19672:2:70", + "nodeType": "YulLiteral", + "src": "19672:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19657:3:70", + "nodeType": "YulIdentifier", + "src": "19657:3:70" + }, + "nativeSrc": "19657:18:70", + "nodeType": "YulFunctionCall", + "src": "19657:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19649:4:70", + "nodeType": "YulIdentifier", + "src": "19649:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19691:9:70", + "nodeType": "YulIdentifier", + "src": "19691:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "19706:6:70", + "nodeType": "YulIdentifier", + "src": "19706:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19722:3:70", + "nodeType": "YulLiteral", + "src": "19722:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "19727:1:70", + "nodeType": "YulLiteral", + "src": "19727:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19718:3:70", + "nodeType": "YulIdentifier", + "src": "19718:3:70" + }, + "nativeSrc": "19718:11:70", + "nodeType": "YulFunctionCall", + "src": "19718:11:70" + }, + { + "kind": "number", + "nativeSrc": "19731:1:70", + "nodeType": "YulLiteral", + "src": "19731:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19714:3:70", + "nodeType": "YulIdentifier", + "src": "19714:3:70" + }, + "nativeSrc": "19714:19:70", + "nodeType": "YulFunctionCall", + "src": "19714:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19702:3:70", + "nodeType": "YulIdentifier", + "src": "19702:3:70" + }, + "nativeSrc": "19702:32:70", + "nodeType": "YulFunctionCall", + "src": "19702:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19684:6:70", + "nodeType": "YulIdentifier", + "src": "19684:6:70" + }, + "nativeSrc": "19684:51:70", + "nodeType": "YulFunctionCall", + "src": "19684:51:70" + }, + "nativeSrc": "19684:51:70", + "nodeType": "YulExpressionStatement", + "src": "19684:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19755:9:70", + "nodeType": "YulIdentifier", + "src": "19755:9:70" + }, + { + "kind": "number", + "nativeSrc": "19766:2:70", + "nodeType": "YulLiteral", + "src": "19766:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19751:3:70", + "nodeType": "YulIdentifier", + "src": "19751:3:70" + }, + "nativeSrc": "19751:18:70", + "nodeType": "YulFunctionCall", + "src": "19751:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "19775:6:70", + "nodeType": "YulIdentifier", + "src": "19775:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19791:3:70", + "nodeType": "YulLiteral", + "src": "19791:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "19796:1:70", + "nodeType": "YulLiteral", + "src": "19796:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19787:3:70", + "nodeType": "YulIdentifier", + "src": "19787:3:70" + }, + "nativeSrc": "19787:11:70", + "nodeType": "YulFunctionCall", + "src": "19787:11:70" + }, + { + "kind": "number", + "nativeSrc": "19800:1:70", + "nodeType": "YulLiteral", + "src": "19800:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19783:3:70", + "nodeType": "YulIdentifier", + "src": "19783:3:70" + }, + "nativeSrc": "19783:19:70", + "nodeType": "YulFunctionCall", + "src": "19783:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19771:3:70", + "nodeType": "YulIdentifier", + "src": "19771:3:70" + }, + "nativeSrc": "19771:32:70", + "nodeType": "YulFunctionCall", + "src": "19771:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19744:6:70", + "nodeType": "YulIdentifier", + "src": "19744:6:70" + }, + "nativeSrc": "19744:60:70", + "nodeType": "YulFunctionCall", + "src": "19744:60:70" + }, + "nativeSrc": "19744:60:70", + "nodeType": "YulExpressionStatement", + "src": "19744:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19824:9:70", + "nodeType": "YulIdentifier", + "src": "19824:9:70" + }, + { + "kind": "number", + "nativeSrc": "19835:2:70", + "nodeType": "YulLiteral", + "src": "19835:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19820:3:70", + "nodeType": "YulIdentifier", + "src": "19820:3:70" + }, + "nativeSrc": "19820:18:70", + "nodeType": "YulFunctionCall", + "src": "19820:18:70" + }, + { + "name": "value2", + "nativeSrc": "19840:6:70", + "nodeType": "YulIdentifier", + "src": "19840:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19813:6:70", + "nodeType": "YulIdentifier", + "src": "19813:6:70" + }, + "nativeSrc": "19813:34:70", + "nodeType": "YulFunctionCall", + "src": "19813:34:70" + }, + "nativeSrc": "19813:34:70", + "nodeType": "YulExpressionStatement", + "src": "19813:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "19482:371:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19592:9:70", + "nodeType": "YulTypedName", + "src": "19592:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "19603:6:70", + "nodeType": "YulTypedName", + "src": "19603:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19611:6:70", + "nodeType": "YulTypedName", + "src": "19611:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19619:6:70", + "nodeType": "YulTypedName", + "src": "19619:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19630:4:70", + "nodeType": "YulTypedName", + "src": "19630:4:70", + "type": "" + } + ], + "src": "19482:371:70" + }, + { + "body": { + "nativeSrc": "19936:167:70", + "nodeType": "YulBlock", + "src": "19936:167:70", + "statements": [ + { + "body": { + "nativeSrc": "19982:16:70", + "nodeType": "YulBlock", + "src": "19982:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19991:1:70", + "nodeType": "YulLiteral", + "src": "19991:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19994:1:70", + "nodeType": "YulLiteral", + "src": "19994:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19984:6:70", + "nodeType": "YulIdentifier", + "src": "19984:6:70" + }, + "nativeSrc": "19984:12:70", + "nodeType": "YulFunctionCall", + "src": "19984:12:70" + }, + "nativeSrc": "19984:12:70", + "nodeType": "YulExpressionStatement", + "src": "19984:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19957:7:70", + "nodeType": "YulIdentifier", + "src": "19957:7:70" + }, + { + "name": "headStart", + "nativeSrc": "19966:9:70", + "nodeType": "YulIdentifier", + "src": "19966:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19953:3:70", + "nodeType": "YulIdentifier", + "src": "19953:3:70" + }, + "nativeSrc": "19953:23:70", + "nodeType": "YulFunctionCall", + "src": "19953:23:70" + }, + { + "kind": "number", + "nativeSrc": "19978:2:70", + "nodeType": "YulLiteral", + "src": "19978:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19949:3:70", + "nodeType": "YulIdentifier", + "src": "19949:3:70" + }, + "nativeSrc": "19949:32:70", + "nodeType": "YulFunctionCall", + "src": "19949:32:70" + }, + "nativeSrc": "19946:52:70", + "nodeType": "YulIf", + "src": "19946:52:70" + }, + { + "nativeSrc": "20007:29:70", + "nodeType": "YulVariableDeclaration", + "src": "20007:29:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20026:9:70", + "nodeType": "YulIdentifier", + "src": "20026:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20020:5:70", + "nodeType": "YulIdentifier", + "src": "20020:5:70" + }, + "nativeSrc": "20020:16:70", + "nodeType": "YulFunctionCall", + "src": "20020:16:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "20011:5:70", + "nodeType": "YulTypedName", + "src": "20011:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20067:5:70", + "nodeType": "YulIdentifier", + "src": "20067:5:70" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "20045:21:70", + "nodeType": "YulIdentifier", + "src": "20045:21:70" + }, + "nativeSrc": "20045:28:70", + "nodeType": "YulFunctionCall", + "src": "20045:28:70" + }, + "nativeSrc": "20045:28:70", + "nodeType": "YulExpressionStatement", + "src": "20045:28:70" + }, + { + "nativeSrc": "20082:15:70", + "nodeType": "YulAssignment", + "src": "20082:15:70", + "value": { + "name": "value", + "nativeSrc": "20092:5:70", + "nodeType": "YulIdentifier", + "src": "20092:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20082:6:70", + "nodeType": "YulIdentifier", + "src": "20082:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "19858:245:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19902:9:70", + "nodeType": "YulTypedName", + "src": "19902:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19913:7:70", + "nodeType": "YulTypedName", + "src": "19913:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19925:6:70", + "nodeType": "YulTypedName", + "src": "19925:6:70", + "type": "" + } + ], + "src": "19858:245:70" + }, + { + "body": { + "nativeSrc": "20282:158:70", + "nodeType": "YulBlock", + "src": "20282:158:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20299:9:70", + "nodeType": "YulIdentifier", + "src": "20299:9:70" + }, + { + "kind": "number", + "nativeSrc": "20310:2:70", + "nodeType": "YulLiteral", + "src": "20310:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20292:6:70", + "nodeType": "YulIdentifier", + "src": "20292:6:70" + }, + "nativeSrc": "20292:21:70", + "nodeType": "YulFunctionCall", + "src": "20292:21:70" + }, + "nativeSrc": "20292:21:70", + "nodeType": "YulExpressionStatement", + "src": "20292:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20333:9:70", + "nodeType": "YulIdentifier", + "src": "20333:9:70" + }, + { + "kind": "number", + "nativeSrc": "20344:2:70", + "nodeType": "YulLiteral", + "src": "20344:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20329:3:70", + "nodeType": "YulIdentifier", + "src": "20329:3:70" + }, + "nativeSrc": "20329:18:70", + "nodeType": "YulFunctionCall", + "src": "20329:18:70" + }, + { + "kind": "number", + "nativeSrc": "20349:1:70", + "nodeType": "YulLiteral", + "src": "20349:1:70", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20322:6:70", + "nodeType": "YulIdentifier", + "src": "20322:6:70" + }, + "nativeSrc": "20322:29:70", + "nodeType": "YulFunctionCall", + "src": "20322:29:70" + }, + "nativeSrc": "20322:29:70", + "nodeType": "YulExpressionStatement", + "src": "20322:29:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20371:9:70", + "nodeType": "YulIdentifier", + "src": "20371:9:70" + }, + { + "kind": "number", + "nativeSrc": "20382:2:70", + "nodeType": "YulLiteral", + "src": "20382:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20367:3:70", + "nodeType": "YulIdentifier", + "src": "20367:3:70" + }, + "nativeSrc": "20367:18:70", + "nodeType": "YulFunctionCall", + "src": "20367:18:70" + }, + { + "hexValue": "217472616e73666572", + "kind": "string", + "nativeSrc": "20387:11:70", + "nodeType": "YulLiteral", + "src": "20387:11:70", + "type": "", + "value": "!transfer" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20360:6:70", + "nodeType": "YulIdentifier", + "src": "20360:6:70" + }, + "nativeSrc": "20360:39:70", + "nodeType": "YulFunctionCall", + "src": "20360:39:70" + }, + "nativeSrc": "20360:39:70", + "nodeType": "YulExpressionStatement", + "src": "20360:39:70" + }, + { + "nativeSrc": "20408:26:70", + "nodeType": "YulAssignment", + "src": "20408:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20420:9:70", + "nodeType": "YulIdentifier", + "src": "20420:9:70" + }, + { + "kind": "number", + "nativeSrc": "20431:2:70", + "nodeType": "YulLiteral", + "src": "20431:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20416:3:70", + "nodeType": "YulIdentifier", + "src": "20416:3:70" + }, + "nativeSrc": "20416:18:70", + "nodeType": "YulFunctionCall", + "src": "20416:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20408:4:70", + "nodeType": "YulIdentifier", + "src": "20408:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "20108:332:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20259:9:70", + "nodeType": "YulTypedName", + "src": "20259:9:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20273:4:70", + "nodeType": "YulTypedName", + "src": "20273:4:70", + "type": "" + } + ], + "src": "20108:332:70" + }, + { + "body": { + "nativeSrc": "20592:139:70", + "nodeType": "YulBlock", + "src": "20592:139:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20609:3:70", + "nodeType": "YulIdentifier", + "src": "20609:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20622:2:70", + "nodeType": "YulLiteral", + "src": "20622:2:70", + "type": "", + "value": "96" + }, + { + "name": "value0", + "nativeSrc": "20626:6:70", + "nodeType": "YulIdentifier", + "src": "20626:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "20618:3:70", + "nodeType": "YulIdentifier", + "src": "20618:3:70" + }, + "nativeSrc": "20618:15:70", + "nodeType": "YulFunctionCall", + "src": "20618:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20647:2:70", + "nodeType": "YulLiteral", + "src": "20647:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "20651:1:70", + "nodeType": "YulLiteral", + "src": "20651:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "20643:3:70", + "nodeType": "YulIdentifier", + "src": "20643:3:70" + }, + "nativeSrc": "20643:10:70", + "nodeType": "YulFunctionCall", + "src": "20643:10:70" + }, + { + "kind": "number", + "nativeSrc": "20655:1:70", + "nodeType": "YulLiteral", + "src": "20655:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20639:3:70", + "nodeType": "YulIdentifier", + "src": "20639:3:70" + }, + "nativeSrc": "20639:18:70", + "nodeType": "YulFunctionCall", + "src": "20639:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "20635:3:70", + "nodeType": "YulIdentifier", + "src": "20635:3:70" + }, + "nativeSrc": "20635:23:70", + "nodeType": "YulFunctionCall", + "src": "20635:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20614:3:70", + "nodeType": "YulIdentifier", + "src": "20614:3:70" + }, + "nativeSrc": "20614:45:70", + "nodeType": "YulFunctionCall", + "src": "20614:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20602:6:70", + "nodeType": "YulIdentifier", + "src": "20602:6:70" + }, + "nativeSrc": "20602:58:70", + "nodeType": "YulFunctionCall", + "src": "20602:58:70" + }, + "nativeSrc": "20602:58:70", + "nodeType": "YulExpressionStatement", + "src": "20602:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20680:3:70", + "nodeType": "YulIdentifier", + "src": "20680:3:70" + }, + { + "kind": "number", + "nativeSrc": "20685:2:70", + "nodeType": "YulLiteral", + "src": "20685:2:70", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20676:3:70", + "nodeType": "YulIdentifier", + "src": "20676:3:70" + }, + "nativeSrc": "20676:12:70", + "nodeType": "YulFunctionCall", + "src": "20676:12:70" + }, + { + "name": "value1", + "nativeSrc": "20690:6:70", + "nodeType": "YulIdentifier", + "src": "20690:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20669:6:70", + "nodeType": "YulIdentifier", + "src": "20669:6:70" + }, + "nativeSrc": "20669:28:70", + "nodeType": "YulFunctionCall", + "src": "20669:28:70" + }, + "nativeSrc": "20669:28:70", + "nodeType": "YulExpressionStatement", + "src": "20669:28:70" + }, + { + "nativeSrc": "20706:19:70", + "nodeType": "YulAssignment", + "src": "20706:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20717:3:70", + "nodeType": "YulIdentifier", + "src": "20717:3:70" + }, + { + "kind": "number", + "nativeSrc": "20722:2:70", + "nodeType": "YulLiteral", + "src": "20722:2:70", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20713:3:70", + "nodeType": "YulIdentifier", + "src": "20713:3:70" + }, + "nativeSrc": "20713:12:70", + "nodeType": "YulFunctionCall", + "src": "20713:12:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "20706:3:70", + "nodeType": "YulIdentifier", + "src": "20706:3:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "20445:286:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20560:3:70", + "nodeType": "YulTypedName", + "src": "20560:3:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20565:6:70", + "nodeType": "YulTypedName", + "src": "20565:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20573:6:70", + "nodeType": "YulTypedName", + "src": "20573:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20584:3:70", + "nodeType": "YulTypedName", + "src": "20584:3:70", + "type": "" + } + ], + "src": "20445:286:70" + }, + { + "body": { + "nativeSrc": "20949:276:70", + "nodeType": "YulBlock", + "src": "20949:276:70", + "statements": [ + { + "nativeSrc": "20959:27:70", + "nodeType": "YulAssignment", + "src": "20959:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20971:9:70", + "nodeType": "YulIdentifier", + "src": "20971:9:70" + }, + { + "kind": "number", + "nativeSrc": "20982:3:70", + "nodeType": "YulLiteral", + "src": "20982:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20967:3:70", + "nodeType": "YulIdentifier", + "src": "20967:3:70" + }, + "nativeSrc": "20967:19:70", + "nodeType": "YulFunctionCall", + "src": "20967:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20959:4:70", + "nodeType": "YulIdentifier", + "src": "20959:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21002:9:70", + "nodeType": "YulIdentifier", + "src": "21002:9:70" + }, + { + "name": "value0", + "nativeSrc": "21013:6:70", + "nodeType": "YulIdentifier", + "src": "21013:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20995:6:70", + "nodeType": "YulIdentifier", + "src": "20995:6:70" + }, + "nativeSrc": "20995:25:70", + "nodeType": "YulFunctionCall", + "src": "20995:25:70" + }, + "nativeSrc": "20995:25:70", + "nodeType": "YulExpressionStatement", + "src": "20995:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21040:9:70", + "nodeType": "YulIdentifier", + "src": "21040:9:70" + }, + { + "kind": "number", + "nativeSrc": "21051:2:70", + "nodeType": "YulLiteral", + "src": "21051:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21036:3:70", + "nodeType": "YulIdentifier", + "src": "21036:3:70" + }, + "nativeSrc": "21036:18:70", + "nodeType": "YulFunctionCall", + "src": "21036:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "21060:6:70", + "nodeType": "YulIdentifier", + "src": "21060:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21076:3:70", + "nodeType": "YulLiteral", + "src": "21076:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "21081:1:70", + "nodeType": "YulLiteral", + "src": "21081:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21072:3:70", + "nodeType": "YulIdentifier", + "src": "21072:3:70" + }, + "nativeSrc": "21072:11:70", + "nodeType": "YulFunctionCall", + "src": "21072:11:70" + }, + { + "kind": "number", + "nativeSrc": "21085:1:70", + "nodeType": "YulLiteral", + "src": "21085:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21068:3:70", + "nodeType": "YulIdentifier", + "src": "21068:3:70" + }, + "nativeSrc": "21068:19:70", + "nodeType": "YulFunctionCall", + "src": "21068:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21056:3:70", + "nodeType": "YulIdentifier", + "src": "21056:3:70" + }, + "nativeSrc": "21056:32:70", + "nodeType": "YulFunctionCall", + "src": "21056:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21029:6:70", + "nodeType": "YulIdentifier", + "src": "21029:6:70" + }, + "nativeSrc": "21029:60:70", + "nodeType": "YulFunctionCall", + "src": "21029:60:70" + }, + "nativeSrc": "21029:60:70", + "nodeType": "YulExpressionStatement", + "src": "21029:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21109:9:70", + "nodeType": "YulIdentifier", + "src": "21109:9:70" + }, + { + "kind": "number", + "nativeSrc": "21120:2:70", + "nodeType": "YulLiteral", + "src": "21120:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21105:3:70", + "nodeType": "YulIdentifier", + "src": "21105:3:70" + }, + "nativeSrc": "21105:18:70", + "nodeType": "YulFunctionCall", + "src": "21105:18:70" + }, + { + "name": "value2", + "nativeSrc": "21125:6:70", + "nodeType": "YulIdentifier", + "src": "21125:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21098:6:70", + "nodeType": "YulIdentifier", + "src": "21098:6:70" + }, + "nativeSrc": "21098:34:70", + "nodeType": "YulFunctionCall", + "src": "21098:34:70" + }, + "nativeSrc": "21098:34:70", + "nodeType": "YulExpressionStatement", + "src": "21098:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21152:9:70", + "nodeType": "YulIdentifier", + "src": "21152:9:70" + }, + { + "kind": "number", + "nativeSrc": "21163:2:70", + "nodeType": "YulLiteral", + "src": "21163:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21148:3:70", + "nodeType": "YulIdentifier", + "src": "21148:3:70" + }, + "nativeSrc": "21148:18:70", + "nodeType": "YulFunctionCall", + "src": "21148:18:70" + }, + { + "name": "value3", + "nativeSrc": "21168:6:70", + "nodeType": "YulIdentifier", + "src": "21168:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21141:6:70", + "nodeType": "YulIdentifier", + "src": "21141:6:70" + }, + "nativeSrc": "21141:34:70", + "nodeType": "YulFunctionCall", + "src": "21141:34:70" + }, + "nativeSrc": "21141:34:70", + "nodeType": "YulExpressionStatement", + "src": "21141:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21195:9:70", + "nodeType": "YulIdentifier", + "src": "21195:9:70" + }, + { + "kind": "number", + "nativeSrc": "21206:3:70", + "nodeType": "YulLiteral", + "src": "21206:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21191:3:70", + "nodeType": "YulIdentifier", + "src": "21191:3:70" + }, + "nativeSrc": "21191:19:70", + "nodeType": "YulFunctionCall", + "src": "21191:19:70" + }, + { + "name": "value4", + "nativeSrc": "21212:6:70", + "nodeType": "YulIdentifier", + "src": "21212:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21184:6:70", + "nodeType": "YulIdentifier", + "src": "21184:6:70" + }, + "nativeSrc": "21184:35:70", + "nodeType": "YulFunctionCall", + "src": "21184:35:70" + }, + "nativeSrc": "21184:35:70", + "nodeType": "YulExpressionStatement", + "src": "21184:35:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_bytes32_t_uint256_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "20736:489:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20886:9:70", + "nodeType": "YulTypedName", + "src": "20886:9:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20897:6:70", + "nodeType": "YulTypedName", + "src": "20897:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20905:6:70", + "nodeType": "YulTypedName", + "src": "20905:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20913:6:70", + "nodeType": "YulTypedName", + "src": "20913:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20921:6:70", + "nodeType": "YulTypedName", + "src": "20921:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20929:6:70", + "nodeType": "YulTypedName", + "src": "20929:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20940:4:70", + "nodeType": "YulTypedName", + "src": "20940:4:70", + "type": "" + } + ], + "src": "20736:489:70" + }, + { + "body": { + "nativeSrc": "21415:206:70", + "nodeType": "YulBlock", + "src": "21415:206:70", + "statements": [ + { + "nativeSrc": "21425:27:70", + "nodeType": "YulAssignment", + "src": "21425:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21437:9:70", + "nodeType": "YulIdentifier", + "src": "21437:9:70" + }, + { + "kind": "number", + "nativeSrc": "21448:3:70", + "nodeType": "YulLiteral", + "src": "21448:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21433:3:70", + "nodeType": "YulIdentifier", + "src": "21433:3:70" + }, + "nativeSrc": "21433:19:70", + "nodeType": "YulFunctionCall", + "src": "21433:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21425:4:70", + "nodeType": "YulIdentifier", + "src": "21425:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21468:9:70", + "nodeType": "YulIdentifier", + "src": "21468:9:70" + }, + { + "name": "value0", + "nativeSrc": "21479:6:70", + "nodeType": "YulIdentifier", + "src": "21479:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21461:6:70", + "nodeType": "YulIdentifier", + "src": "21461:6:70" + }, + "nativeSrc": "21461:25:70", + "nodeType": "YulFunctionCall", + "src": "21461:25:70" + }, + "nativeSrc": "21461:25:70", + "nodeType": "YulExpressionStatement", + "src": "21461:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21506:9:70", + "nodeType": "YulIdentifier", + "src": "21506:9:70" + }, + { + "kind": "number", + "nativeSrc": "21517:2:70", + "nodeType": "YulLiteral", + "src": "21517:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21502:3:70", + "nodeType": "YulIdentifier", + "src": "21502:3:70" + }, + "nativeSrc": "21502:18:70", + "nodeType": "YulFunctionCall", + "src": "21502:18:70" + }, + { + "name": "value1", + "nativeSrc": "21522:6:70", + "nodeType": "YulIdentifier", + "src": "21522:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21495:6:70", + "nodeType": "YulIdentifier", + "src": "21495:6:70" + }, + "nativeSrc": "21495:34:70", + "nodeType": "YulFunctionCall", + "src": "21495:34:70" + }, + "nativeSrc": "21495:34:70", + "nodeType": "YulExpressionStatement", + "src": "21495:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21549:9:70", + "nodeType": "YulIdentifier", + "src": "21549:9:70" + }, + { + "kind": "number", + "nativeSrc": "21560:2:70", + "nodeType": "YulLiteral", + "src": "21560:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21545:3:70", + "nodeType": "YulIdentifier", + "src": "21545:3:70" + }, + "nativeSrc": "21545:18:70", + "nodeType": "YulFunctionCall", + "src": "21545:18:70" + }, + { + "name": "value2", + "nativeSrc": "21565:6:70", + "nodeType": "YulIdentifier", + "src": "21565:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21538:6:70", + "nodeType": "YulIdentifier", + "src": "21538:6:70" + }, + "nativeSrc": "21538:34:70", + "nodeType": "YulFunctionCall", + "src": "21538:34:70" + }, + "nativeSrc": "21538:34:70", + "nodeType": "YulExpressionStatement", + "src": "21538:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21592:9:70", + "nodeType": "YulIdentifier", + "src": "21592:9:70" + }, + { + "kind": "number", + "nativeSrc": "21603:2:70", + "nodeType": "YulLiteral", + "src": "21603:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21588:3:70", + "nodeType": "YulIdentifier", + "src": "21588:3:70" + }, + "nativeSrc": "21588:18:70", + "nodeType": "YulFunctionCall", + "src": "21588:18:70" + }, + { + "name": "value3", + "nativeSrc": "21608:6:70", + "nodeType": "YulIdentifier", + "src": "21608:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21581:6:70", + "nodeType": "YulIdentifier", + "src": "21581:6:70" + }, + "nativeSrc": "21581:34:70", + "nodeType": "YulFunctionCall", + "src": "21581:34:70" + }, + "nativeSrc": "21581:34:70", + "nodeType": "YulExpressionStatement", + "src": "21581:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "21230:391:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21360:9:70", + "nodeType": "YulTypedName", + "src": "21360:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "21371:6:70", + "nodeType": "YulTypedName", + "src": "21371:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21379:6:70", + "nodeType": "YulTypedName", + "src": "21379:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21387:6:70", + "nodeType": "YulTypedName", + "src": "21387:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21395:6:70", + "nodeType": "YulTypedName", + "src": "21395:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21406:4:70", + "nodeType": "YulTypedName", + "src": "21406:4:70", + "type": "" + } + ], + "src": "21230:391:70" + }, + { + "body": { + "nativeSrc": "21874:144:70", + "nodeType": "YulBlock", + "src": "21874:144:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21891:3:70", + "nodeType": "YulIdentifier", + "src": "21891:3:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21900:3:70", + "nodeType": "YulLiteral", + "src": "21900:3:70", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "21905:4:70", + "nodeType": "YulLiteral", + "src": "21905:4:70", + "type": "", + "value": "6401" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21896:3:70", + "nodeType": "YulIdentifier", + "src": "21896:3:70" + }, + "nativeSrc": "21896:14:70", + "nodeType": "YulFunctionCall", + "src": "21896:14:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21884:6:70", + "nodeType": "YulIdentifier", + "src": "21884:6:70" + }, + "nativeSrc": "21884:27:70", + "nodeType": "YulFunctionCall", + "src": "21884:27:70" + }, + "nativeSrc": "21884:27:70", + "nodeType": "YulExpressionStatement", + "src": "21884:27:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21931:3:70", + "nodeType": "YulIdentifier", + "src": "21931:3:70" + }, + { + "kind": "number", + "nativeSrc": "21936:1:70", + "nodeType": "YulLiteral", + "src": "21936:1:70", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21927:3:70", + "nodeType": "YulIdentifier", + "src": "21927:3:70" + }, + "nativeSrc": "21927:11:70", + "nodeType": "YulFunctionCall", + "src": "21927:11:70" + }, + { + "name": "value0", + "nativeSrc": "21940:6:70", + "nodeType": "YulIdentifier", + "src": "21940:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21920:6:70", + "nodeType": "YulIdentifier", + "src": "21920:6:70" + }, + "nativeSrc": "21920:27:70", + "nodeType": "YulFunctionCall", + "src": "21920:27:70" + }, + "nativeSrc": "21920:27:70", + "nodeType": "YulExpressionStatement", + "src": "21920:27:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21967:3:70", + "nodeType": "YulIdentifier", + "src": "21967:3:70" + }, + { + "kind": "number", + "nativeSrc": "21972:2:70", + "nodeType": "YulLiteral", + "src": "21972:2:70", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21963:3:70", + "nodeType": "YulIdentifier", + "src": "21963:3:70" + }, + "nativeSrc": "21963:12:70", + "nodeType": "YulFunctionCall", + "src": "21963:12:70" + }, + { + "name": "value1", + "nativeSrc": "21977:6:70", + "nodeType": "YulIdentifier", + "src": "21977:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21956:6:70", + "nodeType": "YulIdentifier", + "src": "21956:6:70" + }, + "nativeSrc": "21956:28:70", + "nodeType": "YulFunctionCall", + "src": "21956:28:70" + }, + "nativeSrc": "21956:28:70", + "nodeType": "YulExpressionStatement", + "src": "21956:28:70" + }, + { + "nativeSrc": "21993:19:70", + "nodeType": "YulAssignment", + "src": "21993:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22004:3:70", + "nodeType": "YulIdentifier", + "src": "22004:3:70" + }, + { + "kind": "number", + "nativeSrc": "22009:2:70", + "nodeType": "YulLiteral", + "src": "22009:2:70", + "type": "", + "value": "66" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22000:3:70", + "nodeType": "YulIdentifier", + "src": "22000:3:70" + }, + "nativeSrc": "22000:12:70", + "nodeType": "YulFunctionCall", + "src": "22000:12:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21993:3:70", + "nodeType": "YulIdentifier", + "src": "21993:3:70" + } + ] + } + ] + }, + "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": "21626:392:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21842:3:70", + "nodeType": "YulTypedName", + "src": "21842:3:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21847:6:70", + "nodeType": "YulTypedName", + "src": "21847:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21855:6:70", + "nodeType": "YulTypedName", + "src": "21855:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21866:3:70", + "nodeType": "YulTypedName", + "src": "21866:3:70", + "type": "" + } + ], + "src": "21626:392:70" + }, + { + "body": { + "nativeSrc": "22152:145:70", + "nodeType": "YulBlock", + "src": "22152:145:70", + "statements": [ + { + "nativeSrc": "22162:26:70", + "nodeType": "YulAssignment", + "src": "22162:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22174:9:70", + "nodeType": "YulIdentifier", + "src": "22174:9:70" + }, + { + "kind": "number", + "nativeSrc": "22185:2:70", + "nodeType": "YulLiteral", + "src": "22185:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22170:3:70", + "nodeType": "YulIdentifier", + "src": "22170:3:70" + }, + "nativeSrc": "22170:18:70", + "nodeType": "YulFunctionCall", + "src": "22170:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22162:4:70", + "nodeType": "YulIdentifier", + "src": "22162:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22204:9:70", + "nodeType": "YulIdentifier", + "src": "22204:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22219:6:70", + "nodeType": "YulIdentifier", + "src": "22219:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22235:3:70", + "nodeType": "YulLiteral", + "src": "22235:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "22240:1:70", + "nodeType": "YulLiteral", + "src": "22240:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "22231:3:70", + "nodeType": "YulIdentifier", + "src": "22231:3:70" + }, + "nativeSrc": "22231:11:70", + "nodeType": "YulFunctionCall", + "src": "22231:11:70" + }, + { + "kind": "number", + "nativeSrc": "22244:1:70", + "nodeType": "YulLiteral", + "src": "22244:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22227:3:70", + "nodeType": "YulIdentifier", + "src": "22227:3:70" + }, + "nativeSrc": "22227:19:70", + "nodeType": "YulFunctionCall", + "src": "22227:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22215:3:70", + "nodeType": "YulIdentifier", + "src": "22215:3:70" + }, + "nativeSrc": "22215:32:70", + "nodeType": "YulFunctionCall", + "src": "22215:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22197:6:70", + "nodeType": "YulIdentifier", + "src": "22197:6:70" + }, + "nativeSrc": "22197:51:70", + "nodeType": "YulFunctionCall", + "src": "22197:51:70" + }, + "nativeSrc": "22197:51:70", + "nodeType": "YulExpressionStatement", + "src": "22197:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22268:9:70", + "nodeType": "YulIdentifier", + "src": "22268:9:70" + }, + { + "kind": "number", + "nativeSrc": "22279:2:70", + "nodeType": "YulLiteral", + "src": "22279:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22264:3:70", + "nodeType": "YulIdentifier", + "src": "22264:3:70" + }, + "nativeSrc": "22264:18:70", + "nodeType": "YulFunctionCall", + "src": "22264:18:70" + }, + { + "name": "value1", + "nativeSrc": "22284:6:70", + "nodeType": "YulIdentifier", + "src": "22284:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22257:6:70", + "nodeType": "YulIdentifier", + "src": "22257:6:70" + }, + "nativeSrc": "22257:34:70", + "nodeType": "YulFunctionCall", + "src": "22257:34:70" + }, + "nativeSrc": "22257:34:70", + "nodeType": "YulExpressionStatement", + "src": "22257:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "22023:274:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22113:9:70", + "nodeType": "YulTypedName", + "src": "22113:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22124:6:70", + "nodeType": "YulTypedName", + "src": "22124:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22132:6:70", + "nodeType": "YulTypedName", + "src": "22132:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22143:4:70", + "nodeType": "YulTypedName", + "src": "22143:4:70", + "type": "" + } + ], + "src": "22023:274:70" + }, + { + "body": { + "nativeSrc": "22415:992:70", + "nodeType": "YulBlock", + "src": "22415:992:70", + "statements": [ + { + "nativeSrc": "22425:43:70", + "nodeType": "YulVariableDeclaration", + "src": "22425:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22443:7:70", + "nodeType": "YulIdentifier", + "src": "22443:7:70" + }, + { + "name": "headStart", + "nativeSrc": "22452:9:70", + "nodeType": "YulIdentifier", + "src": "22452:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22439:3:70", + "nodeType": "YulIdentifier", + "src": "22439:3:70" + }, + "nativeSrc": "22439:23:70", + "nodeType": "YulFunctionCall", + "src": "22439:23:70" + }, + { + "kind": "number", + "nativeSrc": "22464:3:70", + "nodeType": "YulLiteral", + "src": "22464:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22435:3:70", + "nodeType": "YulIdentifier", + "src": "22435:3:70" + }, + "nativeSrc": "22435:33:70", + "nodeType": "YulFunctionCall", + "src": "22435:33:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "22429:2:70", + "nodeType": "YulTypedName", + "src": "22429:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22483:16:70", + "nodeType": "YulBlock", + "src": "22483:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22492:1:70", + "nodeType": "YulLiteral", + "src": "22492:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22495:1:70", + "nodeType": "YulLiteral", + "src": "22495:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22485:6:70", + "nodeType": "YulIdentifier", + "src": "22485:6:70" + }, + "nativeSrc": "22485:12:70", + "nodeType": "YulFunctionCall", + "src": "22485:12:70" + }, + "nativeSrc": "22485:12:70", + "nodeType": "YulExpressionStatement", + "src": "22485:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "22480:2:70", + "nodeType": "YulIdentifier", + "src": "22480:2:70" + }, + "nativeSrc": "22477:22:70", + "nodeType": "YulIf", + "src": "22477:22:70" + }, + { + "nativeSrc": "22508:7:70", + "nodeType": "YulAssignment", + "src": "22508:7:70", + "value": { + "kind": "number", + "nativeSrc": "22514:1:70", + "nodeType": "YulLiteral", + "src": "22514:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "22508:2:70", + "nodeType": "YulIdentifier", + "src": "22508:2:70" + } + ] + }, + { + "nativeSrc": "22524:16:70", + "nodeType": "YulVariableDeclaration", + "src": "22524:16:70", + "value": { + "name": "_1", + "nativeSrc": "22538:2:70", + "nodeType": "YulIdentifier", + "src": "22538:2:70" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "22528:6:70", + "nodeType": "YulTypedName", + "src": "22528:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "22549:19:70", + "nodeType": "YulAssignment", + "src": "22549:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22565:2:70", + "nodeType": "YulLiteral", + "src": "22565:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22559:5:70", + "nodeType": "YulIdentifier", + "src": "22559:5:70" + }, + "nativeSrc": "22559:9:70", + "nodeType": "YulFunctionCall", + "src": "22559:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "22549:6:70", + "nodeType": "YulIdentifier", + "src": "22549:6:70" + } + ] + }, + { + "nativeSrc": "22577:34:70", + "nodeType": "YulVariableDeclaration", + "src": "22577:34:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "22599:6:70", + "nodeType": "YulIdentifier", + "src": "22599:6:70" + }, + { + "kind": "number", + "nativeSrc": "22607:3:70", + "nodeType": "YulLiteral", + "src": "22607:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22595:3:70", + "nodeType": "YulIdentifier", + "src": "22595:3:70" + }, + "nativeSrc": "22595:16:70", + "nodeType": "YulFunctionCall", + "src": "22595:16:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "22581:10:70", + "nodeType": "YulTypedName", + "src": "22581:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22694:113:70", + "nodeType": "YulBlock", + "src": "22694:113:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "22715:2:70", + "nodeType": "YulIdentifier", + "src": "22715:2:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22723:3:70", + "nodeType": "YulLiteral", + "src": "22723:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "22728:10:70", + "nodeType": "YulLiteral", + "src": "22728:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "22719:3:70", + "nodeType": "YulIdentifier", + "src": "22719:3:70" + }, + "nativeSrc": "22719:20:70", + "nodeType": "YulFunctionCall", + "src": "22719:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22708:6:70", + "nodeType": "YulIdentifier", + "src": "22708:6:70" + }, + "nativeSrc": "22708:32:70", + "nodeType": "YulFunctionCall", + "src": "22708:32:70" + }, + "nativeSrc": "22708:32:70", + "nodeType": "YulExpressionStatement", + "src": "22708:32:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22760:1:70", + "nodeType": "YulLiteral", + "src": "22760:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22763:4:70", + "nodeType": "YulLiteral", + "src": "22763:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22753:6:70", + "nodeType": "YulIdentifier", + "src": "22753:6:70" + }, + "nativeSrc": "22753:15:70", + "nodeType": "YulFunctionCall", + "src": "22753:15:70" + }, + "nativeSrc": "22753:15:70", + "nodeType": "YulExpressionStatement", + "src": "22753:15:70" + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "22788:2:70", + "nodeType": "YulIdentifier", + "src": "22788:2:70" + }, + { + "kind": "number", + "nativeSrc": "22792:4:70", + "nodeType": "YulLiteral", + "src": "22792:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22781:6:70", + "nodeType": "YulIdentifier", + "src": "22781:6:70" + }, + "nativeSrc": "22781:16:70", + "nodeType": "YulFunctionCall", + "src": "22781:16:70" + }, + "nativeSrc": "22781:16:70", + "nodeType": "YulExpressionStatement", + "src": "22781:16:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "22629:10:70", + "nodeType": "YulIdentifier", + "src": "22629:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22649:2:70", + "nodeType": "YulLiteral", + "src": "22649:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "22653:1:70", + "nodeType": "YulLiteral", + "src": "22653:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "22645:3:70", + "nodeType": "YulIdentifier", + "src": "22645:3:70" + }, + "nativeSrc": "22645:10:70", + "nodeType": "YulFunctionCall", + "src": "22645:10:70" + }, + { + "kind": "number", + "nativeSrc": "22657:1:70", + "nodeType": "YulLiteral", + "src": "22657:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22641:3:70", + "nodeType": "YulIdentifier", + "src": "22641:3:70" + }, + "nativeSrc": "22641:18:70", + "nodeType": "YulFunctionCall", + "src": "22641:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22626:2:70", + "nodeType": "YulIdentifier", + "src": "22626:2:70" + }, + "nativeSrc": "22626:34:70", + "nodeType": "YulFunctionCall", + "src": "22626:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "22665:10:70", + "nodeType": "YulIdentifier", + "src": "22665:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "22677:6:70", + "nodeType": "YulIdentifier", + "src": "22677:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22662:2:70", + "nodeType": "YulIdentifier", + "src": "22662:2:70" + }, + "nativeSrc": "22662:22:70", + "nodeType": "YulFunctionCall", + "src": "22662:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "22623:2:70", + "nodeType": "YulIdentifier", + "src": "22623:2:70" + }, + "nativeSrc": "22623:62:70", + "nodeType": "YulFunctionCall", + "src": "22623:62:70" + }, + "nativeSrc": "22620:187:70", + "nodeType": "YulIf", + "src": "22620:187:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22823:2:70", + "nodeType": "YulLiteral", + "src": "22823:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "22827:10:70", + "nodeType": "YulIdentifier", + "src": "22827:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22816:6:70", + "nodeType": "YulIdentifier", + "src": "22816:6:70" + }, + "nativeSrc": "22816:22:70", + "nodeType": "YulFunctionCall", + "src": "22816:22:70" + }, + "nativeSrc": "22816:22:70", + "nodeType": "YulExpressionStatement", + "src": "22816:22:70" + }, + { + "nativeSrc": "22847:15:70", + "nodeType": "YulVariableDeclaration", + "src": "22847:15:70", + "value": { + "name": "_1", + "nativeSrc": "22860:2:70", + "nodeType": "YulIdentifier", + "src": "22860:2:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "22851:5:70", + "nodeType": "YulTypedName", + "src": "22851:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "22871:25:70", + "nodeType": "YulAssignment", + "src": "22871:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22886:9:70", + "nodeType": "YulIdentifier", + "src": "22886:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22880:5:70", + "nodeType": "YulIdentifier", + "src": "22880:5:70" + }, + "nativeSrc": "22880:16:70", + "nodeType": "YulFunctionCall", + "src": "22880:16:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "22871:5:70", + "nodeType": "YulIdentifier", + "src": "22871:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "22912:6:70", + "nodeType": "YulIdentifier", + "src": "22912:6:70" + }, + { + "name": "value", + "nativeSrc": "22920:5:70", + "nodeType": "YulIdentifier", + "src": "22920:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22905:6:70", + "nodeType": "YulIdentifier", + "src": "22905:6:70" + }, + "nativeSrc": "22905:21:70", + "nodeType": "YulFunctionCall", + "src": "22905:21:70" + }, + "nativeSrc": "22905:21:70", + "nodeType": "YulExpressionStatement", + "src": "22905:21:70" + }, + { + "nativeSrc": "22935:17:70", + "nodeType": "YulVariableDeclaration", + "src": "22935:17:70", + "value": { + "name": "_1", + "nativeSrc": "22950:2:70", + "nodeType": "YulIdentifier", + "src": "22950:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "22939:7:70", + "nodeType": "YulTypedName", + "src": "22939:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "22961:36:70", + "nodeType": "YulAssignment", + "src": "22961:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22982:9:70", + "nodeType": "YulIdentifier", + "src": "22982:9:70" + }, + { + "kind": "number", + "nativeSrc": "22993:2:70", + "nodeType": "YulLiteral", + "src": "22993:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22978:3:70", + "nodeType": "YulIdentifier", + "src": "22978:3:70" + }, + "nativeSrc": "22978:18:70", + "nodeType": "YulFunctionCall", + "src": "22978:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22972:5:70", + "nodeType": "YulIdentifier", + "src": "22972:5:70" + }, + "nativeSrc": "22972:25:70", + "nodeType": "YulFunctionCall", + "src": "22972:25:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "22961:7:70", + "nodeType": "YulIdentifier", + "src": "22961:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23017:6:70", + "nodeType": "YulIdentifier", + "src": "23017:6:70" + }, + { + "kind": "number", + "nativeSrc": "23025:2:70", + "nodeType": "YulLiteral", + "src": "23025:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23013:3:70", + "nodeType": "YulIdentifier", + "src": "23013:3:70" + }, + "nativeSrc": "23013:15:70", + "nodeType": "YulFunctionCall", + "src": "23013:15:70" + }, + { + "name": "value_1", + "nativeSrc": "23030:7:70", + "nodeType": "YulIdentifier", + "src": "23030:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23006:6:70", + "nodeType": "YulIdentifier", + "src": "23006:6:70" + }, + "nativeSrc": "23006:32:70", + "nodeType": "YulFunctionCall", + "src": "23006:32:70" + }, + "nativeSrc": "23006:32:70", + "nodeType": "YulExpressionStatement", + "src": "23006:32:70" + }, + { + "nativeSrc": "23047:17:70", + "nodeType": "YulVariableDeclaration", + "src": "23047:17:70", + "value": { + "name": "_1", + "nativeSrc": "23062:2:70", + "nodeType": "YulIdentifier", + "src": "23062:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "23051:7:70", + "nodeType": "YulTypedName", + "src": "23051:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23073:36:70", + "nodeType": "YulAssignment", + "src": "23073:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23094:9:70", + "nodeType": "YulIdentifier", + "src": "23094:9:70" + }, + { + "kind": "number", + "nativeSrc": "23105:2:70", + "nodeType": "YulLiteral", + "src": "23105:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23090:3:70", + "nodeType": "YulIdentifier", + "src": "23090:3:70" + }, + "nativeSrc": "23090:18:70", + "nodeType": "YulFunctionCall", + "src": "23090:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23084:5:70", + "nodeType": "YulIdentifier", + "src": "23084:5:70" + }, + "nativeSrc": "23084:25:70", + "nodeType": "YulFunctionCall", + "src": "23084:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "23073:7:70", + "nodeType": "YulIdentifier", + "src": "23073:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23129:6:70", + "nodeType": "YulIdentifier", + "src": "23129:6:70" + }, + { + "kind": "number", + "nativeSrc": "23137:2:70", + "nodeType": "YulLiteral", + "src": "23137:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23125:3:70", + "nodeType": "YulIdentifier", + "src": "23125:3:70" + }, + "nativeSrc": "23125:15:70", + "nodeType": "YulFunctionCall", + "src": "23125:15:70" + }, + { + "name": "value_2", + "nativeSrc": "23142:7:70", + "nodeType": "YulIdentifier", + "src": "23142:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23118:6:70", + "nodeType": "YulIdentifier", + "src": "23118:6:70" + }, + "nativeSrc": "23118:32:70", + "nodeType": "YulFunctionCall", + "src": "23118:32:70" + }, + "nativeSrc": "23118:32:70", + "nodeType": "YulExpressionStatement", + "src": "23118:32:70" + }, + { + "nativeSrc": "23159:17:70", + "nodeType": "YulVariableDeclaration", + "src": "23159:17:70", + "value": { + "name": "_1", + "nativeSrc": "23174:2:70", + "nodeType": "YulIdentifier", + "src": "23174:2:70" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "23163:7:70", + "nodeType": "YulTypedName", + "src": "23163:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23185:36:70", + "nodeType": "YulAssignment", + "src": "23185:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23206:9:70", + "nodeType": "YulIdentifier", + "src": "23206:9:70" + }, + { + "kind": "number", + "nativeSrc": "23217:2:70", + "nodeType": "YulLiteral", + "src": "23217:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23202:3:70", + "nodeType": "YulIdentifier", + "src": "23202:3:70" + }, + "nativeSrc": "23202:18:70", + "nodeType": "YulFunctionCall", + "src": "23202:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23196:5:70", + "nodeType": "YulIdentifier", + "src": "23196:5:70" + }, + "nativeSrc": "23196:25:70", + "nodeType": "YulFunctionCall", + "src": "23196:25:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "23185:7:70", + "nodeType": "YulIdentifier", + "src": "23185:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23241:6:70", + "nodeType": "YulIdentifier", + "src": "23241:6:70" + }, + { + "kind": "number", + "nativeSrc": "23249:2:70", + "nodeType": "YulLiteral", + "src": "23249:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23237:3:70", + "nodeType": "YulIdentifier", + "src": "23237:3:70" + }, + "nativeSrc": "23237:15:70", + "nodeType": "YulFunctionCall", + "src": "23237:15:70" + }, + { + "name": "value_3", + "nativeSrc": "23254:7:70", + "nodeType": "YulIdentifier", + "src": "23254:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23230:6:70", + "nodeType": "YulIdentifier", + "src": "23230:6:70" + }, + "nativeSrc": "23230:32:70", + "nodeType": "YulFunctionCall", + "src": "23230:32:70" + }, + "nativeSrc": "23230:32:70", + "nodeType": "YulExpressionStatement", + "src": "23230:32:70" + }, + { + "nativeSrc": "23271:17:70", + "nodeType": "YulVariableDeclaration", + "src": "23271:17:70", + "value": { + "name": "_1", + "nativeSrc": "23286:2:70", + "nodeType": "YulIdentifier", + "src": "23286:2:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "23275:7:70", + "nodeType": "YulTypedName", + "src": "23275:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23297:37:70", + "nodeType": "YulAssignment", + "src": "23297:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23318:9:70", + "nodeType": "YulIdentifier", + "src": "23318:9:70" + }, + { + "kind": "number", + "nativeSrc": "23329:3:70", + "nodeType": "YulLiteral", + "src": "23329:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23314:3:70", + "nodeType": "YulIdentifier", + "src": "23314:3:70" + }, + "nativeSrc": "23314:19:70", + "nodeType": "YulFunctionCall", + "src": "23314:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23308:5:70", + "nodeType": "YulIdentifier", + "src": "23308:5:70" + }, + "nativeSrc": "23308:26:70", + "nodeType": "YulFunctionCall", + "src": "23308:26:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "23297:7:70", + "nodeType": "YulIdentifier", + "src": "23297:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23354:6:70", + "nodeType": "YulIdentifier", + "src": "23354:6:70" + }, + { + "kind": "number", + "nativeSrc": "23362:3:70", + "nodeType": "YulLiteral", + "src": "23362:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23350:3:70", + "nodeType": "YulIdentifier", + "src": "23350:3:70" + }, + "nativeSrc": "23350:16:70", + "nodeType": "YulFunctionCall", + "src": "23350:16:70" + }, + { + "name": "value_4", + "nativeSrc": "23368:7:70", + "nodeType": "YulIdentifier", + "src": "23368:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23343:6:70", + "nodeType": "YulIdentifier", + "src": "23343:6:70" + }, + "nativeSrc": "23343:33:70", + "nodeType": "YulFunctionCall", + "src": "23343:33:70" + }, + "nativeSrc": "23343:33:70", + "nodeType": "YulExpressionStatement", + "src": "23343:33:70" + }, + { + "nativeSrc": "23385:16:70", + "nodeType": "YulAssignment", + "src": "23385:16:70", + "value": { + "name": "memPtr", + "nativeSrc": "23395:6:70", + "nodeType": "YulIdentifier", + "src": "23395:6:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "23385:6:70", + "nodeType": "YulIdentifier", + "src": "23385:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_DelegationPool_$3992_memory_ptr_fromMemory", + "nativeSrc": "22302:1105:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22381:9:70", + "nodeType": "YulTypedName", + "src": "22381:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22392:7:70", + "nodeType": "YulTypedName", + "src": "22392:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22404:6:70", + "nodeType": "YulTypedName", + "src": "22404:6:70", + "type": "" + } + ], + "src": "22302:1105:70" + }, + { + "body": { + "nativeSrc": "23527:341:70", + "nodeType": "YulBlock", + "src": "23527:341:70", + "statements": [ + { + "body": { + "nativeSrc": "23573:16:70", + "nodeType": "YulBlock", + "src": "23573:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23582:1:70", + "nodeType": "YulLiteral", + "src": "23582:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23585:1:70", + "nodeType": "YulLiteral", + "src": "23585:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23575:6:70", + "nodeType": "YulIdentifier", + "src": "23575:6:70" + }, + "nativeSrc": "23575:12:70", + "nodeType": "YulFunctionCall", + "src": "23575:12:70" + }, + "nativeSrc": "23575:12:70", + "nodeType": "YulExpressionStatement", + "src": "23575:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "23548:7:70", + "nodeType": "YulIdentifier", + "src": "23548:7:70" + }, + { + "name": "headStart", + "nativeSrc": "23557:9:70", + "nodeType": "YulIdentifier", + "src": "23557:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23544:3:70", + "nodeType": "YulIdentifier", + "src": "23544:3:70" + }, + "nativeSrc": "23544:23:70", + "nodeType": "YulFunctionCall", + "src": "23544:23:70" + }, + { + "kind": "number", + "nativeSrc": "23569:2:70", + "nodeType": "YulLiteral", + "src": "23569:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "23540:3:70", + "nodeType": "YulIdentifier", + "src": "23540:3:70" + }, + "nativeSrc": "23540:32:70", + "nodeType": "YulFunctionCall", + "src": "23540:32:70" + }, + "nativeSrc": "23537:52:70", + "nodeType": "YulIf", + "src": "23537:52:70" + }, + { + "nativeSrc": "23598:14:70", + "nodeType": "YulVariableDeclaration", + "src": "23598:14:70", + "value": { + "kind": "number", + "nativeSrc": "23611:1:70", + "nodeType": "YulLiteral", + "src": "23611:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "23602:5:70", + "nodeType": "YulTypedName", + "src": "23602:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23621:25:70", + "nodeType": "YulAssignment", + "src": "23621:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23636:9:70", + "nodeType": "YulIdentifier", + "src": "23636:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23630:5:70", + "nodeType": "YulIdentifier", + "src": "23630:5:70" + }, + "nativeSrc": "23630:16:70", + "nodeType": "YulFunctionCall", + "src": "23630:16:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23621:5:70", + "nodeType": "YulIdentifier", + "src": "23621:5:70" + } + ] + }, + { + "nativeSrc": "23655:15:70", + "nodeType": "YulAssignment", + "src": "23655:15:70", + "value": { + "name": "value", + "nativeSrc": "23665:5:70", + "nodeType": "YulIdentifier", + "src": "23665:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "23655:6:70", + "nodeType": "YulIdentifier", + "src": "23655:6:70" + } + ] + }, + { + "nativeSrc": "23679:16:70", + "nodeType": "YulVariableDeclaration", + "src": "23679:16:70", + "value": { + "kind": "number", + "nativeSrc": "23694:1:70", + "nodeType": "YulLiteral", + "src": "23694:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "23683:7:70", + "nodeType": "YulTypedName", + "src": "23683:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23704:36:70", + "nodeType": "YulAssignment", + "src": "23704:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23725:9:70", + "nodeType": "YulIdentifier", + "src": "23725:9:70" + }, + { + "kind": "number", + "nativeSrc": "23736:2:70", + "nodeType": "YulLiteral", + "src": "23736:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23721:3:70", + "nodeType": "YulIdentifier", + "src": "23721:3:70" + }, + "nativeSrc": "23721:18:70", + "nodeType": "YulFunctionCall", + "src": "23721:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23715:5:70", + "nodeType": "YulIdentifier", + "src": "23715:5:70" + }, + "nativeSrc": "23715:25:70", + "nodeType": "YulFunctionCall", + "src": "23715:25:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "23704:7:70", + "nodeType": "YulIdentifier", + "src": "23704:7:70" + } + ] + }, + { + "nativeSrc": "23749:17:70", + "nodeType": "YulAssignment", + "src": "23749:17:70", + "value": { + "name": "value_1", + "nativeSrc": "23759:7:70", + "nodeType": "YulIdentifier", + "src": "23759:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "23749:6:70", + "nodeType": "YulIdentifier", + "src": "23749:6:70" + } + ] + }, + { + "nativeSrc": "23775:16:70", + "nodeType": "YulVariableDeclaration", + "src": "23775:16:70", + "value": { + "kind": "number", + "nativeSrc": "23790:1:70", + "nodeType": "YulLiteral", + "src": "23790:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "23779:7:70", + "nodeType": "YulTypedName", + "src": "23779:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23800:36:70", + "nodeType": "YulAssignment", + "src": "23800:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23821:9:70", + "nodeType": "YulIdentifier", + "src": "23821:9:70" + }, + { + "kind": "number", + "nativeSrc": "23832:2:70", + "nodeType": "YulLiteral", + "src": "23832:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23817:3:70", + "nodeType": "YulIdentifier", + "src": "23817:3:70" + }, + "nativeSrc": "23817:18:70", + "nodeType": "YulFunctionCall", + "src": "23817:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23811:5:70", + "nodeType": "YulIdentifier", + "src": "23811:5:70" + }, + "nativeSrc": "23811:25:70", + "nodeType": "YulFunctionCall", + "src": "23811:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "23800:7:70", + "nodeType": "YulIdentifier", + "src": "23800:7:70" + } + ] + }, + { + "nativeSrc": "23845:17:70", + "nodeType": "YulAssignment", + "src": "23845:17:70", + "value": { + "name": "value_2", + "nativeSrc": "23855:7:70", + "nodeType": "YulIdentifier", + "src": "23855:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "23845:6:70", + "nodeType": "YulIdentifier", + "src": "23845:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_bytes32t_bytes32_fromMemory", + "nativeSrc": "23412:456:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23477:9:70", + "nodeType": "YulTypedName", + "src": "23477:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "23488:7:70", + "nodeType": "YulTypedName", + "src": "23488:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "23500:6:70", + "nodeType": "YulTypedName", + "src": "23500:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23508:6:70", + "nodeType": "YulTypedName", + "src": "23508:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "23516:6:70", + "nodeType": "YulTypedName", + "src": "23516:6:70", + "type": "" + } + ], + "src": "23412:456:70" + }, + { + "body": { + "nativeSrc": "24104:291:70", + "nodeType": "YulBlock", + "src": "24104:291:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24121:3:70", + "nodeType": "YulIdentifier", + "src": "24121:3:70" + }, + { + "name": "value0", + "nativeSrc": "24126:6:70", + "nodeType": "YulIdentifier", + "src": "24126:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24114:6:70", + "nodeType": "YulIdentifier", + "src": "24114:6:70" + }, + "nativeSrc": "24114:19:70", + "nodeType": "YulFunctionCall", + "src": "24114:19:70" + }, + "nativeSrc": "24114:19:70", + "nodeType": "YulExpressionStatement", + "src": "24114:19:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24153:3:70", + "nodeType": "YulIdentifier", + "src": "24153:3:70" + }, + { + "kind": "number", + "nativeSrc": "24158:2:70", + "nodeType": "YulLiteral", + "src": "24158:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24149:3:70", + "nodeType": "YulIdentifier", + "src": "24149:3:70" + }, + "nativeSrc": "24149:12:70", + "nodeType": "YulFunctionCall", + "src": "24149:12:70" + }, + { + "name": "value1", + "nativeSrc": "24163:6:70", + "nodeType": "YulIdentifier", + "src": "24163:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24142:6:70", + "nodeType": "YulIdentifier", + "src": "24142:6:70" + }, + "nativeSrc": "24142:28:70", + "nodeType": "YulFunctionCall", + "src": "24142:28:70" + }, + "nativeSrc": "24142:28:70", + "nodeType": "YulExpressionStatement", + "src": "24142:28:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24190:3:70", + "nodeType": "YulIdentifier", + "src": "24190:3:70" + }, + { + "kind": "number", + "nativeSrc": "24195:2:70", + "nodeType": "YulLiteral", + "src": "24195:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24186:3:70", + "nodeType": "YulIdentifier", + "src": "24186:3:70" + }, + "nativeSrc": "24186:12:70", + "nodeType": "YulFunctionCall", + "src": "24186:12:70" + }, + { + "name": "value2", + "nativeSrc": "24200:6:70", + "nodeType": "YulIdentifier", + "src": "24200:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24179:6:70", + "nodeType": "YulIdentifier", + "src": "24179:6:70" + }, + "nativeSrc": "24179:28:70", + "nodeType": "YulFunctionCall", + "src": "24179:28:70" + }, + "nativeSrc": "24179:28:70", + "nodeType": "YulExpressionStatement", + "src": "24179:28:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24227:3:70", + "nodeType": "YulIdentifier", + "src": "24227:3:70" + }, + { + "kind": "number", + "nativeSrc": "24232:2:70", + "nodeType": "YulLiteral", + "src": "24232:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24223:3:70", + "nodeType": "YulIdentifier", + "src": "24223:3:70" + }, + "nativeSrc": "24223:12:70", + "nodeType": "YulFunctionCall", + "src": "24223:12:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24245:2:70", + "nodeType": "YulLiteral", + "src": "24245:2:70", + "type": "", + "value": "96" + }, + { + "name": "value3", + "nativeSrc": "24249:6:70", + "nodeType": "YulIdentifier", + "src": "24249:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24241:3:70", + "nodeType": "YulIdentifier", + "src": "24241:3:70" + }, + "nativeSrc": "24241:15:70", + "nodeType": "YulFunctionCall", + "src": "24241:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24270:2:70", + "nodeType": "YulLiteral", + "src": "24270:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "24274:1:70", + "nodeType": "YulLiteral", + "src": "24274:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24266:3:70", + "nodeType": "YulIdentifier", + "src": "24266:3:70" + }, + "nativeSrc": "24266:10:70", + "nodeType": "YulFunctionCall", + "src": "24266:10:70" + }, + { + "kind": "number", + "nativeSrc": "24278:1:70", + "nodeType": "YulLiteral", + "src": "24278:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24262:3:70", + "nodeType": "YulIdentifier", + "src": "24262:3:70" + }, + "nativeSrc": "24262:18:70", + "nodeType": "YulFunctionCall", + "src": "24262:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "24258:3:70", + "nodeType": "YulIdentifier", + "src": "24258:3:70" + }, + "nativeSrc": "24258:23:70", + "nodeType": "YulFunctionCall", + "src": "24258:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24237:3:70", + "nodeType": "YulIdentifier", + "src": "24237:3:70" + }, + "nativeSrc": "24237:45:70", + "nodeType": "YulFunctionCall", + "src": "24237:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24216:6:70", + "nodeType": "YulIdentifier", + "src": "24216:6:70" + }, + "nativeSrc": "24216:67:70", + "nodeType": "YulFunctionCall", + "src": "24216:67:70" + }, + "nativeSrc": "24216:67:70", + "nodeType": "YulExpressionStatement", + "src": "24216:67:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24303:3:70", + "nodeType": "YulIdentifier", + "src": "24303:3:70" + }, + { + "kind": "number", + "nativeSrc": "24308:3:70", + "nodeType": "YulLiteral", + "src": "24308:3:70", + "type": "", + "value": "116" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24299:3:70", + "nodeType": "YulIdentifier", + "src": "24299:3:70" + }, + "nativeSrc": "24299:13:70", + "nodeType": "YulFunctionCall", + "src": "24299:13:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24322:2:70", + "nodeType": "YulLiteral", + "src": "24322:2:70", + "type": "", + "value": "96" + }, + { + "name": "value4", + "nativeSrc": "24326:6:70", + "nodeType": "YulIdentifier", + "src": "24326:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24318:3:70", + "nodeType": "YulIdentifier", + "src": "24318:3:70" + }, + "nativeSrc": "24318:15:70", + "nodeType": "YulFunctionCall", + "src": "24318:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24347:2:70", + "nodeType": "YulLiteral", + "src": "24347:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "24351:1:70", + "nodeType": "YulLiteral", + "src": "24351:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24343:3:70", + "nodeType": "YulIdentifier", + "src": "24343:3:70" + }, + "nativeSrc": "24343:10:70", + "nodeType": "YulFunctionCall", + "src": "24343:10:70" + }, + { + "kind": "number", + "nativeSrc": "24355:1:70", + "nodeType": "YulLiteral", + "src": "24355:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24339:3:70", + "nodeType": "YulIdentifier", + "src": "24339:3:70" + }, + "nativeSrc": "24339:18:70", + "nodeType": "YulFunctionCall", + "src": "24339:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "24335:3:70", + "nodeType": "YulIdentifier", + "src": "24335:3:70" + }, + "nativeSrc": "24335:23:70", + "nodeType": "YulFunctionCall", + "src": "24335:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24314:3:70", + "nodeType": "YulIdentifier", + "src": "24314:3:70" + }, + "nativeSrc": "24314:45:70", + "nodeType": "YulFunctionCall", + "src": "24314:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24292:6:70", + "nodeType": "YulIdentifier", + "src": "24292:6:70" + }, + "nativeSrc": "24292:68:70", + "nodeType": "YulFunctionCall", + "src": "24292:68:70" + }, + "nativeSrc": "24292:68:70", + "nodeType": "YulExpressionStatement", + "src": "24292:68:70" + }, + { + "nativeSrc": "24369:20:70", + "nodeType": "YulAssignment", + "src": "24369:20:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24380:3:70", + "nodeType": "YulIdentifier", + "src": "24380:3:70" + }, + { + "kind": "number", + "nativeSrc": "24385:3:70", + "nodeType": "YulLiteral", + "src": "24385:3:70", + "type": "", + "value": "136" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24376:3:70", + "nodeType": "YulIdentifier", + "src": "24376:3:70" + }, + "nativeSrc": "24376:13:70", + "nodeType": "YulFunctionCall", + "src": "24376:13:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24369:3:70", + "nodeType": "YulIdentifier", + "src": "24369:3:70" + } + ] + } + ] + }, + "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": "23873:522:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24048:3:70", + "nodeType": "YulTypedName", + "src": "24048:3:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "24053:6:70", + "nodeType": "YulTypedName", + "src": "24053:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "24061:6:70", + "nodeType": "YulTypedName", + "src": "24061:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24069:6:70", + "nodeType": "YulTypedName", + "src": "24069:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24077:6:70", + "nodeType": "YulTypedName", + "src": "24077:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24085:6:70", + "nodeType": "YulTypedName", + "src": "24085:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24096:3:70", + "nodeType": "YulTypedName", + "src": "24096:3:70", + "type": "" + } + ], + "src": "23873:522:70" + }, + { + "body": { + "nativeSrc": "24631:273:70", + "nodeType": "YulBlock", + "src": "24631:273:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24648:9:70", + "nodeType": "YulIdentifier", + "src": "24648:9:70" + }, + { + "name": "value0", + "nativeSrc": "24659:6:70", + "nodeType": "YulIdentifier", + "src": "24659:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24641:6:70", + "nodeType": "YulIdentifier", + "src": "24641:6:70" + }, + "nativeSrc": "24641:25:70", + "nodeType": "YulFunctionCall", + "src": "24641:25:70" + }, + "nativeSrc": "24641:25:70", + "nodeType": "YulExpressionStatement", + "src": "24641:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24686:9:70", + "nodeType": "YulIdentifier", + "src": "24686:9:70" + }, + { + "kind": "number", + "nativeSrc": "24697:2:70", + "nodeType": "YulLiteral", + "src": "24697:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24682:3:70", + "nodeType": "YulIdentifier", + "src": "24682:3:70" + }, + "nativeSrc": "24682:18:70", + "nodeType": "YulFunctionCall", + "src": "24682:18:70" + }, + { + "name": "value1", + "nativeSrc": "24702:6:70", + "nodeType": "YulIdentifier", + "src": "24702:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24675:6:70", + "nodeType": "YulIdentifier", + "src": "24675:6:70" + }, + "nativeSrc": "24675:34:70", + "nodeType": "YulFunctionCall", + "src": "24675:34:70" + }, + "nativeSrc": "24675:34:70", + "nodeType": "YulExpressionStatement", + "src": "24675:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24729:9:70", + "nodeType": "YulIdentifier", + "src": "24729:9:70" + }, + { + "kind": "number", + "nativeSrc": "24740:2:70", + "nodeType": "YulLiteral", + "src": "24740:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24725:3:70", + "nodeType": "YulIdentifier", + "src": "24725:3:70" + }, + "nativeSrc": "24725:18:70", + "nodeType": "YulFunctionCall", + "src": "24725:18:70" + }, + { + "kind": "number", + "nativeSrc": "24745:3:70", + "nodeType": "YulLiteral", + "src": "24745:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24718:6:70", + "nodeType": "YulIdentifier", + "src": "24718:6:70" + }, + "nativeSrc": "24718:31:70", + "nodeType": "YulFunctionCall", + "src": "24718:31:70" + }, + "nativeSrc": "24718:31:70", + "nodeType": "YulExpressionStatement", + "src": "24718:31:70" + }, + { + "nativeSrc": "24758:53:70", + "nodeType": "YulAssignment", + "src": "24758:53:70", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "24783:6:70", + "nodeType": "YulIdentifier", + "src": "24783:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24795:9:70", + "nodeType": "YulIdentifier", + "src": "24795:9:70" + }, + { + "kind": "number", + "nativeSrc": "24806:3:70", + "nodeType": "YulLiteral", + "src": "24806:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24791:3:70", + "nodeType": "YulIdentifier", + "src": "24791:3:70" + }, + "nativeSrc": "24791:19:70", + "nodeType": "YulFunctionCall", + "src": "24791:19:70" + } + ], + "functionName": { + "name": "abi_encode_bytes", + "nativeSrc": "24766:16:70", + "nodeType": "YulIdentifier", + "src": "24766:16:70" + }, + "nativeSrc": "24766:45:70", + "nodeType": "YulFunctionCall", + "src": "24766:45:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24758:4:70", + "nodeType": "YulIdentifier", + "src": "24758:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24831:9:70", + "nodeType": "YulIdentifier", + "src": "24831:9:70" + }, + { + "kind": "number", + "nativeSrc": "24842:2:70", + "nodeType": "YulLiteral", + "src": "24842:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24827:3:70", + "nodeType": "YulIdentifier", + "src": "24827:3:70" + }, + "nativeSrc": "24827:18:70", + "nodeType": "YulFunctionCall", + "src": "24827:18:70" + }, + { + "name": "value3", + "nativeSrc": "24847:6:70", + "nodeType": "YulIdentifier", + "src": "24847:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24820:6:70", + "nodeType": "YulIdentifier", + "src": "24820:6:70" + }, + "nativeSrc": "24820:34:70", + "nodeType": "YulFunctionCall", + "src": "24820:34:70" + }, + "nativeSrc": "24820:34:70", + "nodeType": "YulExpressionStatement", + "src": "24820:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24874:9:70", + "nodeType": "YulIdentifier", + "src": "24874:9:70" + }, + { + "kind": "number", + "nativeSrc": "24885:3:70", + "nodeType": "YulLiteral", + "src": "24885:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24870:3:70", + "nodeType": "YulIdentifier", + "src": "24870:3:70" + }, + "nativeSrc": "24870:19:70", + "nodeType": "YulFunctionCall", + "src": "24870:19:70" + }, + { + "name": "value4", + "nativeSrc": "24891:6:70", + "nodeType": "YulIdentifier", + "src": "24891:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24863:6:70", + "nodeType": "YulIdentifier", + "src": "24863:6:70" + }, + "nativeSrc": "24863:35:70", + "nodeType": "YulFunctionCall", + "src": "24863:35:70" + }, + "nativeSrc": "24863:35:70", + "nodeType": "YulExpressionStatement", + "src": "24863:35:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "24400:504:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24568:9:70", + "nodeType": "YulTypedName", + "src": "24568:9:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "24579:6:70", + "nodeType": "YulTypedName", + "src": "24579:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "24587:6:70", + "nodeType": "YulTypedName", + "src": "24587:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24595:6:70", + "nodeType": "YulTypedName", + "src": "24595:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24603:6:70", + "nodeType": "YulTypedName", + "src": "24603:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24611:6:70", + "nodeType": "YulTypedName", + "src": "24611:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24622:4:70", + "nodeType": "YulTypedName", + "src": "24622:4:70", + "type": "" + } + ], + "src": "24400:504:70" + }, + { + "body": { + "nativeSrc": "25080:167:70", + "nodeType": "YulBlock", + "src": "25080:167:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25097:3:70", + "nodeType": "YulIdentifier", + "src": "25097:3:70" + }, + { + "name": "value0", + "nativeSrc": "25102:6:70", + "nodeType": "YulIdentifier", + "src": "25102:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25090:6:70", + "nodeType": "YulIdentifier", + "src": "25090:6:70" + }, + "nativeSrc": "25090:19:70", + "nodeType": "YulFunctionCall", + "src": "25090:19:70" + }, + "nativeSrc": "25090:19:70", + "nodeType": "YulExpressionStatement", + "src": "25090:19:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25129:3:70", + "nodeType": "YulIdentifier", + "src": "25129:3:70" + }, + { + "kind": "number", + "nativeSrc": "25134:2:70", + "nodeType": "YulLiteral", + "src": "25134:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25125:3:70", + "nodeType": "YulIdentifier", + "src": "25125:3:70" + }, + "nativeSrc": "25125:12:70", + "nodeType": "YulFunctionCall", + "src": "25125:12:70" + }, + { + "name": "value1", + "nativeSrc": "25139:6:70", + "nodeType": "YulIdentifier", + "src": "25139:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25118:6:70", + "nodeType": "YulIdentifier", + "src": "25118:6:70" + }, + "nativeSrc": "25118:28:70", + "nodeType": "YulFunctionCall", + "src": "25118:28:70" + }, + "nativeSrc": "25118:28:70", + "nodeType": "YulExpressionStatement", + "src": "25118:28:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25166:3:70", + "nodeType": "YulIdentifier", + "src": "25166:3:70" + }, + { + "kind": "number", + "nativeSrc": "25171:2:70", + "nodeType": "YulLiteral", + "src": "25171:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25162:3:70", + "nodeType": "YulIdentifier", + "src": "25162:3:70" + }, + "nativeSrc": "25162:12:70", + "nodeType": "YulFunctionCall", + "src": "25162:12:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25184:3:70", + "nodeType": "YulLiteral", + "src": "25184:3:70", + "type": "", + "value": "248" + }, + { + "name": "value2", + "nativeSrc": "25189:6:70", + "nodeType": "YulIdentifier", + "src": "25189:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "25180:3:70", + "nodeType": "YulIdentifier", + "src": "25180:3:70" + }, + "nativeSrc": "25180:16:70", + "nodeType": "YulFunctionCall", + "src": "25180:16:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25202:3:70", + "nodeType": "YulLiteral", + "src": "25202:3:70", + "type": "", + "value": "248" + }, + { + "kind": "number", + "nativeSrc": "25207:3:70", + "nodeType": "YulLiteral", + "src": "25207:3:70", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "25198:3:70", + "nodeType": "YulIdentifier", + "src": "25198:3:70" + }, + "nativeSrc": "25198:13:70", + "nodeType": "YulFunctionCall", + "src": "25198:13:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25176:3:70", + "nodeType": "YulIdentifier", + "src": "25176:3:70" + }, + "nativeSrc": "25176:36:70", + "nodeType": "YulFunctionCall", + "src": "25176:36:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25155:6:70", + "nodeType": "YulIdentifier", + "src": "25155:6:70" + }, + "nativeSrc": "25155:58:70", + "nodeType": "YulFunctionCall", + "src": "25155:58:70" + }, + "nativeSrc": "25155:58:70", + "nodeType": "YulExpressionStatement", + "src": "25155:58:70" + }, + { + "nativeSrc": "25222:19:70", + "nodeType": "YulAssignment", + "src": "25222:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25233:3:70", + "nodeType": "YulIdentifier", + "src": "25233:3:70" + }, + { + "kind": "number", + "nativeSrc": "25238:2:70", + "nodeType": "YulLiteral", + "src": "25238:2:70", + "type": "", + "value": "65" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25229:3:70", + "nodeType": "YulIdentifier", + "src": "25229:3:70" + }, + "nativeSrc": "25229:12:70", + "nodeType": "YulFunctionCall", + "src": "25229:12:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25222:3:70", + "nodeType": "YulIdentifier", + "src": "25222:3:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "24909:338:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25040:3:70", + "nodeType": "YulTypedName", + "src": "25040:3:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "25045:6:70", + "nodeType": "YulTypedName", + "src": "25045:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25053:6:70", + "nodeType": "YulTypedName", + "src": "25053:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25061:6:70", + "nodeType": "YulTypedName", + "src": "25061:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25072:3:70", + "nodeType": "YulTypedName", + "src": "25072:3:70", + "type": "" + } + ], + "src": "24909:338:70" + }, + { + "body": { + "nativeSrc": "25493:320:70", + "nodeType": "YulBlock", + "src": "25493:320:70", + "statements": [ + { + "nativeSrc": "25503:27:70", + "nodeType": "YulAssignment", + "src": "25503:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25515:9:70", + "nodeType": "YulIdentifier", + "src": "25515:9:70" + }, + { + "kind": "number", + "nativeSrc": "25526:3:70", + "nodeType": "YulLiteral", + "src": "25526:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25511:3:70", + "nodeType": "YulIdentifier", + "src": "25511:3:70" + }, + "nativeSrc": "25511:19:70", + "nodeType": "YulFunctionCall", + "src": "25511:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25503:4:70", + "nodeType": "YulIdentifier", + "src": "25503:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25546:9:70", + "nodeType": "YulIdentifier", + "src": "25546:9:70" + }, + { + "name": "value0", + "nativeSrc": "25557:6:70", + "nodeType": "YulIdentifier", + "src": "25557:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25539:6:70", + "nodeType": "YulIdentifier", + "src": "25539:6:70" + }, + "nativeSrc": "25539:25:70", + "nodeType": "YulFunctionCall", + "src": "25539:25:70" + }, + "nativeSrc": "25539:25:70", + "nodeType": "YulExpressionStatement", + "src": "25539:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25584:9:70", + "nodeType": "YulIdentifier", + "src": "25584:9:70" + }, + { + "kind": "number", + "nativeSrc": "25595:2:70", + "nodeType": "YulLiteral", + "src": "25595:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25580:3:70", + "nodeType": "YulIdentifier", + "src": "25580:3:70" + }, + "nativeSrc": "25580:18:70", + "nodeType": "YulFunctionCall", + "src": "25580:18:70" + }, + { + "name": "value1", + "nativeSrc": "25600:6:70", + "nodeType": "YulIdentifier", + "src": "25600:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25573:6:70", + "nodeType": "YulIdentifier", + "src": "25573:6:70" + }, + "nativeSrc": "25573:34:70", + "nodeType": "YulFunctionCall", + "src": "25573:34:70" + }, + "nativeSrc": "25573:34:70", + "nodeType": "YulExpressionStatement", + "src": "25573:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25627:9:70", + "nodeType": "YulIdentifier", + "src": "25627:9:70" + }, + { + "kind": "number", + "nativeSrc": "25638:2:70", + "nodeType": "YulLiteral", + "src": "25638:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25623:3:70", + "nodeType": "YulIdentifier", + "src": "25623:3:70" + }, + "nativeSrc": "25623:18:70", + "nodeType": "YulFunctionCall", + "src": "25623:18:70" + }, + { + "name": "value2", + "nativeSrc": "25643:6:70", + "nodeType": "YulIdentifier", + "src": "25643:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25616:6:70", + "nodeType": "YulIdentifier", + "src": "25616:6:70" + }, + "nativeSrc": "25616:34:70", + "nodeType": "YulFunctionCall", + "src": "25616:34:70" + }, + "nativeSrc": "25616:34:70", + "nodeType": "YulExpressionStatement", + "src": "25616:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25670:9:70", + "nodeType": "YulIdentifier", + "src": "25670:9:70" + }, + { + "kind": "number", + "nativeSrc": "25681:2:70", + "nodeType": "YulLiteral", + "src": "25681:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25666:3:70", + "nodeType": "YulIdentifier", + "src": "25666:3:70" + }, + "nativeSrc": "25666:18:70", + "nodeType": "YulFunctionCall", + "src": "25666:18:70" + }, + { + "name": "value3", + "nativeSrc": "25686:6:70", + "nodeType": "YulIdentifier", + "src": "25686:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25659:6:70", + "nodeType": "YulIdentifier", + "src": "25659:6:70" + }, + "nativeSrc": "25659:34:70", + "nodeType": "YulFunctionCall", + "src": "25659:34:70" + }, + "nativeSrc": "25659:34:70", + "nodeType": "YulExpressionStatement", + "src": "25659:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25713:9:70", + "nodeType": "YulIdentifier", + "src": "25713:9:70" + }, + { + "kind": "number", + "nativeSrc": "25724:3:70", + "nodeType": "YulLiteral", + "src": "25724:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25709:3:70", + "nodeType": "YulIdentifier", + "src": "25709:3:70" + }, + "nativeSrc": "25709:19:70", + "nodeType": "YulFunctionCall", + "src": "25709:19:70" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "25734:6:70", + "nodeType": "YulIdentifier", + "src": "25734:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25750:3:70", + "nodeType": "YulLiteral", + "src": "25750:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "25755:1:70", + "nodeType": "YulLiteral", + "src": "25755:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "25746:3:70", + "nodeType": "YulIdentifier", + "src": "25746:3:70" + }, + "nativeSrc": "25746:11:70", + "nodeType": "YulFunctionCall", + "src": "25746:11:70" + }, + { + "kind": "number", + "nativeSrc": "25759:1:70", + "nodeType": "YulLiteral", + "src": "25759:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25742:3:70", + "nodeType": "YulIdentifier", + "src": "25742:3:70" + }, + "nativeSrc": "25742:19:70", + "nodeType": "YulFunctionCall", + "src": "25742:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25730:3:70", + "nodeType": "YulIdentifier", + "src": "25730:3:70" + }, + "nativeSrc": "25730:32:70", + "nodeType": "YulFunctionCall", + "src": "25730:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25702:6:70", + "nodeType": "YulIdentifier", + "src": "25702:6:70" + }, + "nativeSrc": "25702:61:70", + "nodeType": "YulFunctionCall", + "src": "25702:61:70" + }, + "nativeSrc": "25702:61:70", + "nodeType": "YulExpressionStatement", + "src": "25702:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25783:9:70", + "nodeType": "YulIdentifier", + "src": "25783:9:70" + }, + { + "kind": "number", + "nativeSrc": "25794:3:70", + "nodeType": "YulLiteral", + "src": "25794:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25779:3:70", + "nodeType": "YulIdentifier", + "src": "25779:3:70" + }, + "nativeSrc": "25779:19:70", + "nodeType": "YulFunctionCall", + "src": "25779:19:70" + }, + { + "name": "value5", + "nativeSrc": "25800:6:70", + "nodeType": "YulIdentifier", + "src": "25800:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25772:6:70", + "nodeType": "YulIdentifier", + "src": "25772:6:70" + }, + "nativeSrc": "25772:35:70", + "nodeType": "YulFunctionCall", + "src": "25772:35:70" + }, + "nativeSrc": "25772:35:70", + "nodeType": "YulExpressionStatement", + "src": "25772:35:70" + } + ] + }, + "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": "25252:561:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25422:9:70", + "nodeType": "YulTypedName", + "src": "25422:9:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "25433:6:70", + "nodeType": "YulTypedName", + "src": "25433:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "25441:6:70", + "nodeType": "YulTypedName", + "src": "25441:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "25449:6:70", + "nodeType": "YulTypedName", + "src": "25449:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "25457:6:70", + "nodeType": "YulTypedName", + "src": "25457:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25465:6:70", + "nodeType": "YulTypedName", + "src": "25465:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25473:6:70", + "nodeType": "YulTypedName", + "src": "25473:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25484:4:70", + "nodeType": "YulTypedName", + "src": "25484:4:70", + "type": "" + } + ], + "src": "25252:561:70" + }, + { + "body": { + "nativeSrc": "25870:116:70", + "nodeType": "YulBlock", + "src": "25870:116:70", + "statements": [ + { + "nativeSrc": "25880:20:70", + "nodeType": "YulAssignment", + "src": "25880:20:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "25895:1:70", + "nodeType": "YulIdentifier", + "src": "25895:1:70" + }, + { + "name": "y", + "nativeSrc": "25898:1:70", + "nodeType": "YulIdentifier", + "src": "25898:1:70" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "25891:3:70", + "nodeType": "YulIdentifier", + "src": "25891:3:70" + }, + "nativeSrc": "25891:9:70", + "nodeType": "YulFunctionCall", + "src": "25891:9:70" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "25880:7:70", + "nodeType": "YulIdentifier", + "src": "25880:7:70" + } + ] + }, + { + "body": { + "nativeSrc": "25958:22:70", + "nodeType": "YulBlock", + "src": "25958:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "25960:16:70", + "nodeType": "YulIdentifier", + "src": "25960:16:70" + }, + "nativeSrc": "25960:18:70", + "nodeType": "YulFunctionCall", + "src": "25960:18:70" + }, + "nativeSrc": "25960:18:70", + "nodeType": "YulExpressionStatement", + "src": "25960:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "25929:1:70", + "nodeType": "YulIdentifier", + "src": "25929:1:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25922:6:70", + "nodeType": "YulIdentifier", + "src": "25922:6:70" + }, + "nativeSrc": "25922:9:70", + "nodeType": "YulFunctionCall", + "src": "25922:9:70" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "25936:1:70", + "nodeType": "YulIdentifier", + "src": "25936:1:70" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "25943:7:70", + "nodeType": "YulIdentifier", + "src": "25943:7:70" + }, + { + "name": "x", + "nativeSrc": "25952:1:70", + "nodeType": "YulIdentifier", + "src": "25952:1:70" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "25939:3:70", + "nodeType": "YulIdentifier", + "src": "25939:3:70" + }, + "nativeSrc": "25939:15:70", + "nodeType": "YulFunctionCall", + "src": "25939:15:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "25933:2:70", + "nodeType": "YulIdentifier", + "src": "25933:2:70" + }, + "nativeSrc": "25933:22:70", + "nodeType": "YulFunctionCall", + "src": "25933:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "25919:2:70", + "nodeType": "YulIdentifier", + "src": "25919:2:70" + }, + "nativeSrc": "25919:37:70", + "nodeType": "YulFunctionCall", + "src": "25919:37:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25912:6:70", + "nodeType": "YulIdentifier", + "src": "25912:6:70" + }, + "nativeSrc": "25912:45:70", + "nodeType": "YulFunctionCall", + "src": "25912:45:70" + }, + "nativeSrc": "25909:71:70", + "nodeType": "YulIf", + "src": "25909:71:70" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "25818:168:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "25849:1:70", + "nodeType": "YulTypedName", + "src": "25849:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "25852:1:70", + "nodeType": "YulTypedName", + "src": "25852:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "25858:7:70", + "nodeType": "YulTypedName", + "src": "25858:7:70", + "type": "" + } + ], + "src": "25818:168:70" + }, + { + "body": { + "nativeSrc": "26172:217:70", + "nodeType": "YulBlock", + "src": "26172:217:70", + "statements": [ + { + "nativeSrc": "26182:27:70", + "nodeType": "YulAssignment", + "src": "26182:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26194:9:70", + "nodeType": "YulIdentifier", + "src": "26194:9:70" + }, + { + "kind": "number", + "nativeSrc": "26205:3:70", + "nodeType": "YulLiteral", + "src": "26205:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26190:3:70", + "nodeType": "YulIdentifier", + "src": "26190:3:70" + }, + "nativeSrc": "26190:19:70", + "nodeType": "YulFunctionCall", + "src": "26190:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26182:4:70", + "nodeType": "YulIdentifier", + "src": "26182:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26225:9:70", + "nodeType": "YulIdentifier", + "src": "26225:9:70" + }, + { + "name": "value0", + "nativeSrc": "26236:6:70", + "nodeType": "YulIdentifier", + "src": "26236:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26218:6:70", + "nodeType": "YulIdentifier", + "src": "26218:6:70" + }, + "nativeSrc": "26218:25:70", + "nodeType": "YulFunctionCall", + "src": "26218:25:70" + }, + "nativeSrc": "26218:25:70", + "nodeType": "YulExpressionStatement", + "src": "26218:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26263:9:70", + "nodeType": "YulIdentifier", + "src": "26263:9:70" + }, + { + "kind": "number", + "nativeSrc": "26274:2:70", + "nodeType": "YulLiteral", + "src": "26274:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26259:3:70", + "nodeType": "YulIdentifier", + "src": "26259:3:70" + }, + "nativeSrc": "26259:18:70", + "nodeType": "YulFunctionCall", + "src": "26259:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26283:6:70", + "nodeType": "YulIdentifier", + "src": "26283:6:70" + }, + { + "kind": "number", + "nativeSrc": "26291:4:70", + "nodeType": "YulLiteral", + "src": "26291:4:70", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26279:3:70", + "nodeType": "YulIdentifier", + "src": "26279:3:70" + }, + "nativeSrc": "26279:17:70", + "nodeType": "YulFunctionCall", + "src": "26279:17:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26252:6:70", + "nodeType": "YulIdentifier", + "src": "26252:6:70" + }, + "nativeSrc": "26252:45:70", + "nodeType": "YulFunctionCall", + "src": "26252:45:70" + }, + "nativeSrc": "26252:45:70", + "nodeType": "YulExpressionStatement", + "src": "26252:45:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26317:9:70", + "nodeType": "YulIdentifier", + "src": "26317:9:70" + }, + { + "kind": "number", + "nativeSrc": "26328:2:70", + "nodeType": "YulLiteral", + "src": "26328:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26313:3:70", + "nodeType": "YulIdentifier", + "src": "26313:3:70" + }, + "nativeSrc": "26313:18:70", + "nodeType": "YulFunctionCall", + "src": "26313:18:70" + }, + { + "name": "value2", + "nativeSrc": "26333:6:70", + "nodeType": "YulIdentifier", + "src": "26333:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26306:6:70", + "nodeType": "YulIdentifier", + "src": "26306:6:70" + }, + "nativeSrc": "26306:34:70", + "nodeType": "YulFunctionCall", + "src": "26306:34:70" + }, + "nativeSrc": "26306:34:70", + "nodeType": "YulExpressionStatement", + "src": "26306:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26360:9:70", + "nodeType": "YulIdentifier", + "src": "26360:9:70" + }, + { + "kind": "number", + "nativeSrc": "26371:2:70", + "nodeType": "YulLiteral", + "src": "26371:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26356:3:70", + "nodeType": "YulIdentifier", + "src": "26356:3:70" + }, + "nativeSrc": "26356:18:70", + "nodeType": "YulFunctionCall", + "src": "26356:18:70" + }, + { + "name": "value3", + "nativeSrc": "26376:6:70", + "nodeType": "YulIdentifier", + "src": "26376:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26349:6:70", + "nodeType": "YulIdentifier", + "src": "26349:6:70" + }, + "nativeSrc": "26349:34:70", + "nodeType": "YulFunctionCall", + "src": "26349:34:70" + }, + "nativeSrc": "26349:34:70", + "nodeType": "YulExpressionStatement", + "src": "26349:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "25991:398:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26117:9:70", + "nodeType": "YulTypedName", + "src": "26117:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "26128:6:70", + "nodeType": "YulTypedName", + "src": "26128:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "26136:6:70", + "nodeType": "YulTypedName", + "src": "26136:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26144:6:70", + "nodeType": "YulTypedName", + "src": "26144:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26152:6:70", + "nodeType": "YulTypedName", + "src": "26152:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26163:4:70", + "nodeType": "YulTypedName", + "src": "26163:4:70", + "type": "" + } + ], + "src": "25991:398:70" + } + ] + }, + "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 validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, sub(shl(64, 1), 1)))) { 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_addresst_uint64t_uint256t_uint32t_uint32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { 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 := calldataload(add(headStart, 64))\n validator_revert_uint64(value_2)\n value2 := value_2\n let value_3 := 0\n value_3 := calldataload(add(headStart, 96))\n value3 := value_3\n let value_4 := calldataload(add(headStart, 128))\n validator_revert_uint32(value_4)\n value4 := value_4\n let value_5 := calldataload(add(headStart, 160))\n validator_revert_uint32(value_5)\n value5 := value_5\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_$14913_t_enum$_DisputeStatus_$14921_t_uint256_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 288)\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, 4)) { 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 mstore(add(headStart, 256), value8)\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_$15634__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 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, sub(shl(64, 1), 1)))\n }\n function abi_decode_tuple_t_struct$_Receipt_$16044_calldata_ptr(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 96)\n if _1 { revert(0, 0) }\n _1 := 0\n value0 := headStart\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_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { 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 let value_3 := 0\n value_3 := calldataload(add(headStart, 96))\n value3 := value_3\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 validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes32t_uint256t_boolt_uint256(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_bool(value_2)\n value2 := value_2\n let value_3 := 0\n value_3 := calldataload(add(headStart, 96))\n value3 := value_3\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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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 allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 192)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), 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_2390() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x0120)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), 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_2392() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 320)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), 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$_State_$16058_memory_ptr(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 192)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory()\n let value_1 := _1\n value_1 := calldataload(headStart)\n mstore(value, value_1)\n let value_2 := _1\n value_2 := calldataload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := _1\n value_3 := calldataload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n let value_4 := _1\n value_4 := calldataload(add(headStart, 96))\n mstore(add(value, 96), value_4)\n let value_5 := _1\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(_1, _1) }\n mstore(add(value, 160), value_6)\n value0 := value\n }\n function abi_decode_struct_State_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 192) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_struct$_State_$16058_calldata_ptrt_struct$_State_$16058_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 384) { revert(0, 0) }\n value0 := abi_decode_struct_State_calldata(headStart, dataEnd)\n value1 := abi_decode_struct_State_calldata(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_$14921__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_DisputeStatus(value0, headStart)\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, sub(shl(64, 1), 1)))\n }\n function abi_decode_tuple_t_struct$_Receipt_$16044_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, sub(shl(64, 1), 1)), 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_packed_t_address_t_stringliteral_b7ccb6878fbded310d2d05350bca9c84568ecb568d4b626c83e0508c3193ce89__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(sub(shl(96, 1), 1))))\n mstore(add(pos, 20), \"legacy\")\n end := add(pos, 26)\n }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_address(value)\n }\n function abi_decode_struct_Allocation_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x0120) { revert(0, 0) }\n value := allocate_memory_2390()\n mstore(value, abi_decode_address_fromMemory(headStart))\n let value_1 := 0\n value_1 := mload(add(headStart, 32))\n mstore(add(value, 32), value_1)\n let value_2 := 0\n value_2 := mload(add(headStart, 64))\n mstore(add(value, 64), value_2)\n let value_3 := 0\n value_3 := mload(add(headStart, 96))\n mstore(add(value, 96), value_3)\n let value_4 := 0\n value_4 := mload(add(headStart, 128))\n mstore(add(value, 128), value_4)\n let value_5 := 0\n value_5 := mload(add(headStart, 160))\n mstore(add(value, 160), value_5)\n let value_6 := 0\n value_6 := mload(add(headStart, 192))\n mstore(add(value, 192), value_6)\n let value_7 := 0\n value_7 := mload(add(headStart, 224))\n mstore(add(value, 224), value_7)\n let value_8 := 0\n value_8 := mload(add(headStart, 256))\n mstore(add(value, 256), value_8)\n }\n function abi_decode_tuple_t_struct$_Allocation_$3073_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n value0 := abi_decode_struct_Allocation_fromMemory(headStart, dataEnd)\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_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_t_uint256__to_t_address_t_uint256_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), value1)\n mstore(add(headStart, 64), value2)\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_$3962_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 320)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory_2392()\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 let value_5 := _1\n value_5 := mload(add(headStart, 288))\n mstore(add(value, 288), value_5)\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 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_decode_tuple_t_struct$_State_$15663_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n value0 := abi_decode_struct_Allocation_fromMemory(headStart, dataEnd)\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_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_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_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256_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), and(value1, sub(shl(160, 1), 1)))\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_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_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_struct$_DelegationPool_$3992_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, sub(shl(64, 1), 1)), 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_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_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 160)\n tail := abi_encode_bytes(value2, add(headStart, 160))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\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 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 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_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": 70, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "4591": [ + { + "length": 32, + "start": 6604 + } + ], + "4595": [ + { + "length": 32, + "start": 7971 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50B17AD EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x533E1BA EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xBC7344B EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x11BE1997 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x16972978 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x17337B46 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x1792F194 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x26058249 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x29E03FF1 EQ PUSH2 0x2C8 JUMPI DUP1 PUSH4 0x36167E03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x4BC5839A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x5AEA0EC4 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x5BF31D4D EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x6369DF6B EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x6CC6CDE1 EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x76C993AE EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0x8D4E9008 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x902A4938 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x9334EA52 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x93A90A1E EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x9F81A7CF EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0xB0E2F7E9 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xB0EEFABE EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xBB2A2B47 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xBE41F384 EQ PUSH2 0x419 JUMPI DUP1 PUSH4 0xC133B429 EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xC50A77B1 EQ PUSH2 0x44F JUMPI DUP1 PUSH4 0xC894222E EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xC9747F51 EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xCC2D55CD EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xD36FC9D4 EQ PUSH2 0x4A5 JUMPI DUP1 PUSH4 0xD76F62D1 EQ PUSH2 0x4B8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4CB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C8A JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1D2 SWAP1 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B9 PUSH2 0x1F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH2 0x263 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 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 DUP8 ADD SLOAD PUSH1 0x7 SWAP1 SWAP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND SWAP8 SWAP7 SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 PUSH1 0xFF DUP1 DUP5 AND SWAP5 PUSH2 0x100 SWAP1 SWAP5 DIV AND SWAP3 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB5 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x734 JUMP JUMPDEST PUSH2 0x1D2 PUSH3 0x7A120 DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x748 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH2 0x2BB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2D1 PUSH1 0x35 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E34 JUMP JUMPDEST PUSH2 0x9AE 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 PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x319 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x34E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E74 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x2BB SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x2E8F JUMP JUMPDEST PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x2EAC JUMP JUMPDEST PUSH2 0xA24 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1D2 SWAP1 PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0xDE0 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E8F JUMP JUMPDEST PUSH2 0xEF0 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x3F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F1D JUMP JUMPDEST PUSH2 0xF01 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x1062 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x42C PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D72 JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x44A CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x45D CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA4 JUMP JUMPDEST PUSH2 0x1141 JUMP JUMPDEST PUSH2 0x475 PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FE5 JUMP JUMPDEST PUSH2 0x11D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x13E2 JUMP JUMPDEST PUSH2 0x2D1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x42C PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x317C JUMP JUMPDEST PUSH2 0x14CD JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x4C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x31B2 JUMP JUMPDEST PUSH2 0x14F5 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x4D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EF2 JUMP JUMPDEST PUSH2 0x1506 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x509 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 0x513 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x56C JUMPI PUSH2 0x56C PUSH2 0x2D8B 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 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD DUP4 SWAP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x64D0C32B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5F6 DUP5 DUP3 DUP6 PUSH2 0x1541 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x606 PUSH2 0x15F2 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 0x62D JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x649 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x657 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x675 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x69E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x6A7 DUP12 PUSH2 0x161B JUMP JUMPDEST PUSH2 0x6AF PUSH2 0x162C JUMP JUMPDEST PUSH2 0x6B8 DUP11 PUSH2 0x163C JUMP JUMPDEST PUSH2 0x6C1 DUP10 PUSH2 0x16AD JUMP JUMPDEST PUSH2 0x6CA DUP9 PUSH2 0x1736 JUMP JUMPDEST PUSH2 0x6D3 DUP8 PUSH2 0x1799 JUMP JUMPDEST PUSH2 0x6DC DUP7 PUSH2 0x180B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x727 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH2 0x71E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x73C PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1736 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0x752 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x774 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x7AF 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 0x7B9 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x7DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x809 JUMPI PUSH2 0x809 PUSH2 0x2D8B 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 0x843 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD TIMESTAMP LT ISZERO PUSH2 0x877 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D7753D5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x881 DUP5 DUP3 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x18C4 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8D3 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 0x8DD DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x8FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0x92D JUMPI PUSH2 0x92D PUSH2 0x2D8B 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 0x967 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 DUP2 ADD SLOAD DUP4 SWAP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x40 MLOAD PUSH4 0x64D0C32B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH2 0x9A9 DUP4 DUP3 PUSH2 0x194B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CF CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x19EE JUMP JUMPDEST PUSH2 0x9DD CALLER PUSH1 0x35 SLOAD DUP6 DUP6 PUSH2 0x1AA6 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E0 PUSH2 0x9FA CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x31DD JUMP JUMPDEST PUSH2 0x1E28 JUMP JUMPDEST PUSH2 0xA07 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0xA11 PUSH1 0x0 PUSH2 0x1EC5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA1B PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA52 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP8 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x6C6567616379 PUSH1 0xD0 SHL PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x3A 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 PUSH1 0x0 PUSH2 0xAA0 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xACB SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE9 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 0xB0D SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST MLOAD SWAP1 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP9 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xC0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x34 SLOAD PUSH1 0xE0 DUP4 ADD SWAP2 PUSH2 0xBA1 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH2 0x330C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 SWAP2 DUP3 ADD DUP2 SWAP1 MSTORE DUP5 DUP2 MSTORE PUSH1 0x37 DUP3 MSTORE PUSH1 0x40 SWAP1 DUP2 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 SWAP4 DUP6 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD SWAP4 SWAP5 SWAP2 SWAP4 SWAP1 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP2 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0xC2F JUMPI PUSH2 0xC2F PUSH2 0x2D8B 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 0xC59 JUMPI PUSH2 0xC59 PUSH2 0x2D8B JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE PUSH1 0x0 PUSH2 0xC89 PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCB8347FE DUP4 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCAE SWAP3 SWAP2 SWAP1 PUSH2 0x3054 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 0xCDA SWAP3 SWAP2 SWAP1 PUSH2 0x3365 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xD29 DUP8 DUP7 PUSH2 0xD19 PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1F81 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE SWAP2 DUP2 ADD DUP8 SWAP1 MSTORE DUP2 DUP10 AND SWAP2 DUP5 AND SWAP1 DUP6 SWAP1 PUSH32 0x587A1FC7E80E653A2AB7F63F98C080F5818B8CEDCFD1374590C8C786290ED031 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x359D DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP9 PUSH1 0x40 MLOAD PUSH2 0xDB1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDD0 PUSH2 0x1FBC 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 0xE0B 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 0xE15 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xE37 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0xE65 JUMPI PUSH2 0xE65 PUSH2 0x2D8B 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 0xE9F JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xEB8 DUP4 DUP3 PUSH2 0x1FE0 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD ISZERO PUSH2 0x9A9 JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x9A9 SWAP2 SWAP1 PUSH2 0x1FE0 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x205F JUMP JUMPDEST PUSH2 0xEF8 PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0xF36 DUP2 PUSH2 0x1073 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xF58 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 0xF86 JUMPI PUSH2 0xF86 PUSH2 0x2D8B 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 0xFC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x31CF JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD ISZERO ISZERO DUP6 SWAP1 PUSH2 0xFFA JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xD62C07 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1014 DUP7 DUP3 DUP8 PUSH2 0x1541 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x103D JUMPI PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1038 SWAP2 SWAP1 DUP6 PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x105A JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x105A SWAP2 SWAP1 PUSH2 0x1FE0 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x106A PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x163C 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 0x10A1 JUMPI PUSH2 0x10A1 PUSH2 0x2D8B JUMP JUMPDEST EQ ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10B4 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP5 PUSH2 0x10CB PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E8 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1106 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 0x112A SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST SWAP1 POP PUSH2 0x113A DUP4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1152 CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH2 0x9DD CALLER PUSH1 0x35 SLOAD PUSH2 0x1198 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 0x2165 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 0x22A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH2 0x121D 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 0x2165 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1260 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 0x2165 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH2 0x126C DUP3 DUP3 PUSH2 0x25A4 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 0x12CB 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 0x535 JUMP JUMPDEST POP POP POP POP POP POP PUSH2 0x12E0 CALLER PUSH1 0x35 SLOAD PUSH2 0x9BF PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1332 DUP5 PUSH1 0x2 PUSH1 0x35 SLOAD PUSH2 0x12F5 SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST 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 0x22A5 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1386 DUP6 PUSH1 0x2 PUSH1 0x35 SLOAD PUSH2 0x1349 SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST 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 0x22A5 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 0x13EE DUP4 PUSH2 0x25D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13FA PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1425 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1443 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 0x1467 SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1495 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP2 DUP2 EQ PUSH2 0x14C3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA24CFE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9DD PUSH2 0x14E1 CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x14F0 CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x30FA JUMP JUMPDEST PUSH2 0x25A4 JUMP JUMPDEST PUSH2 0x14FD PUSH2 0x1892 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x16AD JUMP JUMPDEST PUSH2 0x150E PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1538 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x1EC5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1562 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x265E JUMP JUMPDEST PUSH1 0x4 DUP5 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 SWAP3 POP PUSH2 0x15A2 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x159A SWAP1 DUP5 PUSH2 0x330C JUMP JUMPDEST PUSH2 0xD19 PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD DUP4 SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x359D DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 PUSH2 0x15DB SWAP1 DUP7 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x9E0 JUMP JUMPDEST PUSH2 0x1623 PUSH2 0x280F JUMP JUMPDEST PUSH2 0x745 DUP2 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x1634 PUSH2 0x280F JUMP JUMPDEST PUSH2 0xA11 PUSH2 0x283C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1663 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 0x16D7 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 PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x310462A9BF49FFF4A57910EC647C77CBF8AAF2F13394554AC6CDF14FC68DB7E6 SWAP1 PUSH2 0x172B SWAP1 DUP4 SWAP1 PUSH2 0x2E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP1 PUSH8 0xDE0B6B3A7640000 DUP2 LT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x40 MLOAD PUSH4 0x33F4E05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 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 PUSH2 0x172B JUMP JUMPDEST DUP1 PUSH3 0x7A120 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x432E6643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC573DC0F869F6A1D0A74FC7712A63BAABCB5567131D2D98005E163924EDDCBAB SWAP1 PUSH2 0x172B SWAP1 DUP4 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x1837 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E9374FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2CAC JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x20 SHL 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 PUSH32 0x7EFAF01BEC3CDA8D104163BB466D01D7E16F68848301C7EB0749CFA59D680502 SWAP4 PUSH2 0x172B SWAP4 SWAP3 SWAP1 DIV SWAP1 SWAP2 AND SWAP1 PUSH2 0x2CAC JUMP JUMPDEST CALLER PUSH2 0x189B PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA11 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x500 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x18F5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xD19 PUSH2 0x19CA 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 DUP5 SWAP1 PUSH32 0x223103F8EB52E5F43A75655152ACD882A605D70DF57A5C0FEFD30F516B1756D2 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x197C SWAP1 PUSH2 0x196D PUSH2 0x19CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x290E 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 DUP5 SWAP1 PUSH32 0x2226EBD23625A7938FB786DF2248BD171D2E6AD70CB2B654EA1BE830CA17224D SWAP1 PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 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 JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A4A 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 0x1A6E SWAP2 SWAP1 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x9A9 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 0x535 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 0x1AED DUP2 PUSH2 0x1073 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x1B10 JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1B1B PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE022923 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B4B SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B69 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 0x1B8D SWAP2 SWAP1 PUSH2 0x32D9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1BBB JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 SWAP1 PUSH2 0x2E20 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1BC6 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP4 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BF3 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C11 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 0x1C35 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x1C5A 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 0x1C6A DUP4 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x34 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1C8D SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP16 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP14 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 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x37 DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP5 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 SWAP4 DUP7 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 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 0x1D64 JUMPI PUSH2 0x1D64 PUSH2 0x2D8B 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 0x1D8E JUMPI PUSH2 0x1D8E PUSH2 0x2D8B JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE DUP5 MLOAD PUSH1 0x40 DUP1 MLOAD DUP14 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP16 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 PUSH32 0x8A1ECCECCE948A912E2E195DE5960359755AEAC90AD88A3FDE55A77E1A73796B SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP5 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP 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 0x1ECF PUSH2 0x1FBC 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 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F71 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD088B4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9A9 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 PUSH2 0x1A2B JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x300 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x2011 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xD19 PUSH2 0x19CA 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 DUP5 SWAP1 PUSH32 0xF0912EFB86EA1D65A17D64D48393CDB1CA0EA5220DD2BBE438621199D30955B7 SWAP1 PUSH1 0x20 ADD PUSH2 0x193F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2086 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 PUSH1 0x0 DUP1 PUSH2 0x20DB PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x561285E4 DUP6 PUSH2 0x20F2 PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x210F SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x212C 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 0x2150 SWAP2 SWAP1 PUSH2 0x34A5 JUMP JUMPDEST MLOAD SWAP1 POP PUSH2 0x215D DUP2 DUP5 PUSH2 0x330C JUMP JUMPDEST SWAP5 SWAP4 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 0x21A4 PUSH1 0x20 DUP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21AE SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21B9 SWAP1 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 EQ SWAP1 PUSH1 0x1 PUSH2 0x21CC PUSH1 0x20 DUP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21D6 SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x21E1 SWAP1 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x2202 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x221D SWAP2 SWAP1 PUSH2 0x3524 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2230 DUP7 PUSH1 0x60 PUSH2 0x296E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2249 DUP8 PUSH2 0x2244 PUSH1 0x20 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x296E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x226D DUP9 PUSH1 0x20 PUSH2 0x225E DUP2 PUSH1 0x60 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x2268 SWAP2 SWAP1 PUSH2 0x330C JUMP JUMPDEST PUSH2 0x29B9 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 0x22B1 DUP5 PUSH2 0x13E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22BD PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP4 PUSH2 0x22D4 PUSH2 0x1F45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22F1 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x230F 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 0x2333 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x2358 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 0x23C1 DUP2 PUSH2 0x1073 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x23E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x23F5 DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x34 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2418 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x330C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP10 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 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x37 DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP5 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 SWAP4 DUP7 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP6 AND OR SWAP1 SSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x3 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 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 0x24ED JUMPI PUSH2 0x24ED PUSH2 0x2D8B 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 0x2517 JUMPI PUSH2 0x2517 PUSH2 0x2D8B 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 PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE SWAP1 POP POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH32 0xFB70FAF7306B83C2CEC6D8C1627BAAD892CB79968A02CC0353174499ECFD8B35 DUP13 DUP13 PUSH1 0x40 ADD MLOAD DUP13 DUP8 DUP10 PUSH1 0x40 MLOAD PUSH2 0x258E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3552 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP2 EQ DUP1 ISZERO PUSH2 0x25BF JUMPI POP DUP2 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x9DD 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 0x2605 DUP3 PUSH2 0x1E28 JUMP JUMPDEST SWAP1 POP PUSH2 0x215D DUP2 DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x264A 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 0x2A04 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2669 PUSH2 0x1F45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2675 PUSH2 0x1F21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP8 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26A2 SWAP3 SWAP2 SWAP1 PUSH2 0x3389 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C0 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 0x26E4 SWAP2 SWAP1 PUSH2 0x33B9 JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2709 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x2A2E AND JUMP JUMPDEST SWAP1 POP DUP6 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x271A JUMPI POP DUP1 DUP7 GT ISZERO JUMPDEST DUP7 DUP3 SWAP1 SWAP2 PUSH2 0x273D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC6B7C41 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP PUSH1 0x0 PUSH2 0x274F DUP8 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2A8E JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x36 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x2770 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x2A8E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x277E DUP3 DUP5 PUSH2 0x2A2E JUMP JUMPDEST SWAP1 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCB8347FE DUP12 DUP12 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x27A3 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 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 0x27CF SWAP3 SWAP2 SWAP1 PUSH2 0x3365 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2817 PUSH2 0x2AA5 JUMP JUMPDEST PUSH2 0xA11 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x150E PUSH2 0x280F JUMP JUMPDEST PUSH2 0x2844 PUSH2 0x280F 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 DUP1 ISZERO PUSH2 0x296A 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 0x2956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x105A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x297B PUSH1 0x20 DUP4 PUSH2 0x330C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x298D PUSH1 0x20 DUP6 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x29AE JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C6 PUSH1 0x1 DUP4 PUSH2 0x330C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x29D8 PUSH1 0x1 DUP6 PUSH2 0x330C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x29F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP POP POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A14 DUP7 DUP7 PUSH2 0x2ABF JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2A24 DUP3 DUP3 PUSH2 0x2B0C JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A3D DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x2A50 JUMPI POP PUSH2 0x2A50 DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x535 SWAP3 SWAP2 SWAP1 PUSH2 0x3054 JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x2A84 DUP4 DUP6 PUSH2 0x3585 JUMP JUMPDEST PUSH2 0x9DD SWAP2 SWAP1 PUSH2 0x3466 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x2A9E JUMPI DUP2 PUSH2 0x9DD JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AAF PUSH2 0x15F2 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 0x2AF9 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2AEB DUP9 DUP3 DUP6 DUP6 PUSH2 0x2BC5 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x2B05 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 0x2B20 JUMPI PUSH2 0x2B20 PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B29 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2B3D JUMPI PUSH2 0x2B3D PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B5B 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 0x2B6F JUMPI PUSH2 0x2B6F PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x2B90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x535 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2BA4 JUMPI PUSH2 0x2BA4 PUSH2 0x2D8B JUMP JUMPDEST SUB PUSH2 0x296A JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x535 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x2BF6 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2C80 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 0x2C4A 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 0x2C76 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2C80 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 0x2C9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF 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 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x2D1D DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH2 0x2D2D DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x2D3D DUP2 PUSH2 0x2CD2 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x2D54 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x2D64 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D84 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 0x2DB1 JUMPI PUSH2 0x2DB1 PUSH2 0x2D8B JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE DUP10 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH2 0x120 DUP2 ADD PUSH1 0x4 DUP8 LT PUSH2 0x2DEC JUMPI PUSH2 0x2DEC PUSH2 0x2D8B JUMP JUMPDEST DUP7 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2DFF PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2DA1 JUMP JUMPDEST DUP5 PUSH1 0xC0 DUP4 ADD MSTORE DUP4 PUSH1 0xE0 DUP4 ADD MSTORE DUP3 PUSH2 0x100 DUP4 ADD MSTORE SWAP11 SWAP10 POP POP POP POP 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 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2E52 DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CE7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2ECD DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2EDD DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CBD JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F4C DUP2 PUSH2 0x2F0F JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2F6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FD9 DUP6 DUP3 DUP7 ADD PUSH2 0x2F5C 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 0x2FFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x301D DUP8 DUP3 DUP9 ADD PUSH2 0x2F5C 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 0x303C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3048 DUP8 DUP3 DUP9 ADD PUSH2 0x2F5C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 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 0x3092 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 0x3092 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3092 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x310D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x3118 PUSH2 0x3062 JUMP JUMPDEST DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x3157 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3176 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x180 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x319A DUP5 DUP5 PUSH2 0x3164 JUMP JUMPDEST SWAP2 POP PUSH2 0x31A9 DUP5 PUSH1 0xC0 DUP6 ADD PUSH2 0x3164 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x113A DUP2 PUSH2 0x2CD2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E0 DUP3 DUP5 PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x31F0 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 0x3222 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 DUP1 MLOAD PUSH2 0x3253 DUP2 PUSH2 0x2CBD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3273 PUSH2 0x3098 JUMP JUMPDEST SWAP1 POP PUSH2 0x327E DUP3 PUSH2 0x3248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 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 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9DD DUP4 DUP4 PUSH2 0x3258 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 0x9E0 JUMPI PUSH2 0x9E0 PUSH2 0x32F6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3345 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x3329 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 0x215D SWAP1 DUP4 ADD DUP5 PUSH2 0x331F 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 0x3253 DUP2 PUSH2 0x2CE7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3253 DUP2 PUSH2 0x2CD2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x33CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x33D8 PUSH2 0x30C9 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 0x33FC PUSH1 0x60 DUP6 ADD PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x340D PUSH1 0x80 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x341E PUSH1 0xA0 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x342F PUSH1 0xC0 DUP6 ADD PUSH2 0x33A3 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x3440 PUSH1 0xE0 DUP6 ADD PUSH2 0x33AE JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3483 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x349A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x113A DUP2 PUSH2 0x2F0F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x34B8 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 0x34EA 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 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3539 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 DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3571 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x331F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x9E0 JUMPI PUSH2 0x9E0 PUSH2 0x32F6 JUMP INVALID PUSH14 0x800AAAF64B9A1F321DCD63DA0436 SWAP14 CALLER 0xD8 LOG0 0xD4 SWAP11 0xD0 0xFB 0xBA ADDMOD GAS 0xAB BLOBBASEFEE SWAP9 0xBF BALANCE 0xC4 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 SIGNEXTEND RETURNDATASIZE 0xEC 0x1E TSTORE 0x2D SAR EQ SMOD CALLER 0xDC 0xA7 0xD5 AND CODECOPY STOP 0xC1 0xFC DUP9 0x29 SELFBALANCE 0xB3 KECCAK256 DUP9 PUSH5 0x910C6F452D 0xE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "2323:25016:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8745:372;;;;;;:::i;:::-;;:::i;:::-;;1153:28:56;;;;;-1:-1:-1;;;1153:28:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;4116:539:55;;;;;;:::i;:::-;;:::i;1229:77:56:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1229:77:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11543:130:55:-;;;;;;:::i;:::-;;:::i;2648:56::-;;2698:6;2648:56;;10661:517;;;;;;:::i;:::-;;:::i;583:39:56:-;;;;;-1:-1:-1;;;;;583:39:56;;;;;;;;;;:::i;866:29::-;;;;;;;;;3933:25:70;;;3921:2;3906:18;866:29:56;3787:177:70;9922:304:55;;;;;;:::i;:::-;;:::i;4697:336::-;;;;;;:::i;:::-;;:::i;12603:105::-;12688:13;;-1:-1:-1;;;12688:13:55;;-1:-1:-1;;;;;12688:13:55;12603:105;;;;;;;:::i;779:27:56:-;;;;;-1:-1:-1;;;779:27:56;;-1:-1:-1;;;;;779:27:56;;;12255:149:55;;;;;;:::i;:::-;;:::i;705:25:56:-;;;;;-1:-1:-1;;;;;705:25:56;;;3155:101:38;;;:::i;11715:147:55:-;;;;;;:::i;:::-;;:::i;7343:1360::-;;;;;;:::i;:::-;;:::i;2441:144:38:-;;;:::i;1020:32:56:-;;;;;;;;;10268:351:55;;;;;;:::i;:::-;;:::i;12077:136::-;;;;;;:::i;:::-;;:::i;11904:131::-;;;;;;:::i;:::-;;:::i;9159:721::-;;;;;;:::i;:::-;;:::i;11220:114::-;;;;;;:::i;:::-;;:::i;12446:115::-;12536:18;;;;12446:115;;14115:153;;;;;;:::i;:::-;;:::i;:::-;;;7203:14:70;;7196:22;7178:41;;7166:2;7151:18;14115:153:55;7038:187:70;12750:310:55;;;;;;:::i;:::-;;:::i;5075:452::-;;;;;;:::i;:::-;;:::i;5569:1732::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;13400:673::-;;;;;;:::i;:::-;;:::i;2768:50::-;;2814:4;2768:50;;13102:256;;;;;;:::i;:::-;;:::i;11376:125::-;;;;;;:::i;:::-;;:::i;3405:215:38:-;;;;;;:::i;:::-;;:::i;8745:372:55:-;2986:10;;-1:-1:-1;;;;;2986:10:55;2972;:24;2964:64;;;;-1:-1:-1;;;2964:64:55;;;;;;;;;;;;8882:9:::1;3231:27;3248:9;3231:16;:27::i;:::-;3289:9;3223:77;;;;;-1:-1:-1::0;;;3223:77:55::1;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;3223:77:55::1;;;;;;;;;-1:-1:-1::0;3361:37:55::1;3331:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3444:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3331:67:::1;3310:171;;;;-1:-1:-1::0;;;3310:171:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8933:19:55::2;::::0;;;:8:::2;:19;::::0;;;;26223:25;;;8933:19;;26223:39;8903:95:::2;;;;-1:-1:-1::0;;;8903:95:55::2;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;8903:95:55::2;-1:-1:-1::0;9008:23:55::2;9034:19:::0;;;:8:::2;:19;::::0;;;;9063:47:::2;9043:9:::0;9034:19;9098:11;9063:14:::2;:47::i;:::-;8893:224;3038:1:::1;8745:372:::0;;:::o;4116:539::-;4158:30:39;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:39;-1:-1:-1;;;4302:15:39;;;4301:16;;-1:-1:-1;;;;;4348:14:39;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:39;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:39;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:39;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;;;;;4949:18:39;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:39;-1:-1:-1;;;5011:22:39;;;4977:67;4366:21:55::1;4381:5;4366:14;:21::i;:::-;4397:27;:25;:27::i;:::-;4435;4450:11;4435:14;:27::i;:::-;4472:33;4490:14;4472:17;:33::i;:::-;4515:35;4534:15;4515:18;:35::i;:::-;4560:43;4583:19;4560:22;:43::i;:::-;4613:35;4632:15;4613:18;:35::i;:::-;5068:14:39::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:39;;;5140:14;;;;;;5098:23;;5140:14;:::i;:::-;;;;;;;;5064:101;4092:1079;;;;;4116:539:55;;;;;;:::o;11543:130::-;2334:13:38;:11;:13::i;:::-;11632:34:55::1;11651:14;11632:18;:34::i;:::-;11543:130:::0;:::o;10661:517::-;10735:9;3688:27;3705:9;3688:16;:27::i;:::-;3746:9;3680:77;;;;;-1:-1:-1;;;3680:77:55;;;;;;3933:25:70;;3921:2;3906:18;;3787:177;3680:77:55;-1:-1:-1;3789:19:55;;;;:8;:19;;;;;:29;;;-1:-1:-1;;;;;3789:29:55;3775:10;:43;3767:82;;;;-1:-1:-1;;;3767:82:55;;;;;;;;;;;;10765:9:::1;3231:27;3248:9;3231:16;:27::i;:::-;3289:9;3223:77;;;;;-1:-1:-1::0;;;3223:77:55::1;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;3223:77:55::1;-1:-1:-1::0;3361:37:55::1;3331:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3444:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3331:67:::1;3310:171;;;;-1:-1:-1::0;;;3310:171:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;10786:23:55::2;10812:19:::0;;;:8:::2;:19;::::0;;;;10898:21:::2;::::0;::::2;::::0;10923:15:::2;-1:-1:-1::0;10898:40:55::2;10890:91;;;;-1:-1:-1::0;;;10890:91:55::2;;;;;;;;;;;;10991:34;11006:9;11017:7;10991:14;:34::i;:::-;26223:25:::0;;;;:39;11036:136:::2;;11100:24;::::0;::::2;::::0;11126:34:::2;::::0;;;:8:::2;:34;::::0;;;;11085:76:::2;::::0;11100:24;11085:14:::2;:76::i;9922:304::-:0;2986:10;;-1:-1:-1;;;;;2986:10:55;2972;:24;2964:64;;;;-1:-1:-1;;;2964:64:55;;;;;;;;;;;;10016:9:::1;3231:27;3248:9;3231:16;:27::i;:::-;3289:9;3223:77;;;;;-1:-1:-1::0;;;3223:77:55::1;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;3223:77:55::1;-1:-1:-1::0;3361:37:55::1;3331:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3444:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3331:67:::1;3310:171;;;;-1:-1:-1::0;;;3310:171:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;10037:23:55::2;10063:19:::0;;;:8:::2;:19;::::0;;;;26223:25;;;;10063:19;;26223:39;10092:83:::2;;;;-1:-1:-1::0;;;10092:83:55::2;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;10092:83:55::2;;10185:34;10200:9;10211:7;10185:14;:34::i;:::-;10027:199;3038:1:::1;9922:304:::0;:::o;4697:336::-;4790:7;4845:52;4870:10;4882:14;;4845:13;:11;:13::i;:::-;-1:-1:-1;;;;;4845:24:55;;:52;:24;:52::i;:::-;4943:83;4980:10;4992:14;;5008:12;5022:3;4943:36;:83::i;:::-;4936:90;;4697:336;;;;;:::o;12255:149::-;12348:7;12374:23;;;;;;;;12389:7;12374:23;:::i;:::-;:14;:23::i;3155:101:38:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;11715:147:55:-;2334:13:38;:11;:13::i;:::-;11812:43:55::1;11835:19;11812:22;:43::i;7343:1360::-:0;2986:10;;7546:7;;-1:-1:-1;;;;;2986:10:55;2972;:24;2964:64;;;;-1:-1:-1;;;2964:64:55;;;;;;;;;;;;7625:40:::1;::::0;-1:-1:-1;;;;;;13407:2:70;13378:15;;;13374:45;7625:40:55::1;::::0;::::1;13362:58:70::0;-1:-1:-1;;;13436:12:70;;;13429:30;7595:17:55::1;::::0;13475:12:70;;7625:40:55::1;;;;;;;;;;;;7615:51;;;;;;7595:71;;7730:15;7748;:13;:15::i;:::-;-1:-1:-1::0;;;;;7748:29:55::1;;7778:12;7748:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51:::0;;-1:-1:-1;7870:12:55;-1:-1:-1;;;;;7817:21:55;::::1;7809:75;;;;-1:-1:-1::0;;;7809:75:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7942:271:55::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7942:271:55;;::::1;::::0;;;::::1;;::::0;::::1;::::0;-1:-1:-1;7942:271:55;;;;;;;;;;;;;8037:25:::1;7942:271:::0;;;;8076:38:::1;7942:271:::0;;;;8128:15:::1;7942:271:::0;;;;;;8175:13:::1;::::0;7942:271;;;;8157:31:::1;::::0;-1:-1:-1;;;8175:13:55;::::1;-1:-1:-1::0;;;;;8175:13:55::1;::::0;8157:31:::1;:::i;:::-;7942:271:::0;;8202:1:::1;7942:271;::::0;;::::1;::::0;;;7920:19;;;:8:::1;:19:::0;;;;;;;:293;;;;-1:-1:-1;;;;;7920:293:55;;::::1;-1:-1:-1::0;;;;;;7920:293:55;;::::1;;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;;::::1;::::0;;;::::1;;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;:19;;:293;;;;-1:-1:-1;;7920:293:55;;::::1;::::0;;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;7920:293:55::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;7920:293:55::1;;::::0;::::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;7920:293:55::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;-1:-1:-1;8289:21:55::1;:19;:21::i;:::-;8253:57;;8320:16;-1:-1:-1::0;;;;;8320:22:55::1;;8343:7;8363:11;8376:13;8352:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8320:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8434:50;8459:9;8470:13;8434;:11;:13::i;:::-;-1:-1:-1::0;;;;;8434:24:55::1;::::0;:50;:24:::1;:50::i;:::-;8500:93;::::0;;-1:-1:-1;;;;;16505:32:70;;;16487:51;;16569:2;16554:18;;16547:34;;;16597:18;;;16590:34;;;8500:93:55;;::::1;::::0;;::::1;::::0;8521:9;;8500:93:::1;::::0;16475:2:70;16460:18;8500:93:55::1;;;;;;;8644:9;-1:-1:-1::0;;;;;8608:61:55::1;8635:7;-1:-1:-1::0;;;;;8608:61:55::1;8624:9;-1:-1:-1::0;;;;;;;;;;;8655:13:55::1;8608:61;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;8608:61:55::1;;;;;;;;-1:-1:-1::0;8687:9:55;;7343:1360;-1:-1:-1;;;;;;7343:1360:55:o;2441:144:38:-;2487:7;2506:24;2533:20;:18;:20::i;:::-;2570:8;-1:-1:-1;;;;;2570:8:38;;2441:144;-1:-1:-1;;2441:144:38:o;10268:351:55:-;2986:10;;-1:-1:-1;;;;;2986:10:55;2972;:24;2964:64;;;;-1:-1:-1;;;2964:64:55;;;;;;;;;;;;10360:9:::1;3231:27;3248:9;3231:16;:27::i;:::-;3289:9;3223:77;;;;;-1:-1:-1::0;;;3223:77:55::1;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;3223:77:55::1;-1:-1:-1::0;3361:37:55::1;3331:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3444:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3331:67:::1;3310:171;;;;-1:-1:-1::0;;;3310:171:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;10381:23:55::2;10407:19:::0;;;:8:::2;:19;::::0;;;;10436:32:::2;10416:9:::0;10407:19;10436:12:::2;:32::i;:::-;26223:25:::0;;;;:39;10479:134:::2;;10541:24;::::0;::::2;::::0;10567:34:::2;::::0;;;:8:::2;:34;::::0;;;;10528:74:::2;::::0;10541:24;10528:12:::2;:74::i;12077:136::-:0;2334:13:38;:11;:13::i;:::-;12169:37:55::1;12189:16;12169:19;:37::i;11904:131::-:0;2334:13:38;:11;:13::i;:::-;11993:35:55::1;12012:15;11993:18;:35::i;9159:721::-:0;2986:10;;-1:-1:-1;;;;;2986:10:55;2972;:24;2964:64;;;;-1:-1:-1;;;2964:64:55;;;;;;;;;;;;9378:9:::1;3231:27;3248:9;3231:16;:27::i;:::-;3289:9;3223:77;;;;;-1:-1:-1::0;;;3223:77:55::1;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;3223:77:55::1;-1:-1:-1::0;3361:37:55::1;3331:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3444:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3331:67:::1;3310:171;;;;-1:-1:-1::0;;;3310:171:55::1;;;;;;;;:::i;:::-;-1:-1:-1::0;9428:19:55::2;::::0;;;:8:::2;:19;::::0;;;;26223:25;;;:39;;9485:9:::2;9399:97;;;;;-1:-1:-1::0;;;;;;9399:97:55::2;;;;;;3933:25:70::0;;3921:2;3906:18;;3787:177;9399:97:55::2;-1:-1:-1::0;9506:23:55::2;9532:19:::0;;;:8:::2;:19;::::0;;;;9561:47:::2;9541:9:::0;9532:19;9596:11;9561:14:::2;:47::i;:::-;9623:23;9619:255;;;9677:24;::::0;::::2;::::0;9703:34:::2;::::0;;;:8:::2;:34;::::0;;;;9662:96:::2;::::0;9677:24;9739:18;9662:14:::2;:96::i;:::-;9619:255;;;9802:24;::::0;::::2;::::0;9828:34:::2;::::0;;;:8:::2;:34;::::0;;;;9789:74:::2;::::0;9802:24;9789:12:::2;:74::i;:::-;9389:491;3038:1:::1;9159:721:::0;;;;:::o;11220:114::-;2334:13:38;:11;:13::i;:::-;11301:26:55::1;11316:10;11301:14;:26::i;14115:153::-:0;14190:4;;14213:19;;;;:8;:19;;;;;:26;;;;;;;;:48;;;;;;;;:::i;:::-;;;;14115:153;-1:-1:-1;;14115:153:55:o;12750:310::-;12825:7;12844:42;12889:15;:13;:15::i;:::-;-1:-1:-1;;;;;12889:28:55;;12931:7;12960:21;:19;:21::i;:::-;12889:103;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12844:148;;13009:44;13027:7;13036:9;:16;;;13009:17;:44::i;:::-;13002:51;12750:310;-1:-1:-1;;;12750:310:55:o;5075:452::-;5162:7;5217:52;5242:10;5254:14;;5217:13;:11;:13::i;:52::-;5327:193;5379:10;5407:14;;5439:34;5457:15;;5439:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5439:17:55;;-1:-1:-1;;;5439:34:55:i;:::-;5491:15;;5327:193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5327:34:55;;-1:-1:-1;;;5327:193:55:i;5569:1732::-;5720:7;5729;5748:17;5768:10;5748:30;;5823:37;5863:35;5881:16;;5863:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5863:17:55;;-1:-1:-1;;;5863:35:55:i;:::-;5823:75;;5908:37;5948:35;5966:16;;5948:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5948:17:55;;-1:-1:-1;;;5948:35:55:i;:::-;5908:75;;6065:54;6092:12;6106;6065:26;:54::i;:::-;6191:23;;6232:24;;;;;6274:33;;;;;6325:23;;6366:24;;;;6408:33;;;;6191:23;;6232:24;;6274:33;;6325:23;6044:421;;;;-1:-1:-1;;;6044:421:55;;;;;18750:25:70;;;;18791:18;;;18784:34;;;;18834:18;;;18827:34;;;;18877:18;;;18870:34;18920:19;;;18913:35;18964:19;;;18957:35;18722:19;;6044:421:55;18463:535:70;6044:421:55;;;;;;;6512:52;6537:10;6549:14;;6512:13;:11;:13::i;:52::-;6666:12;6681:155;6729:9;6769:1;6752:14;;:18;;;;:::i;:::-;6784:12;6810:16;;6681:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6681:34:55;;-1:-1:-1;;;6681:155:55:i;:::-;6666:170;;6846:12;6861:155;6909:9;6949:1;6932:14;;:18;;;;:::i;:::-;6964:12;6990:16;;6861:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6861:34:55;;-1:-1:-1;;;6861:155:55:i;:::-;7079:14;;;;:8;:14;;;;;;:31;;;;:38;;;7127:14;;;;;;:31;:38;;;7239:25;6846:170;;-1:-1:-1;6846:170:55;;7088:4;;7239:25;;;7283:4;;;;-1:-1:-1;5569:1732:55;-1:-1:-1;;;;;;;;5569:1732:55:o;13400:673::-;13490:7;13581:20;13604:27;13619:11;13604:14;:27::i;:::-;13581:50;;13642:29;13674:21;:19;:21::i;:::-;-1:-1:-1;;;;;13674:35:55;;13710:12;13674:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13741:13;;13642:81;;-1:-1:-1;13800:12:55;;-1:-1:-1;;;;;13741:27:55;13733:81;;;;-1:-1:-1;;;13733:81:55;;;;;;;;:::i;:::-;-1:-1:-1;13875:32:55;;;;13845:26;;;;;:62;;;13824:212;;;;-1:-1:-1;;;13824:212:55;;;;;;;;;:::i;:::-;-1:-1:-1;;14053:13:55;;13400:673;-1:-1:-1;;;13400:673:55:o;13102:256::-;13274:4;13297:54;;;;;;;;13324:12;13297:54;:::i;:::-;;;;;;;;13338:12;13297:54;:::i;:::-;:26;:54::i;11376:125::-;2334:13:38;:11;:13::i;:::-;11462:32:55::1;11480:13;11462:17;:32::i;3405:215:38:-:0;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:38;::::1;3485:91;;3562:1;3534:31;;-1:-1:-1::0;;;3534:31:38::1;;;;;;;;:::i;3485:91::-;3585:28;3604:8;3585:18;:28::i;18915:486:55:-:0;19066:16;;19100:22;;;;19027;;19052:71;;-1:-1:-1;;;;;19066:16:55;;;;19084:14;;19052:13;:71::i;:::-;19133:15;;;:56;;-1:-1:-1;;19133:56:55;;;;;-1:-1:-1;19224:18:55;;;19261:16;;;;19027:96;;-1:-1:-1;19199:79:55;;-1:-1:-1;;;;;19224:18:55;;;;19244:33;;19027:96;19244:33;:::i;:::-;19199:13;:11;:13::i;:79::-;19340:18;;;;19322:16;;19360;;;;-1:-1:-1;;;;;19340:18:55;;;;19322:16;;;;19310:10;;-1:-1:-1;;;;;;;;;;;19294:100:55;19360:33;;19379:14;;19360:33;:::i;:::-;19294:100;;3933:25:70;;;3921:2;3906:18;19294:100:55;;;;;;;19017:384;18915:486;;;:::o;9071:205:39:-;9129:30;;3147:66;9186:27;8819:122;1847:127:38;6929:20:39;:18;:20::i;:::-;1929:38:38::1;1954:12;1929:24;:38::i;1739:117:67:-:0;6929:20:39;:18;:20::i;:::-;1812:37:67::1;:35;:37::i;22959:215:55:-:0;-1:-1:-1;;;;;23030:25:55;;23022:70;;;;-1:-1:-1;;;23022:70:55;;;;;;;;;;;;23102:10;:24;;-1:-1:-1;;;;;;23102:24:55;-1:-1:-1;;;;;23102:24:55;;;;;;;;23141:26;;;;-1:-1:-1;;23141:26:55;22959:215;:::o;23359:225::-;23435:14;-1:-1:-1;;;;;23435:19:55;23453:1;23435:19;23427:63;;;;-1:-1:-1;;;23427:63:55;;;;;;;;;;;;23500:13;:30;;-1:-1:-1;;;;;;;;23500:30:55;-1:-1:-1;;;;;;;;23500:30:55;;;;;;23545:32;;;;;;23500:30;;23545:32;:::i;:::-;;;;;;;;23359:225;:::o;23814:270::-;23893:15;2814:4;23893:38;;;23885:101;;;;-1:-1:-1;;;23885:101:55;;;;;;3933:25:70;;3921:2;3906:18;;3787:177;23885:101:55;-1:-1:-1;23996:14:55;:32;;;24043:34;;3933:25:70;;;24043:34:55;;3921:2:70;3906:18;24043:34:55;3787:177:70;24312:341:55;24411:19;2698:6;24411:47;;;;;24390:149;;;;-1:-1:-1;;;24390:149:55;;;;;;;;:::i;:::-;-1:-1:-1;24549:18:55;:40;;-1:-1:-1;;24549:40:55;;;;;;;24604:42;;;;;;24549:40;;24604:42;:::i;24805:265::-;24883:35;;;;452:9:35;-1:-1:-1;2073:16:35;24875:98:55;;;;-1:-1:-1;;;24875:98:55;;;;;;;;:::i;:::-;-1:-1:-1;24983:14:55;:32;;-1:-1:-1;;;;24983:32:55;-1:-1:-1;;;24983:32:55;;;;;;;;;;;;;;25030:33;;;;;;25048:14;;;;;;;25030:33;:::i;2658:162:38:-;966:10:40;2717:7:38;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:38;;2713:101;;966:10:40;2763:40:38;;-1:-1:-1;;;2763:40:38;;;;;;;;:::i;20423:324:55:-;20511:15;;;:57;;-1:-1:-1;;20511:57:55;;;;;-1:-1:-1;20603:18:55;;;20623:16;;;;20578:62;;-1:-1:-1;;;;;20603:18:55;;20578:13;:11;:13::i;:62::-;20703:18;;;;20685:16;;20723;;;;20656:84;;3933:25:70;;;-1:-1:-1;;;;;20703:18:55;;;;20685:16;;;;20673:10;;20656:84;;3921:2:70;3906:18;20656:84:55;;;;;;;;20423:324;;:::o;19537:302::-;19625:15;;;:56;;-1:-1:-1;;19625:56:55;;;;;19643:38;19716:16;;;19691:42;;:13;:11;:13::i;:::-;-1:-1:-1;;;;;19691:24:55;;;:42::i;:::-;19795:18;;;;19777:16;;19815;;;;19749:83;;3933:25:70;;;-1:-1:-1;;;;;19795:18:55;;;;19777:16;;;;19765:10;;19749:83;;3921:2:70;3906:18;19749:83:55;3787:177:70;5825:94:37;5901:11;;5825:94::o;598:221:11:-;698:11;;694:119;;733:55;;-1:-1:-1;;;733:55:11;;-1:-1:-1;;;;;19702:32:70;;;733:55:11;;;19684:51:70;773:4:11;19751:18:70;;;19744:60;19820:18;;;19813:34;;;733:24:11;;;;;19657:18:70;;733:55:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;725:77;;;;-1:-1:-1;;;725:77:11;;20310:2:70;725:77:11;;;20292:21:70;20349:1;20329:18;;;20322:29;-1:-1:-1;;;20367:18:70;;;20360:39;20416:18;;725:77:11;20108:332:70;16970:1750:55;17225:37;;-1:-1:-1;;;;;;20647:2:70;20618:15;;;20614:45;17225:37:55;;;20602:58:70;20676:12;;;20669:28;;;17146:7:55;;;;20713:12:70;;17225:37:55;;;;;;;;;;;;17215:48;;;;;;17195:68;;17341:27;17358:9;17341:16;:27::i;:::-;17340:28;17406:9;17332:85;;;;;-1:-1:-1;;;17332:85:55;;;;;;3933:25:70;;3921:2;3906:18;;3787:177;17332:85:55;;17461:33;17497:21;:19;:21::i;:::-;17461:57;;17528:29;17560:16;-1:-1:-1;;;;;17560:30:55;;17591:13;17560:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17633:13;;17528:77;;-1:-1:-1;17717:13:55;-1:-1:-1;;;;;17664:21:55;;17656:76;;;;-1:-1:-1;;;17656:76:55;;;;;;;;:::i;:::-;;17785:42;17830:15;:13;:15::i;:::-;-1:-1:-1;;;;;17830:28:55;;17859:7;17876:16;17830:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17912:16;;17785:109;;-1:-1:-1;17912:16:55;:21;17904:58;;;;-1:-1:-1;;;17904:58:55;;;;;;;;;;;;17998:21;18022:44;18040:7;18049:9;:16;;;18022:17;:44::i;:::-;18118:13;;17998:68;;-1:-1:-1;18076:21:55;;18100:31;;-1:-1:-1;;;18118:13:55;;-1:-1:-1;;;;;18118:13:55;18100:15;:31;:::i;:::-;18163:280;;;;;;;;18184:13;;-1:-1:-1;;;;;18163:280:55;;;;;;;;;;;;;;;;;-1:-1:-1;18163:280:55;;;;18076:55;;-1:-1:-1;18163:280:55;;;18272:27;18163:280;;;;18313:37;18163:280;;18364:15;18163:280;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18141:19:55;;;:8;:19;;;;;:302;;;;-1:-1:-1;;;;;18141:302:55;;;-1:-1:-1;;;;;;18141:302:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18141:302:55;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;18141:302:55;;;;;;;;;-1:-1:-1;;18141:302:55;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;18141:302:55;;;;;;;;;;;;;;;;;;;;;;;;;;18518:13;;18459:227;;;20995:25:70;;;-1:-1:-1;;;;;21056:32:70;;;21051:2;21036:18;;21029:60;21105:18;;;21098:34;;;21163:2;21148:18;;21141:34;;;21206:3;21191:19;;21184:35;;;18459:227:55;;;;;;;;18495:9;;18459:227;;20982:3:70;20967:19;18459:227:55;;;;;;;-1:-1:-1;18704:9:55;;16970:1750;-1:-1:-1;;;;;;;;;;16970:1750:55:o;3653:669:67:-;3737:7;3915:16;4075:19;;4124:20;;;;;4174:29;;;;;3988:241;;925:89;3988:241;;;21461:25:70;21502:18;;;21495:34;;;;21545:18;;;21538:34;;;;21588:18;;;;21581:34;;;;3988:241:67;;;;;;;;;;21433:19:70;;;3988:241:67;;3953:330;;;;;;-1:-1:-1;;;3802:499:67;;;21884:27:70;21927:11;;;21920:27;;;;21963:12;;;;21956:28;;;;3802:499:67;;;;;;;;;;22000:12:70;;;;3802:499:67;;;3775:540;;;;;;3653:669::o;3774:248:38:-;3847:24;3874:20;:18;:20::i;:::-;3923:8;;-1:-1:-1;;;;;3941:19:38;;;-1:-1:-1;;;;;;3941:19:38;;;;;;3975:40;;3847:47;;-1:-1:-1;3923:8:38;;;;;3975:40;;3904:16;;3975:40;3837:185;;3774:248;:::o;6033:102:37:-;6115:13;;6033:102::o;25727:206:55:-;25824:15;;25780:16;;-1:-1:-1;;;;;25824:15:55;25808:86;;;;-1:-1:-1;;;25808:86:55;;;;;;;;;;;;-1:-1:-1;25911:15:55;;-1:-1:-1;;;;;25911:15:55;;25727:206::o;1050:198:11:-;1148:11;;1144:98;;1183:34;;-1:-1:-1;;;1183:34:11;;-1:-1:-1;;;;;22215:32:70;;;1183:34:11;;;22197:51:70;22264:18;;;22257:34;;;1183:20:11;;;;;22170:18:70;;1183:34:11;22023:274:70;1192:159:38;1313:22;;1192:159::o;19973:314:55:-;20059:15;;;:53;;-1:-1:-1;;20059:53:55;;;;;-1:-1:-1;20147:18:55;;;20167:16;;;;20122:62;;-1:-1:-1;;;;;20147:18:55;;20122:13;:11;:13::i;:62::-;20243:18;;;;20225:16;;20263;;;;20200:80;;3933:25:70;;;-1:-1:-1;;;;;20243:18:55;;;;20225:16;;;;20213:10;;20200:80;;3921:2:70;3906:18;20200:80:55;3787:177:70;25279:268:55;-1:-1:-1;;;;;25360:30:55;;25352:75;;;;-1:-1:-1;;;25352:75:55;;;;;;;;;;;;25437:15;:52;;-1:-1:-1;;;;;;25437:52:55;-1:-1:-1;;;;;25437:52:55;;;;;;;;25504:36;;;;-1:-1:-1;;25504:36:55;25279:268;:::o;27065:272::-;27155:7;27174:23;27200:15;:13;:15::i;:::-;-1:-1:-1;;;;;27200:33:55;;27234:8;27252:21;:19;:21::i;:::-;27200:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;-1:-1:-1;27299:31:55;27200:82;27299:13;:31;:::i;:::-;27292:38;27065:272;-1:-1:-1;;;;27065:272:55:o;3718:820:62:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1695:1:62;2204:27;1587:2;;2204:27;:::i;:::-;:42;;;;:::i;:::-;2347:35;;1371:2;2347:35;:::i;:::-;3862:12;;:38;;;;1695:1;2204:27;1587:2;;2204:27;:::i;:::-;:42;;;;:::i;:::-;2347:35;;1371:2;2347:35;:::i;:::-;3841:150;;;;;;-1:-1:-1;;;3841:150:62;;;;;;;;;:::i;:::-;;;4029:18;4049:19;4070:28;4126:5;4102:80;;;;;;;;;;;;:::i;:::-;4028:154;;;;;;4307:9;4319:31;4330:5;1371:2;4319:10;:31::i;:::-;4307:43;-1:-1:-1;4360:9:62;4372:31;4383:5;1926:33;1479:2;1371;1926:33;:::i;:::-;4372:10;:31::i;:::-;4360:43;-1:-1:-1;4413:7:62;4423:29;4432:5;1587:2;2065:33;1587:2;1371;2065:33;:::i;:::-;:48;;;;:::i;:::-;4423:8;:29::i;:::-;4470:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4470:61:62;;;;;;;3718:820;-1:-1:-1;;3718:820:62:o;14814:1838:55:-;15021:7;15095:15;15113:35;15135:12;15113:21;:35::i;:::-;15095:53;;15196:42;15241:15;:13;:15::i;:::-;-1:-1:-1;;;;;15241:28:55;;15283:7;15312:21;:19;:21::i;:::-;15241:103;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15362:16;;15196:148;;-1:-1:-1;15362:16:55;:21;15354:58;;;;-1:-1:-1;;;15354:58:55;;;;;;;;;;;;15530:23;;15571:24;;;;;15613:33;;;;;15496:217;;;;;24114:19:70;;;;24149:12;;24142:28;24186:12;;;;24179:28;;;;-1:-1:-1;;;;;;24241:15:70;;;24237:45;;24223:12;;;24216:67;24318:15;;;;24314:45;;;24299:13;;;24292:68;15453:17:55;;24376:13:70;;15496:217:55;;;;;;;;;;;;15473:250;;;;;;15453:270;;15781:27;15798:9;15781:16;:27::i;:::-;15780:28;15846:9;15772:85;;;;;-1:-1:-1;;;15772:85:55;;;;;;3933:25:70;;3921:2;3906:18;;3787:177;15772:85:55;;15893:21;15917:44;15935:7;15944:9;:16;;;15917:17;:44::i;:::-;16013:13;;15893:68;;-1:-1:-1;15971:21:55;;15995:31;;-1:-1:-1;;;16013:13:55;;-1:-1:-1;;;;;16013:13:55;15995:15;:31;:::i;:::-;16058:294;;;;;;;;-1:-1:-1;;;;;16058:294:55;;;;;;;;;;;;;;;;;-1:-1:-1;16058:294:55;;;;15971:55;;-1:-1:-1;16058:294:55;;;16184:24;16058:294;;;;16222:37;16058:294;;16273:15;16058:294;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16036:19:55;;;:8;:19;;;;;:316;;;;-1:-1:-1;;;;;16036:316:55;;;-1:-1:-1;;;;;;16036:316:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16036:316:55;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;16036:316:55;;;;;;;;;-1:-1:-1;;16036:316:55;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16445:10;-1:-1:-1;;;;;16368:250:55;16424:7;-1:-1:-1;;;;;16368:250:55;16401:9;16368:250;16469:8;16491:12;:33;;;16538:16;16568:13;16595;16368:250;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;16636:9:55;;14814:1838;-1:-1:-1;;;;;;;;14814:1838:55:o;3164:391:62:-;3365:24;;3337;;3313:4;;3337:52;:140;;;;;3443:13;:34;;;3405:13;:34;;;:72;3337:140;:210;;;;-1:-1:-1;;3522:25:62;;;;;3493;;;:54;;;3164:391::o;2512:700:67:-;2732:151;;;;;;;;2765:23;;2732:151;;;2802:24;;;;2732:151;;;;2840:33;;;;2732:151;;;;;;;2598:7;;;2915:23;2732:151;2915:14;:23::i;:::-;2893:45;;3113:92;3127:11;3157:12;:14;;;3173:12;:14;;;3189:12;:14;;;3140:64;;;;;;;;;25090:19:70;;;25134:2;25125:12;;25118:28;;;;25202:3;25180:16;-1:-1:-1;;;;;;25176:36:70;25171:2;25162:12;;25155:58;25238:2;25229:12;;24909:338;3140:64:67;;;;;;;;;;;;;3113:13;:92::i;21229:1539:55:-;21369:7;21388:33;21424:21;:19;:21::i;:::-;21388:57;;21500:42;21545:15;:13;:15::i;:::-;-1:-1:-1;;;;;21545:28:55;;21574:8;21592:16;21545:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21723:14;;21500:110;;-1:-1:-1;21670:22:55;;21695:43;;:20;;21723:14;-1:-1:-1;;;21723:14:55;;;;;;21695:27;:43;:::i;:::-;21670:68;-1:-1:-1;21769:17:55;;;;;:51;;;21806:14;21790:12;:30;;21769:51;21867:12;21881:14;21748:158;;;;;;-1:-1:-1;;;21748:158:55;;;;;;;;;:::i;:::-;;;22406:27;22436:45;22450:12;22464:9;:16;;;22436:13;:45::i;:::-;22528:24;;;;22554:18;;22406:75;;-1:-1:-1;22491:20:55;;22514:59;;;;;;;22554:18;22514:13;:59::i;:::-;22491:82;-1:-1:-1;22583:21:55;22607:40;22491:82;22627:19;22607;:40::i;:::-;22583:64;;22658:16;-1:-1:-1;;;;;22658:22:55;;22681:8;22702:12;22716:13;22691:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22658:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22748:13:55;;21229:1539;-1:-1:-1;;;;;;;;;;;;21229:1539:55:o;7082:141:39:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:39;;;;;;;;;;;1980:235:38;6929:20:39;:18;:20::i;1986:362:67:-;6929:20:39;:18;:20::i;:::-;2111:220:67::1;::::0;;1113:108:::1;2111:220;::::0;::::1;25539:25:70::0;1307:27:67::1;25580:18:70::0;;;25573:34;;;;1426:14:67::1;25623:18:70::0;;;25616:34;2244:13:67::1;25666:18:70::0;;;25659:34;2283:4:67::1;25709:19:70::0;;;25702:61;1521:66:67::1;25779:19:70::0;;;25772:35;25511:19;;2111:220:67::1;::::0;;-1:-1:-1;;2111:220:67;;::::1;::::0;;;;;;2088:253;;2111:220:::1;2088:253:::0;;::::1;::::0;2069:16:::1;:272:::0;1986:362::o;1404:154:11:-;1489:11;;1485:67;;1516:25;;-1:-1:-1;;;1516:25:11;;;;;3933::70;;;-1:-1:-1;;;;;1516:16:11;;;;;3906:18:70;;1516:25:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1485:67;1404:154;;:::o;5602:478:62:-;5681:7;5738:28;2583:2;5738:6;:28;:::i;:::-;5721:13;;:45;;;;;5825:28;2583:2;5825:6;:28;:::i;:::-;5700:164;;;;;;-1:-1:-1;;;5700:164:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;6004:30:62;6020:4;6004:30;5998:37;;5602:478::o;4734:668::-;4811:5;4866:26;2480:1;4866:6;:26;:::i;:::-;4849:13;;:43;;;;;4951:26;2480:1;4951:6;:26;:::i;:::-;4828:160;;;;;;-1:-1:-1;;;4828:160:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;5330:29:62;5346:3;5330:29;5324:36;;4734:668::o;3714:255:50:-;3792:7;3812:17;3831:18;3851:16;3871:27;3882:4;3888:9;3871:10;:27::i;:::-;3811:87;;;;;;3908:28;3920:5;3927:8;3908:11;:28::i;:::-;-1:-1:-1;3953:9:50;;3714:255;-1:-1:-1;;;;3714:255:50:o;1099:188:35:-;1160:7;1187:13;1198:1;452:9;-1:-1:-1;2073:16:35;;1992:104;1187:13;:30;;;;1204:13;1215:1;452:9;-1:-1:-1;2073:16:35;;1992:104;1204:13;1240:1;1243;1179:67;;;;;;-1:-1:-1;;;1179:67:35;;;;;;;;;:::i;:::-;-1:-1:-1;452:9:35;;-1:-1:-1;1264:5:35;1268:1;1264;:5;:::i;:::-;1263:17;;;;:::i;1325:105:34:-;1383:7;1414:1;1409;:6;;:14;;1422:1;1409:14;;;-1:-1:-1;1418:1:34;;1325:105;-1:-1:-1;1325:105:34:o;8485:120:39:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:39;;;;;;-1:-1:-1;8485:120:39:o;2129:778:50:-;2232:17;2251:16;2269:14;2299:9;:16;2319:2;2299:22;2295:606;;2604:4;2589:20;;2583:27;2653:4;2638:20;;2632:27;2710:4;2695:20;;2689:27;2337:9;2681:36;2751:25;2762:4;2681:36;2583:27;2632;2751:10;:25::i;:::-;2744:32;;;;;;;;;;;2295:606;-1:-1:-1;;2872:16:50;;2823:1;;-1:-1:-1;2827:35:50;;2295:606;2129:778;;;;;:::o;7280:532::-;7375:20;7366:5;:29;;;;;;;;:::i;:::-;;7362:444;;7280:532;;:::o;7362:444::-;7471:29;7462:5;:38;;;;;;;;:::i;:::-;;7458:348;;7523:23;;-1:-1:-1;;;7523:23:50;;;;;;;;;;;7458:348;7576:35;7567:5;:44;;;;;;;;:::i;:::-;;7563:243;;7634:46;;-1:-1:-1;;;7634:46:50;;;;;3933:25:70;;;3906:18;;7634:46:50;3787:177:70;7563:243:50;7710:30;7701:5;:39;;;;;;;;:::i;:::-;;7697:109;;7763:32;;-1:-1:-1;;;7763:32:50;;;;;3933:25:70;;;3906:18;;7763:32:50;3787:177:70;5203:1551:50;5329:17;;;-1:-1:-1;;;;;6270:79:50;;6266:164;;;-1:-1:-1;6381:1:50;;-1:-1:-1;6385:30:50;;-1:-1:-1;6417:1:50;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;26218:25:70;;;26291:4;26279:17;;26259:18;;;26252:45;;;;26313:18;;;26306:34;;;26356:18;;;26349:34;;;6541:24:50;;26190:19:70;;6541:24:50;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:50;;-1:-1:-1;;6541:24:50;;;-1:-1:-1;;;;;;;6579:20:50;;6575:113;;-1:-1:-1;6631:1:50;;-1:-1:-1;6635:29:50;;-1:-1:-1;6631:1:50;;-1:-1:-1;6615:62:50;;6575:113;6706:6;-1:-1:-1;6714:20:50;;-1:-1:-1;6714:20:50;;-1:-1:-1;5203:1551:50;;;;;;;;;:::o;14:346:70:-;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:70;;;324:2;309:18;;;296:32;;-1:-1:-1;14:346:70:o;365:192::-;539:10;527:23;;;;509:42;;497:2;482:18;;365:192::o;562:131::-;-1:-1:-1;;;;;637:31:70;;627:42;;617:70;;683:1;680;673:12;698:129;-1:-1:-1;;;;;772:30:70;;762:41;;752:69;;817:1;814;807:12;832:121;917:10;910:5;906:22;899:5;896:33;886:61;;943:1;940;933:12;958:928;1059:6;1067;1075;1083;1091;1099;1152:3;1140:9;1131:7;1127:23;1123:33;1120:53;;;1169:1;1166;1159:12;1120:53;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;-1:-1:-1;1334:2:70;1319:18;;1306:32;1347:33;1306:32;1347:33;:::i;:::-;1399:7;-1:-1:-1;1458:2:70;1443:18;;1430:32;1471;1430;1471;:::i;:::-;1522:7;-1:-1:-1;1602:2:70;1587:18;;1574:32;;-1:-1:-1;1684:3:70;1669:19;;1656:33;1698:32;1656:33;1698:32;:::i;:::-;1749:7;-1:-1:-1;1808:3:70;1793:19;;1780:33;1822:32;1780:33;1822:32;:::i;:::-;1873:7;1863:17;;;958:928;;;;;;;;:::o;1891:226::-;1950:6;2003:2;1991:9;1982:7;1978:23;1974:32;1971:52;;;2019:1;2016;2009:12;1971:52;-1:-1:-1;2064:23:70;;1891:226;-1:-1:-1;1891:226:70:o;2122:127::-;2183:10;2178:3;2174:20;2171:1;2164:31;2214:4;2211:1;2204:15;2238:4;2235:1;2228:15;2254:144;2339:1;2332:5;2329:12;2319:46;;2345:18;;:::i;:::-;2374;;2254:144::o;2403:914::-;-1:-1:-1;;;;;2824:32:70;;;2806:51;;2893:32;;2888:2;2873:18;;2866:60;2957:2;2942:18;;2935:34;;;3000:2;2985:18;;2978:34;;;2793:3;2778:19;;3042:1;3031:13;;3021:47;;3048:18;;:::i;:::-;3105:6;3099:3;3088:9;3084:19;3077:35;3121:58;3174:3;3163:9;3159:19;3151:6;3121:58;:::i;:::-;3216:6;3210:3;3199:9;3195:19;3188:35;3260:6;3254:3;3243:9;3239:19;3232:35;3304:6;3298:3;3287:9;3283:19;3276:35;2403:914;;;;;;;;;;;;:::o;3553:229::-;-1:-1:-1;;;;;3743:32:70;;;;3725:51;;3713:2;3698:18;;3553:229::o;3969:367::-;4037:6;4045;4098:2;4086:9;4077:7;4073:23;4069:32;4066:52;;;4114:1;4111;4104:12;4066:52;4153:9;4140:23;4172:31;4197:5;4172:31;:::i;:::-;4222:5;4300:2;4285:18;;;;4272:32;;-1:-1:-1;;;3969:367:70:o;4523:200::-;-1:-1:-1;;;;;4685:31:70;;;;4667:50;;4655:2;4640:18;;4523:200::o;4728:231::-;4815:6;4875:2;4863:9;4854:7;4850:23;4846:32;4890:2;4887:22;;;4905:1;4902;4895:12;4887:22;-1:-1:-1;4944:9:70;;4728:231;-1:-1:-1;;4728:231:70:o;5172:245::-;5230:6;5283:2;5271:9;5262:7;5258:23;5254:32;5251:52;;;5299:1;5296;5289:12;5251:52;5338:9;5325:23;5357:30;5381:5;5357:30;:::i;5422:629::-;5508:6;5516;5524;5532;5585:3;5573:9;5564:7;5560:23;5556:33;5553:53;;;5602:1;5599;5592:12;5553:53;5641:9;5628:23;5660:31;5685:5;5660:31;:::i;:::-;5710:5;-1:-1:-1;5767:2:70;5752:18;;5739:32;5780:33;5739:32;5780:33;:::i;:::-;5422:629;;5832:7;;-1:-1:-1;;;;5912:2:70;5897:18;;5884:32;;6015:2;6000:18;5987:32;;5422:629::o;6056:247::-;6115:6;6168:2;6156:9;6147:7;6143:23;6139:32;6136:52;;;6184:1;6181;6174:12;6136:52;6223:9;6210:23;6242:31;6267:5;6242:31;:::i;6308:118::-;6394:5;6387:13;6380:21;6373:5;6370:32;6360:60;;6416:1;6413;6406:12;6431:602;6514:6;6522;6530;6538;6591:3;6579:9;6570:7;6566:23;6562:33;6559:53;;;6608:1;6605;6598:12;6559:53;6653:23;;;-1:-1:-1;6773:2:70;6758:18;;6745:32;;-1:-1:-1;6855:2:70;6840:18;;6827:32;6868:30;6827:32;6868:30;:::i;:::-;6431:602;;;;-1:-1:-1;6917:7:70;;6997:2;6982:18;6969:32;;-1:-1:-1;;6431:602:70:o;7230:347::-;7281:8;7291:6;7345:3;7338:4;7330:6;7326:17;7322:27;7312:55;;7363:1;7360;7353:12;7312:55;-1:-1:-1;7386:20:70;;-1:-1:-1;;;;;7418:30:70;;7415:50;;;7461:1;7458;7451:12;7415:50;7498:4;7490:6;7486:17;7474:29;;7550:3;7543:4;7534:6;7526;7522:19;7518:30;7515:39;7512:59;;;7567:1;7564;7557:12;7512:59;7230:347;;;;;:::o;7582:409::-;7652:6;7660;7713:2;7701:9;7692:7;7688:23;7684:32;7681:52;;;7729:1;7726;7719:12;7681:52;7756:23;;-1:-1:-1;;;;;7791:30:70;;7788:50;;;7834:1;7831;7824:12;7788:50;7873:58;7923:7;7914:6;7903:9;7899:22;7873:58;:::i;:::-;7950:8;;7847:84;;-1:-1:-1;7582:409:70;-1:-1:-1;;;;7582:409:70:o;7996:712::-;8086:6;8094;8102;8110;8163:2;8151:9;8142:7;8138:23;8134:32;8131:52;;;8179:1;8176;8169:12;8131:52;8206:23;;-1:-1:-1;;;;;8241:30:70;;8238:50;;;8284:1;8281;8274:12;8238:50;8323:58;8373:7;8364:6;8353:9;8349:22;8323:58;:::i;:::-;8400:8;;-1:-1:-1;8297:84:70;-1:-1:-1;;8488:2:70;8473:18;;8460:32;-1:-1:-1;;;;;8504:32:70;;8501:52;;;8549:1;8546;8539:12;8501:52;8588:60;8640:7;8629:8;8618:9;8614:24;8588:60;:::i;:::-;7996:712;;;;-1:-1:-1;8667:8:70;-1:-1:-1;;;;7996:712:70:o;8713:248::-;8887:25;;;8943:2;8928:18;;8921:34;8875:2;8860:18;;8713:248::o;8966:344::-;9033:2;9027:9;9075:3;9063:16;;-1:-1:-1;;;;;9094:34:70;;9130:22;;;9091:62;9088:185;;;9195:10;9190:3;9186:20;9183:1;9176:31;9230:4;9227:1;9220:15;9258:4;9255:1;9248:15;9088:185;9289:2;9282:22;8966:344;:::o;9315:352::-;9387:2;9381:9;9429:6;9417:19;;-1:-1:-1;;;;;9451:34:70;;9487:22;;;9448:62;9445:185;;;9552:10;9547:3;9543:20;9540:1;9533:31;9587:4;9584:1;9577:15;9615:4;9612:1;9605:15;9672:349;9744:2;9738:9;9786:3;9774:16;;-1:-1:-1;;;;;9805:34:70;;9841:22;;;9802:62;9799:185;;;9906:10;9901:3;9897:20;9894:1;9887:31;9941:4;9938:1;9931:15;9969:4;9966:1;9959:15;10026:1005;10109:6;10169:3;10157:9;10148:7;10144:23;10140:33;10185:2;10182:22;;;10200:1;10197;10190:12;10182:22;-1:-1:-1;10219:1:70;10242:17;;:::i;:::-;10305:23;;10337:22;;10433:2;10418:18;;;10405:32;10453:14;;;10446:31;10551:2;10536:18;;;10523:32;10571:14;;;10564:31;10669:2;10654:18;;;10641:32;10689:14;;;10682:31;10787:3;10772:19;;;10759:33;10808:15;;;10801:32;10885:3;10870:19;;10857:33;10934:4;10921:18;;10909:31;;10899:61;;10955:2;10951;10944:14;10899:61;10987:3;10976:15;;10969:32;10980:5;10026:1005;-1:-1:-1;;;;10026:1005:70:o;11036:154::-;11094:5;11139:3;11130:6;11125:3;11121:16;11117:26;11114:46;;;11156:1;11153;11146:12;11114:46;-1:-1:-1;11178:6:70;11036:154;-1:-1:-1;11036:154:70:o;11195:360::-;11315:6;11323;11376:3;11364:9;11355:7;11351:23;11347:33;11344:53;;;11393:1;11390;11383:12;11344:53;11416:52;11460:7;11449:9;11416:52;:::i;:::-;11406:62;;11487;11541:7;11535:3;11524:9;11520:19;11487:62;:::i;:::-;11477:72;;11195:360;;;;;:::o;11560:245::-;11618:6;11671:2;11659:9;11650:7;11646:23;11642:32;11639:52;;;11687:1;11684;11677:12;11639:52;11726:9;11713:23;11745:30;11769:5;11745:30;:::i;11810:217::-;11961:2;11946:18;;11973:48;11950:9;12003:6;11973:48;:::i;12246:881::-;12331:6;12391:2;12379:9;12370:7;12366:23;12362:32;12406:2;12403:22;;;12421:1;12418;12411:12;12403:22;-1:-1:-1;12491:2:70;12485:9;12440:1;;12533:2;12521:15;;-1:-1:-1;;;;;12551:34:70;;12587:22;;;12548:62;12545:187;;;-1:-1:-1;;;12633:32:70;;12688:4;12685:1;12678:15;12717:4;12640:2;12706:16;12545:187;12748:2;12741:22;;;12805:23;;12837:21;;12932:2;12917:18;;;12904:32;12952:15;;;12945:32;13036:18;;;13023:32;13071:15;;;13064:32;;;;-1:-1:-1;12844:6:70;;12246:881;-1:-1:-1;;12246:881:70:o;13498:138::-;13577:13;;13599:31;13577:13;13599:31;:::i;:::-;13498:138;;;:::o;13641:1140::-;13709:5;13757:6;13745:9;13740:3;13736:19;13732:32;13729:52;;;13777:1;13774;13767:12;13729:52;13799:22;;:::i;:::-;13790:31;;13844:40;13874:9;13844:40;:::i;:::-;13830:55;;13951:2;13936:18;;;13930:25;13971:14;;;13964:31;14061:2;14046:18;;;14040:25;14081:14;;;14074:31;14171:2;14156:18;;;14150:25;14191:14;;;14184:31;14281:3;14266:19;;;14260:26;14302:15;;;14295:32;14393:3;14378:19;;;14372:26;14414:15;;;14407:32;14505:3;14490:19;;;14484:26;14526:15;;;14519:32;14617:3;14602:19;;;14596:26;14638:15;;;14631:32;14729:3;14714:19;;;14708:26;14750:15;;;14743:32;;;;13837:5;13641:1140;-1:-1:-1;13641:1140:70:o;14786:256::-;14884:6;14937:3;14925:9;14916:7;14912:23;14908:33;14905:53;;;14954:1;14951;14944:12;14905:53;14977:59;15028:7;15017:9;14977:59;:::i;15047:127::-;15108:10;15103:3;15099:20;15096:1;15089:31;15139:4;15136:1;15129:15;15163:4;15160:1;15153:15;15179:125;15244:9;;;15265:10;;;15262:36;;;15278:18;;:::i;15562:399::-;15603:3;15641:5;15635:12;15668:6;15663:3;15656:19;15693:1;15703:139;15717:6;15714:1;15711:13;15703:139;;;15825:4;15810:13;;;15806:24;;15800:31;15780:11;;;15776:22;;15769:63;15732:12;15703:139;;;15707:3;15887:1;15880:4;15871:6;15866:3;15862:16;15858:27;15851:38;15950:4;15943:2;15939:7;15934:2;15926:6;15922:15;15918:29;15913:3;15909:39;15905:50;15898:57;;;15562:399;;;;:::o;15966:314::-;-1:-1:-1;;;;;16141:32:70;;16123:51;;16210:2;16205;16190:18;;16183:30;;;-1:-1:-1;;16230:44:70;;16255:18;;16247:6;16230:44;:::i;16635:300::-;-1:-1:-1;;;;;16827:32:70;;;16809:51;;16896:32;;16891:2;16876:18;;16869:60;16797:2;16782:18;;16635:300::o;16940:136::-;17018:13;;17040:30;17018:13;17040:30;:::i;17081:136::-;17159:13;;17181:30;17159:13;17181:30;:::i;17222:1236::-;17319:6;17379:3;17367:9;17358:7;17354:23;17350:33;17395:2;17392:22;;;17410:1;17407;17400:12;17392:22;-1:-1:-1;17429:1:70;17452:22;;:::i;:::-;17520:16;;17545:22;;17634:2;17619:18;;;17613:25;17654:14;;;17647:31;17745:2;17730:18;;;17724:25;17765:14;;;17758:31;17821:48;17865:2;17850:18;;17821:48;:::i;:::-;17816:2;17809:5;17805:14;17798:72;17903:49;17947:3;17936:9;17932:19;17903:49;:::i;:::-;17897:3;17890:5;17886:15;17879:74;17986:49;18030:3;18019:9;18015:19;17986:49;:::i;:::-;17980:3;17973:5;17969:15;17962:74;18069:49;18113:3;18102:9;18098:19;18069:49;:::i;:::-;18063:3;18056:5;18052:15;18045:74;18152:49;18196:3;18185:9;18181:19;18152:49;:::i;:::-;18146:3;18135:15;;18128:74;18269:3;18254:19;;;18248:26;18290:15;;;18283:32;18382:3;18367:19;;;18361:26;18403:15;;;18396:32;;;;-1:-1:-1;18139:5:70;;17222:1236;-1:-1:-1;;17222:1236:70:o;19003:217::-;19043:1;19069;19059:132;;19113:10;19108:3;19104:20;19101:1;19094:31;19148:4;19145:1;19138:15;19176:4;19173:1;19166:15;19059:132;-1:-1:-1;19205:9:70;;19003:217::o;19858:245::-;19925:6;19978:2;19966:9;19957:7;19953:23;19949:32;19946:52;;;19994:1;19991;19984:12;19946:52;20026:9;20020:16;20045:28;20067:5;20045:28;:::i;22302:1105::-;22404:6;22464:3;22452:9;22443:7;22439:23;22435:33;22480:2;22477:22;;;22495:1;22492;22485:12;22477:22;-1:-1:-1;22565:2:70;22559:9;22514:1;;22607:3;22595:16;;-1:-1:-1;;;;;22626:34:70;;22662:22;;;22623:62;22620:187;;;-1:-1:-1;;;22708:32:70;;22763:4;22760:1;22753:15;22792:4;22715:2;22781:16;22620:187;22823:2;22816:22;;;22880:16;;22905:21;;22993:2;22978:18;;;22972:25;23013:15;;;23006:32;23090:18;;;23084:25;23125:15;;;23118:32;23217:2;23202:18;;;23196:25;23237:15;;;23230:32;23329:3;23314:19;;;23308:26;23350:16;;;23343:33;;;;-1:-1:-1;22912:6:70;;22302:1105;-1:-1:-1;;22302:1105:70:o;23412:456::-;23500:6;23508;23516;23569:2;23557:9;23548:7;23544:23;23540:32;23537:52;;;23585:1;23582;23575:12;23537:52;-1:-1:-1;;23630:16:70;;23736:2;23721:18;;23715:25;23832:2;23817:18;;;23811:25;23630:16;;23715:25;;-1:-1:-1;23811:25:70;23412:456;-1:-1:-1;23412:456:70:o;24400:504::-;24659:6;24648:9;24641:25;24702:6;24697:2;24686:9;24682:18;24675:34;24745:3;24740:2;24729:9;24725:18;24718:31;24622:4;24766:45;24806:3;24795:9;24791:19;24783:6;24766:45;:::i;:::-;24842:2;24827:18;;24820:34;;;;-1:-1:-1;24885:3:70;24870:19;24863:35;24758:53;24400:504;-1:-1:-1;;;24400:504:70:o;25818:168::-;25891:9;;;25922;;25939:15;;;25933:22;;25919:37;25909:71;;25960:18;;:::i" + }, + "methodIdentifiers": { + "MAX_FISHERMAN_REWARD_CUT()": "17337b46", + "MIN_DISPUTE_DEPOSIT()": "cc2d55cd", + "acceptDispute(bytes32,uint256)": "050b17ad", + "acceptDisputeConflict(bytes32,uint256,bool,uint256)": "b0e2f7e9", + "arbitrator()": "6cc6cde1", + "areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "d36fc9d4", + "cancelDispute(bytes32)": "1792f194", + "createAndAcceptLegacyDispute(address,address,uint256,uint256)": "8d4e9008", + "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", + "getFishermanRewardCut()": "bb2a2b47", + "getStakeSnapshot(address)": "c133b429", + "initialize(address,address,uint64,uint256,uint32,uint32)": "0bc7344b", + "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\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeInConflict\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeNotInConflict\",\"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\":\"DisputeManagerSubgraphServiceNotSet\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancellableAt\",\"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\":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\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"}],\"name\":\"LegacyDisputeCreated\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancellableAt\",\"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\":[],\"name\":\"MIN_DISPUTE_DEPOSIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"acceptDisputeInConflict\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlashRelated\",\"type\":\"uint256\"}],\"name\":\"acceptDisputeConflict\",\"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\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"}],\"name\":\"createAndAcceptLegacyDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"cancellableAt\",\"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\":[],\"name\":\"getFishermanRewardCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getStakeSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"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\":{\"AttestationInvalidBytesLength(uint256,uint256)\":[{\"params\":{\"expectedLength\":\"The expected length of the attestation data\",\"length\":\"The length of the attestation data\"}}],\"DisputeManagerDisputeAlreadyCreated(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeInConflict(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeNotInConflict(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeNotPending(uint8)\":[{\"params\":{\"status\":\"The status of the dispute\"}}],\"DisputeManagerIndexerNotFound(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"DisputeManagerInvalidDispute(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerInvalidDisputeDeposit(uint256)\":[{\"params\":{\"disputeDeposit\":\"The dispute deposit\"}}],\"DisputeManagerInvalidFishermanReward(uint32)\":[{\"params\":{\"cut\":\"The fisherman reward cut\"}}],\"DisputeManagerInvalidMaxSlashingCut(uint32)\":[{\"params\":{\"maxSlashingCut\":\"The max slashing cut\"}}],\"DisputeManagerInvalidTokensSlash(uint256,uint256)\":[{\"params\":{\"maxTokensSlash\":\"The max tokens slash\",\"tokensSlash\":\"The tokens slash\"}}],\"DisputeManagerMustAcceptRelatedDispute(bytes32,bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\",\"relatedDisputeId\":\"The related dispute id\"}}],\"DisputeManagerNonConflictingAttestations(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)\":[{\"params\":{\"requestCID1\":\"The request CID of the first attestation\",\"requestCID2\":\"The request CID of the second attestation\",\"responseCID1\":\"The response CID of the first attestation\",\"responseCID2\":\"The response CID of the second attestation\",\"subgraphDeploymentId1\":\"The subgraph deployment id of the first attestation\",\"subgraphDeploymentId2\":\"The subgraph deployment id of the second attestation\"}}],\"DisputeManagerNonMatchingSubgraphDeployment(bytes32,bytes32)\":[{\"params\":{\"subgraphDeploymentId1\":\"The subgraph deployment id of the first attestation\",\"subgraphDeploymentId2\":\"The subgraph deployment id of the second attestation\"}}],\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of 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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of tokens returned to the fisherman - the deposit\"}},\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of tokens returned to the fisherman - the deposit\"}},\"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.\",\"params\":{\"disputeId1\":\"The first dispute id\",\"disputeId2\":\"The second dispute id\"}},\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of 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,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.\",\"params\":{\"allocationId\":\"The allocation id\",\"cancellableAt\":\"The timestamp when the dispute can be cancelled\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"poi\":\"The POI\",\"stakeSnapshot\":\"The stake snapshot of the indexer at the time of the dispute\",\"tokens\":\"The amount of tokens deposited by the fisherman\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"LegacyDisputeCreated(bytes32,address,address,address,uint256,uint256)\":{\"details\":\"Emitted when a legacy dispute is created for `allocationId` and `fisherman`. The event emits the amount of `tokensSlash` to slash and `tokensRewards` to reward the fisherman.\",\"params\":{\"allocationId\":\"The allocation id\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address to be credited with the rewards\",\"indexer\":\"The indexer address\",\"tokensRewards\":\"The amount of tokens to reward the fisherman\",\"tokensSlash\":\"The amount of tokens to slash\"}},\"MaxSlashingCutSet(uint32)\":{\"params\":{\"maxSlashingCut\":\"The maximum slashing cut that can be set.\"}},\"QueryDisputeCreated(bytes32,address,address,uint256,bytes32,bytes,uint256,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.\",\"params\":{\"attestation\":\"The attestation\",\"cancellableAt\":\"The timestamp when the dispute can be cancelled\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"stakeSnapshot\":\"The stake snapshot of the indexer at the time of the dispute\",\"subgraphDeploymentId\":\"The subgraph deployment id\",\"tokens\":\"The amount of tokens deposited by the fisherman\"}},\"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\"}},\"acceptDisputeConflict(bytes32,uint256,bool,uint256)\":{\"params\":{\"acceptDisputeInConflict\":\"Accept the conflicting dispute. Otherwise it will be drawn automatically\",\"disputeId\":\"Id of the dispute to be accepted\",\"tokensSlash\":\"Amount of tokens to slash from the indexer for the first dispute\",\"tokensSlashRelated\":\"Amount of tokens to slash from the indexer for the related dispute in case acceptDisputeInConflict is true, otherwise it will be ignored\"}},\"areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"params\":{\"attestation1\":\"The first attestation\",\"attestation2\":\"The second attestation\"},\"returns\":{\"_0\":\"Whether the attestations are conflicting\"}},\"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\"}},\"createAndAcceptLegacyDispute(address,address,uint256,uint256)\":{\"params\":{\"allocationId\":\"The allocation to dispute\",\"fisherman\":\"The fisherman address to be credited with the rewards\",\"tokensRewards\":\"The amount of tokens to reward the fisherman\",\"tokensSlash\":\"The amount of tokens to slash\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createIndexingDispute(address,bytes32)\":{\"params\":{\"allocationId\":\"The allocation to dispute\",\"poi\":\"The Proof of Indexing (POI) being disputed\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createQueryDispute(bytes)\":{\"params\":{\"attestationData\":\"Attestation bytes submitted by the fisherman\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createQueryDisputeConflict(bytes,bytes)\":{\"params\":{\"attestationData1\":\"First attestation data submitted\",\"attestationData2\":\"Second attestation data submitted\"},\"returns\":{\"_0\":\"The first dispute id\",\"_1\":\"The second dispute id\"}},\"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\"}},\"getFishermanRewardCut()\":{\"returns\":{\"_0\":\"Fisherman reward cut in percentage (ppm)\"}},\"getStakeSnapshot(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The stake snapshot\"}},\"initialize(address,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)\",\"owner\":\"The owner of the contract\"}},\"isDisputeCreated(bytes32)\":{\"details\":\"Return if dispute with Id `disputeId` exists\",\"params\":{\"disputeId\":\"True if dispute already exists\"},\"returns\":{\"_0\":\"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\":{\"AttestationInvalidBytesLength(uint256,uint256)\":[{\"notice\":\"The error thrown when the attestation data length is invalid\"}],\"DisputeManagerDisputeAlreadyCreated(bytes32)\":[{\"notice\":\"Thrown when the dispute is already created\"}],\"DisputeManagerDisputeInConflict(bytes32)\":[{\"notice\":\"Thrown when the dispute is in conflict\"}],\"DisputeManagerDisputeNotInConflict(bytes32)\":[{\"notice\":\"Thrown when the dispute is not in conflict\"}],\"DisputeManagerDisputeNotPending(uint8)\":[{\"notice\":\"Thrown when the dispute is not pending\"}],\"DisputeManagerDisputePeriodNotFinished()\":[{\"notice\":\"Thrown when the dispute period is not finished\"}],\"DisputeManagerDisputePeriodZero()\":[{\"notice\":\"Thrown when the dispute period is zero\"}],\"DisputeManagerIndexerNotFound(address)\":[{\"notice\":\"Thrown when the indexer is not found\"}],\"DisputeManagerInvalidDispute(bytes32)\":[{\"notice\":\"Thrown when the dispute id is invalid\"}],\"DisputeManagerInvalidDisputeDeposit(uint256)\":[{\"notice\":\"Thrown when the dispute deposit is invalid - less than the minimum dispute deposit\"}],\"DisputeManagerInvalidFishermanReward(uint32)\":[{\"notice\":\"Thrown when the fisherman reward cut is invalid\"}],\"DisputeManagerInvalidMaxSlashingCut(uint32)\":[{\"notice\":\"Thrown when the max slashing cut is invalid\"}],\"DisputeManagerInvalidTokensSlash(uint256,uint256)\":[{\"notice\":\"Thrown when the tokens slash is invalid\"}],\"DisputeManagerInvalidZeroAddress()\":[{\"notice\":\"Thrown when the address is the zero address\"}],\"DisputeManagerMustAcceptRelatedDispute(bytes32,bytes32)\":[{\"notice\":\"Thrown when the dispute must be accepted\"}],\"DisputeManagerNonConflictingAttestations(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)\":[{\"notice\":\"Thrown when the attestations are not conflicting\"}],\"DisputeManagerNonMatchingSubgraphDeployment(bytes32,bytes32)\":[{\"notice\":\"Thrown when the subgraph deployment is not matching\"}],\"DisputeManagerNotArbitrator()\":[{\"notice\":\"Thrown when the caller is not the arbitrator\"}],\"DisputeManagerNotFisherman()\":[{\"notice\":\"Thrown when the caller is not the fisherman\"}],\"DisputeManagerSubgraphServiceNotSet()\":[{\"notice\":\"Thrown when attempting to get the subgraph service before it is set\"}],\"DisputeManagerZeroTokens()\":[{\"notice\":\"Thrown when the indexer being disputed has no provisioned tokens\"}],\"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\":{\"MAX_FISHERMAN_REWARD_CUT()\":{\"notice\":\"Maximum value for fisherman reward cut in PPM\"},\"MIN_DISPUTE_DEPOSIT()\":{\"notice\":\"Minimum value for dispute deposit\"},\"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. This function will also revert if the dispute is in conflict, to accept a conflicting dispute use acceptDisputeConflict.\"},\"acceptDisputeConflict(bytes32,uint256,bool,uint256)\":{\"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.\"},\"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. Note that cancelling a conflicting query dispute will also cancel the related dispute.\"},\"constructor\":{\"notice\":\"Contract constructor\"},\"createAndAcceptLegacyDispute(address,address,uint256,uint256)\":{\"notice\":\"Creates and auto-accepts a legacy dispute. This disputes can be created to settle outstanding slashing amounts with an indexer that has been \\\"legacy slashed\\\" during or shortly after the transition period. See {HorizonStakingExtension.legacySlash} for more details. Note that this type of dispute: - can only be created by the arbitrator - does not require a bond - is automatically accepted when created Additionally, note that this type of disputes allow the arbitrator to directly set the slash and rewards amounts, bypassing the usual mechanisms that impose restrictions on those. This is done to give arbitrators maximum flexibility to ensure outstanding slashing amounts are settled fairly. This function needs to be removed after the transition period. Requirements: - Indexer must have been legacy slashed during or shortly after the transition period - Indexer must have provisioned funds to the Subgraph Service\"},\"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. Two linked disputes will be created and if the arbitrator resolve one, the other 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.\"},\"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. Note that drawing a conflicting query dispute should not be possible however it is allowed to give arbitrators greater flexibility when resolving disputes.\"},\"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.\"},\"getFishermanRewardCut()\":{\"notice\":\"Get the fisherman reward cut.\"},\"getStakeSnapshot(address)\":{\"notice\":\"Get the stake snapshot for an indexer.\"},\"initialize(address,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. Note that conflicting query disputes cannot be rejected.\"},\"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 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 to a EOA or DAO.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DisputeManager.sol\":\"DisputeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\":{\"keccak256\":\"0x24cd80c0d25f634db1e8101c0a474a284758eb7a2203ae3abf507f578fa12e0a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://69d03db4aaa31184b3ec9526bf236949683c5a35785c298cad0ac160904b695c\",\"dweb:/ipfs/Qmd2xSKW6ojrapgrRimrXCpc52GTrQ3BMAEYH17UvSfvLV\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/DisputeManager.sol\":{\"keccak256\":\"0xb431a6ab58b65a49ba79923401267b79177b483fff9331ea82a81345a03d3629\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8a20e0d7fabf30489df74320a69c03973ada601dc8fc277746f901b8165a0c3d\",\"dweb:/ipfs/QmaAmVkyzYCDg476AdBTXYRzmHJZ8bJ71LuudZFhnKxCUT\"]},\"contracts/DisputeManagerStorage.sol\":{\"keccak256\":\"0xa340be8ba8f0350d954a3b572f958eb9e1de64ebfeffd208ea3e252ebb4ebb1d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45658c8d8b475b52e4e97b1a9f06ab4e4205765f73fad4dda56f980d88d4f6b9\",\"dweb:/ipfs/QmQ5kS2FSxoBi2fRq7szKCNVetfwNe8DVTyDhHCnixWAdH\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x9db8ffdf7fe30954824ed706a1a5e7c2d6323b745bddba16b7166a639344f9f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e5d810bf6188c38a028dab511c5653fde7b7feca0a173f03974402a83cb234f9\",\"dweb:/ipfs/QmYGtytqHeDFK91FmSNL5iavD8sHUFcA47WBU9BuHG3i75\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]},\"contracts/utilities/AttestationManager.sol\":{\"keccak256\":\"0x44218c9dd0d618b0e383cad19efd5846ec85d1a11270aa7c04b75e2fa7ddc3a4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ee8ca0b9b9746636ff1ad549081fbc176d959544bc7798d0bfb10e3ec61af8b7\",\"dweb:/ipfs/QmcE9RJqj32uoTsWLV2ffwuEPWnBh7Vn8ZpzorXBjgosGd\"]},\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0x3ae176c9166fac5bfb08e875ad132fe9d1559ce67df28b906683d4f168e1afdc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2b40d4be47cc74387e3c390e081bdadc84f84062e9708a7a84d73f02e0a3853a\",\"dweb:/ipfs/QmQL8DUzrtgQABb1CvcuSeuapXntXEh5aKi4ZjE3MssBgZ\"]}},\"version\":1}" + } + }, + "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": "cancellableAt", + "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\":\"cancellableAt\",\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"DisputeManagerStorage\",\"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\"}},\"notice\":\"This contract holds all the storage variables for the Dispute Manager contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DisputeManagerStorage.sol\":\"DisputeManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/DisputeManagerStorage.sol\":{\"keccak256\":\"0xa340be8ba8f0350d954a3b572f958eb9e1de64ebfeffd208ea3e252ebb4ebb1d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45658c8d8b475b52e4e97b1a9f06ab4e4205765f73fad4dda56f980d88d4f6b9\",\"dweb:/ipfs/QmQ5kS2FSxoBi2fRq7szKCNVetfwNe8DVTyDhHCnixWAdH\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x9db8ffdf7fe30954824ed706a1a5e7c2d6323b745bddba16b7166a639344f9f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e5d810bf6188c38a028dab511c5653fde7b7feca0a173f03974402a83cb234f9\",\"dweb:/ipfs/QmYGtytqHeDFK91FmSNL5iavD8sHUFcA47WBU9BuHG3i75\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]}},\"version\":1}" + } + }, + "contracts/SubgraphService.sol": { + "SubgraphService": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "graphController", + "type": "address" + }, + { + "internalType": "address", + "name": "disputeManager", + "type": "address" + }, + { + "internalType": "address", + "name": "graphTallyCollector", + "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": "account", + "type": "address" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + } + ], + "name": "DataServicePausablePauseGuardianNoChange", + "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": "FailedCall", + "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": "LegacyAllocationAlreadyExists", + "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" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + } + ], + "name": "SubgraphServiceInvalidCollectionId", + "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" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forceClosed", + "type": "bool" + } + ], + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentEpoch", + "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": "bytes", + "name": "poiMetadata", + "type": "bytes" + }, + { + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "paymentsDestination", + "type": "address" + } + ], + "name": "PaymentsDestinationSet", + "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": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "subgraphDeploymentId", + "type": "bytes32" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "subgraphService", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "disputeManager", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "graphTallyCollector", + "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": "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": "allocationId", + "type": "address" + } + ], + "name": "closeStaleAllocation", + "outputs": [], + "stateMutability": "nonpayable", + "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": "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": "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": "uint256", + "name": "createdAtEpoch", + "type": "uint256" + } + ], + "internalType": "struct Allocation.State", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "getAllocationData", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "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": "getCuration", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegationRatio", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDisputeManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGraphTallyCollector", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "address", + "name": "owner", + "type": "address" + }, + { + "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": "indexer", + "type": "address" + } + ], + "name": "isOverAllocated", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPOIStaleness", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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" + } + ], + "name": "paymentsDestination", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "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": "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": "paymentsDestination_", + "type": "address" + } + ], + "name": "setPaymentsDestination", + "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": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_13702": { + "entryPoint": null, + "id": 13702, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_17679": { + "entryPoint": null, + "id": 17679, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_4795": { + "entryPoint": null, + "id": 4795, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_869": { + "entryPoint": null, + "id": 869, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_disableInitializers_5345": { + "entryPoint": 1139, + "id": 5345, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getContractFromController_4927": { + "entryPoint": 965, + "id": 4927, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getInitializableStorage_5390": { + "entryPoint": null, + "id": 5390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5376": { + "entryPoint": null, + "id": 5376, + "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:70", + "nodeType": "YulBlock", + "src": "0:3424:70", + "statements": [ + { + "nativeSrc": "6:3:70", + "nodeType": "YulBlock", + "src": "6:3:70", + "statements": [] + }, + { + "body": { + "nativeSrc": "74:117:70", + "nodeType": "YulBlock", + "src": "74:117:70", + "statements": [ + { + "nativeSrc": "84:22:70", + "nodeType": "YulAssignment", + "src": "84:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "99:6:70", + "nodeType": "YulIdentifier", + "src": "99:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "93:5:70", + "nodeType": "YulIdentifier", + "src": "93:5:70" + }, + "nativeSrc": "93:13:70", + "nodeType": "YulFunctionCall", + "src": "93:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "84:5:70", + "nodeType": "YulIdentifier", + "src": "84:5:70" + } + ] + }, + { + "body": { + "nativeSrc": "169:16:70", + "nodeType": "YulBlock", + "src": "169:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "178:1:70", + "nodeType": "YulLiteral", + "src": "178:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "181:1:70", + "nodeType": "YulLiteral", + "src": "181:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "171:6:70", + "nodeType": "YulIdentifier", + "src": "171:6:70" + }, + "nativeSrc": "171:12:70", + "nodeType": "YulFunctionCall", + "src": "171:12:70" + }, + "nativeSrc": "171:12:70", + "nodeType": "YulExpressionStatement", + "src": "171:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "128:5:70", + "nodeType": "YulIdentifier", + "src": "128:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "139:5:70", + "nodeType": "YulIdentifier", + "src": "139:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "154:3:70", + "nodeType": "YulLiteral", + "src": "154:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "159:1:70", + "nodeType": "YulLiteral", + "src": "159:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "150:3:70", + "nodeType": "YulIdentifier", + "src": "150:3:70" + }, + "nativeSrc": "150:11:70", + "nodeType": "YulFunctionCall", + "src": "150:11:70" + }, + { + "kind": "number", + "nativeSrc": "163:1:70", + "nodeType": "YulLiteral", + "src": "163:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "146:3:70", + "nodeType": "YulIdentifier", + "src": "146:3:70" + }, + "nativeSrc": "146:19:70", + "nodeType": "YulFunctionCall", + "src": "146:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "135:3:70", + "nodeType": "YulIdentifier", + "src": "135:3:70" + }, + "nativeSrc": "135:31:70", + "nodeType": "YulFunctionCall", + "src": "135:31:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "125:2:70", + "nodeType": "YulIdentifier", + "src": "125:2:70" + }, + "nativeSrc": "125:42:70", + "nodeType": "YulFunctionCall", + "src": "125:42:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "118:6:70", + "nodeType": "YulIdentifier", + "src": "118:6:70" + }, + "nativeSrc": "118:50:70", + "nodeType": "YulFunctionCall", + "src": "118:50:70" + }, + "nativeSrc": "115:70:70", + "nodeType": "YulIf", + "src": "115:70:70" + } + ] + }, + "name": "abi_decode_address_fromMemory", + "nativeSrc": "14:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "53:6:70", + "nodeType": "YulTypedName", + "src": "53:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "64:5:70", + "nodeType": "YulTypedName", + "src": "64:5:70", + "type": "" + } + ], + "src": "14:177:70" + }, + { + "body": { + "nativeSrc": "328:332:70", + "nodeType": "YulBlock", + "src": "328:332:70", + "statements": [ + { + "body": { + "nativeSrc": "375:16:70", + "nodeType": "YulBlock", + "src": "375:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "384:1:70", + "nodeType": "YulLiteral", + "src": "384:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "387:1:70", + "nodeType": "YulLiteral", + "src": "387:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "377:6:70", + "nodeType": "YulIdentifier", + "src": "377:6:70" + }, + "nativeSrc": "377:12:70", + "nodeType": "YulFunctionCall", + "src": "377:12:70" + }, + "nativeSrc": "377:12:70", + "nodeType": "YulExpressionStatement", + "src": "377:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "349:7:70", + "nodeType": "YulIdentifier", + "src": "349:7:70" + }, + { + "name": "headStart", + "nativeSrc": "358:9:70", + "nodeType": "YulIdentifier", + "src": "358:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "345:3:70", + "nodeType": "YulIdentifier", + "src": "345:3:70" + }, + "nativeSrc": "345:23:70", + "nodeType": "YulFunctionCall", + "src": "345:23:70" + }, + { + "kind": "number", + "nativeSrc": "370:3:70", + "nodeType": "YulLiteral", + "src": "370:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "341:3:70", + "nodeType": "YulIdentifier", + "src": "341:3:70" + }, + "nativeSrc": "341:33:70", + "nodeType": "YulFunctionCall", + "src": "341:33:70" + }, + "nativeSrc": "338:53:70", + "nodeType": "YulIf", + "src": "338:53:70" + }, + { + "nativeSrc": "400:50:70", + "nodeType": "YulAssignment", + "src": "400:50:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "440:9:70", + "nodeType": "YulIdentifier", + "src": "440:9:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "410:29:70", + "nodeType": "YulIdentifier", + "src": "410:29:70" + }, + "nativeSrc": "410:40:70", + "nodeType": "YulFunctionCall", + "src": "410:40:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "400:6:70", + "nodeType": "YulIdentifier", + "src": "400:6:70" + } + ] + }, + { + "nativeSrc": "459:59:70", + "nodeType": "YulAssignment", + "src": "459:59:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "503:9:70", + "nodeType": "YulIdentifier", + "src": "503:9:70" + }, + { + "kind": "number", + "nativeSrc": "514:2:70", + "nodeType": "YulLiteral", + "src": "514:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "499:3:70", + "nodeType": "YulIdentifier", + "src": "499:3:70" + }, + "nativeSrc": "499:18:70", + "nodeType": "YulFunctionCall", + "src": "499:18:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "469:29:70", + "nodeType": "YulIdentifier", + "src": "469:29:70" + }, + "nativeSrc": "469:49:70", + "nodeType": "YulFunctionCall", + "src": "469:49:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "459:6:70", + "nodeType": "YulIdentifier", + "src": "459:6:70" + } + ] + }, + { + "nativeSrc": "527:59:70", + "nodeType": "YulAssignment", + "src": "527:59:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "571:9:70", + "nodeType": "YulIdentifier", + "src": "571:9:70" + }, + { + "kind": "number", + "nativeSrc": "582:2:70", + "nodeType": "YulLiteral", + "src": "582:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "567:3:70", + "nodeType": "YulIdentifier", + "src": "567:3:70" + }, + "nativeSrc": "567:18:70", + "nodeType": "YulFunctionCall", + "src": "567:18:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "537:29:70", + "nodeType": "YulIdentifier", + "src": "537:29:70" + }, + "nativeSrc": "537:49:70", + "nodeType": "YulFunctionCall", + "src": "537:49:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "527:6:70", + "nodeType": "YulIdentifier", + "src": "527:6:70" + } + ] + }, + { + "nativeSrc": "595:59:70", + "nodeType": "YulAssignment", + "src": "595:59:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "639:9:70", + "nodeType": "YulIdentifier", + "src": "639:9:70" + }, + { + "kind": "number", + "nativeSrc": "650:2:70", + "nodeType": "YulLiteral", + "src": "650:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "635:3:70", + "nodeType": "YulIdentifier", + "src": "635:3:70" + }, + "nativeSrc": "635:18:70", + "nodeType": "YulFunctionCall", + "src": "635:18:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "605:29:70", + "nodeType": "YulIdentifier", + "src": "605:29:70" + }, + "nativeSrc": "605:49:70", + "nodeType": "YulFunctionCall", + "src": "605:49:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "595:6:70", + "nodeType": "YulIdentifier", + "src": "595:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory", + "nativeSrc": "196:464:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "270:9:70", + "nodeType": "YulTypedName", + "src": "270:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "281:7:70", + "nodeType": "YulTypedName", + "src": "281:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "293:6:70", + "nodeType": "YulTypedName", + "src": "293:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "301:6:70", + "nodeType": "YulTypedName", + "src": "301:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "309:6:70", + "nodeType": "YulTypedName", + "src": "309:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "317:6:70", + "nodeType": "YulTypedName", + "src": "317:6:70", + "type": "" + } + ], + "src": "196:464:70" + }, + { + "body": { + "nativeSrc": "838:160:70", + "nodeType": "YulBlock", + "src": "838:160:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "855:9:70", + "nodeType": "YulIdentifier", + "src": "855:9:70" + }, + { + "kind": "number", + "nativeSrc": "866:2:70", + "nodeType": "YulLiteral", + "src": "866:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "848:6:70", + "nodeType": "YulIdentifier", + "src": "848:6:70" + }, + "nativeSrc": "848:21:70", + "nodeType": "YulFunctionCall", + "src": "848:21:70" + }, + "nativeSrc": "848:21:70", + "nodeType": "YulExpressionStatement", + "src": "848:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "889:9:70", + "nodeType": "YulIdentifier", + "src": "889:9:70" + }, + { + "kind": "number", + "nativeSrc": "900:2:70", + "nodeType": "YulLiteral", + "src": "900:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "885:3:70", + "nodeType": "YulIdentifier", + "src": "885:3:70" + }, + "nativeSrc": "885:18:70", + "nodeType": "YulFunctionCall", + "src": "885:18:70" + }, + { + "kind": "number", + "nativeSrc": "905:2:70", + "nodeType": "YulLiteral", + "src": "905:2:70", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "878:6:70", + "nodeType": "YulIdentifier", + "src": "878:6:70" + }, + "nativeSrc": "878:30:70", + "nodeType": "YulFunctionCall", + "src": "878:30:70" + }, + "nativeSrc": "878:30:70", + "nodeType": "YulExpressionStatement", + "src": "878:30:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "928:9:70", + "nodeType": "YulIdentifier", + "src": "928:9:70" + }, + { + "kind": "number", + "nativeSrc": "939:2:70", + "nodeType": "YulLiteral", + "src": "939:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "924:3:70", + "nodeType": "YulIdentifier", + "src": "924:3:70" + }, + "nativeSrc": "924:18:70", + "nodeType": "YulFunctionCall", + "src": "924:18:70" + }, + { + "hexValue": "436f6e74726f6c6c6572", + "kind": "string", + "nativeSrc": "944:12:70", + "nodeType": "YulLiteral", + "src": "944:12:70", + "type": "", + "value": "Controller" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "917:6:70", + "nodeType": "YulIdentifier", + "src": "917:6:70" + }, + "nativeSrc": "917:40:70", + "nodeType": "YulFunctionCall", + "src": "917:40:70" + }, + "nativeSrc": "917:40:70", + "nodeType": "YulExpressionStatement", + "src": "917:40:70" + }, + { + "nativeSrc": "966:26:70", + "nodeType": "YulAssignment", + "src": "966:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "978:9:70", + "nodeType": "YulIdentifier", + "src": "978:9:70" + }, + { + "kind": "number", + "nativeSrc": "989:2:70", + "nodeType": "YulLiteral", + "src": "989:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "974:3:70", + "nodeType": "YulIdentifier", + "src": "974:3:70" + }, + "nativeSrc": "974:18:70", + "nodeType": "YulFunctionCall", + "src": "974:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "966:4:70", + "nodeType": "YulIdentifier", + "src": "966:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "665:333:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "815:9:70", + "nodeType": "YulTypedName", + "src": "815:9:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "829:4:70", + "nodeType": "YulTypedName", + "src": "829:4:70", + "type": "" + } + ], + "src": "665:333:70" + }, + { + "body": { + "nativeSrc": "1272:520:70", + "nodeType": "YulBlock", + "src": "1272:520:70", + "statements": [ + { + "nativeSrc": "1282:27:70", + "nodeType": "YulAssignment", + "src": "1282:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1294:9:70", + "nodeType": "YulIdentifier", + "src": "1294:9:70" + }, + { + "kind": "number", + "nativeSrc": "1305:3:70", + "nodeType": "YulLiteral", + "src": "1305:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1290:3:70", + "nodeType": "YulIdentifier", + "src": "1290:3:70" + }, + "nativeSrc": "1290:19:70", + "nodeType": "YulFunctionCall", + "src": "1290:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1282:4:70", + "nodeType": "YulIdentifier", + "src": "1282:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1325:9:70", + "nodeType": "YulIdentifier", + "src": "1325:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1340:6:70", + "nodeType": "YulIdentifier", + "src": "1340:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1356:3:70", + "nodeType": "YulLiteral", + "src": "1356:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1361:1:70", + "nodeType": "YulLiteral", + "src": "1361:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1352:3:70", + "nodeType": "YulIdentifier", + "src": "1352:3:70" + }, + "nativeSrc": "1352:11:70", + "nodeType": "YulFunctionCall", + "src": "1352:11:70" + }, + { + "kind": "number", + "nativeSrc": "1365:1:70", + "nodeType": "YulLiteral", + "src": "1365:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1348:3:70", + "nodeType": "YulIdentifier", + "src": "1348:3:70" + }, + "nativeSrc": "1348:19:70", + "nodeType": "YulFunctionCall", + "src": "1348:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1336:3:70", + "nodeType": "YulIdentifier", + "src": "1336:3:70" + }, + "nativeSrc": "1336:32:70", + "nodeType": "YulFunctionCall", + "src": "1336:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1318:6:70", + "nodeType": "YulIdentifier", + "src": "1318:6:70" + }, + "nativeSrc": "1318:51:70", + "nodeType": "YulFunctionCall", + "src": "1318:51:70" + }, + "nativeSrc": "1318:51:70", + "nodeType": "YulExpressionStatement", + "src": "1318:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1389:9:70", + "nodeType": "YulIdentifier", + "src": "1389:9:70" + }, + { + "kind": "number", + "nativeSrc": "1400:2:70", + "nodeType": "YulLiteral", + "src": "1400:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1385:3:70", + "nodeType": "YulIdentifier", + "src": "1385:3:70" + }, + "nativeSrc": "1385:18:70", + "nodeType": "YulFunctionCall", + "src": "1385:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "1409:6:70", + "nodeType": "YulIdentifier", + "src": "1409:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1425:3:70", + "nodeType": "YulLiteral", + "src": "1425:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1430:1:70", + "nodeType": "YulLiteral", + "src": "1430:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1421:3:70", + "nodeType": "YulIdentifier", + "src": "1421:3:70" + }, + "nativeSrc": "1421:11:70", + "nodeType": "YulFunctionCall", + "src": "1421:11:70" + }, + { + "kind": "number", + "nativeSrc": "1434:1:70", + "nodeType": "YulLiteral", + "src": "1434:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1417:3:70", + "nodeType": "YulIdentifier", + "src": "1417:3:70" + }, + "nativeSrc": "1417:19:70", + "nodeType": "YulFunctionCall", + "src": "1417:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1405:3:70", + "nodeType": "YulIdentifier", + "src": "1405:3:70" + }, + "nativeSrc": "1405:32:70", + "nodeType": "YulFunctionCall", + "src": "1405:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1378:6:70", + "nodeType": "YulIdentifier", + "src": "1378:6:70" + }, + "nativeSrc": "1378:60:70", + "nodeType": "YulFunctionCall", + "src": "1378:60:70" + }, + "nativeSrc": "1378:60:70", + "nodeType": "YulExpressionStatement", + "src": "1378:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1458:9:70", + "nodeType": "YulIdentifier", + "src": "1458:9:70" + }, + { + "kind": "number", + "nativeSrc": "1469:2:70", + "nodeType": "YulLiteral", + "src": "1469:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1454:3:70", + "nodeType": "YulIdentifier", + "src": "1454:3:70" + }, + "nativeSrc": "1454:18:70", + "nodeType": "YulFunctionCall", + "src": "1454:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "1478:6:70", + "nodeType": "YulIdentifier", + "src": "1478:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1494:3:70", + "nodeType": "YulLiteral", + "src": "1494:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1499:1:70", + "nodeType": "YulLiteral", + "src": "1499:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1490:3:70", + "nodeType": "YulIdentifier", + "src": "1490:3:70" + }, + "nativeSrc": "1490:11:70", + "nodeType": "YulFunctionCall", + "src": "1490:11:70" + }, + { + "kind": "number", + "nativeSrc": "1503:1:70", + "nodeType": "YulLiteral", + "src": "1503:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1486:3:70", + "nodeType": "YulIdentifier", + "src": "1486:3:70" + }, + "nativeSrc": "1486:19:70", + "nodeType": "YulFunctionCall", + "src": "1486:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1474:3:70", + "nodeType": "YulIdentifier", + "src": "1474:3:70" + }, + "nativeSrc": "1474:32:70", + "nodeType": "YulFunctionCall", + "src": "1474:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1447:6:70", + "nodeType": "YulIdentifier", + "src": "1447:6:70" + }, + "nativeSrc": "1447:60:70", + "nodeType": "YulFunctionCall", + "src": "1447:60:70" + }, + "nativeSrc": "1447:60:70", + "nodeType": "YulExpressionStatement", + "src": "1447:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1527:9:70", + "nodeType": "YulIdentifier", + "src": "1527:9:70" + }, + { + "kind": "number", + "nativeSrc": "1538:2:70", + "nodeType": "YulLiteral", + "src": "1538:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1523:3:70", + "nodeType": "YulIdentifier", + "src": "1523:3:70" + }, + "nativeSrc": "1523:18:70", + "nodeType": "YulFunctionCall", + "src": "1523:18:70" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "1547:6:70", + "nodeType": "YulIdentifier", + "src": "1547:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1563:3:70", + "nodeType": "YulLiteral", + "src": "1563:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1568:1:70", + "nodeType": "YulLiteral", + "src": "1568:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1559:3:70", + "nodeType": "YulIdentifier", + "src": "1559:3:70" + }, + "nativeSrc": "1559:11:70", + "nodeType": "YulFunctionCall", + "src": "1559:11:70" + }, + { + "kind": "number", + "nativeSrc": "1572:1:70", + "nodeType": "YulLiteral", + "src": "1572:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1555:3:70", + "nodeType": "YulIdentifier", + "src": "1555:3:70" + }, + "nativeSrc": "1555:19:70", + "nodeType": "YulFunctionCall", + "src": "1555:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1543:3:70", + "nodeType": "YulIdentifier", + "src": "1543:3:70" + }, + "nativeSrc": "1543:32:70", + "nodeType": "YulFunctionCall", + "src": "1543:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1516:6:70", + "nodeType": "YulIdentifier", + "src": "1516:6:70" + }, + "nativeSrc": "1516:60:70", + "nodeType": "YulFunctionCall", + "src": "1516:60:70" + }, + "nativeSrc": "1516:60:70", + "nodeType": "YulExpressionStatement", + "src": "1516:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1596:9:70", + "nodeType": "YulIdentifier", + "src": "1596:9:70" + }, + { + "kind": "number", + "nativeSrc": "1607:3:70", + "nodeType": "YulLiteral", + "src": "1607:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1592:3:70", + "nodeType": "YulIdentifier", + "src": "1592:3:70" + }, + "nativeSrc": "1592:19:70", + "nodeType": "YulFunctionCall", + "src": "1592:19:70" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "1617:6:70", + "nodeType": "YulIdentifier", + "src": "1617:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1633:3:70", + "nodeType": "YulLiteral", + "src": "1633:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1638:1:70", + "nodeType": "YulLiteral", + "src": "1638:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1629:3:70", + "nodeType": "YulIdentifier", + "src": "1629:3:70" + }, + "nativeSrc": "1629:11:70", + "nodeType": "YulFunctionCall", + "src": "1629:11:70" + }, + { + "kind": "number", + "nativeSrc": "1642:1:70", + "nodeType": "YulLiteral", + "src": "1642:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1625:3:70", + "nodeType": "YulIdentifier", + "src": "1625:3:70" + }, + "nativeSrc": "1625:19:70", + "nodeType": "YulFunctionCall", + "src": "1625:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1613:3:70", + "nodeType": "YulIdentifier", + "src": "1613:3:70" + }, + "nativeSrc": "1613:32:70", + "nodeType": "YulFunctionCall", + "src": "1613:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1585:6:70", + "nodeType": "YulIdentifier", + "src": "1585:6:70" + }, + "nativeSrc": "1585:61:70", + "nodeType": "YulFunctionCall", + "src": "1585:61:70" + }, + "nativeSrc": "1585:61:70", + "nodeType": "YulExpressionStatement", + "src": "1585:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1666:9:70", + "nodeType": "YulIdentifier", + "src": "1666:9:70" + }, + { + "kind": "number", + "nativeSrc": "1677:3:70", + "nodeType": "YulLiteral", + "src": "1677:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1662:3:70", + "nodeType": "YulIdentifier", + "src": "1662:3:70" + }, + "nativeSrc": "1662:19:70", + "nodeType": "YulFunctionCall", + "src": "1662:19:70" + }, + { + "arguments": [ + { + "name": "value5", + "nativeSrc": "1687:6:70", + "nodeType": "YulIdentifier", + "src": "1687:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1703:3:70", + "nodeType": "YulLiteral", + "src": "1703:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1708:1:70", + "nodeType": "YulLiteral", + "src": "1708:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1699:3:70", + "nodeType": "YulIdentifier", + "src": "1699:3:70" + }, + "nativeSrc": "1699:11:70", + "nodeType": "YulFunctionCall", + "src": "1699:11:70" + }, + { + "kind": "number", + "nativeSrc": "1712:1:70", + "nodeType": "YulLiteral", + "src": "1712:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1695:3:70", + "nodeType": "YulIdentifier", + "src": "1695:3:70" + }, + "nativeSrc": "1695:19:70", + "nodeType": "YulFunctionCall", + "src": "1695:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1683:3:70", + "nodeType": "YulIdentifier", + "src": "1683:3:70" + }, + "nativeSrc": "1683:32:70", + "nodeType": "YulFunctionCall", + "src": "1683:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1655:6:70", + "nodeType": "YulIdentifier", + "src": "1655:6:70" + }, + "nativeSrc": "1655:61:70", + "nodeType": "YulFunctionCall", + "src": "1655:61:70" + }, + "nativeSrc": "1655:61:70", + "nodeType": "YulExpressionStatement", + "src": "1655:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1736:9:70", + "nodeType": "YulIdentifier", + "src": "1736:9:70" + }, + { + "kind": "number", + "nativeSrc": "1747:3:70", + "nodeType": "YulLiteral", + "src": "1747:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1732:3:70", + "nodeType": "YulIdentifier", + "src": "1732:3:70" + }, + "nativeSrc": "1732:19:70", + "nodeType": "YulFunctionCall", + "src": "1732:19:70" + }, + { + "arguments": [ + { + "name": "value6", + "nativeSrc": "1757:6:70", + "nodeType": "YulIdentifier", + "src": "1757:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1773:3:70", + "nodeType": "YulLiteral", + "src": "1773:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1778:1:70", + "nodeType": "YulLiteral", + "src": "1778:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1769:3:70", + "nodeType": "YulIdentifier", + "src": "1769:3:70" + }, + "nativeSrc": "1769:11:70", + "nodeType": "YulFunctionCall", + "src": "1769:11:70" + }, + { + "kind": "number", + "nativeSrc": "1782:1:70", + "nodeType": "YulLiteral", + "src": "1782:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1765:3:70", + "nodeType": "YulIdentifier", + "src": "1765:3:70" + }, + "nativeSrc": "1765:19:70", + "nodeType": "YulFunctionCall", + "src": "1765:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1753:3:70", + "nodeType": "YulIdentifier", + "src": "1753:3:70" + }, + "nativeSrc": "1753:32:70", + "nodeType": "YulFunctionCall", + "src": "1753:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1725:6:70", + "nodeType": "YulIdentifier", + "src": "1725:6:70" + }, + "nativeSrc": "1725:61:70", + "nodeType": "YulFunctionCall", + "src": "1725:61:70" + }, + "nativeSrc": "1725:61:70", + "nodeType": "YulExpressionStatement", + "src": "1725:61:70" + } + ] + }, + "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:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1193:9:70", + "nodeType": "YulTypedName", + "src": "1193:9:70", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "1204:6:70", + "nodeType": "YulTypedName", + "src": "1204:6:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "1212:6:70", + "nodeType": "YulTypedName", + "src": "1212:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "1220:6:70", + "nodeType": "YulTypedName", + "src": "1220:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1228:6:70", + "nodeType": "YulTypedName", + "src": "1228:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1236:6:70", + "nodeType": "YulTypedName", + "src": "1236:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1244:6:70", + "nodeType": "YulTypedName", + "src": "1244:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1252:6:70", + "nodeType": "YulTypedName", + "src": "1252:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1263:4:70", + "nodeType": "YulTypedName", + "src": "1263:4:70", + "type": "" + } + ], + "src": "1003:789:70" + }, + { + "body": { + "nativeSrc": "1982:310:70", + "nodeType": "YulBlock", + "src": "1982:310:70", + "statements": [ + { + "nativeSrc": "1992:27:70", + "nodeType": "YulAssignment", + "src": "1992:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2004:9:70", + "nodeType": "YulIdentifier", + "src": "2004:9:70" + }, + { + "kind": "number", + "nativeSrc": "2015:3:70", + "nodeType": "YulLiteral", + "src": "2015:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2000:3:70", + "nodeType": "YulIdentifier", + "src": "2000:3:70" + }, + "nativeSrc": "2000:19:70", + "nodeType": "YulFunctionCall", + "src": "2000:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1992:4:70", + "nodeType": "YulIdentifier", + "src": "1992:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2035:9:70", + "nodeType": "YulIdentifier", + "src": "2035:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2050:6:70", + "nodeType": "YulIdentifier", + "src": "2050:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2066:3:70", + "nodeType": "YulLiteral", + "src": "2066:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2071:1:70", + "nodeType": "YulLiteral", + "src": "2071:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2062:3:70", + "nodeType": "YulIdentifier", + "src": "2062:3:70" + }, + "nativeSrc": "2062:11:70", + "nodeType": "YulFunctionCall", + "src": "2062:11:70" + }, + { + "kind": "number", + "nativeSrc": "2075:1:70", + "nodeType": "YulLiteral", + "src": "2075:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2058:3:70", + "nodeType": "YulIdentifier", + "src": "2058:3:70" + }, + "nativeSrc": "2058:19:70", + "nodeType": "YulFunctionCall", + "src": "2058:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2046:3:70", + "nodeType": "YulIdentifier", + "src": "2046:3:70" + }, + "nativeSrc": "2046:32:70", + "nodeType": "YulFunctionCall", + "src": "2046:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2028:6:70", + "nodeType": "YulIdentifier", + "src": "2028:6:70" + }, + "nativeSrc": "2028:51:70", + "nodeType": "YulFunctionCall", + "src": "2028:51:70" + }, + "nativeSrc": "2028:51:70", + "nodeType": "YulExpressionStatement", + "src": "2028:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2099:9:70", + "nodeType": "YulIdentifier", + "src": "2099:9:70" + }, + { + "kind": "number", + "nativeSrc": "2110:2:70", + "nodeType": "YulLiteral", + "src": "2110:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2095:3:70", + "nodeType": "YulIdentifier", + "src": "2095:3:70" + }, + "nativeSrc": "2095:18:70", + "nodeType": "YulFunctionCall", + "src": "2095:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2119:6:70", + "nodeType": "YulIdentifier", + "src": "2119:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2135:3:70", + "nodeType": "YulLiteral", + "src": "2135:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2140:1:70", + "nodeType": "YulLiteral", + "src": "2140:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2131:3:70", + "nodeType": "YulIdentifier", + "src": "2131:3:70" + }, + "nativeSrc": "2131:11:70", + "nodeType": "YulFunctionCall", + "src": "2131:11:70" + }, + { + "kind": "number", + "nativeSrc": "2144:1:70", + "nodeType": "YulLiteral", + "src": "2144:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2127:3:70", + "nodeType": "YulIdentifier", + "src": "2127:3:70" + }, + "nativeSrc": "2127:19:70", + "nodeType": "YulFunctionCall", + "src": "2127:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2115:3:70", + "nodeType": "YulIdentifier", + "src": "2115:3:70" + }, + "nativeSrc": "2115:32:70", + "nodeType": "YulFunctionCall", + "src": "2115:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2088:6:70", + "nodeType": "YulIdentifier", + "src": "2088:6:70" + }, + "nativeSrc": "2088:60:70", + "nodeType": "YulFunctionCall", + "src": "2088:60:70" + }, + "nativeSrc": "2088:60:70", + "nodeType": "YulExpressionStatement", + "src": "2088:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2168:9:70", + "nodeType": "YulIdentifier", + "src": "2168:9:70" + }, + { + "kind": "number", + "nativeSrc": "2179:2:70", + "nodeType": "YulLiteral", + "src": "2179:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2164:3:70", + "nodeType": "YulIdentifier", + "src": "2164:3:70" + }, + "nativeSrc": "2164:18:70", + "nodeType": "YulFunctionCall", + "src": "2164:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "2188:6:70", + "nodeType": "YulIdentifier", + "src": "2188:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2204:3:70", + "nodeType": "YulLiteral", + "src": "2204:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2209:1:70", + "nodeType": "YulLiteral", + "src": "2209:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2200:3:70", + "nodeType": "YulIdentifier", + "src": "2200:3:70" + }, + "nativeSrc": "2200:11:70", + "nodeType": "YulFunctionCall", + "src": "2200:11:70" + }, + { + "kind": "number", + "nativeSrc": "2213:1:70", + "nodeType": "YulLiteral", + "src": "2213:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2196:3:70", + "nodeType": "YulIdentifier", + "src": "2196:3:70" + }, + "nativeSrc": "2196:19:70", + "nodeType": "YulFunctionCall", + "src": "2196:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2184:3:70", + "nodeType": "YulIdentifier", + "src": "2184:3:70" + }, + "nativeSrc": "2184:32:70", + "nodeType": "YulFunctionCall", + "src": "2184:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2157:6:70", + "nodeType": "YulIdentifier", + "src": "2157:6:70" + }, + "nativeSrc": "2157:60:70", + "nodeType": "YulFunctionCall", + "src": "2157:60:70" + }, + "nativeSrc": "2157:60:70", + "nodeType": "YulExpressionStatement", + "src": "2157:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2237:9:70", + "nodeType": "YulIdentifier", + "src": "2237:9:70" + }, + { + "kind": "number", + "nativeSrc": "2248:2:70", + "nodeType": "YulLiteral", + "src": "2248:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2233:3:70", + "nodeType": "YulIdentifier", + "src": "2233:3:70" + }, + "nativeSrc": "2233:18:70", + "nodeType": "YulFunctionCall", + "src": "2233:18:70" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "2257:6:70", + "nodeType": "YulIdentifier", + "src": "2257:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2273:3:70", + "nodeType": "YulLiteral", + "src": "2273:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2278:1:70", + "nodeType": "YulLiteral", + "src": "2278:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2269:3:70", + "nodeType": "YulIdentifier", + "src": "2269:3:70" + }, + "nativeSrc": "2269:11:70", + "nodeType": "YulFunctionCall", + "src": "2269:11:70" + }, + { + "kind": "number", + "nativeSrc": "2282:1:70", + "nodeType": "YulLiteral", + "src": "2282:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2265:3:70", + "nodeType": "YulIdentifier", + "src": "2265:3:70" + }, + "nativeSrc": "2265:19:70", + "nodeType": "YulFunctionCall", + "src": "2265:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2253:3:70", + "nodeType": "YulIdentifier", + "src": "2253:3:70" + }, + "nativeSrc": "2253:32:70", + "nodeType": "YulFunctionCall", + "src": "2253:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2226:6:70", + "nodeType": "YulIdentifier", + "src": "2226:6:70" + }, + "nativeSrc": "2226:60:70", + "nodeType": "YulFunctionCall", + "src": "2226:60:70" + }, + "nativeSrc": "2226:60:70", + "nodeType": "YulExpressionStatement", + "src": "2226:60:70" + } + ] + }, + "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:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1927:9:70", + "nodeType": "YulTypedName", + "src": "1927:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1938:6:70", + "nodeType": "YulTypedName", + "src": "1938:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1946:6:70", + "nodeType": "YulTypedName", + "src": "1946:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1954:6:70", + "nodeType": "YulTypedName", + "src": "1954:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1962:6:70", + "nodeType": "YulTypedName", + "src": "1962:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1973:4:70", + "nodeType": "YulTypedName", + "src": "1973:4:70", + "type": "" + } + ], + "src": "1797:495:70" + }, + { + "body": { + "nativeSrc": "2398:76:70", + "nodeType": "YulBlock", + "src": "2398:76:70", + "statements": [ + { + "nativeSrc": "2408:26:70", + "nodeType": "YulAssignment", + "src": "2408:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2420:9:70", + "nodeType": "YulIdentifier", + "src": "2420:9:70" + }, + { + "kind": "number", + "nativeSrc": "2431:2:70", + "nodeType": "YulLiteral", + "src": "2431:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2416:3:70", + "nodeType": "YulIdentifier", + "src": "2416:3:70" + }, + "nativeSrc": "2416:18:70", + "nodeType": "YulFunctionCall", + "src": "2416:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2408:4:70", + "nodeType": "YulIdentifier", + "src": "2408:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2450:9:70", + "nodeType": "YulIdentifier", + "src": "2450:9:70" + }, + { + "name": "value0", + "nativeSrc": "2461:6:70", + "nodeType": "YulIdentifier", + "src": "2461:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2443:6:70", + "nodeType": "YulIdentifier", + "src": "2443:6:70" + }, + "nativeSrc": "2443:25:70", + "nodeType": "YulFunctionCall", + "src": "2443:25:70" + }, + "nativeSrc": "2443:25:70", + "nodeType": "YulExpressionStatement", + "src": "2443:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "2297:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2367:9:70", + "nodeType": "YulTypedName", + "src": "2367:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2378:6:70", + "nodeType": "YulTypedName", + "src": "2378:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2389:4:70", + "nodeType": "YulTypedName", + "src": "2389:4:70", + "type": "" + } + ], + "src": "2297:177:70" + }, + { + "body": { + "nativeSrc": "2560:127:70", + "nodeType": "YulBlock", + "src": "2560:127:70", + "statements": [ + { + "body": { + "nativeSrc": "2606:16:70", + "nodeType": "YulBlock", + "src": "2606:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2615:1:70", + "nodeType": "YulLiteral", + "src": "2615:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2618:1:70", + "nodeType": "YulLiteral", + "src": "2618:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2608:6:70", + "nodeType": "YulIdentifier", + "src": "2608:6:70" + }, + "nativeSrc": "2608:12:70", + "nodeType": "YulFunctionCall", + "src": "2608:12:70" + }, + "nativeSrc": "2608:12:70", + "nodeType": "YulExpressionStatement", + "src": "2608:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2581:7:70", + "nodeType": "YulIdentifier", + "src": "2581:7:70" + }, + { + "name": "headStart", + "nativeSrc": "2590:9:70", + "nodeType": "YulIdentifier", + "src": "2590:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2577:3:70", + "nodeType": "YulIdentifier", + "src": "2577:3:70" + }, + "nativeSrc": "2577:23:70", + "nodeType": "YulFunctionCall", + "src": "2577:23:70" + }, + { + "kind": "number", + "nativeSrc": "2602:2:70", + "nodeType": "YulLiteral", + "src": "2602:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2573:3:70", + "nodeType": "YulIdentifier", + "src": "2573:3:70" + }, + "nativeSrc": "2573:32:70", + "nodeType": "YulFunctionCall", + "src": "2573:32:70" + }, + "nativeSrc": "2570:52:70", + "nodeType": "YulIf", + "src": "2570:52:70" + }, + { + "nativeSrc": "2631:50:70", + "nodeType": "YulAssignment", + "src": "2631:50:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2671:9:70", + "nodeType": "YulIdentifier", + "src": "2671:9:70" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "2641:29:70", + "nodeType": "YulIdentifier", + "src": "2641:29:70" + }, + "nativeSrc": "2641:40:70", + "nodeType": "YulFunctionCall", + "src": "2641:40:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2631:6:70", + "nodeType": "YulIdentifier", + "src": "2631:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "2479:208:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2526:9:70", + "nodeType": "YulTypedName", + "src": "2526:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2537:7:70", + "nodeType": "YulTypedName", + "src": "2537:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2549:6:70", + "nodeType": "YulTypedName", + "src": "2549:6:70", + "type": "" + } + ], + "src": "2479:208:70" + }, + { + "body": { + "nativeSrc": "2811:406:70", + "nodeType": "YulBlock", + "src": "2811:406:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2828:9:70", + "nodeType": "YulIdentifier", + "src": "2828:9:70" + }, + { + "kind": "number", + "nativeSrc": "2839:2:70", + "nodeType": "YulLiteral", + "src": "2839:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2821:6:70", + "nodeType": "YulIdentifier", + "src": "2821:6:70" + }, + "nativeSrc": "2821:21:70", + "nodeType": "YulFunctionCall", + "src": "2821:21:70" + }, + "nativeSrc": "2821:21:70", + "nodeType": "YulExpressionStatement", + "src": "2821:21:70" + }, + { + "nativeSrc": "2851:27:70", + "nodeType": "YulVariableDeclaration", + "src": "2851:27:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2871:6:70", + "nodeType": "YulIdentifier", + "src": "2871:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2865:5:70", + "nodeType": "YulIdentifier", + "src": "2865:5:70" + }, + "nativeSrc": "2865:13:70", + "nodeType": "YulFunctionCall", + "src": "2865:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2855:6:70", + "nodeType": "YulTypedName", + "src": "2855:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2898:9:70", + "nodeType": "YulIdentifier", + "src": "2898:9:70" + }, + { + "kind": "number", + "nativeSrc": "2909:2:70", + "nodeType": "YulLiteral", + "src": "2909:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2894:3:70", + "nodeType": "YulIdentifier", + "src": "2894:3:70" + }, + "nativeSrc": "2894:18:70", + "nodeType": "YulFunctionCall", + "src": "2894:18:70" + }, + { + "name": "length", + "nativeSrc": "2914:6:70", + "nodeType": "YulIdentifier", + "src": "2914:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2887:6:70", + "nodeType": "YulIdentifier", + "src": "2887:6:70" + }, + "nativeSrc": "2887:34:70", + "nodeType": "YulFunctionCall", + "src": "2887:34:70" + }, + "nativeSrc": "2887:34:70", + "nodeType": "YulExpressionStatement", + "src": "2887:34:70" + }, + { + "nativeSrc": "2930:10:70", + "nodeType": "YulVariableDeclaration", + "src": "2930:10:70", + "value": { + "kind": "number", + "nativeSrc": "2939:1:70", + "nodeType": "YulLiteral", + "src": "2939:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "2934:1:70", + "nodeType": "YulTypedName", + "src": "2934:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2999:90:70", + "nodeType": "YulBlock", + "src": "2999:90:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3028:9:70", + "nodeType": "YulIdentifier", + "src": "3028:9:70" + }, + { + "name": "i", + "nativeSrc": "3039:1:70", + "nodeType": "YulIdentifier", + "src": "3039:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3024:3:70", + "nodeType": "YulIdentifier", + "src": "3024:3:70" + }, + "nativeSrc": "3024:17:70", + "nodeType": "YulFunctionCall", + "src": "3024:17:70" + }, + { + "kind": "number", + "nativeSrc": "3043:2:70", + "nodeType": "YulLiteral", + "src": "3043:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3020:3:70", + "nodeType": "YulIdentifier", + "src": "3020:3:70" + }, + "nativeSrc": "3020:26:70", + "nodeType": "YulFunctionCall", + "src": "3020:26:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3062:6:70", + "nodeType": "YulIdentifier", + "src": "3062:6:70" + }, + { + "name": "i", + "nativeSrc": "3070:1:70", + "nodeType": "YulIdentifier", + "src": "3070:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3058:3:70", + "nodeType": "YulIdentifier", + "src": "3058:3:70" + }, + "nativeSrc": "3058:14:70", + "nodeType": "YulFunctionCall", + "src": "3058:14:70" + }, + { + "kind": "number", + "nativeSrc": "3074:2:70", + "nodeType": "YulLiteral", + "src": "3074:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3054:3:70", + "nodeType": "YulIdentifier", + "src": "3054:3:70" + }, + "nativeSrc": "3054:23:70", + "nodeType": "YulFunctionCall", + "src": "3054:23:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3048:5:70", + "nodeType": "YulIdentifier", + "src": "3048:5:70" + }, + "nativeSrc": "3048:30:70", + "nodeType": "YulFunctionCall", + "src": "3048:30:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3013:6:70", + "nodeType": "YulIdentifier", + "src": "3013:6:70" + }, + "nativeSrc": "3013:66:70", + "nodeType": "YulFunctionCall", + "src": "3013:66:70" + }, + "nativeSrc": "3013:66:70", + "nodeType": "YulExpressionStatement", + "src": "3013:66:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2960:1:70", + "nodeType": "YulIdentifier", + "src": "2960:1:70" + }, + { + "name": "length", + "nativeSrc": "2963:6:70", + "nodeType": "YulIdentifier", + "src": "2963:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2957:2:70", + "nodeType": "YulIdentifier", + "src": "2957:2:70" + }, + "nativeSrc": "2957:13:70", + "nodeType": "YulFunctionCall", + "src": "2957:13:70" + }, + "nativeSrc": "2949:140:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2971:19:70", + "nodeType": "YulBlock", + "src": "2971:19:70", + "statements": [ + { + "nativeSrc": "2973:15:70", + "nodeType": "YulAssignment", + "src": "2973:15:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2982:1:70", + "nodeType": "YulIdentifier", + "src": "2982:1:70" + }, + { + "kind": "number", + "nativeSrc": "2985:2:70", + "nodeType": "YulLiteral", + "src": "2985:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2978:3:70", + "nodeType": "YulIdentifier", + "src": "2978:3:70" + }, + "nativeSrc": "2978:10:70", + "nodeType": "YulFunctionCall", + "src": "2978:10:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "2973:1:70", + "nodeType": "YulIdentifier", + "src": "2973:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2953:3:70", + "nodeType": "YulBlock", + "src": "2953:3:70", + "statements": [] + }, + "src": "2949:140:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3113:9:70", + "nodeType": "YulIdentifier", + "src": "3113:9:70" + }, + { + "name": "length", + "nativeSrc": "3124:6:70", + "nodeType": "YulIdentifier", + "src": "3124:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3109:3:70", + "nodeType": "YulIdentifier", + "src": "3109:3:70" + }, + "nativeSrc": "3109:22:70", + "nodeType": "YulFunctionCall", + "src": "3109:22:70" + }, + { + "kind": "number", + "nativeSrc": "3133:2:70", + "nodeType": "YulLiteral", + "src": "3133:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3105:3:70", + "nodeType": "YulIdentifier", + "src": "3105:3:70" + }, + "nativeSrc": "3105:31:70", + "nodeType": "YulFunctionCall", + "src": "3105:31:70" + }, + { + "kind": "number", + "nativeSrc": "3138:1:70", + "nodeType": "YulLiteral", + "src": "3138:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3098:6:70", + "nodeType": "YulIdentifier", + "src": "3098:6:70" + }, + "nativeSrc": "3098:42:70", + "nodeType": "YulFunctionCall", + "src": "3098:42:70" + }, + "nativeSrc": "3098:42:70", + "nodeType": "YulExpressionStatement", + "src": "3098:42:70" + }, + { + "nativeSrc": "3149:62:70", + "nodeType": "YulAssignment", + "src": "3149:62:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3165:9:70", + "nodeType": "YulIdentifier", + "src": "3165:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3184:6:70", + "nodeType": "YulIdentifier", + "src": "3184:6:70" + }, + { + "kind": "number", + "nativeSrc": "3192:2:70", + "nodeType": "YulLiteral", + "src": "3192:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3180:3:70", + "nodeType": "YulIdentifier", + "src": "3180:3:70" + }, + "nativeSrc": "3180:15:70", + "nodeType": "YulFunctionCall", + "src": "3180:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3201:2:70", + "nodeType": "YulLiteral", + "src": "3201:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3197:3:70", + "nodeType": "YulIdentifier", + "src": "3197:3:70" + }, + "nativeSrc": "3197:7:70", + "nodeType": "YulFunctionCall", + "src": "3197:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3176:3:70", + "nodeType": "YulIdentifier", + "src": "3176:3:70" + }, + "nativeSrc": "3176:29:70", + "nodeType": "YulFunctionCall", + "src": "3176:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3161:3:70", + "nodeType": "YulIdentifier", + "src": "3161:3:70" + }, + "nativeSrc": "3161:45:70", + "nodeType": "YulFunctionCall", + "src": "3161:45:70" + }, + { + "kind": "number", + "nativeSrc": "3208:2:70", + "nodeType": "YulLiteral", + "src": "3208:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3157:3:70", + "nodeType": "YulIdentifier", + "src": "3157:3:70" + }, + "nativeSrc": "3157:54:70", + "nodeType": "YulFunctionCall", + "src": "3157:54:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3149:4:70", + "nodeType": "YulIdentifier", + "src": "3149:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "2692:525:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2780:9:70", + "nodeType": "YulTypedName", + "src": "2780:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2791:6:70", + "nodeType": "YulTypedName", + "src": "2791:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2802:4:70", + "nodeType": "YulTypedName", + "src": "2802:4:70", + "type": "" + } + ], + "src": "2692:525:70" + }, + { + "body": { + "nativeSrc": "3321:101:70", + "nodeType": "YulBlock", + "src": "3321:101:70", + "statements": [ + { + "nativeSrc": "3331:26:70", + "nodeType": "YulAssignment", + "src": "3331:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3343:9:70", + "nodeType": "YulIdentifier", + "src": "3343:9:70" + }, + { + "kind": "number", + "nativeSrc": "3354:2:70", + "nodeType": "YulLiteral", + "src": "3354:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3339:3:70", + "nodeType": "YulIdentifier", + "src": "3339:3:70" + }, + "nativeSrc": "3339:18:70", + "nodeType": "YulFunctionCall", + "src": "3339:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3331:4:70", + "nodeType": "YulIdentifier", + "src": "3331:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3373:9:70", + "nodeType": "YulIdentifier", + "src": "3373:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3388:6:70", + "nodeType": "YulIdentifier", + "src": "3388:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3404:2:70", + "nodeType": "YulLiteral", + "src": "3404:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "3408:1:70", + "nodeType": "YulLiteral", + "src": "3408:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3400:3:70", + "nodeType": "YulIdentifier", + "src": "3400:3:70" + }, + "nativeSrc": "3400:10:70", + "nodeType": "YulFunctionCall", + "src": "3400:10:70" + }, + { + "kind": "number", + "nativeSrc": "3412:1:70", + "nodeType": "YulLiteral", + "src": "3412:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3396:3:70", + "nodeType": "YulIdentifier", + "src": "3396:3:70" + }, + "nativeSrc": "3396:18:70", + "nodeType": "YulFunctionCall", + "src": "3396:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3384:3:70", + "nodeType": "YulIdentifier", + "src": "3384:3:70" + }, + "nativeSrc": "3384:31:70", + "nodeType": "YulFunctionCall", + "src": "3384:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3366:6:70", + "nodeType": "YulIdentifier", + "src": "3366:6:70" + }, + "nativeSrc": "3366:50:70", + "nodeType": "YulFunctionCall", + "src": "3366:50:70" + }, + "nativeSrc": "3366:50:70", + "nodeType": "YulExpressionStatement", + "src": "3366:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "3222:200:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3290:9:70", + "nodeType": "YulTypedName", + "src": "3290:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3301:6:70", + "nodeType": "YulTypedName", + "src": "3301:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3312:4:70", + "nodeType": "YulTypedName", + "src": "3312:4:70", + "type": "" + } + ], + "src": "3222:200:70" + } + ] + }, + "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": 70, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "61024060405234801561001157600080fd5b5060405161667738038061667783398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615fd961069e6000396000612ee2015260006132de01526000818161163b0152612fe101526000505060005050600050506000505060006137080152600061457c01526000505060005050600050506000611b6b01526000613a640152615fd96000f3fe608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "opcodes": "PUSH2 0x240 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x6677 CODESIZE SUB DUP1 PUSH2 0x6677 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 0x5FD9 PUSH2 0x69E PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x2EE2 ADD MSTORE PUSH1 0x0 PUSH2 0x32DE ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x163B ADD MSTORE PUSH2 0x2FE1 ADD MSTORE PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 PUSH2 0x3708 ADD MSTORE PUSH1 0x0 PUSH2 0x457C ADD MSTORE PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 PUSH2 0x1B6B ADD MSTORE PUSH1 0x0 PUSH2 0x3A64 ADD MSTORE PUSH2 0x5FD9 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 0x23B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7E736D8 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xE022923 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0x138DEA08 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x13C474C9 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x1DD42F60 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1EBB7C30 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x35577962 EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x45F54485 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x482468B7 EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x4F793CDC EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x55C85269 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x472 JUMPI DUP1 PUSH4 0x6234E216 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0x6CCEC5B8 EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0x6D9A3951 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0x71CE020A EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0x7AA31BCE EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0x7DFE6D28 EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0x7E89BAC3 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x8180083B EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x819BA366 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x81E777A7 EQ PUSH2 0x5B8 JUMPI DUP1 PUSH4 0x832BC923 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x85E82BAF EQ PUSH2 0x601 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60A JUMPI DUP1 PUSH4 0x9384E078 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xB15D2A2C EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0xBA38F67D EQ PUSH2 0x668 JUMPI DUP1 PUSH4 0xC0F47497 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xC84A5EF3 EQ PUSH2 0x683 JUMPI DUP1 PUSH4 0xCB8347FE EQ PUSH2 0x696 JUMPI DUP1 PUSH4 0xCBE5F3F2 EQ PUSH2 0x6A9 JUMPI DUP1 PUSH4 0xCE0FC0CC EQ PUSH2 0x6C9 JUMPI DUP1 PUSH4 0xCE56C98B EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xD07A7A84 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0xDB9BEE46 EQ PUSH2 0x6F9 JUMPI DUP1 PUSH4 0xDEDF6726 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xE2E1E8E9 EQ PUSH2 0x714 JUMPI DUP1 PUSH4 0xE6F50054 EQ PUSH2 0x734 JUMPI DUP1 PUSH4 0xEBF6DDAF EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0xEC9C218D EQ PUSH2 0x74F JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x797 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x109 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 0x277 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x293 PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x7AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x312 PUSH2 0x108 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x355 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x9C 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 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x506E JUMP JUMPDEST PUSH2 0x837 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x850 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x512E JUMP JUMPDEST PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x388 PUSH2 0xA93 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xACF JUMP JUMPDEST PUSH2 0x3F8 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x5180 JUMP JUMPDEST PUSH2 0x419 PUSH2 0x414 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x51E7 JUMP JUMPDEST PUSH2 0x43B PUSH2 0x436 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP7 ISZERO ISZERO DUP8 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x20 DUP8 ADD MSTORE SWAP4 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x47A PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x498 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0xD1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x4B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x514 PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x502B 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 0xD0 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 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0xCFB JUMP JUMPDEST PUSH2 0x548 PUSH2 0xD0D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x521C JUMP JUMPDEST PUSH2 0x388 PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xD18 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x577 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0xD29 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0xDB6 JUMP JUMPDEST PUSH2 0x5AA PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0xF54 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0x10C4 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x10D8 JUMP JUMPDEST PUSH2 0x5EE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5285 JUMP JUMPDEST PUSH2 0x312 PUSH1 0xD2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x11BB JUMP JUMPDEST PUSH2 0x47A PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x648 PUSH2 0x643 CALLDATASIZE PUSH1 0x4 PUSH2 0x531D JUMP JUMPDEST PUSH2 0x11D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x5392 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x53F7 JUMP JUMPDEST PUSH2 0x12BE JUMP JUMPDEST PUSH2 0x47A PUSH2 0x676 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1492 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x14B0 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x691 CALLDATASIZE PUSH1 0x4 PUSH2 0x545F JUMP JUMPDEST PUSH2 0x14BA JUMP JUMPDEST PUSH2 0x388 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x1638 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x6B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x6D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x6EA CALLDATASIZE PUSH1 0x4 PUSH2 0x54A7 JUMP JUMPDEST PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x107 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x1873 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x70F CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x187D JUMP JUMPDEST PUSH2 0x312 PUSH2 0x722 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x742 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0x1A0B JUMP JUMPDEST PUSH2 0x26A PUSH2 0x1A1C JUMP JUMPDEST PUSH2 0x388 PUSH2 0x75D CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1A26 JUMP JUMPDEST PUSH2 0x355 PUSH2 0x770 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH1 0x9B 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 0x388 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1AA8 JUMP JUMPDEST PUSH2 0x7B2 PUSH2 0x4FAE JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x120 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 DUP2 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x83F PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x1B15 JUMP JUMPDEST POP JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x859 PUSH2 0x1B69 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 0x888 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A5 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 0x8C9 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x903 DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x90E DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x919 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0x921 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x931 DUP8 DUP10 ADD DUP10 PUSH2 0x5646 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 MLOAD GT PUSH2 0x959 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 0x97B 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 PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x9B3 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 PUSH2 0x106 SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x9FE SWAP1 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0xA13 SWAP1 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xA2F JUMPI PUSH2 0xA2F DUP10 DUP3 PUSH2 0x1DDE JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x159567BEA25499A91F60E1FBB349FF2A1F8C1B2883198F25C1E12C99EDDB44FA DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xA6A SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA85 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xA8F DUP3 DUP3 PUSH2 0x1E35 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xAC4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xACD PUSH2 0x1EEB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x848 CALLER DUP3 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH2 0x1FDD JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0xB0F SWAP1 PUSH2 0x56C1 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 0xB3B SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB88 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 0xB6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xB9D SWAP1 PUSH2 0x56C1 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 0xBC9 SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC16 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBEB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC16 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 0xBF9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x120 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 PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP4 ADD MSTORE SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH2 0xCB1 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 SWAP1 SWAP6 ADD MLOAD SWAP4 SWAP13 SWAP3 SWAP12 POP SWAP1 SWAP10 POP SWAP8 POP SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE7 PUSH2 0x2073 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x848 CALLER DUP3 PUSH2 0x1DDE JUMP JUMPDEST PUSH2 0xD03 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xACD PUSH1 0x0 PUSH2 0x2097 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH2 0x20F3 JUMP JUMPDEST PUSH2 0xD20 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x216A JUMP JUMPDEST PUSH2 0xD31 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xD3C DUP4 DUP4 DUP4 PUSH2 0x219F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xD56 DUP2 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xD78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C9C717B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH2 0x108 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 0xDBF PUSH2 0x1B69 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 0xDEE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE0B 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 0xE2F SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0xE90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xE99 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEA7 DUP5 DUP7 ADD DUP7 PUSH2 0x502B JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0xEBE PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP8 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEEC JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0xEF9 DUP2 PUSH1 0x0 PUSH2 0x2277 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x73330C218A680717E9EEE625C262DF66EDDFDF99ECB388D25F6B32D66B9A318A DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF34 SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP1 SWAP2 JUMP JUMPDEST DUP3 PUSH2 0xF5D PUSH2 0x1B69 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 0xF8C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA9 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 0xFCD SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0xFFE DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1009 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x1014 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1050 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1059 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x106E PUSH1 0xCF DUP9 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x109C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0x10BB DUP7 DUP7 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x23D9 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10CC PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xACD PUSH2 0x2746 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x1128 PUSH2 0x278D JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x113C JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x1180 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 0x8EC JUMP JUMPDEST PUSH2 0x1188 PUSH2 0x27B1 JUMP JUMPDEST PUSH2 0x1190 PUSH2 0x2852 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 0x11C6 PUSH2 0x286F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 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 0x1200 JUMPI PUSH2 0x1200 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1233 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x121E JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12B5 JUMPI PUSH2 0x1290 ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1257 JUMPI PUSH2 0x1257 PUSH2 0x5858 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1269 SWAP2 SWAP1 PUSH2 0x586E JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x127C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2893 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12A2 JUMPI PUSH2 0x12A2 PUSH2 0x5858 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1239 JUMP JUMPDEST POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x12C9 PUSH2 0x1B69 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 0x12F8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1315 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 0x1339 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x135C JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP6 PUSH1 0x0 PUSH2 0x136A DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1375 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP9 SWAP1 DUP2 SWAP1 PUSH2 0x13BC JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x13C5 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13DA JUMPI PUSH2 0x13DA PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x13F1 JUMPI PUSH2 0x13EA DUP11 DUP10 DUP10 PUSH2 0x2909 JUMP JUMPDEST SWAP1 POP PUSH2 0x1430 JUMP JUMPDEST PUSH1 0x2 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1405 JUMPI PUSH2 0x1405 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x1415 JUMPI PUSH2 0x13EA DUP11 DUP10 DUP10 PUSH2 0x2E1D JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH4 0x47031CF PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5913 JUMP JUMPDEST DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1442 JUMPI PUSH2 0x1442 PUSH2 0x58DB JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54FE682BFB66381A9382E13E4B95A3DD4F960EAFBAE063FDEA3539D144FF3FF5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x147D 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 0x12B8 DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2EC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C4 PUSH2 0x2F04 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 0x14EB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x1507 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x1515 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1533 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x155C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x1565 DUP10 PUSH2 0x2F2D JUMP JUMPDEST PUSH2 0x156D PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x1575 PUSH2 0x2F46 JUMP JUMPDEST PUSH2 0x157D PUSH2 0x2F5E JUMP JUMPDEST PUSH2 0x15C9 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 0x2F6E JUMP JUMPDEST PUSH2 0x15D5 DUP9 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x15DE DUP8 PUSH2 0x1B15 JUMP JUMPDEST PUSH2 0x15E7 DUP7 PUSH2 0x2F88 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x162D 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 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0x1685 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCDC0567F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x1697 DUP4 DUP6 ADD DUP6 PUSH2 0x5921 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x16A3 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE76FEDE6 DUP7 DUP5 DUP5 PUSH2 0x16BC PUSH2 0x2FDF 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 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 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 0x1768 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 0x1780 PUSH2 0x1B69 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 0x17AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17CC 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 0x17F0 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1813 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0x181D PUSH2 0x1DB8 JUMP JUMPDEST PUSH2 0x1826 DUP5 PUSH2 0x3003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH32 0xF53CF6521A1B5FC0C04BFFA70374A4DC2E3474F2B2AC1643C3BCC54E2DB4A939 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x186C DUP4 DUP4 PUSH2 0x3076 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x2FDF JUMP JUMPDEST DUP3 PUSH2 0x1886 PUSH2 0x1B69 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 0x18B5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D2 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 0x18F6 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1919 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x1927 DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1932 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x193D DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1979 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1982 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1993 DUP10 DUP12 ADD DUP12 PUSH2 0x5943 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH2 0x19BB DUP12 DUP4 DUP7 DUP7 DUP6 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x30E5 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD3803EB82EF5B4CDFF8646734EBBAF5B37441E96314B27FFD3D0940F12A038E7 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A13 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x2F88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x32DC JUMP JUMPDEST PUSH2 0x1A2E PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A3B PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A52 PUSH1 0xD2 SLOAD DUP3 PUSH2 0x3300 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x1A71 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3477B5 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1A7B DUP2 PUSH2 0x333D JUMP JUMPDEST ISZERO DUP3 SWAP1 PUSH2 0x1A9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x17C7B35D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xA8F DUP3 PUSH1 0x1 PUSH2 0x2277 JUMP JUMPDEST PUSH2 0x1AB0 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1ADA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x2097 JUMP JUMPDEST CALLER PUSH2 0x1AEC PUSH2 0x11BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xACD JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 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 0xDAB JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 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 PUSH2 0x120 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 PUSH2 0x1BE6 PUSH2 0x1B69 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 0x1C13 SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C31 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 0x1C55 SWAP2 SWAP1 PUSH2 0x59D0 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 0x1C89 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7B3C09BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x848 SWAP2 PUSH2 0x1CA4 SWAP2 PUSH2 0x5845 JUMP JUMPDEST 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 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1CD9 PUSH2 0x20F3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP4 PUSH2 0x1CEE JUMPI DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x1CF4 JUMP JUMPDEST DUP5 PUSH1 0xE0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x1D42 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 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4D PUSH2 0x1FDD JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP7 PUSH2 0x1D62 JUMPI DUP8 PUSH1 0x60 ADD MLOAD PUSH2 0x1D68 JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x1DAE 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 0x335C JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1DC0 PUSH2 0xCDC JUMP JUMPDEST ISZERO PUSH2 0xACD 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 PUSH2 0x109 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 PUSH31 0x3215DC05A2FC4E6A1E2C2776311D207C730EE51085AAE221ACC5CBE6FB55C1 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH1 0xFF AND ISZERO ISZERO DUP2 ISZERO EQ PUSH2 0x1E8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x5E67E54B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x8EC JUMP JUMPDEST POP POP 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 0x1EF3 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EFD PUSH2 0x2073 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDAB SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C 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 0x1F8B SWAP1 DUP5 SWAP1 PUSH2 0x33B5 SWAP1 PUSH2 0x33CA SWAP1 PUSH2 0x34C5 SWAP1 DUP10 PUSH2 0x34EA 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 0x1FCF SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1768 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1FE8 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBB2A2B47 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 0x2025 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 0x2049 SWAP2 SWAP1 PUSH2 0x5A96 JUMP JUMPDEST SWAP3 PUSH3 0xF4240 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2063 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI POP POP PUSH1 0x80 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH32 0xCD5ED15C6E187E77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A1 PUSH2 0x286F 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 PUSH1 0x0 PUSH2 0x2100 PUSH2 0x2FDF 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 0x213D 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 0x2161 SWAP2 SWAP1 PUSH2 0x5AB3 JUMP JUMPDEST SWAP4 DUP5 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xD2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x21774046E2611DDB52C8C46E1AD97524EEB2E3FDA7DCD9428867868B4C4D06BA SWAP1 PUSH1 0x20 ADD PUSH2 0xDAB JUMP JUMPDEST PUSH2 0x21AC PUSH1 0xD0 DUP5 DUP5 DUP5 PUSH2 0x35A4 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 PUSH2 0x21FA PUSH2 0x4FAE JUMP JUMPDEST PUSH2 0x2204 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 SWAP1 SWAP2 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2284 PUSH1 0xCF DUP5 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x230F DUP4 PUSH2 0x2292 PUSH2 0x3706 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 0x22C3 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 0x22E2 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 0x2306 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0xCF SWAP2 SWAP1 PUSH2 0x372A JUMP JUMPDEST PUSH2 0x231A PUSH1 0xCF DUP5 PUSH2 0x37DD JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x232D SWAP2 PUSH1 0xD1 SWAP2 PUSH2 0x3893 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xD3 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2354 SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8F2F865E0FB62D722A51E4D9873199BF6BF52E7D8EE5A2EE2896C9EF719F545 DUP5 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x40 MLOAD PUSH2 0x23CC SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E6 PUSH1 0xCF DUP6 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x23F1 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP5 SWAP1 PUSH2 0x2411 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP DUP1 PUSH1 0x40 ADD MLOAD DUP4 EQ ISZERO DUP5 DUP5 SWAP1 SWAP2 PUSH2 0x243D JUMPI PUSH1 0x40 MLOAD PUSH4 0xF32518CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x40 DUP2 ADD MLOAD DUP1 DUP5 GT ISZERO PUSH2 0x2473 JUMPI PUSH2 0x246E PUSH2 0x2457 PUSH2 0x1B69 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x2463 DUP5 DUP9 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD1 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x3911 JUMP JUMPDEST PUSH2 0x248C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x248C SWAP1 PUSH2 0x2483 DUP7 DUP5 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD1 SWAP2 SWAP1 PUSH2 0x3893 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2496 PUSH2 0x3706 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 0x24C7 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 0x24E6 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 0x250A SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2517 DUP5 PUSH2 0x333D JUMP JUMPDEST ISZERO PUSH2 0x2523 JUMPI PUSH1 0x0 PUSH2 0x2532 JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MLOAD PUSH2 0x2532 SWAP1 DUP4 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x6 ADD DUP4 SWAP1 SSTORE SWAP1 POP PUSH2 0x2561 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC8A5F81E DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x258E SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25AB 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 0x25CF SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x7 ADD DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x25FA SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP3 DUP7 GT ISZERO PUSH2 0x2642 JUMPI PUSH2 0x2611 DUP4 DUP8 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 0x2637 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2678 SWAP1 POP JUMP JUMPDEST PUSH2 0x264C DUP7 DUP5 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 0x2672 SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP8 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 DUP10 DUP8 PUSH1 0x40 MLOAD PUSH2 0x26C6 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 DUP1 DUP3 GT ISZERO PUSH2 0x26FC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP POP PUSH1 0x0 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x90699B8B4BF48918FEA1129C85F9BC7B51285DF7ECC982910813C7805F568849 SWAP1 PUSH2 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x274E PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2758 PUSH2 0x2073 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE SWAP1 POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1F2A CALLER SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D100 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x27BD PUSH2 0x278D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x27CE SWAP1 PUSH2 0x56C1 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 0x27FA SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2847 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x281C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2847 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 0x282A 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 0x285E PUSH2 0x278D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 ADD DUP1 SLOAD PUSH2 0x27CE SWAP1 PUSH2 0x56C1 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x28B0 SWAP2 SWAP1 PUSH2 0x5AFC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x28EB 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 0x28F0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2900 DUP6 DUP4 DUP4 PUSH2 0x3A0F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x2919 DUP5 DUP7 ADD DUP7 PUSH2 0x5B3A JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 ADD MLOAD SWAP2 SWAP4 POP SWAP2 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A071D07 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP2 MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 GT ISZERO PUSH2 0x2983 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFA4AC7A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP DUP2 MLOAD MLOAD PUSH1 0x0 PUSH2 0x2994 PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x29C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4508FBF7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x29DB DUP10 PUSH1 0x0 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x29E8 PUSH2 0x3A62 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 0x2A13 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A30 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 0x2A54 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH2 0x2A5E PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x692209CE PUSH1 0x0 PUSH2 0x2AFC DUP12 PUSH2 0x2A7A PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4C4EA0ED DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AA7 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 0x2AC4 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 0x2AE8 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST PUSH2 0x2AF3 JUMPI PUSH1 0x0 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x108 SLOAD PUSH2 0x3A86 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B1B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5C71 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B3A 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 0x2B5E SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 PUSH2 0x2B6A PUSH2 0x3A62 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 0x2B95 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BB2 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 0x2BD6 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP2 DUP2 LT ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DB8BC95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP PUSH2 0x2C0A SWAP1 POP DUP3 DUP3 PUSH2 0x5845 JUMP JUMPDEST SWAP3 POP POP DUP3 ISZERO SWAP1 POP PUSH2 0x2DB4 JUMPI PUSH2 0x2CA9 DUP12 PUSH2 0x107 SLOAD DUP5 PUSH2 0x2C28 SWAP2 SWAP1 PUSH2 0x5CA1 JUMP JUMPDEST PUSH2 0x2C30 PUSH2 0x2FDF 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 0x2C6D 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 0x2C91 SWAP2 SWAP1 PUSH2 0x5AB3 JUMP JUMPDEST PUSH2 0x2CA4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x5AE9 JUMP JUMPDEST PUSH2 0x3ADA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DB4 JUMPI PUSH2 0x2CB7 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1D1C2FEC DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CE4 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 0x2D03 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 0x2D27 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST POP PUSH2 0x2D4C PUSH2 0x2D33 PUSH2 0x2EE0 JUMP JUMPDEST DUP3 PUSH2 0x2D3C PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x3C4A JUMP JUMPDEST PUSH2 0x2D54 PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81573288 DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D81 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP7 MLOAD PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE SWAP3 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND SWAP3 SWAP2 DUP2 AND SWAP2 SWAP1 DUP15 AND SWAP1 PUSH32 0x184C452047299395D4F7F147EB8E823458A450798539BE54AEED978F13D87BA2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x2E2E DUP6 DUP8 ADD DUP8 PUSH2 0x5CB8 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x2E4A PUSH1 0xCF DUP6 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP6 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2E78 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x109 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EB6 SWAP3 DUP7 SWAP3 DUP7 SWAP3 DUP7 SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 AND PUSH2 0x3CF9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ED8 PUSH2 0x2ECE PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD1 SWAP1 DUP6 DUP6 PUSH2 0x42D6 JUMP JUMPDEST ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x12B8 JUMP JUMPDEST PUSH2 0x2F35 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x4395 JUMP JUMPDEST PUSH2 0xACD PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F4E PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F56 PUSH2 0x439D JUMP JUMPDEST PUSH2 0xACD PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x2F66 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F56 PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x2F76 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F80 DUP3 DUP3 PUSH2 0x43DF JUMP JUMPDEST PUSH2 0xA8F PUSH2 0x2F3E JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FA9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC71A043 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x107 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x2AAAF20B08565EEBC0C962CD7C568E54C3C0C2B85A1F942B82CD1BD730FDCD23 SWAP1 PUSH1 0x20 ADD PUSH2 0xDAB JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x300E DUP2 PUSH1 0x1 PUSH2 0x43F1 JUMP JUMPDEST PUSH2 0x3016 PUSH2 0x1B69 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 0x3041 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x305B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x306F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x186C PUSH32 0x4BDEE85C4B4A268F4895D1096D553C3E57BB2433C380E7B7EC8CB56CC4F74673 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x30CA 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 0x4408 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x310C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FFDF5EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3117 DUP7 DUP7 DUP5 PUSH2 0x4435 JUMP JUMPDEST PUSH2 0x312B PUSH2 0x3122 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD0 SWAP1 DUP8 PUSH2 0x4484 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3135 PUSH2 0x457A JUMP JUMPDEST 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 0x3172 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 0x3196 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3226 DUP9 DUP9 DUP9 DUP9 PUSH2 0x31A9 PUSH2 0x3706 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 0x31D6 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 0x31F5 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 0x3219 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0xCF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 DUP9 PUSH2 0x459E JUMP JUMPDEST SWAP1 POP PUSH2 0x323E PUSH2 0x3233 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD1 SWAP1 DUP11 DUP9 DUP8 PUSH2 0x3911 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xD3 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3265 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST PUSH1 0xD3 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 0xE5E185FAB2B992C4727FF702A867D78B15FB176DBAA20C9C312A1C351D3F7F83 DUP5 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x40 MLOAD PUSH2 0x32CA SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3315 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0x4706 JUMP JUMPDEST PUSH2 0x331F SWAP1 TIMESTAMP PUSH2 0x5845 JUMP JUMPDEST SWAP1 POP PUSH2 0x332A DUP5 PUSH2 0x2054 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3335 JUMPI POP DUP3 DUP2 GT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334C DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI POP POP PUSH1 0x40 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x3367 DUP5 DUP5 DUP5 PUSH2 0x4716 JUMP JUMPDEST DUP2 DUP6 DUP6 DUP6 SWAP1 SWAP2 SWAP3 SWAP4 PUSH2 0x1DAE JUMPI PUSH1 0x40 MLOAD PUSH4 0x871E13D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D10 JUMP JUMPDEST PUSH2 0x3398 PUSH2 0xCDC JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x33D9 DUP6 PUSH2 0x472D JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3401 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x34BE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3418 SWAP2 SWAP1 PUSH2 0x5D3F JUMP JUMPDEST DUP5 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH2 0x342D SWAP1 PUSH1 0x9A SWAP1 DUP4 SWAP1 PUSH2 0x3893 JUMP JUMPDEST DUP7 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4C06B68820628A39C787D2DB1FAA0EEACD7B9474847B198B1E871FE6E5B93F44 DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x3471 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 MLOAD PUSH2 0x3485 SWAP1 DUP4 PUSH2 0x5AE9 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 0x9B 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 0x3513 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 0x3521 JUMPI DUP4 PUSH2 0x3527 JUMP JUMPDEST DUP9 PUSH1 0x3 ADD SLOAD JUMPDEST DUP10 SLOAD SWAP1 SWAP5 POP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x353C JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO PUSH2 0x3595 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3552 DUP4 DUP10 DUP13 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3563 JUMPI POP POP PUSH2 0x3595 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3571 DUP13 DUP13 DUP12 PUSH2 0x47BB JUMP JUMPDEST SWAP3 POP DUP7 PUSH2 0x357D DUP2 PUSH2 0x5D65 JUMP JUMPDEST SWAP8 POP POP DUP4 DUP1 PUSH2 0x358B SWAP1 PUSH2 0x5D7C JUMP JUMPDEST SWAP5 POP POP POP POP PUSH2 0x352D 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 DUP1 DUP4 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 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x35E4 SWAP1 PUSH2 0x4842 JUMP JUMPDEST ISZERO DUP3 SWAP1 PUSH2 0x3605 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 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 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 0x120 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 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH2 0x36DE SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP4 SWAP1 PUSH2 0x36FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x42DAADAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3736 DUP5 DUP5 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x37AD SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP5 SWAP2 PUSH2 0x37D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x6 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E9 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x3860 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x3886 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x38A0 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 0x38DD JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 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 0x3907 SWAP1 DUP5 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x306F 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 0x393B SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 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 0x396F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D95 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x398C 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 0x39B0 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 DUP2 GT ISZERO PUSH2 0x39D7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 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 0x3A01 SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x3A24 JUMPI PUSH2 0x3A1F DUP3 PUSH2 0x4851 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x3A3B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x3A5B JUMPI DUP4 PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP DUP1 PUSH2 0x186C JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x109 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 SLOAD SWAP3 MLOAD PUSH1 0x60 SWAP4 PUSH2 0x3AC3 SWAP4 DUP8 SWAP4 DUP8 SWAP4 SWAP3 SWAP1 SWAP2 AND SWAP2 ADD PUSH2 0x5DBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x3AFB JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4C63D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3B27 PUSH2 0x3B06 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x9A SWAP2 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x3911 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9C 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 0x9B 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 0x3BF5 JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x3BFF DUP3 DUP3 PUSH2 0x487A JUMP JUMPDEST DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5D9E2C5278E41138269F5F980CFBEA016D8C59816754502ABC4D2F87AAEA987F DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x3C3B SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3C 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 0x3C7E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3C9D 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 0x3CC1 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST PUSH2 0xD3C 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 0x8EC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3D07 PUSH1 0xCF DUP9 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D12 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP8 SWAP1 PUSH2 0x3D32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x3D4A PUSH1 0xD2 SLOAD DUP4 PUSH2 0x3300 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x3D5D JUMPI POP PUSH2 0x3D5B DUP3 PUSH2 0x333D JUMP JUMPDEST ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3D68 JUMPI POP DUP7 ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3DE0 JUMPI POP DUP2 PUSH2 0x100 ADD MLOAD PUSH2 0x3D7D PUSH2 0x457A JUMP JUMPDEST 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 0x3DBA 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 0x3DDE SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST GT JUMPDEST PUSH2 0x3DEB JUMPI PUSH1 0x0 PUSH2 0x3E61 JUMP JUMPDEST PUSH2 0x3DF3 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB750926 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E1E SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E3D 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 0x3E61 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH2 0x3EA0 DUP9 PUSH2 0x3E6F PUSH2 0x3706 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 0x22C3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3EAB PUSH1 0xCF DUP10 PUSH2 0x490D JUMP JUMPDEST PUSH2 0x3EB6 PUSH1 0xCF DUP10 PUSH2 0x49C3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 ISZERO PUSH2 0x41EF JUMPI PUSH1 0x0 PUSH2 0x3EC9 PUSH2 0x1B69 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 0x3EFC SWAP2 ADDRESS SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x4 ADD PUSH2 0x5E87 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F19 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 0x3F3D SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3F49 PUSH2 0x1B69 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 0x3F79 SWAP2 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x5515 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F96 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 0x3FBA SWAP2 SWAP1 PUSH2 0x5EAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x3FCF JUMPI PUSH1 0x0 PUSH2 0x3FD9 JUMP JUMPDEST PUSH2 0x3FD9 DUP6 DUP4 PUSH2 0x4A7A JUMP JUMPDEST SWAP3 POP DUP3 ISZERO PUSH2 0x40CE JUMPI PUSH2 0x3FE9 PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x3FFF PUSH2 0x1B69 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401D SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x403C 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 0x4060 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST POP PUSH2 0x4069 PUSH2 0x1B69 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 0x409B SWAP2 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x40D8 DUP4 DUP7 PUSH2 0x5845 JUMP JUMPDEST SWAP4 POP DUP4 ISZERO PUSH2 0x41EC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH2 0x41DF JUMPI PUSH2 0x40F6 PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x410C PUSH2 0x1B69 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x412A SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4149 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 0x416D SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST POP PUSH2 0x4176 PUSH2 0x1B69 JUMP JUMPDEST DUP7 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 0x41A8 SWAP2 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x41EC JUMP JUMPDEST PUSH2 0x41EC DUP9 DUP6 PUSH2 0x2D3C PUSH2 0x3A62 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP2 AND PUSH32 0x443F56BD2098D273B8C8120398789A41DA5925DB4BA2F656813FC5299AC57B1F DUP7 DUP7 DUP7 DUP16 DUP16 PUSH2 0x4231 PUSH2 0x457A JUMP JUMPDEST 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 0x426E 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 0x4292 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42A4 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F43 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP4 MLOAD PUSH2 0x42B8 SWAP1 DUP9 PUSH2 0x2EC1 JUMP JUMPDEST ISZERO PUSH2 0x42C8 JUMPI PUSH2 0x42C8 DUP11 PUSH1 0x1 PUSH2 0x2277 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 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 0x4309 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D95 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4326 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 0x434A SWAP2 SWAP1 PUSH2 0x5A7D 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 PUSH2 0x4378 PUSH2 0x4ADA JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AB0 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x43A5 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x43B2 PUSH1 0x0 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x43C0 PUSH1 0x0 PUSH3 0xF4240 PUSH2 0x4AF4 JUMP JUMPDEST PUSH2 0x43D2 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x4BC5 JUMP JUMPDEST PUSH2 0xACD PUSH4 0xFFFFFFFF PUSH2 0x1B15 JUMP JUMPDEST PUSH2 0x43E7 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0xA8F DUP3 DUP3 PUSH2 0x4C52 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FC DUP4 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0xD3C DUP2 DUP4 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B8 PUSH2 0x4415 PUSH2 0x4C93 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 0x444A PUSH2 0x4444 DUP6 DUP6 PUSH2 0x3076 JUMP JUMPDEST DUP4 PUSH2 0x4C9D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP1 DUP3 AND EQ PUSH2 0x447C JUMPI PUSH1 0x40 MLOAD PUSH4 0x8C5B935D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 MSTORE PUSH1 0x40 SWAP2 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 PUSH2 0x44C4 SWAP1 PUSH2 0x4842 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x44E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x78EB06B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xF1D60D66 SWAP1 PUSH2 0x4512 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x452F 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 0x4553 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x4574 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x45A6 PUSH2 0x4FAE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP11 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x120 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 DUP2 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x4632 SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO DUP7 SWAP1 PUSH2 0x4653 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC4DEF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP7 DUP8 MSTORE DUP2 DUP4 ADD SWAP6 DUP7 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 SWAP9 DUP10 MSTORE PUSH1 0xE0 DUP7 ADD DUP4 DUP2 MSTORE PUSH2 0x100 DUP8 ADD SWAP9 DUP10 MSTORE SWAP12 DUP14 AND DUP4 MSTORE SWAP13 SWAP1 SWAP4 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP11 AND SWAP10 SWAP1 SWAP10 OR DUP10 SSTORE SWAP6 MLOAD PUSH1 0x1 DUP10 ADD SSTORE SWAP4 MLOAD PUSH1 0x2 DUP9 ADD SSTORE MLOAD PUSH1 0x3 DUP8 ADD SSTORE SWAP3 MLOAD PUSH1 0x4 DUP7 ADD SSTORE SWAP5 MLOAD PUSH1 0x5 DUP6 ADD SSTORE SWAP4 MLOAD PUSH1 0x6 DUP5 ADD SSTORE SWAP1 MLOAD PUSH1 0x7 DUP4 ADD SSTORE MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 XOR DUP3 DUP5 GT MUL DUP3 XOR PUSH2 0x186C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x3335 JUMPI POP POP SWAP1 SWAP2 GT ISZERO SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x475B 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 0x9B 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 0x1C89 JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x3 ADD SLOAD GT PUSH2 0x47E1 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 0x47F4 DUP6 PUSH1 0x0 ADD SLOAD DUP6 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4807 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x481C SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 DUP6 SSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4838 JUMPI PUSH1 0x0 PUSH1 0x1 DUP7 ADD SSTORE JUMPDEST POP POP SWAP2 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x4861 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x3 ADD SLOAD LT PUSH2 0x48A0 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 0x48BE 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 0x48DA SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x48EF JUMPI DUP1 DUP3 SSTORE JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4904 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4919 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4990 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x49B6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x5 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49CF DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4A46 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x4A6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x0 PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A89 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x4A9C JUMPI POP PUSH2 0x4A9C DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x4ABF JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x4AD0 DUP4 DUP6 PUSH2 0x5CA1 JUMP JUMPDEST PUSH2 0x186C SWAP2 SWAP1 PUSH2 0x5F81 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AE4 PUSH2 0x2F04 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 0x4B22 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5180 JUMP JUMPDEST POP DUP3 SWAP1 POP DUP2 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x4B53 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5180 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 PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2FE5A7039987697813605CC0B9D6DB7AAB575408E3FC59E8A457BEF8D7BC0A36 SWAP1 PUSH2 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5180 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4BF6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x521C 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 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x521C JUMP JUMPDEST PUSH2 0x4C5A PUSH2 0x4370 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C64 PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 ADD PUSH2 0x4C74 DUP5 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x4C83 DUP4 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x4CC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4CAD DUP7 DUP7 PUSH2 0x4D3B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x4CBD DUP3 DUP3 PUSH2 0x4D88 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x4CF2 PUSH2 0x4E41 JUMP JUMPDEST PUSH2 0x4CFA PUSH2 0x4EA8 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 0x4D75 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x4D67 DUP9 DUP3 DUP6 DUP6 PUSH2 0x4EE9 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x4D81 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 0x4D9C JUMPI PUSH2 0x4D9C PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4DA5 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4DB9 JUMPI PUSH2 0x4DB9 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4DD7 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 0x4DEB JUMPI PUSH2 0x4DEB PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4E0C JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8EC JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4E20 JUMPI PUSH2 0x4E20 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8EC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4E4C PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4E58 PUSH2 0x27B1 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4E70 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x4E7F JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4EB3 PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4EBF PUSH2 0x2852 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4ED7 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x4E7F JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x4F1A JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x4FA4 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 0x4F6E 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 0x4F9A JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x4FA4 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 0x120 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 PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x5026 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x503D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x186C DUP2 PUSH2 0x5006 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x186C DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x509D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x50B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x34BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x50E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x50EC DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5113 DUP7 DUP3 DUP8 ADD PUSH2 0x508B JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x514C DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x515C DUP2 PUSH2 0x5120 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5179 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 0x51B2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x519A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x51D3 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5197 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 0x5200 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x5212 DUP2 DUP6 PUSH2 0x51BB 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 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x524B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5256 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5266 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x52A4 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x51BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x52B6 DUP2 DUP10 PUSH2 0x51BB 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 0x530C JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x52EE JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x5357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x536D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x5382 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 0x53EB JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x53D6 DUP6 DUP4 MLOAD PUSH2 0x51BB JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x53BA 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 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5418 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x542C 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 0x5447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5453 DUP8 DUP3 DUP9 ADD PUSH2 0x508B JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5480 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5497 DUP2 PUSH2 0x505C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x54BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x54C5 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x515C DUP2 PUSH2 0x5006 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 0x550A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x5120 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 MLOAD PUSH2 0x140 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55C3 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 0x55E3 JUMPI PUSH2 0x55E3 PUSH2 0x552F 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 0x5611 JUMPI PUSH2 0x5611 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x5629 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 0x565B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x567D DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56A5 DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x56B6 DUP2 PUSH2 0x5006 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x56D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x56F5 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 0xD3C 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 0x5722 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x306F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x572E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x575B JUMPI PUSH2 0x575B PUSH2 0x552F JUMP JUMPDEST PUSH2 0x576F DUP2 PUSH2 0x5769 DUP5 SLOAD PUSH2 0x56C1 JUMP JUMPDEST DUP5 PUSH2 0x56FB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x57A3 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x578B 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 0x306F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x57D3 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x57B3 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x57F1 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 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F 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 0x5885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x589F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x34BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x58D1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x5197 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 0x3 DUP2 LT PUSH2 0x590F 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 0x12B8 DUP3 DUP5 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5934 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 0x5959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5972 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x598D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5999 DUP8 DUP3 DUP9 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5026 DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5026 DUP2 PUSH2 0x59B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x59E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x59EF PUSH2 0x5545 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 0x5A13 PUSH1 0x60 DUP6 ADD PUSH2 0x59A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5A24 PUSH1 0x80 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5A35 PUSH1 0xA0 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x5A46 PUSH1 0xC0 DUP6 ADD PUSH2 0x59A5 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x5A57 PUSH1 0xE0 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 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 0x5A8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x59B0 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x5B0E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5197 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x5026 DUP2 PUSH2 0x59B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x5B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B7D PUSH2 0x556E JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xE0 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x5BA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5BAD PUSH2 0x5590 JUMP JUMPDEST DUP2 CALLDATALOAD DUP2 MSTORE PUSH2 0x5BBD PUSH1 0x20 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x5BCE PUSH1 0x40 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x5BDF PUSH1 0x60 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5BF0 PUSH1 0x80 DUP4 ADD PUSH2 0x5B18 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5C01 PUSH1 0xA0 DUP4 ADD PUSH2 0x5B23 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C2B DUP10 DUP3 DUP6 ADD PUSH2 0x55B2 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C59 DUP8 DUP3 DUP6 ADD PUSH2 0x55B2 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP8 SWAP6 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5C7B DUP2 DUP6 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5C91 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5CCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5CD8 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5D06 DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5D23 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x51BB 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 0x5D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x515C DUP2 PUSH2 0x5006 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x5D74 JUMPI PUSH2 0x5D74 PUSH2 0x582F JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x5D8E JUMPI PUSH2 0x5D8E PUSH2 0x582F 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 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD PUSH1 0x40 DUP4 DUP4 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0xC0 DUP7 ADD MSTORE SWAP1 DUP3 ADD MLOAD DUP2 AND PUSH1 0xE0 DUP6 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 SWAP2 AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 POP PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x140 DUP6 ADD MSTORE POP PUSH1 0xC0 ADD MLOAD PUSH1 0xE0 PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x5E4B PUSH2 0x180 DUP5 ADD DUP3 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x5F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x5E68 DUP3 DUP3 PUSH2 0x51BB JUMP JUMPDEST SWAP3 POP POP POP DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3335 PUSH1 0x40 DUP4 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE 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 0x3335 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5EBF 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 0x5EE5 JUMPI PUSH2 0x5EE5 PUSH2 0x552F JUMP 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 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 DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5F6E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0xA0 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5F9E 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 0xB8 TSTORE 0xE9 SELFBALANCE LOG2 0xAD CALL MSTORE8 0xB4 0xD5 0xD6 PUSH4 0x60454C8D MOD 0x24 0xBC 0xA9 SWAP9 0xD3 0xFC DUP16 SLT 0xBD OR 0xE3 SAR PUSH21 0x127864736F6C634300081B00330000000000000000 ", + "sourceMap": "1972:23938:57:-:0;;;3174:286;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3367:4;3374:14;3390:19;3411:8;3332:15;;-1:-1:-1;;;;;4355:24:37;;4347:81;;;;-1:-1:-1;;;4347:81:37;;866:2:70;4347:81:37;;;848:21:70;905:2;885:18;;;878:30;-1:-1:-1;;;924:18:70;;;917:40;974:18;;4347:81:37;;;;;;;;;-1:-1:-1;;;;;4439:42:37;;;;4517:40;;;;;;;;;;;;-1:-1:-1;;;4517:40:37;;;;;;:26;:40::i;:::-;-1:-1:-1;;;;;4491:67:37;;;4600:37;;;;;;;;;;;;-1:-1:-1;;;4600:37:37;;;;;;:26;:37::i;:::-;-1:-1:-1;;;;;4568:70:37;;;4680:43;;;;;;;;;;;;-1:-1:-1;;;4680:43:37;;;;;;:26;:43::i;:::-;-1:-1:-1;;;;;4648:76:37;;;4774:44;;;;;;;;;;;;-1:-1:-1;;;4774:44:37;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4734:85:37;;;4865:42;;;;;;;;;;;;-1:-1:-1;;;4865:42:37;;;;;;:26;:42::i;:::-;-1:-1:-1;;;;;4829:79:37;;;4958:44;;;;;;;;;;;;-1:-1:-1;;;4958:44:37;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4918:85:37;;;5049:47;;;;;;;;;;;;-1:-1:-1;;;5049:47:37;;;;;;:26;:47::i;:::-;-1:-1:-1;;;;;5013:84:37;;;5144:45;;;;;;;;;;;;-1:-1:-1;;;5144:45:37;;;;;;:26;:45::i;:::-;-1:-1:-1;;;;;5107:83:37;;;5227:38;;;;;;;;;;;;-1:-1:-1;;;5227:38:37;;;;;;:26;:38::i;:::-;-1:-1:-1;;;;;5200:66:37;;;;;;;5480:16;;5363:13;;5329:11;;5399:14;;5436:21;;5519:19;;5561:21;;5605:19;;5647:17;;5282:430;;;;;;;;;;;;;;;;;;;5647:17;;-1:-1:-1;;;;;1336:32:70;;;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;5282:430:37;;;;;;;;-1:-1:-1;;;;;;;2913:52:69;;;;;;;2975:49;;;;;;;3034:65;;;;;;;3109:30;;;;;;;3155:99;;;2028:51:70;;;2110:2;2095:18;;2088:60;;;;2164:18;;;2157:60;;;;2248:2;2233:18;;2226:60;;;;3155:99:69;;2015:3:70;2000:19;3155:99:69;;;;;;;2795:466;;;;3431:22:57::2;:20;;;:22;;:::i;:::-;3174:286:::0;;;;1972:23938;;8217:326:37;8303:7;8322:23;8348:16;;-1:-1:-1;;;;;8348:33:37;;8392:13;8382:24;;;;;;8348:59;;;;;;;;;;;;;2443:25:70;;2431:2;2416:18;;2297:177;8348:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8322:85;-1:-1:-1;8489:13:37;-1:-1:-1;;;;;8425:29:37;;8417:87;;;;-1:-1:-1;;;8417:87:37;;;;;;;;:::i;:::-;-1:-1:-1;8521:15:37;8217:326;-1:-1:-1;;8217:326:37:o;7709:422:39:-;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:39;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:39;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:39;-1:-1:-1;;;;;8033:33:39;;;;;8085:29;;3366:50:70;;;8085:29:39;;3354:2:70;3339:18;8085:29:39;;;;;;;7979:146;7758:373;7709:422::o;14:177:70:-;93:13;;-1:-1:-1;;;;;135:31:70;;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:70: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::-;1972:23938:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_EIP712NameHash_5991": { + "entryPoint": 20033, + "id": 5991, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712Name_5923": { + "entryPoint": 10161, + "id": 5923, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712VersionHash_6043": { + "entryPoint": 20136, + "id": 6043, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712Version_5939": { + "entryPoint": 10322, + "id": 5939, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@__AllocationManager_init_16649": { + "entryPoint": 12142, + "id": 16649, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__AllocationManager_init_unchained_16656": { + "entryPoint": null, + "id": 16656, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DataServicePausable_init_1384": { + "entryPoint": 12126, + "id": 1384, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DataServicePausable_init_unchained_1391": { + "entryPoint": null, + "id": 1391, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DataService_init_928": { + "entryPoint": 12102, + "id": 928, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__DataService_init_unchained_935": { + "entryPoint": null, + "id": 935, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__EIP712_init_5757": { + "entryPoint": 17375, + "id": 5757, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__EIP712_init_unchained_5797": { + "entryPoint": 19538, + "id": 5797, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__Multicall_init_5456": { + "entryPoint": 12094, + "id": 5456, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__Ownable_init_4983": { + "entryPoint": 12077, + "id": 4983, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Ownable_init_unchained_5010": { + "entryPoint": 17301, + "id": 5010, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Pausable_init_unchained_5610": { + "entryPoint": null, + "id": 5610, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__ProvisionManager_init_unchained_2024": { + "entryPoint": 17309, + "id": 2024, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_acceptProvisionParameters_2042": { + "entryPoint": 12291, + "id": 2042, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_allocate_16781": { + "entryPoint": 12517, + "id": 16781, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_buildDomainSeparator_5830": { + "entryPoint": 19655, + "id": 5830, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_buildStakeClaimId_1277": { + "entryPoint": null, + "id": 1277, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_checkInitializing_5299": { + "entryPoint": 17264, + "id": 5299, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_5051": { + "entryPoint": 6883, + "id": 5051, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkProvisionParameters_2226": { + "entryPoint": 17393, + "id": 2226, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkProvisionParameters_2282": { + "entryPoint": 7374, + "id": 2282, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkProvisionTokens_2203": { + "entryPoint": 7312, + "id": 2203, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkValueInRange_2394": { + "entryPoint": 13148, + "id": 2394, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_closeAllocation_17273": { + "entryPoint": 8823, + "id": 17273, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_collectIndexingRewards_14812": { + "entryPoint": 11805, + "id": 14812, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_collectQueryFees_14759": { + "entryPoint": 10505, + "id": 14759, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_contextSuffixLength_5436": { + "entryPoint": null, + "id": 5436, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_curation_17719": { + "entryPoint": 12000, + "id": 17719, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_deleteStakeClaim_1211": { + "entryPoint": 13509, + "id": 1211, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_disputeManager_17699": { + "entryPoint": 12255, + "id": 17699, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_domainSeparatorV4_5807": { + "entryPoint": 19603, + "id": 5807, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_encodeAllocationProof_17310": { + "entryPoint": 12406, + "id": 17310, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_encodeGraphTallyData_14878": { + "entryPoint": 14982, + "id": 14878, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_getDelegationRatio_2291": { + "entryPoint": null, + "id": 2291, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getEIP712Storage_5741": { + "entryPoint": 10125, + "id": 5741, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getInitializableStorage_5390": { + "entryPoint": 12036, + "id": 5390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getNextStakeClaim_1254": { + "entryPoint": 13237, + "id": 1254, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getOwnableStorage_4954": { + "entryPoint": 10351, + "id": 4954, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getPausableStorage_5566": { + "entryPoint": 8307, + "id": 5566, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getProvisionTokensRange_2304": { + "entryPoint": null, + "id": 2304, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@_getProvision_2367": { + "entryPoint": 7053, + "id": 2367, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getStakeClaim_1240": { + "entryPoint": 18221, + "id": 1240, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getThawingPeriodRange_14505": { + "entryPoint": 8435, + "id": 14505, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@_getVerifierCutRange_14522": { + "entryPoint": 8157, + "id": 14522, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@_get_16032": { + "entryPoint": 13907, + "id": 16032, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_graphEpochManager_4855": { + "entryPoint": 17786, + "id": 4855, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphRewardsManager_4865": { + "entryPoint": 14086, + "id": 4865, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphStaking_4815": { + "entryPoint": 7017, + "id": 4815, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphTallyCollector_17709": { + "entryPoint": 13020, + "id": 17709, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_graphToken_4805": { + "entryPoint": 14946, + "id": 4805, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_hashTypedDataV4_5846": { + "entryPoint": 17416, + "id": 5846, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5376": { + "entryPoint": null, + "id": 5376, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isInitializing_5367": { + "entryPoint": 19162, + "id": 5367, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isOverAllocated_17330": { + "entryPoint": 11969, + "id": 17330, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_lockStake_1074": { + "entryPoint": 15066, + "id": 1074, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_migrateLegacyAllocation_16681": { + "entryPoint": 8607, + "id": 16681, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_5419": { + "entryPoint": null, + "id": 5419, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_pause_5675": { + "entryPoint": 10054, + "id": 5675, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_presentPOI_17044": { + "entryPoint": 15609, + "id": 17044, + "parameterSlots": 5, + "returnSlots": 1 + }, + "@_processStakeClaim_1199": { + "entryPoint": 13258, + "id": 1199, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_releaseStake_1121": { + "entryPoint": 7991, + "id": 1121, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_requireNotPaused_5638": { + "entryPoint": 7608, + "id": 5638, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_requirePaused_5651": { + "entryPoint": 13200, + "id": 5651, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_resizeAllocation_17203": { + "entryPoint": 9177, + "id": 17203, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_revert_6406": { + "entryPoint": 18513, + "id": 6406, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setDelegationRatio_2057": { + "entryPoint": 6933, + "id": 2057, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setMaxPOIStaleness_17288": { + "entryPoint": 8554, + "id": 17288, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setPauseGuardian_1424": { + "entryPoint": 7733, + "id": 1424, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setPaymentsDestination_14832": { + "entryPoint": 7646, + "id": 14832, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setProvisionTokensRange_2089": { + "entryPoint": 9943, + "id": 2089, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setStakeToFeesRatio_14855": { + "entryPoint": 12168, + "id": 14855, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setThawingPeriodRange_2164": { + "entryPoint": 19397, + "id": 2164, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_setVerifierCutRange_2132": { + "entryPoint": 19188, + "id": 2132, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_throwError_8230": { + "entryPoint": 19848, + "id": 8230, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_5122": { + "entryPoint": 8343, + "id": 5122, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_unpause_5699": { + "entryPoint": 7915, + "id": 5699, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_verifyAllocationProof_17362": { + "entryPoint": 17461, + "id": 17362, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@acceptProvisionPendingParameters_13875": { + "entryPoint": 6007, + "id": 13875, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@addTail_4172": { + "entryPoint": 18554, + "id": 4172, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@allocationProvisionTracker_17387": { + "entryPoint": null, + "id": 17387, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@check_1800": { + "entryPoint": 17110, + "id": 1800, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@claimsLists_1302": { + "entryPoint": null, + "id": 1302, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@claims_1296": { + "entryPoint": null, + "id": 1296, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@clearPendingRewards_15855": { + "entryPoint": 18883, + "id": 15855, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@closeStaleAllocation_14144": { + "entryPoint": 6694, + "id": 14144, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@close_15893": { + "entryPoint": 14301, + "id": 15893, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@collect_14055": { + "entryPoint": 4798, + "id": 14055, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@create_15741": { + "entryPoint": 17822, + "id": 15741, + "parameterSlots": 7, + "returnSlots": 1 + }, + "@curationFeesCut_14896": { + "entryPoint": null, + "id": 14896, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@eip712Domain_5907": { + "entryPoint": 4370, + "id": 5907, + "parameterSlots": 0, + "returnSlots": 7 + }, + "@encodeAllocationProof_14469": { + "entryPoint": 6240, + "id": 14469, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@exists_15961": { + "entryPoint": null, + "id": 15961, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@exists_16428": { + "entryPoint": 18498, + "id": 16428, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@feesProvisionTracker_1290": { + "entryPoint": null, + "id": 1290, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@functionDelegateCall_6324": { + "entryPoint": 10387, + "id": 6324, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAllocationData_14381": { + "entryPoint": 3104, + "id": 14381, + "parameterSlots": 1, + "returnSlots": 6 + }, + "@getAllocation_14337": { + "entryPoint": 1962, + "id": 14337, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getCuration_14452": { + "entryPoint": 5296, + "id": 14452, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getDelegationRatio_915": { + "entryPoint": null, + "id": 915, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getDisputeManager_14424": { + "entryPoint": 6259, + "id": 14424, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getGraphTallyCollector_14438": { + "entryPoint": 6684, + "id": 14438, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLegacyAllocation_14410": { + "entryPoint": null, + "id": 14410, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getProvisionTokensRange_905": { + "entryPoint": 3908, + "id": 905, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@getSubgraphAllocatedTokens_14395": { + "entryPoint": null, + "id": 14395, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getThawingPeriodRange_881": { + "entryPoint": 3341, + "id": 881, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@getVerifierCutRange_893": { + "entryPoint": 2777, + "id": 893, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@get_15913": { + "entryPoint": 8690, + "id": 15913, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@indexers_14890": { + "entryPoint": 2796, + "id": 14890, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@initialize_13752": { + "entryPoint": 5306, + "id": 13752, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@isAltruistic_15999": { + "entryPoint": 13117, + "id": 15999, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isInRange_4563": { + "entryPoint": 18198, + "id": 4563, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@isOpen_15980": { + "entryPoint": 8276, + "id": 15980, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isOverAllocated_14484": { + "entryPoint": 5266, + "id": 14484, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isStale_15946": { + "entryPoint": 13056, + "id": 15946, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isValidPPM_4538": { + "entryPoint": null, + "id": 4538, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@lock_1726": { + "entryPoint": 14609, + "id": 1726, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@maxPOIStaleness_17390": { + "entryPoint": null, + "id": 17390, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@max_8625": { + "entryPoint": 18182, + "id": 8625, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@migrateLegacyAllocation_14206": { + "entryPoint": 3369, + "id": 14206, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@migrate_16352": { + "entryPoint": 13732, + "id": 16352, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@mulPPM_4496": { + "entryPoint": 19066, + "id": 4496, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@multicall_5539": { + "entryPoint": 4566, + "id": 5539, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_5034": { + "entryPoint": 4539, + "id": 5034, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pauseGuardians_1328": { + "entryPoint": null, + "id": 1328, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@pause_1360": { + "entryPoint": 4312, + "id": 1360, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@paused_5626": { + "entryPoint": 3292, + "id": 5626, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@paymentsDestination_14901": { + "entryPoint": null, + "id": 14901, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@presentPOI_15779": { + "entryPoint": 18701, + "id": 15779, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@pushTokens_818": { + "entryPoint": 15434, + "id": 818, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@recover_7987": { + "entryPoint": 19613, + "id": 7987, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@register_13852": { + "entryPoint": 2128, + "id": 13852, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@releaseStake_987": { + "entryPoint": 2767, + "id": 987, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@release_1764": { + "entryPoint": 14483, + "id": 1764, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@removeHead_4246": { + "entryPoint": 18363, + "id": 4246, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@renounceOwnership_5065": { + "entryPoint": 3323, + "id": 5065, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@resizeAllocation_14186": { + "entryPoint": 3924, + "id": 14186, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@revertIfExists_16410": { + "entryPoint": 17540, + "id": 16410, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setCurationCut_14322": { + "entryPoint": 3393, + "id": 14322, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setDelegationRatio_14266": { + "entryPoint": 2103, + "id": 14266, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMaxPOIStaleness_14294": { + "entryPoint": 3352, + "id": 14294, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMinimumProvisionTokens_14252": { + "entryPoint": 4292, + "id": 14252, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setPauseGuardian_14223": { + "entryPoint": 2685, + "id": 14223, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setPaymentsDestination_14237": { + "entryPoint": 3313, + "id": 14237, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setStakeToFeesRatio_14280": { + "entryPoint": 6667, + "id": 14280, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@slash_14099": { + "entryPoint": 5688, + "id": 14099, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@snapshotRewards_15818": { + "entryPoint": 14122, + "id": 15818, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@stakeToFeesRatio_14893": { + "entryPoint": null, + "id": 14893, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@startService_13932": { + "entryPoint": 6269, + "id": 13932, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@stopService_13984": { + "entryPoint": 3510, + "id": 13984, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@ternary_8606": { + "entryPoint": null, + "id": 8606, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@toTypedDataHash_8316": { + "entryPoint": null, + "id": 8316, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@toUint_11702": { + "entryPoint": null, + "id": 11702, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferOwnership_5093": { + "entryPoint": 6824, + "id": 5093, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@traverse_4363": { + "entryPoint": 13546, + "id": 4363, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@tryRecover_7957": { + "entryPoint": 19771, + "id": 7957, + "parameterSlots": 2, + "returnSlots": 3 + }, + "@tryRecover_8145": { + "entryPoint": 20201, + "id": 8145, + "parameterSlots": 4, + "returnSlots": 3 + }, + "@unpause_1371": { + "entryPoint": 2707, + "id": 1371, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_6364": { + "entryPoint": 14863, + "id": 6364, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_address": { + "entryPoint": 20507, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_bytes_calldata": { + "entryPoint": 20619, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_string": { + "entryPoint": 21938, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 20523, + "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_payablet_bytes32t_bytes_memory_ptr": { + "entryPoint": 23736, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 21671, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_bytes32": { + "entryPoint": 21046, + "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": 20782, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_bytes_calldata_ptr": { + "entryPoint": 20684, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_enum$_PaymentTypes_$2433t_bytes_calldata_ptr": { + "entryPoint": 21495, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_uint256t_uint32t_uint256": { + "entryPoint": 21599, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 21277, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 21752, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_uint256t_address_payablet_bytes_memory_ptr": { + "entryPoint": 22851, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_payable": { + "entryPoint": 22086, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_struct$_DelegationPool_$3992_memory_ptr_fromMemory": { + "entryPoint": 24236, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Provision_$3962_memory_ptr_fromMemory": { + "entryPoint": 22992, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_SignedRAV_$2525_memory_ptrt_uint256": { + "entryPoint": 23354, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 20839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 23165, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_address_payable_fromMemory": { + "entryPoint": 23871, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 22817, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint32": { + "entryPoint": 20590, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint32_fromMemory": { + "entryPoint": 23190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint64_fromMemory": { + "entryPoint": 23219, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_uint128": { + "entryPoint": 23331, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_uint32_fromMemory": { + "entryPoint": 22949, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_uint64": { + "entryPoint": 23320, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_uint64_fromMemory": { + "entryPoint": 22981, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_address": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_enum_PaymentTypes": { + "entryPoint": 22769, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_string": { + "entryPoint": 20923, + "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": 22708, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 23292, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 20552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 21781, + "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": 21717, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_enum$_PaymentTypes_$2433__to_t_address_t_address_t_uint8__fromStack_reversed": { + "entryPoint": 24199, + "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": 24351, + "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": 23957, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 23248, + "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": 21394, + "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_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 7, + "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": 21125, + "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_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "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": 22528, + "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": 23824, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_enum$_PaymentTypes_$2433__to_t_uint8__fromStack_reversed": { + "entryPoint": 22803, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_enum$_PaymentTypes_$2433_t_bytes_memory_ptr_t_uint256__to_t_uint8_t_bytes_memory_ptr_t_uint256__fromStack_reversed": { + "entryPoint": 23665, + "id": null, + "parameterSlots": 4, + "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_$2525_memory_ptr_t_uint256_t_address__to_t_struct$_SignedRAV_$2525_memory_ptr_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 23998, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_State_$15663_memory_ptr__to_t_struct$_State_$15663_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_State_$16305_memory_ptr__to_t_struct$_State_$16305_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_bool__to_t_uint256_t_bool__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": 20967, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 21111, + "id": null, + "parameterSlots": 3, + "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_bytes_memory_ptr_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed": { + "entryPoint": 24387, + "id": null, + "parameterSlots": 7, + "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": 20864, + "id": null, + "parameterSlots": 3, + "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": 21020, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_uint128": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_uint64": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "access_calldata_tail_t_bytes_calldata_ptr": { + "entryPoint": 22638, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 21904, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_4297": { + "entryPoint": 21829, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_4301": { + "entryPoint": 21870, + "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": 23273, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 24449, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 23713, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 22597, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_string_storage": { + "entryPoint": 22267, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 22338, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 20887, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "decrement_t_uint256": { + "entryPoint": 23909, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 22209, + "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": 23932, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 22575, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 22747, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 22616, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 21807, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_address": { + "entryPoint": 20486, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_bool": { + "entryPoint": 20768, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint32": { + "entryPoint": 20572, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint64": { + "entryPoint": 22960, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:40736:70", + "nodeType": "YulBlock", + "src": "0:40736:70", + "statements": [ + { + "nativeSrc": "6:3:70", + "nodeType": "YulBlock", + "src": "6:3:70", + "statements": [] + }, + { + "body": { + "nativeSrc": "59:86:70", + "nodeType": "YulBlock", + "src": "59:86:70", + "statements": [ + { + "body": { + "nativeSrc": "123:16:70", + "nodeType": "YulBlock", + "src": "123:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:70", + "nodeType": "YulLiteral", + "src": "132:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:70", + "nodeType": "YulLiteral", + "src": "135:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:70", + "nodeType": "YulIdentifier", + "src": "125:6:70" + }, + "nativeSrc": "125:12:70", + "nodeType": "YulFunctionCall", + "src": "125:12:70" + }, + "nativeSrc": "125:12:70", + "nodeType": "YulExpressionStatement", + "src": "125:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "82:5:70", + "nodeType": "YulIdentifier", + "src": "82:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:70", + "nodeType": "YulIdentifier", + "src": "93:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "108:3:70", + "nodeType": "YulLiteral", + "src": "108:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "113:1:70", + "nodeType": "YulLiteral", + "src": "113:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "104:3:70", + "nodeType": "YulIdentifier", + "src": "104:3:70" + }, + "nativeSrc": "104:11:70", + "nodeType": "YulFunctionCall", + "src": "104:11:70" + }, + { + "kind": "number", + "nativeSrc": "117:1:70", + "nodeType": "YulLiteral", + "src": "117:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "100:3:70", + "nodeType": "YulIdentifier", + "src": "100:3:70" + }, + "nativeSrc": "100:19:70", + "nodeType": "YulFunctionCall", + "src": "100:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "89:3:70", + "nodeType": "YulIdentifier", + "src": "89:3:70" + }, + "nativeSrc": "89:31:70", + "nodeType": "YulFunctionCall", + "src": "89:31:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "79:2:70", + "nodeType": "YulIdentifier", + "src": "79:2:70" + }, + "nativeSrc": "79:42:70", + "nodeType": "YulFunctionCall", + "src": "79:42:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "72:6:70", + "nodeType": "YulIdentifier", + "src": "72:6:70" + }, + "nativeSrc": "72:50:70", + "nodeType": "YulFunctionCall", + "src": "72:50:70" + }, + "nativeSrc": "69:70:70", + "nodeType": "YulIf", + "src": "69:70:70" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "14:131:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "48:5:70", + "nodeType": "YulTypedName", + "src": "48:5:70", + "type": "" + } + ], + "src": "14:131:70" + }, + { + "body": { + "nativeSrc": "199:85:70", + "nodeType": "YulBlock", + "src": "199:85:70", + "statements": [ + { + "nativeSrc": "209:29:70", + "nodeType": "YulAssignment", + "src": "209:29:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "231:6:70", + "nodeType": "YulIdentifier", + "src": "231:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "218:12:70", + "nodeType": "YulIdentifier", + "src": "218:12:70" + }, + "nativeSrc": "218:20:70", + "nodeType": "YulFunctionCall", + "src": "218:20:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "209:5:70", + "nodeType": "YulIdentifier", + "src": "209:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "272:5:70", + "nodeType": "YulIdentifier", + "src": "272:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "247:24:70", + "nodeType": "YulIdentifier", + "src": "247:24:70" + }, + "nativeSrc": "247:31:70", + "nodeType": "YulFunctionCall", + "src": "247:31:70" + }, + "nativeSrc": "247:31:70", + "nodeType": "YulExpressionStatement", + "src": "247:31:70" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "150:134:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "178:6:70", + "nodeType": "YulTypedName", + "src": "178:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "189:5:70", + "nodeType": "YulTypedName", + "src": "189:5:70", + "type": "" + } + ], + "src": "150:134:70" + }, + { + "body": { + "nativeSrc": "359:177:70", + "nodeType": "YulBlock", + "src": "359:177:70", + "statements": [ + { + "body": { + "nativeSrc": "405:16:70", + "nodeType": "YulBlock", + "src": "405:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "414:1:70", + "nodeType": "YulLiteral", + "src": "414:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "417:1:70", + "nodeType": "YulLiteral", + "src": "417:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "407:6:70", + "nodeType": "YulIdentifier", + "src": "407:6:70" + }, + "nativeSrc": "407:12:70", + "nodeType": "YulFunctionCall", + "src": "407:12:70" + }, + "nativeSrc": "407:12:70", + "nodeType": "YulExpressionStatement", + "src": "407:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "380:7:70", + "nodeType": "YulIdentifier", + "src": "380:7:70" + }, + { + "name": "headStart", + "nativeSrc": "389:9:70", + "nodeType": "YulIdentifier", + "src": "389:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "376:3:70", + "nodeType": "YulIdentifier", + "src": "376:3:70" + }, + "nativeSrc": "376:23:70", + "nodeType": "YulFunctionCall", + "src": "376:23:70" + }, + { + "kind": "number", + "nativeSrc": "401:2:70", + "nodeType": "YulLiteral", + "src": "401:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "372:3:70", + "nodeType": "YulIdentifier", + "src": "372:3:70" + }, + "nativeSrc": "372:32:70", + "nodeType": "YulFunctionCall", + "src": "372:32:70" + }, + "nativeSrc": "369:52:70", + "nodeType": "YulIf", + "src": "369:52:70" + }, + { + "nativeSrc": "430:36:70", + "nodeType": "YulVariableDeclaration", + "src": "430:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "456:9:70", + "nodeType": "YulIdentifier", + "src": "456:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "443:12:70", + "nodeType": "YulIdentifier", + "src": "443:12:70" + }, + "nativeSrc": "443:23:70", + "nodeType": "YulFunctionCall", + "src": "443:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "434:5:70", + "nodeType": "YulTypedName", + "src": "434:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "500:5:70", + "nodeType": "YulIdentifier", + "src": "500:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "475:24:70", + "nodeType": "YulIdentifier", + "src": "475:24:70" + }, + "nativeSrc": "475:31:70", + "nodeType": "YulFunctionCall", + "src": "475:31:70" + }, + "nativeSrc": "475:31:70", + "nodeType": "YulExpressionStatement", + "src": "475:31:70" + }, + { + "nativeSrc": "515:15:70", + "nodeType": "YulAssignment", + "src": "515:15:70", + "value": { + "name": "value", + "nativeSrc": "525:5:70", + "nodeType": "YulIdentifier", + "src": "525:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "515:6:70", + "nodeType": "YulIdentifier", + "src": "515:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "289:247:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "325:9:70", + "nodeType": "YulTypedName", + "src": "325:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "336:7:70", + "nodeType": "YulTypedName", + "src": "336:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "348:6:70", + "nodeType": "YulTypedName", + "src": "348:6:70", + "type": "" + } + ], + "src": "289:247:70" + }, + { + "body": { + "nativeSrc": "585:60:70", + "nodeType": "YulBlock", + "src": "585:60:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "602:3:70", + "nodeType": "YulIdentifier", + "src": "602:3:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "611:5:70", + "nodeType": "YulIdentifier", + "src": "611:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "626:3:70", + "nodeType": "YulLiteral", + "src": "626:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "631:1:70", + "nodeType": "YulLiteral", + "src": "631:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "622:3:70", + "nodeType": "YulIdentifier", + "src": "622:3:70" + }, + "nativeSrc": "622:11:70", + "nodeType": "YulFunctionCall", + "src": "622:11:70" + }, + { + "kind": "number", + "nativeSrc": "635:1:70", + "nodeType": "YulLiteral", + "src": "635:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "618:3:70", + "nodeType": "YulIdentifier", + "src": "618:3:70" + }, + "nativeSrc": "618:19:70", + "nodeType": "YulFunctionCall", + "src": "618:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "607:3:70", + "nodeType": "YulIdentifier", + "src": "607:3:70" + }, + "nativeSrc": "607:31:70", + "nodeType": "YulFunctionCall", + "src": "607:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "595:6:70", + "nodeType": "YulIdentifier", + "src": "595:6:70" + }, + "nativeSrc": "595:44:70", + "nodeType": "YulFunctionCall", + "src": "595:44:70" + }, + "nativeSrc": "595:44:70", + "nodeType": "YulExpressionStatement", + "src": "595:44:70" + } + ] + }, + "name": "abi_encode_address", + "nativeSrc": "541:104:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "569:5:70", + "nodeType": "YulTypedName", + "src": "569:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "576:3:70", + "nodeType": "YulTypedName", + "src": "576:3:70", + "type": "" + } + ], + "src": "541:104:70" + }, + { + "body": { + "nativeSrc": "751:102:70", + "nodeType": "YulBlock", + "src": "751:102:70", + "statements": [ + { + "nativeSrc": "761:26:70", + "nodeType": "YulAssignment", + "src": "761:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "773:9:70", + "nodeType": "YulIdentifier", + "src": "773:9:70" + }, + { + "kind": "number", + "nativeSrc": "784:2:70", + "nodeType": "YulLiteral", + "src": "784:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "769:3:70", + "nodeType": "YulIdentifier", + "src": "769:3:70" + }, + "nativeSrc": "769:18:70", + "nodeType": "YulFunctionCall", + "src": "769:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "761:4:70", + "nodeType": "YulIdentifier", + "src": "761:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "803:9:70", + "nodeType": "YulIdentifier", + "src": "803:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "818:6:70", + "nodeType": "YulIdentifier", + "src": "818:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "834:3:70", + "nodeType": "YulLiteral", + "src": "834:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "839:1:70", + "nodeType": "YulLiteral", + "src": "839:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "830:3:70", + "nodeType": "YulIdentifier", + "src": "830:3:70" + }, + "nativeSrc": "830:11:70", + "nodeType": "YulFunctionCall", + "src": "830:11:70" + }, + { + "kind": "number", + "nativeSrc": "843:1:70", + "nodeType": "YulLiteral", + "src": "843:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "826:3:70", + "nodeType": "YulIdentifier", + "src": "826:3:70" + }, + "nativeSrc": "826:19:70", + "nodeType": "YulFunctionCall", + "src": "826:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "814:3:70", + "nodeType": "YulIdentifier", + "src": "814:3:70" + }, + "nativeSrc": "814:32:70", + "nodeType": "YulFunctionCall", + "src": "814:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "796:6:70", + "nodeType": "YulIdentifier", + "src": "796:6:70" + }, + "nativeSrc": "796:51:70", + "nodeType": "YulFunctionCall", + "src": "796:51:70" + }, + "nativeSrc": "796:51:70", + "nodeType": "YulExpressionStatement", + "src": "796:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "650:203:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "720:9:70", + "nodeType": "YulTypedName", + "src": "720:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "731:6:70", + "nodeType": "YulTypedName", + "src": "731:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "742:4:70", + "nodeType": "YulTypedName", + "src": "742:4:70", + "type": "" + } + ], + "src": "650:203:70" + }, + { + "body": { + "nativeSrc": "1007:618:70", + "nodeType": "YulBlock", + "src": "1007:618:70", + "statements": [ + { + "nativeSrc": "1017:27:70", + "nodeType": "YulAssignment", + "src": "1017:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1029:9:70", + "nodeType": "YulIdentifier", + "src": "1029:9:70" + }, + { + "kind": "number", + "nativeSrc": "1040:3:70", + "nodeType": "YulLiteral", + "src": "1040:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1025:3:70", + "nodeType": "YulIdentifier", + "src": "1025:3:70" + }, + "nativeSrc": "1025:19:70", + "nodeType": "YulFunctionCall", + "src": "1025:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1017:4:70", + "nodeType": "YulIdentifier", + "src": "1017:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1060:9:70", + "nodeType": "YulIdentifier", + "src": "1060:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1081:6:70", + "nodeType": "YulIdentifier", + "src": "1081:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1075:5:70", + "nodeType": "YulIdentifier", + "src": "1075:5:70" + }, + "nativeSrc": "1075:13:70", + "nodeType": "YulFunctionCall", + "src": "1075:13:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1098:3:70", + "nodeType": "YulLiteral", + "src": "1098:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1103:1:70", + "nodeType": "YulLiteral", + "src": "1103:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1094:3:70", + "nodeType": "YulIdentifier", + "src": "1094:3:70" + }, + "nativeSrc": "1094:11:70", + "nodeType": "YulFunctionCall", + "src": "1094:11:70" + }, + { + "kind": "number", + "nativeSrc": "1107:1:70", + "nodeType": "YulLiteral", + "src": "1107:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1090:3:70", + "nodeType": "YulIdentifier", + "src": "1090:3:70" + }, + "nativeSrc": "1090:19:70", + "nodeType": "YulFunctionCall", + "src": "1090:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1071:3:70", + "nodeType": "YulIdentifier", + "src": "1071:3:70" + }, + "nativeSrc": "1071:39:70", + "nodeType": "YulFunctionCall", + "src": "1071:39:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1053:6:70", + "nodeType": "YulIdentifier", + "src": "1053:6:70" + }, + "nativeSrc": "1053:58:70", + "nodeType": "YulFunctionCall", + "src": "1053:58:70" + }, + "nativeSrc": "1053:58:70", + "nodeType": "YulExpressionStatement", + "src": "1053:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1131:9:70", + "nodeType": "YulIdentifier", + "src": "1131:9:70" + }, + { + "kind": "number", + "nativeSrc": "1142:4:70", + "nodeType": "YulLiteral", + "src": "1142:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1127:3:70", + "nodeType": "YulIdentifier", + "src": "1127:3:70" + }, + "nativeSrc": "1127:20:70", + "nodeType": "YulFunctionCall", + "src": "1127:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1159:6:70", + "nodeType": "YulIdentifier", + "src": "1159:6:70" + }, + { + "kind": "number", + "nativeSrc": "1167:4:70", + "nodeType": "YulLiteral", + "src": "1167:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1155:3:70", + "nodeType": "YulIdentifier", + "src": "1155:3:70" + }, + "nativeSrc": "1155:17:70", + "nodeType": "YulFunctionCall", + "src": "1155:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1149:5:70", + "nodeType": "YulIdentifier", + "src": "1149:5:70" + }, + "nativeSrc": "1149:24:70", + "nodeType": "YulFunctionCall", + "src": "1149:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1120:6:70", + "nodeType": "YulIdentifier", + "src": "1120:6:70" + }, + "nativeSrc": "1120:54:70", + "nodeType": "YulFunctionCall", + "src": "1120:54:70" + }, + "nativeSrc": "1120:54:70", + "nodeType": "YulExpressionStatement", + "src": "1120:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1194:9:70", + "nodeType": "YulIdentifier", + "src": "1194:9:70" + }, + { + "kind": "number", + "nativeSrc": "1205:4:70", + "nodeType": "YulLiteral", + "src": "1205:4:70", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1190:3:70", + "nodeType": "YulIdentifier", + "src": "1190:3:70" + }, + "nativeSrc": "1190:20:70", + "nodeType": "YulFunctionCall", + "src": "1190:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1222:6:70", + "nodeType": "YulIdentifier", + "src": "1222:6:70" + }, + { + "kind": "number", + "nativeSrc": "1230:4:70", + "nodeType": "YulLiteral", + "src": "1230:4:70", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1218:3:70", + "nodeType": "YulIdentifier", + "src": "1218:3:70" + }, + "nativeSrc": "1218:17:70", + "nodeType": "YulFunctionCall", + "src": "1218:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1212:5:70", + "nodeType": "YulIdentifier", + "src": "1212:5:70" + }, + "nativeSrc": "1212:24:70", + "nodeType": "YulFunctionCall", + "src": "1212:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1183:6:70", + "nodeType": "YulIdentifier", + "src": "1183:6:70" + }, + "nativeSrc": "1183:54:70", + "nodeType": "YulFunctionCall", + "src": "1183:54:70" + }, + "nativeSrc": "1183:54:70", + "nodeType": "YulExpressionStatement", + "src": "1183:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1257:9:70", + "nodeType": "YulIdentifier", + "src": "1257:9:70" + }, + { + "kind": "number", + "nativeSrc": "1268:4:70", + "nodeType": "YulLiteral", + "src": "1268:4:70", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1253:3:70", + "nodeType": "YulIdentifier", + "src": "1253:3:70" + }, + "nativeSrc": "1253:20:70", + "nodeType": "YulFunctionCall", + "src": "1253:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1285:6:70", + "nodeType": "YulIdentifier", + "src": "1285:6:70" + }, + { + "kind": "number", + "nativeSrc": "1293:4:70", + "nodeType": "YulLiteral", + "src": "1293:4:70", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1281:3:70", + "nodeType": "YulIdentifier", + "src": "1281:3:70" + }, + "nativeSrc": "1281:17:70", + "nodeType": "YulFunctionCall", + "src": "1281:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1275:5:70", + "nodeType": "YulIdentifier", + "src": "1275:5:70" + }, + "nativeSrc": "1275:24:70", + "nodeType": "YulFunctionCall", + "src": "1275:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1246:6:70", + "nodeType": "YulIdentifier", + "src": "1246:6:70" + }, + "nativeSrc": "1246:54:70", + "nodeType": "YulFunctionCall", + "src": "1246:54:70" + }, + "nativeSrc": "1246:54:70", + "nodeType": "YulExpressionStatement", + "src": "1246:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1320:9:70", + "nodeType": "YulIdentifier", + "src": "1320:9:70" + }, + { + "kind": "number", + "nativeSrc": "1331:4:70", + "nodeType": "YulLiteral", + "src": "1331:4:70", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1316:3:70", + "nodeType": "YulIdentifier", + "src": "1316:3:70" + }, + "nativeSrc": "1316:20:70", + "nodeType": "YulFunctionCall", + "src": "1316:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1348:6:70", + "nodeType": "YulIdentifier", + "src": "1348:6:70" + }, + { + "kind": "number", + "nativeSrc": "1356:4:70", + "nodeType": "YulLiteral", + "src": "1356:4:70", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1344:3:70", + "nodeType": "YulIdentifier", + "src": "1344:3:70" + }, + "nativeSrc": "1344:17:70", + "nodeType": "YulFunctionCall", + "src": "1344:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1338:5:70", + "nodeType": "YulIdentifier", + "src": "1338:5:70" + }, + "nativeSrc": "1338:24:70", + "nodeType": "YulFunctionCall", + "src": "1338:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1309:6:70", + "nodeType": "YulIdentifier", + "src": "1309:6:70" + }, + "nativeSrc": "1309:54:70", + "nodeType": "YulFunctionCall", + "src": "1309:54:70" + }, + "nativeSrc": "1309:54:70", + "nodeType": "YulExpressionStatement", + "src": "1309:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1383:9:70", + "nodeType": "YulIdentifier", + "src": "1383:9:70" + }, + { + "kind": "number", + "nativeSrc": "1394:4:70", + "nodeType": "YulLiteral", + "src": "1394:4:70", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1379:3:70", + "nodeType": "YulIdentifier", + "src": "1379:3:70" + }, + "nativeSrc": "1379:20:70", + "nodeType": "YulFunctionCall", + "src": "1379:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1411:6:70", + "nodeType": "YulIdentifier", + "src": "1411:6:70" + }, + { + "kind": "number", + "nativeSrc": "1419:4:70", + "nodeType": "YulLiteral", + "src": "1419:4:70", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1407:3:70", + "nodeType": "YulIdentifier", + "src": "1407:3:70" + }, + "nativeSrc": "1407:17:70", + "nodeType": "YulFunctionCall", + "src": "1407:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1401:5:70", + "nodeType": "YulIdentifier", + "src": "1401:5:70" + }, + "nativeSrc": "1401:24:70", + "nodeType": "YulFunctionCall", + "src": "1401:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1372:6:70", + "nodeType": "YulIdentifier", + "src": "1372:6:70" + }, + "nativeSrc": "1372:54:70", + "nodeType": "YulFunctionCall", + "src": "1372:54:70" + }, + "nativeSrc": "1372:54:70", + "nodeType": "YulExpressionStatement", + "src": "1372:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1446:9:70", + "nodeType": "YulIdentifier", + "src": "1446:9:70" + }, + { + "kind": "number", + "nativeSrc": "1457:4:70", + "nodeType": "YulLiteral", + "src": "1457:4:70", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1442:3:70", + "nodeType": "YulIdentifier", + "src": "1442:3:70" + }, + "nativeSrc": "1442:20:70", + "nodeType": "YulFunctionCall", + "src": "1442:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1474:6:70", + "nodeType": "YulIdentifier", + "src": "1474:6:70" + }, + { + "kind": "number", + "nativeSrc": "1482:4:70", + "nodeType": "YulLiteral", + "src": "1482:4:70", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1470:3:70", + "nodeType": "YulIdentifier", + "src": "1470:3:70" + }, + "nativeSrc": "1470:17:70", + "nodeType": "YulFunctionCall", + "src": "1470:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1464:5:70", + "nodeType": "YulIdentifier", + "src": "1464:5:70" + }, + "nativeSrc": "1464:24:70", + "nodeType": "YulFunctionCall", + "src": "1464:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1435:6:70", + "nodeType": "YulIdentifier", + "src": "1435:6:70" + }, + "nativeSrc": "1435:54:70", + "nodeType": "YulFunctionCall", + "src": "1435:54:70" + }, + "nativeSrc": "1435:54:70", + "nodeType": "YulExpressionStatement", + "src": "1435:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1509:9:70", + "nodeType": "YulIdentifier", + "src": "1509:9:70" + }, + { + "kind": "number", + "nativeSrc": "1520:4:70", + "nodeType": "YulLiteral", + "src": "1520:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1505:3:70", + "nodeType": "YulIdentifier", + "src": "1505:3:70" + }, + "nativeSrc": "1505:20:70", + "nodeType": "YulFunctionCall", + "src": "1505:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1537:6:70", + "nodeType": "YulIdentifier", + "src": "1537:6:70" + }, + { + "kind": "number", + "nativeSrc": "1545:4:70", + "nodeType": "YulLiteral", + "src": "1545:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1533:3:70", + "nodeType": "YulIdentifier", + "src": "1533:3:70" + }, + "nativeSrc": "1533:17:70", + "nodeType": "YulFunctionCall", + "src": "1533:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1527:5:70", + "nodeType": "YulIdentifier", + "src": "1527:5:70" + }, + "nativeSrc": "1527:24:70", + "nodeType": "YulFunctionCall", + "src": "1527:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1498:6:70", + "nodeType": "YulIdentifier", + "src": "1498:6:70" + }, + "nativeSrc": "1498:54:70", + "nodeType": "YulFunctionCall", + "src": "1498:54:70" + }, + "nativeSrc": "1498:54:70", + "nodeType": "YulExpressionStatement", + "src": "1498:54:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1572:9:70", + "nodeType": "YulIdentifier", + "src": "1572:9:70" + }, + { + "kind": "number", + "nativeSrc": "1583:6:70", + "nodeType": "YulLiteral", + "src": "1583:6:70", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1568:3:70", + "nodeType": "YulIdentifier", + "src": "1568:3:70" + }, + "nativeSrc": "1568:22:70", + "nodeType": "YulFunctionCall", + "src": "1568:22:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1602:6:70", + "nodeType": "YulIdentifier", + "src": "1602:6:70" + }, + { + "kind": "number", + "nativeSrc": "1610:6:70", + "nodeType": "YulLiteral", + "src": "1610:6:70", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1598:3:70", + "nodeType": "YulIdentifier", + "src": "1598:3:70" + }, + "nativeSrc": "1598:19:70", + "nodeType": "YulFunctionCall", + "src": "1598:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1592:5:70", + "nodeType": "YulIdentifier", + "src": "1592:5:70" + }, + "nativeSrc": "1592:26:70", + "nodeType": "YulFunctionCall", + "src": "1592:26:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1561:6:70", + "nodeType": "YulIdentifier", + "src": "1561:6:70" + }, + "nativeSrc": "1561:58:70", + "nodeType": "YulFunctionCall", + "src": "1561:58:70" + }, + "nativeSrc": "1561:58:70", + "nodeType": "YulExpressionStatement", + "src": "1561:58:70" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_State_$15663_memory_ptr__to_t_struct$_State_$15663_memory_ptr__fromStack_reversed", + "nativeSrc": "858:767:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "976:9:70", + "nodeType": "YulTypedName", + "src": "976:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "987:6:70", + "nodeType": "YulTypedName", + "src": "987:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "998:4:70", + "nodeType": "YulTypedName", + "src": "998:4:70", + "type": "" + } + ], + "src": "858:767:70" + }, + { + "body": { + "nativeSrc": "1731:76:70", + "nodeType": "YulBlock", + "src": "1731:76:70", + "statements": [ + { + "nativeSrc": "1741:26:70", + "nodeType": "YulAssignment", + "src": "1741:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1753:9:70", + "nodeType": "YulIdentifier", + "src": "1753:9:70" + }, + { + "kind": "number", + "nativeSrc": "1764:2:70", + "nodeType": "YulLiteral", + "src": "1764:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1749:3:70", + "nodeType": "YulIdentifier", + "src": "1749:3:70" + }, + "nativeSrc": "1749:18:70", + "nodeType": "YulFunctionCall", + "src": "1749:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1741:4:70", + "nodeType": "YulIdentifier", + "src": "1741:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1783:9:70", + "nodeType": "YulIdentifier", + "src": "1783:9:70" + }, + { + "name": "value0", + "nativeSrc": "1794:6:70", + "nodeType": "YulIdentifier", + "src": "1794:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1776:6:70", + "nodeType": "YulIdentifier", + "src": "1776:6:70" + }, + "nativeSrc": "1776:25:70", + "nodeType": "YulFunctionCall", + "src": "1776:25:70" + }, + "nativeSrc": "1776:25:70", + "nodeType": "YulExpressionStatement", + "src": "1776:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1630:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1700:9:70", + "nodeType": "YulTypedName", + "src": "1700:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1711:6:70", + "nodeType": "YulTypedName", + "src": "1711:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1722:4:70", + "nodeType": "YulTypedName", + "src": "1722:4:70", + "type": "" + } + ], + "src": "1630:177:70" + }, + { + "body": { + "nativeSrc": "1997:206:70", + "nodeType": "YulBlock", + "src": "1997:206:70", + "statements": [ + { + "nativeSrc": "2007:27:70", + "nodeType": "YulAssignment", + "src": "2007:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2019:9:70", + "nodeType": "YulIdentifier", + "src": "2019:9:70" + }, + { + "kind": "number", + "nativeSrc": "2030:3:70", + "nodeType": "YulLiteral", + "src": "2030:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2015:3:70", + "nodeType": "YulIdentifier", + "src": "2015:3:70" + }, + "nativeSrc": "2015:19:70", + "nodeType": "YulFunctionCall", + "src": "2015:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2007:4:70", + "nodeType": "YulIdentifier", + "src": "2007:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2050:9:70", + "nodeType": "YulIdentifier", + "src": "2050:9:70" + }, + { + "name": "value0", + "nativeSrc": "2061:6:70", + "nodeType": "YulIdentifier", + "src": "2061:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2043:6:70", + "nodeType": "YulIdentifier", + "src": "2043:6:70" + }, + "nativeSrc": "2043:25:70", + "nodeType": "YulFunctionCall", + "src": "2043:25:70" + }, + "nativeSrc": "2043:25:70", + "nodeType": "YulExpressionStatement", + "src": "2043:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2088:9:70", + "nodeType": "YulIdentifier", + "src": "2088:9:70" + }, + { + "kind": "number", + "nativeSrc": "2099:2:70", + "nodeType": "YulLiteral", + "src": "2099:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2084:3:70", + "nodeType": "YulIdentifier", + "src": "2084:3:70" + }, + "nativeSrc": "2084:18:70", + "nodeType": "YulFunctionCall", + "src": "2084:18:70" + }, + { + "name": "value1", + "nativeSrc": "2104:6:70", + "nodeType": "YulIdentifier", + "src": "2104:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2077:6:70", + "nodeType": "YulIdentifier", + "src": "2077:6:70" + }, + "nativeSrc": "2077:34:70", + "nodeType": "YulFunctionCall", + "src": "2077:34:70" + }, + "nativeSrc": "2077:34:70", + "nodeType": "YulExpressionStatement", + "src": "2077:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2131:9:70", + "nodeType": "YulIdentifier", + "src": "2131:9:70" + }, + { + "kind": "number", + "nativeSrc": "2142:2:70", + "nodeType": "YulLiteral", + "src": "2142:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2127:3:70", + "nodeType": "YulIdentifier", + "src": "2127:3:70" + }, + "nativeSrc": "2127:18:70", + "nodeType": "YulFunctionCall", + "src": "2127:18:70" + }, + { + "name": "value2", + "nativeSrc": "2147:6:70", + "nodeType": "YulIdentifier", + "src": "2147:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2120:6:70", + "nodeType": "YulIdentifier", + "src": "2120:6:70" + }, + "nativeSrc": "2120:34:70", + "nodeType": "YulFunctionCall", + "src": "2120:34:70" + }, + "nativeSrc": "2120:34:70", + "nodeType": "YulExpressionStatement", + "src": "2120:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2174:9:70", + "nodeType": "YulIdentifier", + "src": "2174:9:70" + }, + { + "kind": "number", + "nativeSrc": "2185:2:70", + "nodeType": "YulLiteral", + "src": "2185:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2170:3:70", + "nodeType": "YulIdentifier", + "src": "2170:3:70" + }, + "nativeSrc": "2170:18:70", + "nodeType": "YulFunctionCall", + "src": "2170:18:70" + }, + { + "name": "value3", + "nativeSrc": "2190:6:70", + "nodeType": "YulIdentifier", + "src": "2190:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2163:6:70", + "nodeType": "YulIdentifier", + "src": "2163:6:70" + }, + "nativeSrc": "2163:34:70", + "nodeType": "YulFunctionCall", + "src": "2163:34:70" + }, + "nativeSrc": "2163:34:70", + "nodeType": "YulExpressionStatement", + "src": "2163:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_bytes32_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "1812:391:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1942:9:70", + "nodeType": "YulTypedName", + "src": "1942:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1953:6:70", + "nodeType": "YulTypedName", + "src": "1953:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1961:6:70", + "nodeType": "YulTypedName", + "src": "1961:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1969:6:70", + "nodeType": "YulTypedName", + "src": "1969:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1977:6:70", + "nodeType": "YulTypedName", + "src": "1977:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1988:4:70", + "nodeType": "YulTypedName", + "src": "1988:4:70", + "type": "" + } + ], + "src": "1812:391:70" + }, + { + "body": { + "nativeSrc": "2252:77:70", + "nodeType": "YulBlock", + "src": "2252:77:70", + "statements": [ + { + "body": { + "nativeSrc": "2307:16:70", + "nodeType": "YulBlock", + "src": "2307:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2316:1:70", + "nodeType": "YulLiteral", + "src": "2316:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2319:1:70", + "nodeType": "YulLiteral", + "src": "2319:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2309:6:70", + "nodeType": "YulIdentifier", + "src": "2309:6:70" + }, + "nativeSrc": "2309:12:70", + "nodeType": "YulFunctionCall", + "src": "2309:12:70" + }, + "nativeSrc": "2309:12:70", + "nodeType": "YulExpressionStatement", + "src": "2309:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2275:5:70", + "nodeType": "YulIdentifier", + "src": "2275:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2286:5:70", + "nodeType": "YulIdentifier", + "src": "2286:5:70" + }, + { + "kind": "number", + "nativeSrc": "2293:10:70", + "nodeType": "YulLiteral", + "src": "2293:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2282:3:70", + "nodeType": "YulIdentifier", + "src": "2282:3:70" + }, + "nativeSrc": "2282:22:70", + "nodeType": "YulFunctionCall", + "src": "2282:22:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2272:2:70", + "nodeType": "YulIdentifier", + "src": "2272:2:70" + }, + "nativeSrc": "2272:33:70", + "nodeType": "YulFunctionCall", + "src": "2272:33:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2265:6:70", + "nodeType": "YulIdentifier", + "src": "2265:6:70" + }, + "nativeSrc": "2265:41:70", + "nodeType": "YulFunctionCall", + "src": "2265:41:70" + }, + "nativeSrc": "2262:61:70", + "nodeType": "YulIf", + "src": "2262:61:70" + } + ] + }, + "name": "validator_revert_uint32", + "nativeSrc": "2208:121:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2241:5:70", + "nodeType": "YulTypedName", + "src": "2241:5:70", + "type": "" + } + ], + "src": "2208:121:70" + }, + { + "body": { + "nativeSrc": "2403:176:70", + "nodeType": "YulBlock", + "src": "2403:176:70", + "statements": [ + { + "body": { + "nativeSrc": "2449:16:70", + "nodeType": "YulBlock", + "src": "2449:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2458:1:70", + "nodeType": "YulLiteral", + "src": "2458:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2461:1:70", + "nodeType": "YulLiteral", + "src": "2461:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2451:6:70", + "nodeType": "YulIdentifier", + "src": "2451:6:70" + }, + "nativeSrc": "2451:12:70", + "nodeType": "YulFunctionCall", + "src": "2451:12:70" + }, + "nativeSrc": "2451:12:70", + "nodeType": "YulExpressionStatement", + "src": "2451:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2424:7:70", + "nodeType": "YulIdentifier", + "src": "2424:7:70" + }, + { + "name": "headStart", + "nativeSrc": "2433:9:70", + "nodeType": "YulIdentifier", + "src": "2433:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2420:3:70", + "nodeType": "YulIdentifier", + "src": "2420:3:70" + }, + "nativeSrc": "2420:23:70", + "nodeType": "YulFunctionCall", + "src": "2420:23:70" + }, + { + "kind": "number", + "nativeSrc": "2445:2:70", + "nodeType": "YulLiteral", + "src": "2445:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2416:3:70", + "nodeType": "YulIdentifier", + "src": "2416:3:70" + }, + "nativeSrc": "2416:32:70", + "nodeType": "YulFunctionCall", + "src": "2416:32:70" + }, + "nativeSrc": "2413:52:70", + "nodeType": "YulIf", + "src": "2413:52:70" + }, + { + "nativeSrc": "2474:36:70", + "nodeType": "YulVariableDeclaration", + "src": "2474:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2500:9:70", + "nodeType": "YulIdentifier", + "src": "2500:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2487:12:70", + "nodeType": "YulIdentifier", + "src": "2487:12:70" + }, + "nativeSrc": "2487:23:70", + "nodeType": "YulFunctionCall", + "src": "2487:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2478:5:70", + "nodeType": "YulTypedName", + "src": "2478:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2543:5:70", + "nodeType": "YulIdentifier", + "src": "2543:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "2519:23:70", + "nodeType": "YulIdentifier", + "src": "2519:23:70" + }, + "nativeSrc": "2519:30:70", + "nodeType": "YulFunctionCall", + "src": "2519:30:70" + }, + "nativeSrc": "2519:30:70", + "nodeType": "YulExpressionStatement", + "src": "2519:30:70" + }, + { + "nativeSrc": "2558:15:70", + "nodeType": "YulAssignment", + "src": "2558:15:70", + "value": { + "name": "value", + "nativeSrc": "2568:5:70", + "nodeType": "YulIdentifier", + "src": "2568:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2558:6:70", + "nodeType": "YulIdentifier", + "src": "2558:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint32", + "nativeSrc": "2334:245:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2369:9:70", + "nodeType": "YulTypedName", + "src": "2369:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2380:7:70", + "nodeType": "YulTypedName", + "src": "2380:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2392:6:70", + "nodeType": "YulTypedName", + "src": "2392:6:70", + "type": "" + } + ], + "src": "2334:245:70" + }, + { + "body": { + "nativeSrc": "2683:93:70", + "nodeType": "YulBlock", + "src": "2683:93:70", + "statements": [ + { + "nativeSrc": "2693:26:70", + "nodeType": "YulAssignment", + "src": "2693:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2705:9:70", + "nodeType": "YulIdentifier", + "src": "2705:9:70" + }, + { + "kind": "number", + "nativeSrc": "2716:2:70", + "nodeType": "YulLiteral", + "src": "2716:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2701:3:70", + "nodeType": "YulIdentifier", + "src": "2701:3:70" + }, + "nativeSrc": "2701:18:70", + "nodeType": "YulFunctionCall", + "src": "2701:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2693:4:70", + "nodeType": "YulIdentifier", + "src": "2693:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2735:9:70", + "nodeType": "YulIdentifier", + "src": "2735:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2750:6:70", + "nodeType": "YulIdentifier", + "src": "2750:6:70" + }, + { + "kind": "number", + "nativeSrc": "2758:10:70", + "nodeType": "YulLiteral", + "src": "2758:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2746:3:70", + "nodeType": "YulIdentifier", + "src": "2746:3:70" + }, + "nativeSrc": "2746:23:70", + "nodeType": "YulFunctionCall", + "src": "2746:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2728:6:70", + "nodeType": "YulIdentifier", + "src": "2728:6:70" + }, + "nativeSrc": "2728:42:70", + "nodeType": "YulFunctionCall", + "src": "2728:42:70" + }, + "nativeSrc": "2728:42:70", + "nodeType": "YulExpressionStatement", + "src": "2728:42:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed", + "nativeSrc": "2584:192:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2652:9:70", + "nodeType": "YulTypedName", + "src": "2652:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2663:6:70", + "nodeType": "YulTypedName", + "src": "2663:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2674:4:70", + "nodeType": "YulTypedName", + "src": "2674:4:70", + "type": "" + } + ], + "src": "2584:192:70" + }, + { + "body": { + "nativeSrc": "2853:275:70", + "nodeType": "YulBlock", + "src": "2853:275:70", + "statements": [ + { + "body": { + "nativeSrc": "2902:16:70", + "nodeType": "YulBlock", + "src": "2902:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2911:1:70", + "nodeType": "YulLiteral", + "src": "2911:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2914:1:70", + "nodeType": "YulLiteral", + "src": "2914:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2904:6:70", + "nodeType": "YulIdentifier", + "src": "2904:6:70" + }, + "nativeSrc": "2904:12:70", + "nodeType": "YulFunctionCall", + "src": "2904:12:70" + }, + "nativeSrc": "2904:12:70", + "nodeType": "YulExpressionStatement", + "src": "2904:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2881:6:70", + "nodeType": "YulIdentifier", + "src": "2881:6:70" + }, + { + "kind": "number", + "nativeSrc": "2889:4:70", + "nodeType": "YulLiteral", + "src": "2889:4:70", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2877:3:70", + "nodeType": "YulIdentifier", + "src": "2877:3:70" + }, + "nativeSrc": "2877:17:70", + "nodeType": "YulFunctionCall", + "src": "2877:17:70" + }, + { + "name": "end", + "nativeSrc": "2896:3:70", + "nodeType": "YulIdentifier", + "src": "2896:3:70" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2873:3:70", + "nodeType": "YulIdentifier", + "src": "2873:3:70" + }, + "nativeSrc": "2873:27:70", + "nodeType": "YulFunctionCall", + "src": "2873:27:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2866:6:70", + "nodeType": "YulIdentifier", + "src": "2866:6:70" + }, + "nativeSrc": "2866:35:70", + "nodeType": "YulFunctionCall", + "src": "2866:35:70" + }, + "nativeSrc": "2863:55:70", + "nodeType": "YulIf", + "src": "2863:55:70" + }, + { + "nativeSrc": "2927:30:70", + "nodeType": "YulAssignment", + "src": "2927:30:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2950:6:70", + "nodeType": "YulIdentifier", + "src": "2950:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2937:12:70", + "nodeType": "YulIdentifier", + "src": "2937:12:70" + }, + "nativeSrc": "2937:20:70", + "nodeType": "YulFunctionCall", + "src": "2937:20:70" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "2927:6:70", + "nodeType": "YulIdentifier", + "src": "2927:6:70" + } + ] + }, + { + "body": { + "nativeSrc": "3000:16:70", + "nodeType": "YulBlock", + "src": "3000:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3009:1:70", + "nodeType": "YulLiteral", + "src": "3009:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3012:1:70", + "nodeType": "YulLiteral", + "src": "3012:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3002:6:70", + "nodeType": "YulIdentifier", + "src": "3002:6:70" + }, + "nativeSrc": "3002:12:70", + "nodeType": "YulFunctionCall", + "src": "3002:12:70" + }, + "nativeSrc": "3002:12:70", + "nodeType": "YulExpressionStatement", + "src": "3002:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2972:6:70", + "nodeType": "YulIdentifier", + "src": "2972:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2988:2:70", + "nodeType": "YulLiteral", + "src": "2988:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "2992:1:70", + "nodeType": "YulLiteral", + "src": "2992:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2984:3:70", + "nodeType": "YulIdentifier", + "src": "2984:3:70" + }, + "nativeSrc": "2984:10:70", + "nodeType": "YulFunctionCall", + "src": "2984:10:70" + }, + { + "kind": "number", + "nativeSrc": "2996:1:70", + "nodeType": "YulLiteral", + "src": "2996:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2980:3:70", + "nodeType": "YulIdentifier", + "src": "2980:3:70" + }, + "nativeSrc": "2980:18:70", + "nodeType": "YulFunctionCall", + "src": "2980:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2969:2:70", + "nodeType": "YulIdentifier", + "src": "2969:2:70" + }, + "nativeSrc": "2969:30:70", + "nodeType": "YulFunctionCall", + "src": "2969:30:70" + }, + "nativeSrc": "2966:50:70", + "nodeType": "YulIf", + "src": "2966:50:70" + }, + { + "nativeSrc": "3025:29:70", + "nodeType": "YulAssignment", + "src": "3025:29:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3041:6:70", + "nodeType": "YulIdentifier", + "src": "3041:6:70" + }, + { + "kind": "number", + "nativeSrc": "3049:4:70", + "nodeType": "YulLiteral", + "src": "3049:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3037:3:70", + "nodeType": "YulIdentifier", + "src": "3037:3:70" + }, + "nativeSrc": "3037:17:70", + "nodeType": "YulFunctionCall", + "src": "3037:17:70" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "3025:8:70", + "nodeType": "YulIdentifier", + "src": "3025:8:70" + } + ] + }, + { + "body": { + "nativeSrc": "3106:16:70", + "nodeType": "YulBlock", + "src": "3106:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3115:1:70", + "nodeType": "YulLiteral", + "src": "3115:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3118:1:70", + "nodeType": "YulLiteral", + "src": "3118:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3108:6:70", + "nodeType": "YulIdentifier", + "src": "3108:6:70" + }, + "nativeSrc": "3108:12:70", + "nodeType": "YulFunctionCall", + "src": "3108:12:70" + }, + "nativeSrc": "3108:12:70", + "nodeType": "YulExpressionStatement", + "src": "3108:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3077:6:70", + "nodeType": "YulIdentifier", + "src": "3077:6:70" + }, + { + "name": "length", + "nativeSrc": "3085:6:70", + "nodeType": "YulIdentifier", + "src": "3085:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3073:3:70", + "nodeType": "YulIdentifier", + "src": "3073:3:70" + }, + "nativeSrc": "3073:19:70", + "nodeType": "YulFunctionCall", + "src": "3073:19:70" + }, + { + "kind": "number", + "nativeSrc": "3094:4:70", + "nodeType": "YulLiteral", + "src": "3094:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3069:3:70", + "nodeType": "YulIdentifier", + "src": "3069:3:70" + }, + "nativeSrc": "3069:30:70", + "nodeType": "YulFunctionCall", + "src": "3069:30:70" + }, + { + "name": "end", + "nativeSrc": "3101:3:70", + "nodeType": "YulIdentifier", + "src": "3101:3:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3066:2:70", + "nodeType": "YulIdentifier", + "src": "3066:2:70" + }, + "nativeSrc": "3066:39:70", + "nodeType": "YulFunctionCall", + "src": "3066:39:70" + }, + "nativeSrc": "3063:59:70", + "nodeType": "YulIf", + "src": "3063:59:70" + } + ] + }, + "name": "abi_decode_bytes_calldata", + "nativeSrc": "2781:347:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2816:6:70", + "nodeType": "YulTypedName", + "src": "2816:6:70", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2824:3:70", + "nodeType": "YulTypedName", + "src": "2824:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "2832:8:70", + "nodeType": "YulTypedName", + "src": "2832:8:70", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2842:6:70", + "nodeType": "YulTypedName", + "src": "2842:6:70", + "type": "" + } + ], + "src": "2781:347:70" + }, + { + "body": { + "nativeSrc": "3239:438:70", + "nodeType": "YulBlock", + "src": "3239:438:70", + "statements": [ + { + "body": { + "nativeSrc": "3285:16:70", + "nodeType": "YulBlock", + "src": "3285:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3294:1:70", + "nodeType": "YulLiteral", + "src": "3294:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3297:1:70", + "nodeType": "YulLiteral", + "src": "3297:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3287:6:70", + "nodeType": "YulIdentifier", + "src": "3287:6:70" + }, + "nativeSrc": "3287:12:70", + "nodeType": "YulFunctionCall", + "src": "3287:12:70" + }, + "nativeSrc": "3287:12:70", + "nodeType": "YulExpressionStatement", + "src": "3287:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3260:7:70", + "nodeType": "YulIdentifier", + "src": "3260:7:70" + }, + { + "name": "headStart", + "nativeSrc": "3269:9:70", + "nodeType": "YulIdentifier", + "src": "3269:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3256:3:70", + "nodeType": "YulIdentifier", + "src": "3256:3:70" + }, + "nativeSrc": "3256:23:70", + "nodeType": "YulFunctionCall", + "src": "3256:23:70" + }, + { + "kind": "number", + "nativeSrc": "3281:2:70", + "nodeType": "YulLiteral", + "src": "3281:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3252:3:70", + "nodeType": "YulIdentifier", + "src": "3252:3:70" + }, + "nativeSrc": "3252:32:70", + "nodeType": "YulFunctionCall", + "src": "3252:32:70" + }, + "nativeSrc": "3249:52:70", + "nodeType": "YulIf", + "src": "3249:52:70" + }, + { + "nativeSrc": "3310:36:70", + "nodeType": "YulVariableDeclaration", + "src": "3310:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3336:9:70", + "nodeType": "YulIdentifier", + "src": "3336:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3323:12:70", + "nodeType": "YulIdentifier", + "src": "3323:12:70" + }, + "nativeSrc": "3323:23:70", + "nodeType": "YulFunctionCall", + "src": "3323:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3314:5:70", + "nodeType": "YulTypedName", + "src": "3314:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3380:5:70", + "nodeType": "YulIdentifier", + "src": "3380:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "3355:24:70", + "nodeType": "YulIdentifier", + "src": "3355:24:70" + }, + "nativeSrc": "3355:31:70", + "nodeType": "YulFunctionCall", + "src": "3355:31:70" + }, + "nativeSrc": "3355:31:70", + "nodeType": "YulExpressionStatement", + "src": "3355:31:70" + }, + { + "nativeSrc": "3395:15:70", + "nodeType": "YulAssignment", + "src": "3395:15:70", + "value": { + "name": "value", + "nativeSrc": "3405:5:70", + "nodeType": "YulIdentifier", + "src": "3405:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3395:6:70", + "nodeType": "YulIdentifier", + "src": "3395:6:70" + } + ] + }, + { + "nativeSrc": "3419:46:70", + "nodeType": "YulVariableDeclaration", + "src": "3419:46:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3450:9:70", + "nodeType": "YulIdentifier", + "src": "3450:9:70" + }, + { + "kind": "number", + "nativeSrc": "3461:2:70", + "nodeType": "YulLiteral", + "src": "3461:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3446:3:70", + "nodeType": "YulIdentifier", + "src": "3446:3:70" + }, + "nativeSrc": "3446:18:70", + "nodeType": "YulFunctionCall", + "src": "3446:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3433:12:70", + "nodeType": "YulIdentifier", + "src": "3433:12:70" + }, + "nativeSrc": "3433:32:70", + "nodeType": "YulFunctionCall", + "src": "3433:32:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3423:6:70", + "nodeType": "YulTypedName", + "src": "3423:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3508:16:70", + "nodeType": "YulBlock", + "src": "3508:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3517:1:70", + "nodeType": "YulLiteral", + "src": "3517:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3520:1:70", + "nodeType": "YulLiteral", + "src": "3520:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3510:6:70", + "nodeType": "YulIdentifier", + "src": "3510:6:70" + }, + "nativeSrc": "3510:12:70", + "nodeType": "YulFunctionCall", + "src": "3510:12:70" + }, + "nativeSrc": "3510:12:70", + "nodeType": "YulExpressionStatement", + "src": "3510:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3480:6:70", + "nodeType": "YulIdentifier", + "src": "3480:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3496:2:70", + "nodeType": "YulLiteral", + "src": "3496:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "3500:1:70", + "nodeType": "YulLiteral", + "src": "3500:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3492:3:70", + "nodeType": "YulIdentifier", + "src": "3492:3:70" + }, + "nativeSrc": "3492:10:70", + "nodeType": "YulFunctionCall", + "src": "3492:10:70" + }, + { + "kind": "number", + "nativeSrc": "3504:1:70", + "nodeType": "YulLiteral", + "src": "3504:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3488:3:70", + "nodeType": "YulIdentifier", + "src": "3488:3:70" + }, + "nativeSrc": "3488:18:70", + "nodeType": "YulFunctionCall", + "src": "3488:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3477:2:70", + "nodeType": "YulIdentifier", + "src": "3477:2:70" + }, + "nativeSrc": "3477:30:70", + "nodeType": "YulFunctionCall", + "src": "3477:30:70" + }, + "nativeSrc": "3474:50:70", + "nodeType": "YulIf", + "src": "3474:50:70" + }, + { + "nativeSrc": "3533:84:70", + "nodeType": "YulVariableDeclaration", + "src": "3533:84:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3589:9:70", + "nodeType": "YulIdentifier", + "src": "3589:9:70" + }, + { + "name": "offset", + "nativeSrc": "3600:6:70", + "nodeType": "YulIdentifier", + "src": "3600:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3585:3:70", + "nodeType": "YulIdentifier", + "src": "3585:3:70" + }, + "nativeSrc": "3585:22:70", + "nodeType": "YulFunctionCall", + "src": "3585:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "3609:7:70", + "nodeType": "YulIdentifier", + "src": "3609:7:70" + } + ], + "functionName": { + "name": "abi_decode_bytes_calldata", + "nativeSrc": "3559:25:70", + "nodeType": "YulIdentifier", + "src": "3559:25:70" + }, + "nativeSrc": "3559:58:70", + "nodeType": "YulFunctionCall", + "src": "3559:58:70" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "3537:8:70", + "nodeType": "YulTypedName", + "src": "3537:8:70", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "3547:8:70", + "nodeType": "YulTypedName", + "src": "3547:8:70", + "type": "" + } + ] + }, + { + "nativeSrc": "3626:18:70", + "nodeType": "YulAssignment", + "src": "3626:18:70", + "value": { + "name": "value1_1", + "nativeSrc": "3636:8:70", + "nodeType": "YulIdentifier", + "src": "3636:8:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3626:6:70", + "nodeType": "YulIdentifier", + "src": "3626:6:70" + } + ] + }, + { + "nativeSrc": "3653:18:70", + "nodeType": "YulAssignment", + "src": "3653:18:70", + "value": { + "name": "value2_1", + "nativeSrc": "3663:8:70", + "nodeType": "YulIdentifier", + "src": "3663:8:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "3653:6:70", + "nodeType": "YulIdentifier", + "src": "3653:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes_calldata_ptr", + "nativeSrc": "3133:544:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3189:9:70", + "nodeType": "YulTypedName", + "src": "3189:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3200:7:70", + "nodeType": "YulTypedName", + "src": "3200:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3212:6:70", + "nodeType": "YulTypedName", + "src": "3212:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3220:6:70", + "nodeType": "YulTypedName", + "src": "3220:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3228:6:70", + "nodeType": "YulTypedName", + "src": "3228:6:70", + "type": "" + } + ], + "src": "3133:544:70" + }, + { + "body": { + "nativeSrc": "3724:76:70", + "nodeType": "YulBlock", + "src": "3724:76:70", + "statements": [ + { + "body": { + "nativeSrc": "3778:16:70", + "nodeType": "YulBlock", + "src": "3778:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3787:1:70", + "nodeType": "YulLiteral", + "src": "3787:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3790:1:70", + "nodeType": "YulLiteral", + "src": "3790:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3780:6:70", + "nodeType": "YulIdentifier", + "src": "3780:6:70" + }, + "nativeSrc": "3780:12:70", + "nodeType": "YulFunctionCall", + "src": "3780:12:70" + }, + "nativeSrc": "3780:12:70", + "nodeType": "YulExpressionStatement", + "src": "3780:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3747:5:70", + "nodeType": "YulIdentifier", + "src": "3747:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3768:5:70", + "nodeType": "YulIdentifier", + "src": "3768:5:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3761:6:70", + "nodeType": "YulIdentifier", + "src": "3761:6:70" + }, + "nativeSrc": "3761:13:70", + "nodeType": "YulFunctionCall", + "src": "3761:13:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3754:6:70", + "nodeType": "YulIdentifier", + "src": "3754:6:70" + }, + "nativeSrc": "3754:21:70", + "nodeType": "YulFunctionCall", + "src": "3754:21:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3744:2:70", + "nodeType": "YulIdentifier", + "src": "3744:2:70" + }, + "nativeSrc": "3744:32:70", + "nodeType": "YulFunctionCall", + "src": "3744:32:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3737:6:70", + "nodeType": "YulIdentifier", + "src": "3737:6:70" + }, + "nativeSrc": "3737:40:70", + "nodeType": "YulFunctionCall", + "src": "3737:40:70" + }, + "nativeSrc": "3734:60:70", + "nodeType": "YulIf", + "src": "3734:60:70" + } + ] + }, + "name": "validator_revert_bool", + "nativeSrc": "3682:118:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3713:5:70", + "nodeType": "YulTypedName", + "src": "3713:5:70", + "type": "" + } + ], + "src": "3682:118:70" + }, + { + "body": { + "nativeSrc": "3889:298:70", + "nodeType": "YulBlock", + "src": "3889:298:70", + "statements": [ + { + "body": { + "nativeSrc": "3935:16:70", + "nodeType": "YulBlock", + "src": "3935:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3944:1:70", + "nodeType": "YulLiteral", + "src": "3944:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3947:1:70", + "nodeType": "YulLiteral", + "src": "3947:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3937:6:70", + "nodeType": "YulIdentifier", + "src": "3937:6:70" + }, + "nativeSrc": "3937:12:70", + "nodeType": "YulFunctionCall", + "src": "3937:12:70" + }, + "nativeSrc": "3937:12:70", + "nodeType": "YulExpressionStatement", + "src": "3937:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3910:7:70", + "nodeType": "YulIdentifier", + "src": "3910:7:70" + }, + { + "name": "headStart", + "nativeSrc": "3919:9:70", + "nodeType": "YulIdentifier", + "src": "3919:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3906:3:70", + "nodeType": "YulIdentifier", + "src": "3906:3:70" + }, + "nativeSrc": "3906:23:70", + "nodeType": "YulFunctionCall", + "src": "3906:23:70" + }, + { + "kind": "number", + "nativeSrc": "3931:2:70", + "nodeType": "YulLiteral", + "src": "3931:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3902:3:70", + "nodeType": "YulIdentifier", + "src": "3902:3:70" + }, + "nativeSrc": "3902:32:70", + "nodeType": "YulFunctionCall", + "src": "3902:32:70" + }, + "nativeSrc": "3899:52:70", + "nodeType": "YulIf", + "src": "3899:52:70" + }, + { + "nativeSrc": "3960:36:70", + "nodeType": "YulVariableDeclaration", + "src": "3960:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3986:9:70", + "nodeType": "YulIdentifier", + "src": "3986:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3973:12:70", + "nodeType": "YulIdentifier", + "src": "3973:12:70" + }, + "nativeSrc": "3973:23:70", + "nodeType": "YulFunctionCall", + "src": "3973:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3964:5:70", + "nodeType": "YulTypedName", + "src": "3964:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4030:5:70", + "nodeType": "YulIdentifier", + "src": "4030:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "4005:24:70", + "nodeType": "YulIdentifier", + "src": "4005:24:70" + }, + "nativeSrc": "4005:31:70", + "nodeType": "YulFunctionCall", + "src": "4005:31:70" + }, + "nativeSrc": "4005:31:70", + "nodeType": "YulExpressionStatement", + "src": "4005:31:70" + }, + { + "nativeSrc": "4045:15:70", + "nodeType": "YulAssignment", + "src": "4045:15:70", + "value": { + "name": "value", + "nativeSrc": "4055:5:70", + "nodeType": "YulIdentifier", + "src": "4055:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4045:6:70", + "nodeType": "YulIdentifier", + "src": "4045:6:70" + } + ] + }, + { + "nativeSrc": "4069:47:70", + "nodeType": "YulVariableDeclaration", + "src": "4069:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4101:9:70", + "nodeType": "YulIdentifier", + "src": "4101:9:70" + }, + { + "kind": "number", + "nativeSrc": "4112:2:70", + "nodeType": "YulLiteral", + "src": "4112:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4097:3:70", + "nodeType": "YulIdentifier", + "src": "4097:3:70" + }, + "nativeSrc": "4097:18:70", + "nodeType": "YulFunctionCall", + "src": "4097:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4084:12:70", + "nodeType": "YulIdentifier", + "src": "4084:12:70" + }, + "nativeSrc": "4084:32:70", + "nodeType": "YulFunctionCall", + "src": "4084:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4073:7:70", + "nodeType": "YulTypedName", + "src": "4073:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "4147:7:70", + "nodeType": "YulIdentifier", + "src": "4147:7:70" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "4125:21:70", + "nodeType": "YulIdentifier", + "src": "4125:21:70" + }, + "nativeSrc": "4125:30:70", + "nodeType": "YulFunctionCall", + "src": "4125:30:70" + }, + "nativeSrc": "4125:30:70", + "nodeType": "YulExpressionStatement", + "src": "4125:30:70" + }, + { + "nativeSrc": "4164:17:70", + "nodeType": "YulAssignment", + "src": "4164:17:70", + "value": { + "name": "value_1", + "nativeSrc": "4174:7:70", + "nodeType": "YulIdentifier", + "src": "4174:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4164:6:70", + "nodeType": "YulIdentifier", + "src": "4164:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "3805:382:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3847:9:70", + "nodeType": "YulTypedName", + "src": "3847:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3858:7:70", + "nodeType": "YulTypedName", + "src": "3858:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3870:6:70", + "nodeType": "YulTypedName", + "src": "3870:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3878:6:70", + "nodeType": "YulTypedName", + "src": "3878:6:70", + "type": "" + } + ], + "src": "3805:382:70" + }, + { + "body": { + "nativeSrc": "4262:156:70", + "nodeType": "YulBlock", + "src": "4262:156:70", + "statements": [ + { + "body": { + "nativeSrc": "4308:16:70", + "nodeType": "YulBlock", + "src": "4308:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4317:1:70", + "nodeType": "YulLiteral", + "src": "4317:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4320:1:70", + "nodeType": "YulLiteral", + "src": "4320:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4310:6:70", + "nodeType": "YulIdentifier", + "src": "4310:6:70" + }, + "nativeSrc": "4310:12:70", + "nodeType": "YulFunctionCall", + "src": "4310:12:70" + }, + "nativeSrc": "4310:12:70", + "nodeType": "YulExpressionStatement", + "src": "4310:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4283:7:70", + "nodeType": "YulIdentifier", + "src": "4283:7:70" + }, + { + "name": "headStart", + "nativeSrc": "4292:9:70", + "nodeType": "YulIdentifier", + "src": "4292:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4279:3:70", + "nodeType": "YulIdentifier", + "src": "4279:3:70" + }, + "nativeSrc": "4279:23:70", + "nodeType": "YulFunctionCall", + "src": "4279:23:70" + }, + { + "kind": "number", + "nativeSrc": "4304:2:70", + "nodeType": "YulLiteral", + "src": "4304:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4275:3:70", + "nodeType": "YulIdentifier", + "src": "4275:3:70" + }, + "nativeSrc": "4275:32:70", + "nodeType": "YulFunctionCall", + "src": "4275:32:70" + }, + "nativeSrc": "4272:52:70", + "nodeType": "YulIf", + "src": "4272:52:70" + }, + { + "nativeSrc": "4333:14:70", + "nodeType": "YulVariableDeclaration", + "src": "4333:14:70", + "value": { + "kind": "number", + "nativeSrc": "4346:1:70", + "nodeType": "YulLiteral", + "src": "4346:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4337:5:70", + "nodeType": "YulTypedName", + "src": "4337:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "4356:32:70", + "nodeType": "YulAssignment", + "src": "4356:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4378:9:70", + "nodeType": "YulIdentifier", + "src": "4378:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4365:12:70", + "nodeType": "YulIdentifier", + "src": "4365:12:70" + }, + "nativeSrc": "4365:23:70", + "nodeType": "YulFunctionCall", + "src": "4365:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4356:5:70", + "nodeType": "YulIdentifier", + "src": "4356:5:70" + } + ] + }, + { + "nativeSrc": "4397:15:70", + "nodeType": "YulAssignment", + "src": "4397:15:70", + "value": { + "name": "value", + "nativeSrc": "4407:5:70", + "nodeType": "YulIdentifier", + "src": "4407:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4397:6:70", + "nodeType": "YulIdentifier", + "src": "4397:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "4192:226:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4228:9:70", + "nodeType": "YulTypedName", + "src": "4228:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4239:7:70", + "nodeType": "YulTypedName", + "src": "4239:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4251:6:70", + "nodeType": "YulTypedName", + "src": "4251:6:70", + "type": "" + } + ], + "src": "4192:226:70" + }, + { + "body": { + "nativeSrc": "4548:153:70", + "nodeType": "YulBlock", + "src": "4548:153:70", + "statements": [ + { + "nativeSrc": "4558:26:70", + "nodeType": "YulAssignment", + "src": "4558:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4570:9:70", + "nodeType": "YulIdentifier", + "src": "4570:9:70" + }, + { + "kind": "number", + "nativeSrc": "4581:2:70", + "nodeType": "YulLiteral", + "src": "4581:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4566:3:70", + "nodeType": "YulIdentifier", + "src": "4566:3:70" + }, + "nativeSrc": "4566:18:70", + "nodeType": "YulFunctionCall", + "src": "4566:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4558:4:70", + "nodeType": "YulIdentifier", + "src": "4558:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4600:9:70", + "nodeType": "YulIdentifier", + "src": "4600:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4615:6:70", + "nodeType": "YulIdentifier", + "src": "4615:6:70" + }, + { + "kind": "number", + "nativeSrc": "4623:10:70", + "nodeType": "YulLiteral", + "src": "4623:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4611:3:70", + "nodeType": "YulIdentifier", + "src": "4611:3:70" + }, + "nativeSrc": "4611:23:70", + "nodeType": "YulFunctionCall", + "src": "4611:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4593:6:70", + "nodeType": "YulIdentifier", + "src": "4593:6:70" + }, + "nativeSrc": "4593:42:70", + "nodeType": "YulFunctionCall", + "src": "4593:42:70" + }, + "nativeSrc": "4593:42:70", + "nodeType": "YulExpressionStatement", + "src": "4593:42:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4655:9:70", + "nodeType": "YulIdentifier", + "src": "4655:9:70" + }, + { + "kind": "number", + "nativeSrc": "4666:2:70", + "nodeType": "YulLiteral", + "src": "4666:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4651:3:70", + "nodeType": "YulIdentifier", + "src": "4651:3:70" + }, + "nativeSrc": "4651:18:70", + "nodeType": "YulFunctionCall", + "src": "4651:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "4675:6:70", + "nodeType": "YulIdentifier", + "src": "4675:6:70" + }, + { + "kind": "number", + "nativeSrc": "4683:10:70", + "nodeType": "YulLiteral", + "src": "4683:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4671:3:70", + "nodeType": "YulIdentifier", + "src": "4671:3:70" + }, + "nativeSrc": "4671:23:70", + "nodeType": "YulFunctionCall", + "src": "4671:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4644:6:70", + "nodeType": "YulIdentifier", + "src": "4644:6:70" + }, + "nativeSrc": "4644:51:70", + "nodeType": "YulFunctionCall", + "src": "4644:51:70" + }, + "nativeSrc": "4644:51:70", + "nodeType": "YulExpressionStatement", + "src": "4644:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed", + "nativeSrc": "4423:278:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4509:9:70", + "nodeType": "YulTypedName", + "src": "4509:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4520:6:70", + "nodeType": "YulTypedName", + "src": "4520:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4528:6:70", + "nodeType": "YulTypedName", + "src": "4528:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4539:4:70", + "nodeType": "YulTypedName", + "src": "4539:4:70", + "type": "" + } + ], + "src": "4423:278:70" + }, + { + "body": { + "nativeSrc": "4772:184:70", + "nodeType": "YulBlock", + "src": "4772:184:70", + "statements": [ + { + "nativeSrc": "4782:10:70", + "nodeType": "YulVariableDeclaration", + "src": "4782:10:70", + "value": { + "kind": "number", + "nativeSrc": "4791:1:70", + "nodeType": "YulLiteral", + "src": "4791:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "4786:1:70", + "nodeType": "YulTypedName", + "src": "4786:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4851:63:70", + "nodeType": "YulBlock", + "src": "4851:63:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4876:3:70", + "nodeType": "YulIdentifier", + "src": "4876:3:70" + }, + { + "name": "i", + "nativeSrc": "4881:1:70", + "nodeType": "YulIdentifier", + "src": "4881:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4872:3:70", + "nodeType": "YulIdentifier", + "src": "4872:3:70" + }, + "nativeSrc": "4872:11:70", + "nodeType": "YulFunctionCall", + "src": "4872:11:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4895:3:70", + "nodeType": "YulIdentifier", + "src": "4895:3:70" + }, + { + "name": "i", + "nativeSrc": "4900:1:70", + "nodeType": "YulIdentifier", + "src": "4900:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4891:3:70", + "nodeType": "YulIdentifier", + "src": "4891:3:70" + }, + "nativeSrc": "4891:11:70", + "nodeType": "YulFunctionCall", + "src": "4891:11:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4885:5:70", + "nodeType": "YulIdentifier", + "src": "4885:5:70" + }, + "nativeSrc": "4885:18:70", + "nodeType": "YulFunctionCall", + "src": "4885:18:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4865:6:70", + "nodeType": "YulIdentifier", + "src": "4865:6:70" + }, + "nativeSrc": "4865:39:70", + "nodeType": "YulFunctionCall", + "src": "4865:39:70" + }, + "nativeSrc": "4865:39:70", + "nodeType": "YulExpressionStatement", + "src": "4865:39:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4812:1:70", + "nodeType": "YulIdentifier", + "src": "4812:1:70" + }, + { + "name": "length", + "nativeSrc": "4815:6:70", + "nodeType": "YulIdentifier", + "src": "4815:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4809:2:70", + "nodeType": "YulIdentifier", + "src": "4809:2:70" + }, + "nativeSrc": "4809:13:70", + "nodeType": "YulFunctionCall", + "src": "4809:13:70" + }, + "nativeSrc": "4801:113:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "4823:19:70", + "nodeType": "YulBlock", + "src": "4823:19:70", + "statements": [ + { + "nativeSrc": "4825:15:70", + "nodeType": "YulAssignment", + "src": "4825:15:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4834:1:70", + "nodeType": "YulIdentifier", + "src": "4834:1:70" + }, + { + "kind": "number", + "nativeSrc": "4837:2:70", + "nodeType": "YulLiteral", + "src": "4837:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4830:3:70", + "nodeType": "YulIdentifier", + "src": "4830:3:70" + }, + "nativeSrc": "4830:10:70", + "nodeType": "YulFunctionCall", + "src": "4830:10:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "4825:1:70", + "nodeType": "YulIdentifier", + "src": "4825:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "4805:3:70", + "nodeType": "YulBlock", + "src": "4805:3:70", + "statements": [] + }, + "src": "4801:113:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4934:3:70", + "nodeType": "YulIdentifier", + "src": "4934:3:70" + }, + { + "name": "length", + "nativeSrc": "4939:6:70", + "nodeType": "YulIdentifier", + "src": "4939:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4930:3:70", + "nodeType": "YulIdentifier", + "src": "4930:3:70" + }, + "nativeSrc": "4930:16:70", + "nodeType": "YulFunctionCall", + "src": "4930:16:70" + }, + { + "kind": "number", + "nativeSrc": "4948:1:70", + "nodeType": "YulLiteral", + "src": "4948:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4923:6:70", + "nodeType": "YulIdentifier", + "src": "4923:6:70" + }, + "nativeSrc": "4923:27:70", + "nodeType": "YulFunctionCall", + "src": "4923:27:70" + }, + "nativeSrc": "4923:27:70", + "nodeType": "YulExpressionStatement", + "src": "4923:27:70" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4706:250:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "4750:3:70", + "nodeType": "YulTypedName", + "src": "4750:3:70", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "4755:3:70", + "nodeType": "YulTypedName", + "src": "4755:3:70", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4760:6:70", + "nodeType": "YulTypedName", + "src": "4760:6:70", + "type": "" + } + ], + "src": "4706:250:70" + }, + { + "body": { + "nativeSrc": "5011:221:70", + "nodeType": "YulBlock", + "src": "5011:221:70", + "statements": [ + { + "nativeSrc": "5021:26:70", + "nodeType": "YulVariableDeclaration", + "src": "5021:26:70", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5041:5:70", + "nodeType": "YulIdentifier", + "src": "5041:5:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5035:5:70", + "nodeType": "YulIdentifier", + "src": "5035:5:70" + }, + "nativeSrc": "5035:12:70", + "nodeType": "YulFunctionCall", + "src": "5035:12:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5025:6:70", + "nodeType": "YulTypedName", + "src": "5025:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5063:3:70", + "nodeType": "YulIdentifier", + "src": "5063:3:70" + }, + { + "name": "length", + "nativeSrc": "5068:6:70", + "nodeType": "YulIdentifier", + "src": "5068:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5056:6:70", + "nodeType": "YulIdentifier", + "src": "5056:6:70" + }, + "nativeSrc": "5056:19:70", + "nodeType": "YulFunctionCall", + "src": "5056:19:70" + }, + "nativeSrc": "5056:19:70", + "nodeType": "YulExpressionStatement", + "src": "5056:19:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5123:5:70", + "nodeType": "YulIdentifier", + "src": "5123:5:70" + }, + { + "kind": "number", + "nativeSrc": "5130:4:70", + "nodeType": "YulLiteral", + "src": "5130:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5119:3:70", + "nodeType": "YulIdentifier", + "src": "5119:3:70" + }, + "nativeSrc": "5119:16:70", + "nodeType": "YulFunctionCall", + "src": "5119:16:70" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5141:3:70", + "nodeType": "YulIdentifier", + "src": "5141:3:70" + }, + { + "kind": "number", + "nativeSrc": "5146:4:70", + "nodeType": "YulLiteral", + "src": "5146:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5137:3:70", + "nodeType": "YulIdentifier", + "src": "5137:3:70" + }, + "nativeSrc": "5137:14:70", + "nodeType": "YulFunctionCall", + "src": "5137:14:70" + }, + { + "name": "length", + "nativeSrc": "5153:6:70", + "nodeType": "YulIdentifier", + "src": "5153:6:70" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5084:34:70", + "nodeType": "YulIdentifier", + "src": "5084:34:70" + }, + "nativeSrc": "5084:76:70", + "nodeType": "YulFunctionCall", + "src": "5084:76:70" + }, + "nativeSrc": "5084:76:70", + "nodeType": "YulExpressionStatement", + "src": "5084:76:70" + }, + { + "nativeSrc": "5169:57:70", + "nodeType": "YulAssignment", + "src": "5169:57:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5184:3:70", + "nodeType": "YulIdentifier", + "src": "5184:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5197:6:70", + "nodeType": "YulIdentifier", + "src": "5197:6:70" + }, + { + "kind": "number", + "nativeSrc": "5205:2:70", + "nodeType": "YulLiteral", + "src": "5205:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5193:3:70", + "nodeType": "YulIdentifier", + "src": "5193:3:70" + }, + "nativeSrc": "5193:15:70", + "nodeType": "YulFunctionCall", + "src": "5193:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5214:2:70", + "nodeType": "YulLiteral", + "src": "5214:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "5210:3:70", + "nodeType": "YulIdentifier", + "src": "5210:3:70" + }, + "nativeSrc": "5210:7:70", + "nodeType": "YulFunctionCall", + "src": "5210:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5189:3:70", + "nodeType": "YulIdentifier", + "src": "5189:3:70" + }, + "nativeSrc": "5189:29:70", + "nodeType": "YulFunctionCall", + "src": "5189:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5180:3:70", + "nodeType": "YulIdentifier", + "src": "5180:3:70" + }, + "nativeSrc": "5180:39:70", + "nodeType": "YulFunctionCall", + "src": "5180:39:70" + }, + { + "kind": "number", + "nativeSrc": "5221:4:70", + "nodeType": "YulLiteral", + "src": "5221:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5176:3:70", + "nodeType": "YulIdentifier", + "src": "5176:3:70" + }, + "nativeSrc": "5176:50:70", + "nodeType": "YulFunctionCall", + "src": "5176:50:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5169:3:70", + "nodeType": "YulIdentifier", + "src": "5169:3:70" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nativeSrc": "4961:271:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4988:5:70", + "nodeType": "YulTypedName", + "src": "4988:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4995:3:70", + "nodeType": "YulTypedName", + "src": "4995:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5003:3:70", + "nodeType": "YulTypedName", + "src": "5003:3:70", + "type": "" + } + ], + "src": "4961:271:70" + }, + { + "body": { + "nativeSrc": "5434:257:70", + "nodeType": "YulBlock", + "src": "5434:257:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5451:9:70", + "nodeType": "YulIdentifier", + "src": "5451:9:70" + }, + { + "name": "value0", + "nativeSrc": "5462:6:70", + "nodeType": "YulIdentifier", + "src": "5462:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5444:6:70", + "nodeType": "YulIdentifier", + "src": "5444:6:70" + }, + "nativeSrc": "5444:25:70", + "nodeType": "YulFunctionCall", + "src": "5444:25:70" + }, + "nativeSrc": "5444:25:70", + "nodeType": "YulExpressionStatement", + "src": "5444:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5489:9:70", + "nodeType": "YulIdentifier", + "src": "5489:9:70" + }, + { + "kind": "number", + "nativeSrc": "5500:2:70", + "nodeType": "YulLiteral", + "src": "5500:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5485:3:70", + "nodeType": "YulIdentifier", + "src": "5485:3:70" + }, + "nativeSrc": "5485:18:70", + "nodeType": "YulFunctionCall", + "src": "5485:18:70" + }, + { + "kind": "number", + "nativeSrc": "5505:2:70", + "nodeType": "YulLiteral", + "src": "5505:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5478:6:70", + "nodeType": "YulIdentifier", + "src": "5478:6:70" + }, + "nativeSrc": "5478:30:70", + "nodeType": "YulFunctionCall", + "src": "5478:30:70" + }, + "nativeSrc": "5478:30:70", + "nodeType": "YulExpressionStatement", + "src": "5478:30:70" + }, + { + "nativeSrc": "5517:59:70", + "nodeType": "YulVariableDeclaration", + "src": "5517:59:70", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5549:6:70", + "nodeType": "YulIdentifier", + "src": "5549:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5561:9:70", + "nodeType": "YulIdentifier", + "src": "5561:9:70" + }, + { + "kind": "number", + "nativeSrc": "5572:2:70", + "nodeType": "YulLiteral", + "src": "5572:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5557:3:70", + "nodeType": "YulIdentifier", + "src": "5557:3:70" + }, + "nativeSrc": "5557:18:70", + "nodeType": "YulFunctionCall", + "src": "5557:18:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "5531:17:70", + "nodeType": "YulIdentifier", + "src": "5531:17:70" + }, + "nativeSrc": "5531:45:70", + "nodeType": "YulFunctionCall", + "src": "5531:45:70" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "5521:6:70", + "nodeType": "YulTypedName", + "src": "5521:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5596:9:70", + "nodeType": "YulIdentifier", + "src": "5596:9:70" + }, + { + "kind": "number", + "nativeSrc": "5607:2:70", + "nodeType": "YulLiteral", + "src": "5607:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5592:3:70", + "nodeType": "YulIdentifier", + "src": "5592:3:70" + }, + "nativeSrc": "5592:18:70", + "nodeType": "YulFunctionCall", + "src": "5592:18:70" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "5616:6:70", + "nodeType": "YulIdentifier", + "src": "5616:6:70" + }, + { + "name": "headStart", + "nativeSrc": "5624:9:70", + "nodeType": "YulIdentifier", + "src": "5624:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5612:3:70", + "nodeType": "YulIdentifier", + "src": "5612:3:70" + }, + "nativeSrc": "5612:22:70", + "nodeType": "YulFunctionCall", + "src": "5612:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5585:6:70", + "nodeType": "YulIdentifier", + "src": "5585:6:70" + }, + "nativeSrc": "5585:50:70", + "nodeType": "YulFunctionCall", + "src": "5585:50:70" + }, + "nativeSrc": "5585:50:70", + "nodeType": "YulExpressionStatement", + "src": "5585:50:70" + }, + { + "nativeSrc": "5644:41:70", + "nodeType": "YulAssignment", + "src": "5644:41:70", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "5670:6:70", + "nodeType": "YulIdentifier", + "src": "5670:6:70" + }, + { + "name": "tail_1", + "nativeSrc": "5678:6:70", + "nodeType": "YulIdentifier", + "src": "5678:6:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "5652:17:70", + "nodeType": "YulIdentifier", + "src": "5652:17:70" + }, + "nativeSrc": "5652:33:70", + "nodeType": "YulFunctionCall", + "src": "5652:33:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5644:4:70", + "nodeType": "YulIdentifier", + "src": "5644:4:70" + } + ] + } + ] + }, + "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": "5237:454:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5387:9:70", + "nodeType": "YulTypedName", + "src": "5387:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5398:6:70", + "nodeType": "YulTypedName", + "src": "5398:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5406:6:70", + "nodeType": "YulTypedName", + "src": "5406:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5414:6:70", + "nodeType": "YulTypedName", + "src": "5414:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5425:4:70", + "nodeType": "YulTypedName", + "src": "5425:4:70", + "type": "" + } + ], + "src": "5237:454:70" + }, + { + "body": { + "nativeSrc": "5931:336:70", + "nodeType": "YulBlock", + "src": "5931:336:70", + "statements": [ + { + "nativeSrc": "5941:27:70", + "nodeType": "YulAssignment", + "src": "5941:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5953:9:70", + "nodeType": "YulIdentifier", + "src": "5953:9:70" + }, + { + "kind": "number", + "nativeSrc": "5964:3:70", + "nodeType": "YulLiteral", + "src": "5964:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5949:3:70", + "nodeType": "YulIdentifier", + "src": "5949:3:70" + }, + "nativeSrc": "5949:19:70", + "nodeType": "YulFunctionCall", + "src": "5949:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5941:4:70", + "nodeType": "YulIdentifier", + "src": "5941:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5984:9:70", + "nodeType": "YulIdentifier", + "src": "5984:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6009:6:70", + "nodeType": "YulIdentifier", + "src": "6009:6:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6002:6:70", + "nodeType": "YulIdentifier", + "src": "6002:6:70" + }, + "nativeSrc": "6002:14:70", + "nodeType": "YulFunctionCall", + "src": "6002:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5995:6:70", + "nodeType": "YulIdentifier", + "src": "5995:6:70" + }, + "nativeSrc": "5995:22:70", + "nodeType": "YulFunctionCall", + "src": "5995:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5977:6:70", + "nodeType": "YulIdentifier", + "src": "5977:6:70" + }, + "nativeSrc": "5977:41:70", + "nodeType": "YulFunctionCall", + "src": "5977:41:70" + }, + "nativeSrc": "5977:41:70", + "nodeType": "YulExpressionStatement", + "src": "5977:41:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6038:9:70", + "nodeType": "YulIdentifier", + "src": "6038:9:70" + }, + { + "kind": "number", + "nativeSrc": "6049:2:70", + "nodeType": "YulLiteral", + "src": "6049:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6034:3:70", + "nodeType": "YulIdentifier", + "src": "6034:3:70" + }, + "nativeSrc": "6034:18:70", + "nodeType": "YulFunctionCall", + "src": "6034:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6058:6:70", + "nodeType": "YulIdentifier", + "src": "6058:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6074:3:70", + "nodeType": "YulLiteral", + "src": "6074:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "6079:1:70", + "nodeType": "YulLiteral", + "src": "6079:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6070:3:70", + "nodeType": "YulIdentifier", + "src": "6070:3:70" + }, + "nativeSrc": "6070:11:70", + "nodeType": "YulFunctionCall", + "src": "6070:11:70" + }, + { + "kind": "number", + "nativeSrc": "6083:1:70", + "nodeType": "YulLiteral", + "src": "6083:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6066:3:70", + "nodeType": "YulIdentifier", + "src": "6066:3:70" + }, + "nativeSrc": "6066:19:70", + "nodeType": "YulFunctionCall", + "src": "6066:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6054:3:70", + "nodeType": "YulIdentifier", + "src": "6054:3:70" + }, + "nativeSrc": "6054:32:70", + "nodeType": "YulFunctionCall", + "src": "6054:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6027:6:70", + "nodeType": "YulIdentifier", + "src": "6027:6:70" + }, + "nativeSrc": "6027:60:70", + "nodeType": "YulFunctionCall", + "src": "6027:60:70" + }, + "nativeSrc": "6027:60:70", + "nodeType": "YulExpressionStatement", + "src": "6027:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6107:9:70", + "nodeType": "YulIdentifier", + "src": "6107:9:70" + }, + { + "kind": "number", + "nativeSrc": "6118:2:70", + "nodeType": "YulLiteral", + "src": "6118:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6103:3:70", + "nodeType": "YulIdentifier", + "src": "6103:3:70" + }, + "nativeSrc": "6103:18:70", + "nodeType": "YulFunctionCall", + "src": "6103:18:70" + }, + { + "name": "value2", + "nativeSrc": "6123:6:70", + "nodeType": "YulIdentifier", + "src": "6123:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6096:6:70", + "nodeType": "YulIdentifier", + "src": "6096:6:70" + }, + "nativeSrc": "6096:34:70", + "nodeType": "YulFunctionCall", + "src": "6096:34:70" + }, + "nativeSrc": "6096:34:70", + "nodeType": "YulExpressionStatement", + "src": "6096:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6150:9:70", + "nodeType": "YulIdentifier", + "src": "6150:9:70" + }, + { + "kind": "number", + "nativeSrc": "6161:2:70", + "nodeType": "YulLiteral", + "src": "6161:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6146:3:70", + "nodeType": "YulIdentifier", + "src": "6146:3:70" + }, + "nativeSrc": "6146:18:70", + "nodeType": "YulFunctionCall", + "src": "6146:18:70" + }, + { + "name": "value3", + "nativeSrc": "6166:6:70", + "nodeType": "YulIdentifier", + "src": "6166:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6139:6:70", + "nodeType": "YulIdentifier", + "src": "6139:6:70" + }, + "nativeSrc": "6139:34:70", + "nodeType": "YulFunctionCall", + "src": "6139:34:70" + }, + "nativeSrc": "6139:34:70", + "nodeType": "YulExpressionStatement", + "src": "6139:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6193:9:70", + "nodeType": "YulIdentifier", + "src": "6193:9:70" + }, + { + "kind": "number", + "nativeSrc": "6204:3:70", + "nodeType": "YulLiteral", + "src": "6204:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6189:3:70", + "nodeType": "YulIdentifier", + "src": "6189:3:70" + }, + "nativeSrc": "6189:19:70", + "nodeType": "YulFunctionCall", + "src": "6189:19:70" + }, + { + "name": "value4", + "nativeSrc": "6210:6:70", + "nodeType": "YulIdentifier", + "src": "6210:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6182:6:70", + "nodeType": "YulIdentifier", + "src": "6182:6:70" + }, + "nativeSrc": "6182:35:70", + "nodeType": "YulFunctionCall", + "src": "6182:35:70" + }, + "nativeSrc": "6182:35:70", + "nodeType": "YulExpressionStatement", + "src": "6182:35:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6237:9:70", + "nodeType": "YulIdentifier", + "src": "6237:9:70" + }, + { + "kind": "number", + "nativeSrc": "6248:3:70", + "nodeType": "YulLiteral", + "src": "6248:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6233:3:70", + "nodeType": "YulIdentifier", + "src": "6233:3:70" + }, + "nativeSrc": "6233:19:70", + "nodeType": "YulFunctionCall", + "src": "6233:19:70" + }, + { + "name": "value5", + "nativeSrc": "6254:6:70", + "nodeType": "YulIdentifier", + "src": "6254:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6226:6:70", + "nodeType": "YulIdentifier", + "src": "6226:6:70" + }, + "nativeSrc": "6226:35:70", + "nodeType": "YulFunctionCall", + "src": "6226:35:70" + }, + "nativeSrc": "6226:35:70", + "nodeType": "YulExpressionStatement", + "src": "6226:35:70" + } + ] + }, + "name": "abi_encode_tuple_t_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "5696:571:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5860:9:70", + "nodeType": "YulTypedName", + "src": "5860:9:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "5871:6:70", + "nodeType": "YulTypedName", + "src": "5871:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "5879:6:70", + "nodeType": "YulTypedName", + "src": "5879:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "5887:6:70", + "nodeType": "YulTypedName", + "src": "5887:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5895:6:70", + "nodeType": "YulTypedName", + "src": "5895:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5903:6:70", + "nodeType": "YulTypedName", + "src": "5903:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5911:6:70", + "nodeType": "YulTypedName", + "src": "5911:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5922:4:70", + "nodeType": "YulTypedName", + "src": "5922:4:70", + "type": "" + } + ], + "src": "5696:571:70" + }, + { + "body": { + "nativeSrc": "6367:92:70", + "nodeType": "YulBlock", + "src": "6367:92:70", + "statements": [ + { + "nativeSrc": "6377:26:70", + "nodeType": "YulAssignment", + "src": "6377:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6389:9:70", + "nodeType": "YulIdentifier", + "src": "6389:9:70" + }, + { + "kind": "number", + "nativeSrc": "6400:2:70", + "nodeType": "YulLiteral", + "src": "6400:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6385:3:70", + "nodeType": "YulIdentifier", + "src": "6385:3:70" + }, + "nativeSrc": "6385:18:70", + "nodeType": "YulFunctionCall", + "src": "6385:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6377:4:70", + "nodeType": "YulIdentifier", + "src": "6377:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6419:9:70", + "nodeType": "YulIdentifier", + "src": "6419:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6444:6:70", + "nodeType": "YulIdentifier", + "src": "6444:6:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6437:6:70", + "nodeType": "YulIdentifier", + "src": "6437:6:70" + }, + "nativeSrc": "6437:14:70", + "nodeType": "YulFunctionCall", + "src": "6437:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6430:6:70", + "nodeType": "YulIdentifier", + "src": "6430:6:70" + }, + "nativeSrc": "6430:22:70", + "nodeType": "YulFunctionCall", + "src": "6430:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6412:6:70", + "nodeType": "YulIdentifier", + "src": "6412:6:70" + }, + "nativeSrc": "6412:41:70", + "nodeType": "YulFunctionCall", + "src": "6412:41:70" + }, + "nativeSrc": "6412:41:70", + "nodeType": "YulExpressionStatement", + "src": "6412:41:70" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "6272:187:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6336:9:70", + "nodeType": "YulTypedName", + "src": "6336:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6347:6:70", + "nodeType": "YulTypedName", + "src": "6347:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6358:4:70", + "nodeType": "YulTypedName", + "src": "6358:4:70", + "type": "" + } + ], + "src": "6272:187:70" + }, + { + "body": { + "nativeSrc": "6613:172:70", + "nodeType": "YulBlock", + "src": "6613:172:70", + "statements": [ + { + "nativeSrc": "6623:26:70", + "nodeType": "YulAssignment", + "src": "6623:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6635:9:70", + "nodeType": "YulIdentifier", + "src": "6635:9:70" + }, + { + "kind": "number", + "nativeSrc": "6646:2:70", + "nodeType": "YulLiteral", + "src": "6646:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6631:3:70", + "nodeType": "YulIdentifier", + "src": "6631:3:70" + }, + "nativeSrc": "6631:18:70", + "nodeType": "YulFunctionCall", + "src": "6631:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6623:4:70", + "nodeType": "YulIdentifier", + "src": "6623:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6665:9:70", + "nodeType": "YulIdentifier", + "src": "6665:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6686:6:70", + "nodeType": "YulIdentifier", + "src": "6686:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6680:5:70", + "nodeType": "YulIdentifier", + "src": "6680:5:70" + }, + "nativeSrc": "6680:13:70", + "nodeType": "YulFunctionCall", + "src": "6680:13:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6703:3:70", + "nodeType": "YulLiteral", + "src": "6703:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "6708:1:70", + "nodeType": "YulLiteral", + "src": "6708:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6699:3:70", + "nodeType": "YulIdentifier", + "src": "6699:3:70" + }, + "nativeSrc": "6699:11:70", + "nodeType": "YulFunctionCall", + "src": "6699:11:70" + }, + { + "kind": "number", + "nativeSrc": "6712:1:70", + "nodeType": "YulLiteral", + "src": "6712:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6695:3:70", + "nodeType": "YulIdentifier", + "src": "6695:3:70" + }, + "nativeSrc": "6695:19:70", + "nodeType": "YulFunctionCall", + "src": "6695:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6676:3:70", + "nodeType": "YulIdentifier", + "src": "6676:3:70" + }, + "nativeSrc": "6676:39:70", + "nodeType": "YulFunctionCall", + "src": "6676:39:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6658:6:70", + "nodeType": "YulIdentifier", + "src": "6658:6:70" + }, + "nativeSrc": "6658:58:70", + "nodeType": "YulFunctionCall", + "src": "6658:58:70" + }, + "nativeSrc": "6658:58:70", + "nodeType": "YulExpressionStatement", + "src": "6658:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6736:9:70", + "nodeType": "YulIdentifier", + "src": "6736:9:70" + }, + { + "kind": "number", + "nativeSrc": "6747:4:70", + "nodeType": "YulLiteral", + "src": "6747:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6732:3:70", + "nodeType": "YulIdentifier", + "src": "6732:3:70" + }, + "nativeSrc": "6732:20:70", + "nodeType": "YulFunctionCall", + "src": "6732:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6764:6:70", + "nodeType": "YulIdentifier", + "src": "6764:6:70" + }, + { + "kind": "number", + "nativeSrc": "6772:4:70", + "nodeType": "YulLiteral", + "src": "6772:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6760:3:70", + "nodeType": "YulIdentifier", + "src": "6760:3:70" + }, + "nativeSrc": "6760:17:70", + "nodeType": "YulFunctionCall", + "src": "6760:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6754:5:70", + "nodeType": "YulIdentifier", + "src": "6754:5:70" + }, + "nativeSrc": "6754:24:70", + "nodeType": "YulFunctionCall", + "src": "6754:24:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6725:6:70", + "nodeType": "YulIdentifier", + "src": "6725:6:70" + }, + "nativeSrc": "6725:54:70", + "nodeType": "YulFunctionCall", + "src": "6725:54:70" + }, + "nativeSrc": "6725:54:70", + "nodeType": "YulExpressionStatement", + "src": "6725:54:70" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_State_$16305_memory_ptr__to_t_struct$_State_$16305_memory_ptr__fromStack_reversed", + "nativeSrc": "6464:321:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6582:9:70", + "nodeType": "YulTypedName", + "src": "6582:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6593:6:70", + "nodeType": "YulTypedName", + "src": "6593:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6604:4:70", + "nodeType": "YulTypedName", + "src": "6604:4:70", + "type": "" + } + ], + "src": "6464:321:70" + }, + { + "body": { + "nativeSrc": "6833:59:70", + "nodeType": "YulBlock", + "src": "6833:59:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6850:3:70", + "nodeType": "YulIdentifier", + "src": "6850:3:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6859:5:70", + "nodeType": "YulIdentifier", + "src": "6859:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6874:2:70", + "nodeType": "YulLiteral", + "src": "6874:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "6878:1:70", + "nodeType": "YulLiteral", + "src": "6878:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6870:3:70", + "nodeType": "YulIdentifier", + "src": "6870:3:70" + }, + "nativeSrc": "6870:10:70", + "nodeType": "YulFunctionCall", + "src": "6870:10:70" + }, + { + "kind": "number", + "nativeSrc": "6882:1:70", + "nodeType": "YulLiteral", + "src": "6882:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6866:3:70", + "nodeType": "YulIdentifier", + "src": "6866:3:70" + }, + "nativeSrc": "6866:18:70", + "nodeType": "YulFunctionCall", + "src": "6866:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6855:3:70", + "nodeType": "YulIdentifier", + "src": "6855:3:70" + }, + "nativeSrc": "6855:30:70", + "nodeType": "YulFunctionCall", + "src": "6855:30:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6843:6:70", + "nodeType": "YulIdentifier", + "src": "6843:6:70" + }, + "nativeSrc": "6843:43:70", + "nodeType": "YulFunctionCall", + "src": "6843:43:70" + }, + "nativeSrc": "6843:43:70", + "nodeType": "YulExpressionStatement", + "src": "6843:43:70" + } + ] + }, + "name": "abi_encode_uint64", + "nativeSrc": "6790:102:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6817:5:70", + "nodeType": "YulTypedName", + "src": "6817:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6824:3:70", + "nodeType": "YulTypedName", + "src": "6824:3:70", + "type": "" + } + ], + "src": "6790:102:70" + }, + { + "body": { + "nativeSrc": "7022:169:70", + "nodeType": "YulBlock", + "src": "7022:169:70", + "statements": [ + { + "nativeSrc": "7032:26:70", + "nodeType": "YulAssignment", + "src": "7032:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7044:9:70", + "nodeType": "YulIdentifier", + "src": "7044:9:70" + }, + { + "kind": "number", + "nativeSrc": "7055:2:70", + "nodeType": "YulLiteral", + "src": "7055:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7040:3:70", + "nodeType": "YulIdentifier", + "src": "7040:3:70" + }, + "nativeSrc": "7040:18:70", + "nodeType": "YulFunctionCall", + "src": "7040:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7032:4:70", + "nodeType": "YulIdentifier", + "src": "7032:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7074:9:70", + "nodeType": "YulIdentifier", + "src": "7074:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7089:6:70", + "nodeType": "YulIdentifier", + "src": "7089:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7105:2:70", + "nodeType": "YulLiteral", + "src": "7105:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "7109:1:70", + "nodeType": "YulLiteral", + "src": "7109:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7101:3:70", + "nodeType": "YulIdentifier", + "src": "7101:3:70" + }, + "nativeSrc": "7101:10:70", + "nodeType": "YulFunctionCall", + "src": "7101:10:70" + }, + { + "kind": "number", + "nativeSrc": "7113:1:70", + "nodeType": "YulLiteral", + "src": "7113:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7097:3:70", + "nodeType": "YulIdentifier", + "src": "7097:3:70" + }, + "nativeSrc": "7097:18:70", + "nodeType": "YulFunctionCall", + "src": "7097:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7085:3:70", + "nodeType": "YulIdentifier", + "src": "7085:3:70" + }, + "nativeSrc": "7085:31:70", + "nodeType": "YulFunctionCall", + "src": "7085:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7067:6:70", + "nodeType": "YulIdentifier", + "src": "7067:6:70" + }, + "nativeSrc": "7067:50:70", + "nodeType": "YulFunctionCall", + "src": "7067:50:70" + }, + "nativeSrc": "7067:50:70", + "nodeType": "YulExpressionStatement", + "src": "7067:50:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7137:9:70", + "nodeType": "YulIdentifier", + "src": "7137:9:70" + }, + { + "kind": "number", + "nativeSrc": "7148:2:70", + "nodeType": "YulLiteral", + "src": "7148:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7133:3:70", + "nodeType": "YulIdentifier", + "src": "7133:3:70" + }, + "nativeSrc": "7133:18:70", + "nodeType": "YulFunctionCall", + "src": "7133:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "7157:6:70", + "nodeType": "YulIdentifier", + "src": "7157:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7173:2:70", + "nodeType": "YulLiteral", + "src": "7173:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "7177:1:70", + "nodeType": "YulLiteral", + "src": "7177:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7169:3:70", + "nodeType": "YulIdentifier", + "src": "7169:3:70" + }, + "nativeSrc": "7169:10:70", + "nodeType": "YulFunctionCall", + "src": "7169:10:70" + }, + { + "kind": "number", + "nativeSrc": "7181:1:70", + "nodeType": "YulLiteral", + "src": "7181:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7165:3:70", + "nodeType": "YulIdentifier", + "src": "7165:3:70" + }, + "nativeSrc": "7165:18:70", + "nodeType": "YulFunctionCall", + "src": "7165:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7153:3:70", + "nodeType": "YulIdentifier", + "src": "7153:3:70" + }, + "nativeSrc": "7153:31:70", + "nodeType": "YulFunctionCall", + "src": "7153:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7126:6:70", + "nodeType": "YulIdentifier", + "src": "7126:6:70" + }, + "nativeSrc": "7126:59:70", + "nodeType": "YulFunctionCall", + "src": "7126:59:70" + }, + "nativeSrc": "7126:59:70", + "nodeType": "YulExpressionStatement", + "src": "7126:59:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed", + "nativeSrc": "6897:294:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6983:9:70", + "nodeType": "YulTypedName", + "src": "6983:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6994:6:70", + "nodeType": "YulTypedName", + "src": "6994:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7002:6:70", + "nodeType": "YulTypedName", + "src": "7002:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7013:4:70", + "nodeType": "YulTypedName", + "src": "7013:4:70", + "type": "" + } + ], + "src": "6897:294:70" + }, + { + "body": { + "nativeSrc": "7300:404:70", + "nodeType": "YulBlock", + "src": "7300:404:70", + "statements": [ + { + "body": { + "nativeSrc": "7346:16:70", + "nodeType": "YulBlock", + "src": "7346:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7355:1:70", + "nodeType": "YulLiteral", + "src": "7355:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7358:1:70", + "nodeType": "YulLiteral", + "src": "7358:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7348:6:70", + "nodeType": "YulIdentifier", + "src": "7348:6:70" + }, + "nativeSrc": "7348:12:70", + "nodeType": "YulFunctionCall", + "src": "7348:12:70" + }, + "nativeSrc": "7348:12:70", + "nodeType": "YulExpressionStatement", + "src": "7348:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7321:7:70", + "nodeType": "YulIdentifier", + "src": "7321:7:70" + }, + { + "name": "headStart", + "nativeSrc": "7330:9:70", + "nodeType": "YulIdentifier", + "src": "7330:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7317:3:70", + "nodeType": "YulIdentifier", + "src": "7317:3:70" + }, + "nativeSrc": "7317:23:70", + "nodeType": "YulFunctionCall", + "src": "7317:23:70" + }, + { + "kind": "number", + "nativeSrc": "7342:2:70", + "nodeType": "YulLiteral", + "src": "7342:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7313:3:70", + "nodeType": "YulIdentifier", + "src": "7313:3:70" + }, + "nativeSrc": "7313:32:70", + "nodeType": "YulFunctionCall", + "src": "7313:32:70" + }, + "nativeSrc": "7310:52:70", + "nodeType": "YulIf", + "src": "7310:52:70" + }, + { + "nativeSrc": "7371:36:70", + "nodeType": "YulVariableDeclaration", + "src": "7371:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7397:9:70", + "nodeType": "YulIdentifier", + "src": "7397:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7384:12:70", + "nodeType": "YulIdentifier", + "src": "7384:12:70" + }, + "nativeSrc": "7384:23:70", + "nodeType": "YulFunctionCall", + "src": "7384:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "7375:5:70", + "nodeType": "YulTypedName", + "src": "7375:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7441:5:70", + "nodeType": "YulIdentifier", + "src": "7441:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "7416:24:70", + "nodeType": "YulIdentifier", + "src": "7416:24:70" + }, + "nativeSrc": "7416:31:70", + "nodeType": "YulFunctionCall", + "src": "7416:31:70" + }, + "nativeSrc": "7416:31:70", + "nodeType": "YulExpressionStatement", + "src": "7416:31:70" + }, + { + "nativeSrc": "7456:15:70", + "nodeType": "YulAssignment", + "src": "7456:15:70", + "value": { + "name": "value", + "nativeSrc": "7466:5:70", + "nodeType": "YulIdentifier", + "src": "7466:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7456:6:70", + "nodeType": "YulIdentifier", + "src": "7456:6:70" + } + ] + }, + { + "nativeSrc": "7480:47:70", + "nodeType": "YulVariableDeclaration", + "src": "7480:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7512:9:70", + "nodeType": "YulIdentifier", + "src": "7512:9:70" + }, + { + "kind": "number", + "nativeSrc": "7523:2:70", + "nodeType": "YulLiteral", + "src": "7523:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7508:3:70", + "nodeType": "YulIdentifier", + "src": "7508:3:70" + }, + "nativeSrc": "7508:18:70", + "nodeType": "YulFunctionCall", + "src": "7508:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7495:12:70", + "nodeType": "YulIdentifier", + "src": "7495:12:70" + }, + "nativeSrc": "7495:32:70", + "nodeType": "YulFunctionCall", + "src": "7495:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "7484:7:70", + "nodeType": "YulTypedName", + "src": "7484:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "7561:7:70", + "nodeType": "YulIdentifier", + "src": "7561:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "7536:24:70", + "nodeType": "YulIdentifier", + "src": "7536:24:70" + }, + "nativeSrc": "7536:33:70", + "nodeType": "YulFunctionCall", + "src": "7536:33:70" + }, + "nativeSrc": "7536:33:70", + "nodeType": "YulExpressionStatement", + "src": "7536:33:70" + }, + { + "nativeSrc": "7578:17:70", + "nodeType": "YulAssignment", + "src": "7578:17:70", + "value": { + "name": "value_1", + "nativeSrc": "7588:7:70", + "nodeType": "YulIdentifier", + "src": "7588:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "7578:6:70", + "nodeType": "YulIdentifier", + "src": "7578:6:70" + } + ] + }, + { + "nativeSrc": "7604:16:70", + "nodeType": "YulVariableDeclaration", + "src": "7604:16:70", + "value": { + "kind": "number", + "nativeSrc": "7619:1:70", + "nodeType": "YulLiteral", + "src": "7619:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "7608:7:70", + "nodeType": "YulTypedName", + "src": "7608:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "7629:43:70", + "nodeType": "YulAssignment", + "src": "7629:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7657:9:70", + "nodeType": "YulIdentifier", + "src": "7657:9:70" + }, + { + "kind": "number", + "nativeSrc": "7668:2:70", + "nodeType": "YulLiteral", + "src": "7668:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7653:3:70", + "nodeType": "YulIdentifier", + "src": "7653:3:70" + }, + "nativeSrc": "7653:18:70", + "nodeType": "YulFunctionCall", + "src": "7653:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7640:12:70", + "nodeType": "YulIdentifier", + "src": "7640:12:70" + }, + "nativeSrc": "7640:32:70", + "nodeType": "YulFunctionCall", + "src": "7640:32:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "7629:7:70", + "nodeType": "YulIdentifier", + "src": "7629:7:70" + } + ] + }, + { + "nativeSrc": "7681:17:70", + "nodeType": "YulAssignment", + "src": "7681:17:70", + "value": { + "name": "value_2", + "nativeSrc": "7691:7:70", + "nodeType": "YulIdentifier", + "src": "7691:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "7681:6:70", + "nodeType": "YulIdentifier", + "src": "7681:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_bytes32", + "nativeSrc": "7196:508:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7250:9:70", + "nodeType": "YulTypedName", + "src": "7250:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7261:7:70", + "nodeType": "YulTypedName", + "src": "7261:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7273:6:70", + "nodeType": "YulTypedName", + "src": "7273:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7281:6:70", + "nodeType": "YulTypedName", + "src": "7281:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "7289:6:70", + "nodeType": "YulTypedName", + "src": "7289:6:70", + "type": "" + } + ], + "src": "7196:508:70" + }, + { + "body": { + "nativeSrc": "7838:119:70", + "nodeType": "YulBlock", + "src": "7838:119:70", + "statements": [ + { + "nativeSrc": "7848:26:70", + "nodeType": "YulAssignment", + "src": "7848:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7860:9:70", + "nodeType": "YulIdentifier", + "src": "7860:9:70" + }, + { + "kind": "number", + "nativeSrc": "7871:2:70", + "nodeType": "YulLiteral", + "src": "7871:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7856:3:70", + "nodeType": "YulIdentifier", + "src": "7856:3:70" + }, + "nativeSrc": "7856:18:70", + "nodeType": "YulFunctionCall", + "src": "7856:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7848:4:70", + "nodeType": "YulIdentifier", + "src": "7848:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7890:9:70", + "nodeType": "YulIdentifier", + "src": "7890:9:70" + }, + { + "name": "value0", + "nativeSrc": "7901:6:70", + "nodeType": "YulIdentifier", + "src": "7901:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7883:6:70", + "nodeType": "YulIdentifier", + "src": "7883:6:70" + }, + "nativeSrc": "7883:25:70", + "nodeType": "YulFunctionCall", + "src": "7883:25:70" + }, + "nativeSrc": "7883:25:70", + "nodeType": "YulExpressionStatement", + "src": "7883:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7928:9:70", + "nodeType": "YulIdentifier", + "src": "7928:9:70" + }, + { + "kind": "number", + "nativeSrc": "7939:2:70", + "nodeType": "YulLiteral", + "src": "7939:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7924:3:70", + "nodeType": "YulIdentifier", + "src": "7924:3:70" + }, + "nativeSrc": "7924:18:70", + "nodeType": "YulFunctionCall", + "src": "7924:18:70" + }, + { + "name": "value1", + "nativeSrc": "7944:6:70", + "nodeType": "YulIdentifier", + "src": "7944:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7917:6:70", + "nodeType": "YulIdentifier", + "src": "7917:6:70" + }, + "nativeSrc": "7917:34:70", + "nodeType": "YulFunctionCall", + "src": "7917:34:70" + }, + "nativeSrc": "7917:34:70", + "nodeType": "YulExpressionStatement", + "src": "7917:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "7709:248:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7799:9:70", + "nodeType": "YulTypedName", + "src": "7799:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7810:6:70", + "nodeType": "YulTypedName", + "src": "7810:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7818:6:70", + "nodeType": "YulTypedName", + "src": "7818:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7829:4:70", + "nodeType": "YulTypedName", + "src": "7829:4:70", + "type": "" + } + ], + "src": "7709:248:70" + }, + { + "body": { + "nativeSrc": "8066:404:70", + "nodeType": "YulBlock", + "src": "8066:404:70", + "statements": [ + { + "body": { + "nativeSrc": "8112:16:70", + "nodeType": "YulBlock", + "src": "8112:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8121:1:70", + "nodeType": "YulLiteral", + "src": "8121:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8124:1:70", + "nodeType": "YulLiteral", + "src": "8124:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8114:6:70", + "nodeType": "YulIdentifier", + "src": "8114:6:70" + }, + "nativeSrc": "8114:12:70", + "nodeType": "YulFunctionCall", + "src": "8114:12:70" + }, + "nativeSrc": "8114:12:70", + "nodeType": "YulExpressionStatement", + "src": "8114:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8087:7:70", + "nodeType": "YulIdentifier", + "src": "8087:7:70" + }, + { + "name": "headStart", + "nativeSrc": "8096:9:70", + "nodeType": "YulIdentifier", + "src": "8096:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8083:3:70", + "nodeType": "YulIdentifier", + "src": "8083:3:70" + }, + "nativeSrc": "8083:23:70", + "nodeType": "YulFunctionCall", + "src": "8083:23:70" + }, + { + "kind": "number", + "nativeSrc": "8108:2:70", + "nodeType": "YulLiteral", + "src": "8108:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8079:3:70", + "nodeType": "YulIdentifier", + "src": "8079:3:70" + }, + "nativeSrc": "8079:32:70", + "nodeType": "YulFunctionCall", + "src": "8079:32:70" + }, + "nativeSrc": "8076:52:70", + "nodeType": "YulIf", + "src": "8076:52:70" + }, + { + "nativeSrc": "8137:36:70", + "nodeType": "YulVariableDeclaration", + "src": "8137:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8163:9:70", + "nodeType": "YulIdentifier", + "src": "8163:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8150:12:70", + "nodeType": "YulIdentifier", + "src": "8150:12:70" + }, + "nativeSrc": "8150:23:70", + "nodeType": "YulFunctionCall", + "src": "8150:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8141:5:70", + "nodeType": "YulTypedName", + "src": "8141:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8207:5:70", + "nodeType": "YulIdentifier", + "src": "8207:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "8182:24:70", + "nodeType": "YulIdentifier", + "src": "8182:24:70" + }, + "nativeSrc": "8182:31:70", + "nodeType": "YulFunctionCall", + "src": "8182:31:70" + }, + "nativeSrc": "8182:31:70", + "nodeType": "YulExpressionStatement", + "src": "8182:31:70" + }, + { + "nativeSrc": "8222:15:70", + "nodeType": "YulAssignment", + "src": "8222:15:70", + "value": { + "name": "value", + "nativeSrc": "8232:5:70", + "nodeType": "YulIdentifier", + "src": "8232:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8222:6:70", + "nodeType": "YulIdentifier", + "src": "8222:6:70" + } + ] + }, + { + "nativeSrc": "8246:47:70", + "nodeType": "YulVariableDeclaration", + "src": "8246:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8278:9:70", + "nodeType": "YulIdentifier", + "src": "8278:9:70" + }, + { + "kind": "number", + "nativeSrc": "8289:2:70", + "nodeType": "YulLiteral", + "src": "8289:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8274:3:70", + "nodeType": "YulIdentifier", + "src": "8274:3:70" + }, + "nativeSrc": "8274:18:70", + "nodeType": "YulFunctionCall", + "src": "8274:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8261:12:70", + "nodeType": "YulIdentifier", + "src": "8261:12:70" + }, + "nativeSrc": "8261:32:70", + "nodeType": "YulFunctionCall", + "src": "8261:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "8250:7:70", + "nodeType": "YulTypedName", + "src": "8250:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "8327:7:70", + "nodeType": "YulIdentifier", + "src": "8327:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "8302:24:70", + "nodeType": "YulIdentifier", + "src": "8302:24:70" + }, + "nativeSrc": "8302:33:70", + "nodeType": "YulFunctionCall", + "src": "8302:33:70" + }, + "nativeSrc": "8302:33:70", + "nodeType": "YulExpressionStatement", + "src": "8302:33:70" + }, + { + "nativeSrc": "8344:17:70", + "nodeType": "YulAssignment", + "src": "8344:17:70", + "value": { + "name": "value_1", + "nativeSrc": "8354:7:70", + "nodeType": "YulIdentifier", + "src": "8354:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8344:6:70", + "nodeType": "YulIdentifier", + "src": "8344:6:70" + } + ] + }, + { + "nativeSrc": "8370:16:70", + "nodeType": "YulVariableDeclaration", + "src": "8370:16:70", + "value": { + "kind": "number", + "nativeSrc": "8385:1:70", + "nodeType": "YulLiteral", + "src": "8385:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "8374:7:70", + "nodeType": "YulTypedName", + "src": "8374:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "8395:43:70", + "nodeType": "YulAssignment", + "src": "8395:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8423:9:70", + "nodeType": "YulIdentifier", + "src": "8423:9:70" + }, + { + "kind": "number", + "nativeSrc": "8434:2:70", + "nodeType": "YulLiteral", + "src": "8434:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8419:3:70", + "nodeType": "YulIdentifier", + "src": "8419:3:70" + }, + "nativeSrc": "8419:18:70", + "nodeType": "YulFunctionCall", + "src": "8419:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8406:12:70", + "nodeType": "YulIdentifier", + "src": "8406:12:70" + }, + "nativeSrc": "8406:32:70", + "nodeType": "YulFunctionCall", + "src": "8406:32:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "8395:7:70", + "nodeType": "YulIdentifier", + "src": "8395:7:70" + } + ] + }, + { + "nativeSrc": "8447:17:70", + "nodeType": "YulAssignment", + "src": "8447:17:70", + "value": { + "name": "value_2", + "nativeSrc": "8457:7:70", + "nodeType": "YulIdentifier", + "src": "8457:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "8447:6:70", + "nodeType": "YulIdentifier", + "src": "8447:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "7962:508:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8016:9:70", + "nodeType": "YulTypedName", + "src": "8016:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8027:7:70", + "nodeType": "YulTypedName", + "src": "8027:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8039:6:70", + "nodeType": "YulTypedName", + "src": "8039:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8047:6:70", + "nodeType": "YulTypedName", + "src": "8047:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8055:6:70", + "nodeType": "YulTypedName", + "src": "8055:6:70", + "type": "" + } + ], + "src": "7962:508:70" + }, + { + "body": { + "nativeSrc": "8832:881:70", + "nodeType": "YulBlock", + "src": "8832:881:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8849:9:70", + "nodeType": "YulIdentifier", + "src": "8849:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8864:6:70", + "nodeType": "YulIdentifier", + "src": "8864:6:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8876:3:70", + "nodeType": "YulLiteral", + "src": "8876:3:70", + "type": "", + "value": "248" + }, + { + "kind": "number", + "nativeSrc": "8881:3:70", + "nodeType": "YulLiteral", + "src": "8881:3:70", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8872:3:70", + "nodeType": "YulIdentifier", + "src": "8872:3:70" + }, + "nativeSrc": "8872:13:70", + "nodeType": "YulFunctionCall", + "src": "8872:13:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8860:3:70", + "nodeType": "YulIdentifier", + "src": "8860:3:70" + }, + "nativeSrc": "8860:26:70", + "nodeType": "YulFunctionCall", + "src": "8860:26:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8842:6:70", + "nodeType": "YulIdentifier", + "src": "8842:6:70" + }, + "nativeSrc": "8842:45:70", + "nodeType": "YulFunctionCall", + "src": "8842:45:70" + }, + "nativeSrc": "8842:45:70", + "nodeType": "YulExpressionStatement", + "src": "8842:45:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8907:9:70", + "nodeType": "YulIdentifier", + "src": "8907:9:70" + }, + { + "kind": "number", + "nativeSrc": "8918:2:70", + "nodeType": "YulLiteral", + "src": "8918:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8903:3:70", + "nodeType": "YulIdentifier", + "src": "8903:3:70" + }, + "nativeSrc": "8903:18:70", + "nodeType": "YulFunctionCall", + "src": "8903:18:70" + }, + { + "kind": "number", + "nativeSrc": "8923:3:70", + "nodeType": "YulLiteral", + "src": "8923:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8896:6:70", + "nodeType": "YulIdentifier", + "src": "8896:6:70" + }, + "nativeSrc": "8896:31:70", + "nodeType": "YulFunctionCall", + "src": "8896:31:70" + }, + "nativeSrc": "8896:31:70", + "nodeType": "YulExpressionStatement", + "src": "8896:31:70" + }, + { + "nativeSrc": "8936:60:70", + "nodeType": "YulVariableDeclaration", + "src": "8936:60:70", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "8968:6:70", + "nodeType": "YulIdentifier", + "src": "8968:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8980:9:70", + "nodeType": "YulIdentifier", + "src": "8980:9:70" + }, + { + "kind": "number", + "nativeSrc": "8991:3:70", + "nodeType": "YulLiteral", + "src": "8991:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8976:3:70", + "nodeType": "YulIdentifier", + "src": "8976:3:70" + }, + "nativeSrc": "8976:19:70", + "nodeType": "YulFunctionCall", + "src": "8976:19:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "8950:17:70", + "nodeType": "YulIdentifier", + "src": "8950:17:70" + }, + "nativeSrc": "8950:46:70", + "nodeType": "YulFunctionCall", + "src": "8950:46:70" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "8940:6:70", + "nodeType": "YulTypedName", + "src": "8940:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9016:9:70", + "nodeType": "YulIdentifier", + "src": "9016:9:70" + }, + { + "kind": "number", + "nativeSrc": "9027:2:70", + "nodeType": "YulLiteral", + "src": "9027:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9012:3:70", + "nodeType": "YulIdentifier", + "src": "9012:3:70" + }, + "nativeSrc": "9012:18:70", + "nodeType": "YulFunctionCall", + "src": "9012:18:70" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "9036:6:70", + "nodeType": "YulIdentifier", + "src": "9036:6:70" + }, + { + "name": "headStart", + "nativeSrc": "9044:9:70", + "nodeType": "YulIdentifier", + "src": "9044:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9032:3:70", + "nodeType": "YulIdentifier", + "src": "9032:3:70" + }, + "nativeSrc": "9032:22:70", + "nodeType": "YulFunctionCall", + "src": "9032:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9005:6:70", + "nodeType": "YulIdentifier", + "src": "9005:6:70" + }, + "nativeSrc": "9005:50:70", + "nodeType": "YulFunctionCall", + "src": "9005:50:70" + }, + "nativeSrc": "9005:50:70", + "nodeType": "YulExpressionStatement", + "src": "9005:50:70" + }, + { + "nativeSrc": "9064:47:70", + "nodeType": "YulVariableDeclaration", + "src": "9064:47:70", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "9096:6:70", + "nodeType": "YulIdentifier", + "src": "9096:6:70" + }, + { + "name": "tail_1", + "nativeSrc": "9104:6:70", + "nodeType": "YulIdentifier", + "src": "9104:6:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "9078:17:70", + "nodeType": "YulIdentifier", + "src": "9078:17:70" + }, + "nativeSrc": "9078:33:70", + "nodeType": "YulFunctionCall", + "src": "9078:33:70" + }, + "variables": [ + { + "name": "tail_2", + "nativeSrc": "9068:6:70", + "nodeType": "YulTypedName", + "src": "9068:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9131:9:70", + "nodeType": "YulIdentifier", + "src": "9131:9:70" + }, + { + "kind": "number", + "nativeSrc": "9142:2:70", + "nodeType": "YulLiteral", + "src": "9142:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9127:3:70", + "nodeType": "YulIdentifier", + "src": "9127:3:70" + }, + "nativeSrc": "9127:18:70", + "nodeType": "YulFunctionCall", + "src": "9127:18:70" + }, + { + "name": "value3", + "nativeSrc": "9147:6:70", + "nodeType": "YulIdentifier", + "src": "9147:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9120:6:70", + "nodeType": "YulIdentifier", + "src": "9120:6:70" + }, + "nativeSrc": "9120:34:70", + "nodeType": "YulFunctionCall", + "src": "9120:34:70" + }, + "nativeSrc": "9120:34:70", + "nodeType": "YulExpressionStatement", + "src": "9120:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9174:9:70", + "nodeType": "YulIdentifier", + "src": "9174:9:70" + }, + { + "kind": "number", + "nativeSrc": "9185:3:70", + "nodeType": "YulLiteral", + "src": "9185:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9170:3:70", + "nodeType": "YulIdentifier", + "src": "9170:3:70" + }, + "nativeSrc": "9170:19:70", + "nodeType": "YulFunctionCall", + "src": "9170:19:70" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "9195:6:70", + "nodeType": "YulIdentifier", + "src": "9195:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9211:3:70", + "nodeType": "YulLiteral", + "src": "9211:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "9216:1:70", + "nodeType": "YulLiteral", + "src": "9216:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9207:3:70", + "nodeType": "YulIdentifier", + "src": "9207:3:70" + }, + "nativeSrc": "9207:11:70", + "nodeType": "YulFunctionCall", + "src": "9207:11:70" + }, + { + "kind": "number", + "nativeSrc": "9220:1:70", + "nodeType": "YulLiteral", + "src": "9220:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9203:3:70", + "nodeType": "YulIdentifier", + "src": "9203:3:70" + }, + "nativeSrc": "9203:19:70", + "nodeType": "YulFunctionCall", + "src": "9203:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9191:3:70", + "nodeType": "YulIdentifier", + "src": "9191:3:70" + }, + "nativeSrc": "9191:32:70", + "nodeType": "YulFunctionCall", + "src": "9191:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9163:6:70", + "nodeType": "YulIdentifier", + "src": "9163:6:70" + }, + "nativeSrc": "9163:61:70", + "nodeType": "YulFunctionCall", + "src": "9163:61:70" + }, + "nativeSrc": "9163:61:70", + "nodeType": "YulExpressionStatement", + "src": "9163:61:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9244:9:70", + "nodeType": "YulIdentifier", + "src": "9244:9:70" + }, + { + "kind": "number", + "nativeSrc": "9255:3:70", + "nodeType": "YulLiteral", + "src": "9255:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9240:3:70", + "nodeType": "YulIdentifier", + "src": "9240:3:70" + }, + "nativeSrc": "9240:19:70", + "nodeType": "YulFunctionCall", + "src": "9240:19:70" + }, + { + "name": "value5", + "nativeSrc": "9261:6:70", + "nodeType": "YulIdentifier", + "src": "9261:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9233:6:70", + "nodeType": "YulIdentifier", + "src": "9233:6:70" + }, + "nativeSrc": "9233:35:70", + "nodeType": "YulFunctionCall", + "src": "9233:35:70" + }, + "nativeSrc": "9233:35:70", + "nodeType": "YulExpressionStatement", + "src": "9233:35:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9288:9:70", + "nodeType": "YulIdentifier", + "src": "9288:9:70" + }, + { + "kind": "number", + "nativeSrc": "9299:3:70", + "nodeType": "YulLiteral", + "src": "9299:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9284:3:70", + "nodeType": "YulIdentifier", + "src": "9284:3:70" + }, + "nativeSrc": "9284:19:70", + "nodeType": "YulFunctionCall", + "src": "9284:19:70" + }, + { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9309:6:70", + "nodeType": "YulIdentifier", + "src": "9309:6:70" + }, + { + "name": "headStart", + "nativeSrc": "9317:9:70", + "nodeType": "YulIdentifier", + "src": "9317:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9305:3:70", + "nodeType": "YulIdentifier", + "src": "9305:3:70" + }, + "nativeSrc": "9305:22:70", + "nodeType": "YulFunctionCall", + "src": "9305:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9277:6:70", + "nodeType": "YulIdentifier", + "src": "9277:6:70" + }, + "nativeSrc": "9277:51:70", + "nodeType": "YulFunctionCall", + "src": "9277:51:70" + }, + "nativeSrc": "9277:51:70", + "nodeType": "YulExpressionStatement", + "src": "9277:51:70" + }, + { + "nativeSrc": "9337:17:70", + "nodeType": "YulVariableDeclaration", + "src": "9337:17:70", + "value": { + "name": "tail_2", + "nativeSrc": "9348:6:70", + "nodeType": "YulIdentifier", + "src": "9348:6:70" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "9341:3:70", + "nodeType": "YulTypedName", + "src": "9341:3:70", + "type": "" + } + ] + }, + { + "nativeSrc": "9363:27:70", + "nodeType": "YulVariableDeclaration", + "src": "9363:27:70", + "value": { + "arguments": [ + { + "name": "value6", + "nativeSrc": "9383:6:70", + "nodeType": "YulIdentifier", + "src": "9383:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9377:5:70", + "nodeType": "YulIdentifier", + "src": "9377:5:70" + }, + "nativeSrc": "9377:13:70", + "nodeType": "YulFunctionCall", + "src": "9377:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9367:6:70", + "nodeType": "YulTypedName", + "src": "9367:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9406:6:70", + "nodeType": "YulIdentifier", + "src": "9406:6:70" + }, + { + "name": "length", + "nativeSrc": "9414:6:70", + "nodeType": "YulIdentifier", + "src": "9414:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9399:6:70", + "nodeType": "YulIdentifier", + "src": "9399:6:70" + }, + "nativeSrc": "9399:22:70", + "nodeType": "YulFunctionCall", + "src": "9399:22:70" + }, + "nativeSrc": "9399:22:70", + "nodeType": "YulExpressionStatement", + "src": "9399:22:70" + }, + { + "nativeSrc": "9430:22:70", + "nodeType": "YulAssignment", + "src": "9430:22:70", + "value": { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9441:6:70", + "nodeType": "YulIdentifier", + "src": "9441:6:70" + }, + { + "kind": "number", + "nativeSrc": "9449:2:70", + "nodeType": "YulLiteral", + "src": "9449:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9437:3:70", + "nodeType": "YulIdentifier", + "src": "9437:3:70" + }, + "nativeSrc": "9437:15:70", + "nodeType": "YulFunctionCall", + "src": "9437:15:70" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9430:3:70", + "nodeType": "YulIdentifier", + "src": "9430:3:70" + } + ] + }, + { + "nativeSrc": "9461:29:70", + "nodeType": "YulVariableDeclaration", + "src": "9461:29:70", + "value": { + "arguments": [ + { + "name": "value6", + "nativeSrc": "9479:6:70", + "nodeType": "YulIdentifier", + "src": "9479:6:70" + }, + { + "kind": "number", + "nativeSrc": "9487:2:70", + "nodeType": "YulLiteral", + "src": "9487:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9475:3:70", + "nodeType": "YulIdentifier", + "src": "9475:3:70" + }, + "nativeSrc": "9475:15:70", + "nodeType": "YulFunctionCall", + "src": "9475:15:70" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "9465:6:70", + "nodeType": "YulTypedName", + "src": "9465:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "9499:10:70", + "nodeType": "YulVariableDeclaration", + "src": "9499:10:70", + "value": { + "kind": "number", + "nativeSrc": "9508:1:70", + "nodeType": "YulLiteral", + "src": "9508:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "9503:1:70", + "nodeType": "YulTypedName", + "src": "9503:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9567:120:70", + "nodeType": "YulBlock", + "src": "9567:120:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9588:3:70", + "nodeType": "YulIdentifier", + "src": "9588:3:70" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "9599:6:70", + "nodeType": "YulIdentifier", + "src": "9599:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9593:5:70", + "nodeType": "YulIdentifier", + "src": "9593:5:70" + }, + "nativeSrc": "9593:13:70", + "nodeType": "YulFunctionCall", + "src": "9593:13:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9581:6:70", + "nodeType": "YulIdentifier", + "src": "9581:6:70" + }, + "nativeSrc": "9581:26:70", + "nodeType": "YulFunctionCall", + "src": "9581:26:70" + }, + "nativeSrc": "9581:26:70", + "nodeType": "YulExpressionStatement", + "src": "9581:26:70" + }, + { + "nativeSrc": "9620:19:70", + "nodeType": "YulAssignment", + "src": "9620:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9631:3:70", + "nodeType": "YulIdentifier", + "src": "9631:3:70" + }, + { + "kind": "number", + "nativeSrc": "9636:2:70", + "nodeType": "YulLiteral", + "src": "9636:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9627:3:70", + "nodeType": "YulIdentifier", + "src": "9627:3:70" + }, + "nativeSrc": "9627:12:70", + "nodeType": "YulFunctionCall", + "src": "9627:12:70" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9620:3:70", + "nodeType": "YulIdentifier", + "src": "9620:3:70" + } + ] + }, + { + "nativeSrc": "9652:25:70", + "nodeType": "YulAssignment", + "src": "9652:25:70", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "9666:6:70", + "nodeType": "YulIdentifier", + "src": "9666:6:70" + }, + { + "kind": "number", + "nativeSrc": "9674:2:70", + "nodeType": "YulLiteral", + "src": "9674:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9662:3:70", + "nodeType": "YulIdentifier", + "src": "9662:3:70" + }, + "nativeSrc": "9662:15:70", + "nodeType": "YulFunctionCall", + "src": "9662:15:70" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "9652:6:70", + "nodeType": "YulIdentifier", + "src": "9652:6:70" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9529:1:70", + "nodeType": "YulIdentifier", + "src": "9529:1:70" + }, + { + "name": "length", + "nativeSrc": "9532:6:70", + "nodeType": "YulIdentifier", + "src": "9532:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9526:2:70", + "nodeType": "YulIdentifier", + "src": "9526:2:70" + }, + "nativeSrc": "9526:13:70", + "nodeType": "YulFunctionCall", + "src": "9526:13:70" + }, + "nativeSrc": "9518:169:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "9540:18:70", + "nodeType": "YulBlock", + "src": "9540:18:70", + "statements": [ + { + "nativeSrc": "9542:14:70", + "nodeType": "YulAssignment", + "src": "9542:14:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9551:1:70", + "nodeType": "YulIdentifier", + "src": "9551:1:70" + }, + { + "kind": "number", + "nativeSrc": "9554:1:70", + "nodeType": "YulLiteral", + "src": "9554:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9547:3:70", + "nodeType": "YulIdentifier", + "src": "9547:3:70" + }, + "nativeSrc": "9547:9:70", + "nodeType": "YulFunctionCall", + "src": "9547:9:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "9542:1:70", + "nodeType": "YulIdentifier", + "src": "9542:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "9522:3:70", + "nodeType": "YulBlock", + "src": "9522:3:70", + "statements": [] + }, + "src": "9518:169:70" + }, + { + "nativeSrc": "9696:11:70", + "nodeType": "YulAssignment", + "src": "9696:11:70", + "value": { + "name": "pos", + "nativeSrc": "9704:3:70", + "nodeType": "YulIdentifier", + "src": "9704:3:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9696:4:70", + "nodeType": "YulIdentifier", + "src": "9696:4:70" + } + ] + } + ] + }, + "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": "8475:1238:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8753:9:70", + "nodeType": "YulTypedName", + "src": "8753:9:70", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "8764:6:70", + "nodeType": "YulTypedName", + "src": "8764:6:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "8772:6:70", + "nodeType": "YulTypedName", + "src": "8772:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "8780:6:70", + "nodeType": "YulTypedName", + "src": "8780:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "8788:6:70", + "nodeType": "YulTypedName", + "src": "8788:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8796:6:70", + "nodeType": "YulTypedName", + "src": "8796:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8804:6:70", + "nodeType": "YulTypedName", + "src": "8804:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8812:6:70", + "nodeType": "YulTypedName", + "src": "8812:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8823:4:70", + "nodeType": "YulTypedName", + "src": "8823:4:70", + "type": "" + } + ], + "src": "8475:1238:70" + }, + { + "body": { + "nativeSrc": "9834:505:70", + "nodeType": "YulBlock", + "src": "9834:505:70", + "statements": [ + { + "body": { + "nativeSrc": "9880:16:70", + "nodeType": "YulBlock", + "src": "9880:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9889:1:70", + "nodeType": "YulLiteral", + "src": "9889:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9892:1:70", + "nodeType": "YulLiteral", + "src": "9892:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9882:6:70", + "nodeType": "YulIdentifier", + "src": "9882:6:70" + }, + "nativeSrc": "9882:12:70", + "nodeType": "YulFunctionCall", + "src": "9882:12:70" + }, + "nativeSrc": "9882:12:70", + "nodeType": "YulExpressionStatement", + "src": "9882:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9855:7:70", + "nodeType": "YulIdentifier", + "src": "9855:7:70" + }, + { + "name": "headStart", + "nativeSrc": "9864:9:70", + "nodeType": "YulIdentifier", + "src": "9864:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9851:3:70", + "nodeType": "YulIdentifier", + "src": "9851:3:70" + }, + "nativeSrc": "9851:23:70", + "nodeType": "YulFunctionCall", + "src": "9851:23:70" + }, + { + "kind": "number", + "nativeSrc": "9876:2:70", + "nodeType": "YulLiteral", + "src": "9876:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9847:3:70", + "nodeType": "YulIdentifier", + "src": "9847:3:70" + }, + "nativeSrc": "9847:32:70", + "nodeType": "YulFunctionCall", + "src": "9847:32:70" + }, + "nativeSrc": "9844:52:70", + "nodeType": "YulIf", + "src": "9844:52:70" + }, + { + "nativeSrc": "9905:37:70", + "nodeType": "YulVariableDeclaration", + "src": "9905:37:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9932:9:70", + "nodeType": "YulIdentifier", + "src": "9932:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9919:12:70", + "nodeType": "YulIdentifier", + "src": "9919:12:70" + }, + "nativeSrc": "9919:23:70", + "nodeType": "YulFunctionCall", + "src": "9919:23:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9909:6:70", + "nodeType": "YulTypedName", + "src": "9909:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9985:16:70", + "nodeType": "YulBlock", + "src": "9985:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9994:1:70", + "nodeType": "YulLiteral", + "src": "9994:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9997:1:70", + "nodeType": "YulLiteral", + "src": "9997:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9987:6:70", + "nodeType": "YulIdentifier", + "src": "9987:6:70" + }, + "nativeSrc": "9987:12:70", + "nodeType": "YulFunctionCall", + "src": "9987:12:70" + }, + "nativeSrc": "9987:12:70", + "nodeType": "YulExpressionStatement", + "src": "9987:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9957:6:70", + "nodeType": "YulIdentifier", + "src": "9957:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9973:2:70", + "nodeType": "YulLiteral", + "src": "9973:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "9977:1:70", + "nodeType": "YulLiteral", + "src": "9977:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9969:3:70", + "nodeType": "YulIdentifier", + "src": "9969:3:70" + }, + "nativeSrc": "9969:10:70", + "nodeType": "YulFunctionCall", + "src": "9969:10:70" + }, + { + "kind": "number", + "nativeSrc": "9981:1:70", + "nodeType": "YulLiteral", + "src": "9981:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9965:3:70", + "nodeType": "YulIdentifier", + "src": "9965:3:70" + }, + "nativeSrc": "9965:18:70", + "nodeType": "YulFunctionCall", + "src": "9965:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9954:2:70", + "nodeType": "YulIdentifier", + "src": "9954:2:70" + }, + "nativeSrc": "9954:30:70", + "nodeType": "YulFunctionCall", + "src": "9954:30:70" + }, + "nativeSrc": "9951:50:70", + "nodeType": "YulIf", + "src": "9951:50:70" + }, + { + "nativeSrc": "10010:32:70", + "nodeType": "YulVariableDeclaration", + "src": "10010:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10024:9:70", + "nodeType": "YulIdentifier", + "src": "10024:9:70" + }, + { + "name": "offset", + "nativeSrc": "10035:6:70", + "nodeType": "YulIdentifier", + "src": "10035:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10020:3:70", + "nodeType": "YulIdentifier", + "src": "10020:3:70" + }, + "nativeSrc": "10020:22:70", + "nodeType": "YulFunctionCall", + "src": "10020:22:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "10014:2:70", + "nodeType": "YulTypedName", + "src": "10014:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10090:16:70", + "nodeType": "YulBlock", + "src": "10090:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10099:1:70", + "nodeType": "YulLiteral", + "src": "10099:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10102:1:70", + "nodeType": "YulLiteral", + "src": "10102:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10092:6:70", + "nodeType": "YulIdentifier", + "src": "10092:6:70" + }, + "nativeSrc": "10092:12:70", + "nodeType": "YulFunctionCall", + "src": "10092:12:70" + }, + "nativeSrc": "10092:12:70", + "nodeType": "YulExpressionStatement", + "src": "10092:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "10069:2:70", + "nodeType": "YulIdentifier", + "src": "10069:2:70" + }, + { + "kind": "number", + "nativeSrc": "10073:4:70", + "nodeType": "YulLiteral", + "src": "10073:4:70", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10065:3:70", + "nodeType": "YulIdentifier", + "src": "10065:3:70" + }, + "nativeSrc": "10065:13:70", + "nodeType": "YulFunctionCall", + "src": "10065:13:70" + }, + { + "name": "dataEnd", + "nativeSrc": "10080:7:70", + "nodeType": "YulIdentifier", + "src": "10080:7:70" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10061:3:70", + "nodeType": "YulIdentifier", + "src": "10061:3:70" + }, + "nativeSrc": "10061:27:70", + "nodeType": "YulFunctionCall", + "src": "10061:27:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10054:6:70", + "nodeType": "YulIdentifier", + "src": "10054:6:70" + }, + "nativeSrc": "10054:35:70", + "nodeType": "YulFunctionCall", + "src": "10054:35:70" + }, + "nativeSrc": "10051:55:70", + "nodeType": "YulIf", + "src": "10051:55:70" + }, + { + "nativeSrc": "10115:30:70", + "nodeType": "YulVariableDeclaration", + "src": "10115:30:70", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "10142:2:70", + "nodeType": "YulIdentifier", + "src": "10142:2:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10129:12:70", + "nodeType": "YulIdentifier", + "src": "10129:12:70" + }, + "nativeSrc": "10129:16:70", + "nodeType": "YulFunctionCall", + "src": "10129:16:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10119:6:70", + "nodeType": "YulTypedName", + "src": "10119:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10188:16:70", + "nodeType": "YulBlock", + "src": "10188:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10197:1:70", + "nodeType": "YulLiteral", + "src": "10197:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10200:1:70", + "nodeType": "YulLiteral", + "src": "10200:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10190:6:70", + "nodeType": "YulIdentifier", + "src": "10190:6:70" + }, + "nativeSrc": "10190:12:70", + "nodeType": "YulFunctionCall", + "src": "10190:12:70" + }, + "nativeSrc": "10190:12:70", + "nodeType": "YulExpressionStatement", + "src": "10190:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "10160:6:70", + "nodeType": "YulIdentifier", + "src": "10160:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10176:2:70", + "nodeType": "YulLiteral", + "src": "10176:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "10180:1:70", + "nodeType": "YulLiteral", + "src": "10180:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "10172:3:70", + "nodeType": "YulIdentifier", + "src": "10172:3:70" + }, + "nativeSrc": "10172:10:70", + "nodeType": "YulFunctionCall", + "src": "10172:10:70" + }, + { + "kind": "number", + "nativeSrc": "10184:1:70", + "nodeType": "YulLiteral", + "src": "10184:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10168:3:70", + "nodeType": "YulIdentifier", + "src": "10168:3:70" + }, + "nativeSrc": "10168:18:70", + "nodeType": "YulFunctionCall", + "src": "10168:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10157:2:70", + "nodeType": "YulIdentifier", + "src": "10157:2:70" + }, + "nativeSrc": "10157:30:70", + "nodeType": "YulFunctionCall", + "src": "10157:30:70" + }, + "nativeSrc": "10154:50:70", + "nodeType": "YulIf", + "src": "10154:50:70" + }, + { + "body": { + "nativeSrc": "10262:16:70", + "nodeType": "YulBlock", + "src": "10262:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10271:1:70", + "nodeType": "YulLiteral", + "src": "10271:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10274:1:70", + "nodeType": "YulLiteral", + "src": "10274:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10264:6:70", + "nodeType": "YulIdentifier", + "src": "10264:6:70" + }, + "nativeSrc": "10264:12:70", + "nodeType": "YulFunctionCall", + "src": "10264:12:70" + }, + "nativeSrc": "10264:12:70", + "nodeType": "YulExpressionStatement", + "src": "10264:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "10227:2:70", + "nodeType": "YulIdentifier", + "src": "10227:2:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10235:1:70", + "nodeType": "YulLiteral", + "src": "10235:1:70", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "10238:6:70", + "nodeType": "YulIdentifier", + "src": "10238:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "10231:3:70", + "nodeType": "YulIdentifier", + "src": "10231:3:70" + }, + "nativeSrc": "10231:14:70", + "nodeType": "YulFunctionCall", + "src": "10231:14:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10223:3:70", + "nodeType": "YulIdentifier", + "src": "10223:3:70" + }, + "nativeSrc": "10223:23:70", + "nodeType": "YulFunctionCall", + "src": "10223:23:70" + }, + { + "kind": "number", + "nativeSrc": "10248:2:70", + "nodeType": "YulLiteral", + "src": "10248:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10219:3:70", + "nodeType": "YulIdentifier", + "src": "10219:3:70" + }, + "nativeSrc": "10219:32:70", + "nodeType": "YulFunctionCall", + "src": "10219:32:70" + }, + { + "name": "dataEnd", + "nativeSrc": "10253:7:70", + "nodeType": "YulIdentifier", + "src": "10253:7:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10216:2:70", + "nodeType": "YulIdentifier", + "src": "10216:2:70" + }, + "nativeSrc": "10216:45:70", + "nodeType": "YulFunctionCall", + "src": "10216:45:70" + }, + "nativeSrc": "10213:65:70", + "nodeType": "YulIf", + "src": "10213:65:70" + }, + { + "nativeSrc": "10287:21:70", + "nodeType": "YulAssignment", + "src": "10287:21:70", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "10301:2:70", + "nodeType": "YulIdentifier", + "src": "10301:2:70" + }, + { + "kind": "number", + "nativeSrc": "10305:2:70", + "nodeType": "YulLiteral", + "src": "10305:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10297:3:70", + "nodeType": "YulIdentifier", + "src": "10297:3:70" + }, + "nativeSrc": "10297:11:70", + "nodeType": "YulFunctionCall", + "src": "10297:11:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10287:6:70", + "nodeType": "YulIdentifier", + "src": "10287:6:70" + } + ] + }, + { + "nativeSrc": "10317:16:70", + "nodeType": "YulAssignment", + "src": "10317:16:70", + "value": { + "name": "length", + "nativeSrc": "10327:6:70", + "nodeType": "YulIdentifier", + "src": "10327:6:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10317:6:70", + "nodeType": "YulIdentifier", + "src": "10317:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "9718:621:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9792:9:70", + "nodeType": "YulTypedName", + "src": "9792:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9803:7:70", + "nodeType": "YulTypedName", + "src": "9803:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9815:6:70", + "nodeType": "YulTypedName", + "src": "9815:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9823:6:70", + "nodeType": "YulTypedName", + "src": "9823:6:70", + "type": "" + } + ], + "src": "9718:621:70" + }, + { + "body": { + "nativeSrc": "10513:611:70", + "nodeType": "YulBlock", + "src": "10513:611:70", + "statements": [ + { + "nativeSrc": "10523:32:70", + "nodeType": "YulVariableDeclaration", + "src": "10523:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10541:9:70", + "nodeType": "YulIdentifier", + "src": "10541:9:70" + }, + { + "kind": "number", + "nativeSrc": "10552:2:70", + "nodeType": "YulLiteral", + "src": "10552:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10537:3:70", + "nodeType": "YulIdentifier", + "src": "10537:3:70" + }, + "nativeSrc": "10537:18:70", + "nodeType": "YulFunctionCall", + "src": "10537:18:70" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "10527:6:70", + "nodeType": "YulTypedName", + "src": "10527:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10571:9:70", + "nodeType": "YulIdentifier", + "src": "10571:9:70" + }, + { + "kind": "number", + "nativeSrc": "10582:2:70", + "nodeType": "YulLiteral", + "src": "10582:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10564:6:70", + "nodeType": "YulIdentifier", + "src": "10564:6:70" + }, + "nativeSrc": "10564:21:70", + "nodeType": "YulFunctionCall", + "src": "10564:21:70" + }, + "nativeSrc": "10564:21:70", + "nodeType": "YulExpressionStatement", + "src": "10564:21:70" + }, + { + "nativeSrc": "10594:17:70", + "nodeType": "YulVariableDeclaration", + "src": "10594:17:70", + "value": { + "name": "tail_1", + "nativeSrc": "10605:6:70", + "nodeType": "YulIdentifier", + "src": "10605:6:70" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "10598:3:70", + "nodeType": "YulTypedName", + "src": "10598:3:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10620:27:70", + "nodeType": "YulVariableDeclaration", + "src": "10620:27:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10640:6:70", + "nodeType": "YulIdentifier", + "src": "10640:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10634:5:70", + "nodeType": "YulIdentifier", + "src": "10634:5:70" + }, + "nativeSrc": "10634:13:70", + "nodeType": "YulFunctionCall", + "src": "10634:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10624:6:70", + "nodeType": "YulTypedName", + "src": "10624:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "10663:6:70", + "nodeType": "YulIdentifier", + "src": "10663:6:70" + }, + { + "name": "length", + "nativeSrc": "10671:6:70", + "nodeType": "YulIdentifier", + "src": "10671:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10656:6:70", + "nodeType": "YulIdentifier", + "src": "10656:6:70" + }, + "nativeSrc": "10656:22:70", + "nodeType": "YulFunctionCall", + "src": "10656:22:70" + }, + "nativeSrc": "10656:22:70", + "nodeType": "YulExpressionStatement", + "src": "10656:22:70" + }, + { + "nativeSrc": "10687:25:70", + "nodeType": "YulAssignment", + "src": "10687:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10698:9:70", + "nodeType": "YulIdentifier", + "src": "10698:9:70" + }, + { + "kind": "number", + "nativeSrc": "10709:2:70", + "nodeType": "YulLiteral", + "src": "10709:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10694:3:70", + "nodeType": "YulIdentifier", + "src": "10694:3:70" + }, + "nativeSrc": "10694:18:70", + "nodeType": "YulFunctionCall", + "src": "10694:18:70" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10687:3:70", + "nodeType": "YulIdentifier", + "src": "10687:3:70" + } + ] + }, + { + "nativeSrc": "10721:53:70", + "nodeType": "YulVariableDeclaration", + "src": "10721:53:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10743:9:70", + "nodeType": "YulIdentifier", + "src": "10743:9:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10758:1:70", + "nodeType": "YulLiteral", + "src": "10758:1:70", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "10761:6:70", + "nodeType": "YulIdentifier", + "src": "10761:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "10754:3:70", + "nodeType": "YulIdentifier", + "src": "10754:3:70" + }, + "nativeSrc": "10754:14:70", + "nodeType": "YulFunctionCall", + "src": "10754:14:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10739:3:70", + "nodeType": "YulIdentifier", + "src": "10739:3:70" + }, + "nativeSrc": "10739:30:70", + "nodeType": "YulFunctionCall", + "src": "10739:30:70" + }, + { + "kind": "number", + "nativeSrc": "10771:2:70", + "nodeType": "YulLiteral", + "src": "10771:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10735:3:70", + "nodeType": "YulIdentifier", + "src": "10735:3:70" + }, + "nativeSrc": "10735:39:70", + "nodeType": "YulFunctionCall", + "src": "10735:39:70" + }, + "variables": [ + { + "name": "tail_2", + "nativeSrc": "10725:6:70", + "nodeType": "YulTypedName", + "src": "10725:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10783:29:70", + "nodeType": "YulVariableDeclaration", + "src": "10783:29:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10801:6:70", + "nodeType": "YulIdentifier", + "src": "10801:6:70" + }, + { + "kind": "number", + "nativeSrc": "10809:2:70", + "nodeType": "YulLiteral", + "src": "10809:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10797:3:70", + "nodeType": "YulIdentifier", + "src": "10797:3:70" + }, + "nativeSrc": "10797:15:70", + "nodeType": "YulFunctionCall", + "src": "10797:15:70" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "10787:6:70", + "nodeType": "YulTypedName", + "src": "10787:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "10821:10:70", + "nodeType": "YulVariableDeclaration", + "src": "10821:10:70", + "value": { + "kind": "number", + "nativeSrc": "10830:1:70", + "nodeType": "YulLiteral", + "src": "10830:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "10825:1:70", + "nodeType": "YulTypedName", + "src": "10825:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10889:206:70", + "nodeType": "YulBlock", + "src": "10889:206:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10910:3:70", + "nodeType": "YulIdentifier", + "src": "10910:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "10923:6:70", + "nodeType": "YulIdentifier", + "src": "10923:6:70" + }, + { + "name": "headStart", + "nativeSrc": "10931:9:70", + "nodeType": "YulIdentifier", + "src": "10931:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10919:3:70", + "nodeType": "YulIdentifier", + "src": "10919:3:70" + }, + "nativeSrc": "10919:22:70", + "nodeType": "YulFunctionCall", + "src": "10919:22:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10947:2:70", + "nodeType": "YulLiteral", + "src": "10947:2:70", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "10943:3:70", + "nodeType": "YulIdentifier", + "src": "10943:3:70" + }, + "nativeSrc": "10943:7:70", + "nodeType": "YulFunctionCall", + "src": "10943:7:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10915:3:70", + "nodeType": "YulIdentifier", + "src": "10915:3:70" + }, + "nativeSrc": "10915:36:70", + "nodeType": "YulFunctionCall", + "src": "10915:36:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10903:6:70", + "nodeType": "YulIdentifier", + "src": "10903:6:70" + }, + "nativeSrc": "10903:49:70", + "nodeType": "YulFunctionCall", + "src": "10903:49:70" + }, + "nativeSrc": "10903:49:70", + "nodeType": "YulExpressionStatement", + "src": "10903:49:70" + }, + { + "nativeSrc": "10965:50:70", + "nodeType": "YulAssignment", + "src": "10965:50:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "10999:6:70", + "nodeType": "YulIdentifier", + "src": "10999:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10993:5:70", + "nodeType": "YulIdentifier", + "src": "10993:5:70" + }, + "nativeSrc": "10993:13:70", + "nodeType": "YulFunctionCall", + "src": "10993:13:70" + }, + { + "name": "tail_2", + "nativeSrc": "11008:6:70", + "nodeType": "YulIdentifier", + "src": "11008:6:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "10975:17:70", + "nodeType": "YulIdentifier", + "src": "10975:17:70" + }, + "nativeSrc": "10975:40:70", + "nodeType": "YulFunctionCall", + "src": "10975:40:70" + }, + "variableNames": [ + { + "name": "tail_2", + "nativeSrc": "10965:6:70", + "nodeType": "YulIdentifier", + "src": "10965:6:70" + } + ] + }, + { + "nativeSrc": "11028:25:70", + "nodeType": "YulAssignment", + "src": "11028:25:70", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "11042:6:70", + "nodeType": "YulIdentifier", + "src": "11042:6:70" + }, + { + "kind": "number", + "nativeSrc": "11050:2:70", + "nodeType": "YulLiteral", + "src": "11050:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11038:3:70", + "nodeType": "YulIdentifier", + "src": "11038:3:70" + }, + "nativeSrc": "11038:15:70", + "nodeType": "YulFunctionCall", + "src": "11038:15:70" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "11028:6:70", + "nodeType": "YulIdentifier", + "src": "11028:6:70" + } + ] + }, + { + "nativeSrc": "11066:19:70", + "nodeType": "YulAssignment", + "src": "11066:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11077:3:70", + "nodeType": "YulIdentifier", + "src": "11077:3:70" + }, + { + "kind": "number", + "nativeSrc": "11082:2:70", + "nodeType": "YulLiteral", + "src": "11082:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11073:3:70", + "nodeType": "YulIdentifier", + "src": "11073:3:70" + }, + "nativeSrc": "11073:12:70", + "nodeType": "YulFunctionCall", + "src": "11073:12:70" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11066:3:70", + "nodeType": "YulIdentifier", + "src": "11066:3:70" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10851:1:70", + "nodeType": "YulIdentifier", + "src": "10851:1:70" + }, + { + "name": "length", + "nativeSrc": "10854:6:70", + "nodeType": "YulIdentifier", + "src": "10854:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "10848:2:70", + "nodeType": "YulIdentifier", + "src": "10848:2:70" + }, + "nativeSrc": "10848:13:70", + "nodeType": "YulFunctionCall", + "src": "10848:13:70" + }, + "nativeSrc": "10840:255:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "10862:18:70", + "nodeType": "YulBlock", + "src": "10862:18:70", + "statements": [ + { + "nativeSrc": "10864:14:70", + "nodeType": "YulAssignment", + "src": "10864:14:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10873:1:70", + "nodeType": "YulIdentifier", + "src": "10873:1:70" + }, + { + "kind": "number", + "nativeSrc": "10876:1:70", + "nodeType": "YulLiteral", + "src": "10876:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10869:3:70", + "nodeType": "YulIdentifier", + "src": "10869:3:70" + }, + "nativeSrc": "10869:9:70", + "nodeType": "YulFunctionCall", + "src": "10869:9:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "10864:1:70", + "nodeType": "YulIdentifier", + "src": "10864:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "10844:3:70", + "nodeType": "YulBlock", + "src": "10844:3:70", + "statements": [] + }, + "src": "10840:255:70" + }, + { + "nativeSrc": "11104:14:70", + "nodeType": "YulAssignment", + "src": "11104:14:70", + "value": { + "name": "tail_2", + "nativeSrc": "11112:6:70", + "nodeType": "YulIdentifier", + "src": "11112:6:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11104:4:70", + "nodeType": "YulIdentifier", + "src": "11104:4:70" + } + ] + } + ] + }, + "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": "10344:780:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10482:9:70", + "nodeType": "YulTypedName", + "src": "10482:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10493:6:70", + "nodeType": "YulTypedName", + "src": "10493:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10504:4:70", + "nodeType": "YulTypedName", + "src": "10504:4:70", + "type": "" + } + ], + "src": "10344:780:70" + }, + { + "body": { + "nativeSrc": "11269:571:70", + "nodeType": "YulBlock", + "src": "11269:571:70", + "statements": [ + { + "body": { + "nativeSrc": "11315:16:70", + "nodeType": "YulBlock", + "src": "11315:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11324:1:70", + "nodeType": "YulLiteral", + "src": "11324:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11327:1:70", + "nodeType": "YulLiteral", + "src": "11327:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11317:6:70", + "nodeType": "YulIdentifier", + "src": "11317:6:70" + }, + "nativeSrc": "11317:12:70", + "nodeType": "YulFunctionCall", + "src": "11317:12:70" + }, + "nativeSrc": "11317:12:70", + "nodeType": "YulExpressionStatement", + "src": "11317:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11290:7:70", + "nodeType": "YulIdentifier", + "src": "11290:7:70" + }, + { + "name": "headStart", + "nativeSrc": "11299:9:70", + "nodeType": "YulIdentifier", + "src": "11299:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11286:3:70", + "nodeType": "YulIdentifier", + "src": "11286:3:70" + }, + "nativeSrc": "11286:23:70", + "nodeType": "YulFunctionCall", + "src": "11286:23:70" + }, + { + "kind": "number", + "nativeSrc": "11311:2:70", + "nodeType": "YulLiteral", + "src": "11311:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11282:3:70", + "nodeType": "YulIdentifier", + "src": "11282:3:70" + }, + "nativeSrc": "11282:32:70", + "nodeType": "YulFunctionCall", + "src": "11282:32:70" + }, + "nativeSrc": "11279:52:70", + "nodeType": "YulIf", + "src": "11279:52:70" + }, + { + "nativeSrc": "11340:36:70", + "nodeType": "YulVariableDeclaration", + "src": "11340:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11366:9:70", + "nodeType": "YulIdentifier", + "src": "11366:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11353:12:70", + "nodeType": "YulIdentifier", + "src": "11353:12:70" + }, + "nativeSrc": "11353:23:70", + "nodeType": "YulFunctionCall", + "src": "11353:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "11344:5:70", + "nodeType": "YulTypedName", + "src": "11344:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11410:5:70", + "nodeType": "YulIdentifier", + "src": "11410:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "11385:24:70", + "nodeType": "YulIdentifier", + "src": "11385:24:70" + }, + "nativeSrc": "11385:31:70", + "nodeType": "YulFunctionCall", + "src": "11385:31:70" + }, + "nativeSrc": "11385:31:70", + "nodeType": "YulExpressionStatement", + "src": "11385:31:70" + }, + { + "nativeSrc": "11425:15:70", + "nodeType": "YulAssignment", + "src": "11425:15:70", + "value": { + "name": "value", + "nativeSrc": "11435:5:70", + "nodeType": "YulIdentifier", + "src": "11435:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11425:6:70", + "nodeType": "YulIdentifier", + "src": "11425:6:70" + } + ] + }, + { + "nativeSrc": "11449:47:70", + "nodeType": "YulVariableDeclaration", + "src": "11449:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11481:9:70", + "nodeType": "YulIdentifier", + "src": "11481:9:70" + }, + { + "kind": "number", + "nativeSrc": "11492:2:70", + "nodeType": "YulLiteral", + "src": "11492:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11477:3:70", + "nodeType": "YulIdentifier", + "src": "11477:3:70" + }, + "nativeSrc": "11477:18:70", + "nodeType": "YulFunctionCall", + "src": "11477:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11464:12:70", + "nodeType": "YulIdentifier", + "src": "11464:12:70" + }, + "nativeSrc": "11464:32:70", + "nodeType": "YulFunctionCall", + "src": "11464:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "11453:7:70", + "nodeType": "YulTypedName", + "src": "11453:7:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11531:16:70", + "nodeType": "YulBlock", + "src": "11531:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11540:1:70", + "nodeType": "YulLiteral", + "src": "11540:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11543:1:70", + "nodeType": "YulLiteral", + "src": "11543:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11533:6:70", + "nodeType": "YulIdentifier", + "src": "11533:6:70" + }, + "nativeSrc": "11533:12:70", + "nodeType": "YulFunctionCall", + "src": "11533:12:70" + }, + "nativeSrc": "11533:12:70", + "nodeType": "YulExpressionStatement", + "src": "11533:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "11518:7:70", + "nodeType": "YulIdentifier", + "src": "11518:7:70" + }, + { + "kind": "number", + "nativeSrc": "11527:1:70", + "nodeType": "YulLiteral", + "src": "11527:1:70", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "11515:2:70", + "nodeType": "YulIdentifier", + "src": "11515:2:70" + }, + "nativeSrc": "11515:14:70", + "nodeType": "YulFunctionCall", + "src": "11515:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11508:6:70", + "nodeType": "YulIdentifier", + "src": "11508:6:70" + }, + "nativeSrc": "11508:22:70", + "nodeType": "YulFunctionCall", + "src": "11508:22:70" + }, + "nativeSrc": "11505:42:70", + "nodeType": "YulIf", + "src": "11505:42:70" + }, + { + "nativeSrc": "11556:17:70", + "nodeType": "YulAssignment", + "src": "11556:17:70", + "value": { + "name": "value_1", + "nativeSrc": "11566:7:70", + "nodeType": "YulIdentifier", + "src": "11566:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11556:6:70", + "nodeType": "YulIdentifier", + "src": "11556:6:70" + } + ] + }, + { + "nativeSrc": "11582:46:70", + "nodeType": "YulVariableDeclaration", + "src": "11582:46:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11613:9:70", + "nodeType": "YulIdentifier", + "src": "11613:9:70" + }, + { + "kind": "number", + "nativeSrc": "11624:2:70", + "nodeType": "YulLiteral", + "src": "11624:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11609:3:70", + "nodeType": "YulIdentifier", + "src": "11609:3:70" + }, + "nativeSrc": "11609:18:70", + "nodeType": "YulFunctionCall", + "src": "11609:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11596:12:70", + "nodeType": "YulIdentifier", + "src": "11596:12:70" + }, + "nativeSrc": "11596:32:70", + "nodeType": "YulFunctionCall", + "src": "11596:32:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11586:6:70", + "nodeType": "YulTypedName", + "src": "11586:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11671:16:70", + "nodeType": "YulBlock", + "src": "11671:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11680:1:70", + "nodeType": "YulLiteral", + "src": "11680:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11683:1:70", + "nodeType": "YulLiteral", + "src": "11683:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11673:6:70", + "nodeType": "YulIdentifier", + "src": "11673:6:70" + }, + "nativeSrc": "11673:12:70", + "nodeType": "YulFunctionCall", + "src": "11673:12:70" + }, + "nativeSrc": "11673:12:70", + "nodeType": "YulExpressionStatement", + "src": "11673:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11643:6:70", + "nodeType": "YulIdentifier", + "src": "11643:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11659:2:70", + "nodeType": "YulLiteral", + "src": "11659:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "11663:1:70", + "nodeType": "YulLiteral", + "src": "11663:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "11655:3:70", + "nodeType": "YulIdentifier", + "src": "11655:3:70" + }, + "nativeSrc": "11655:10:70", + "nodeType": "YulFunctionCall", + "src": "11655:10:70" + }, + { + "kind": "number", + "nativeSrc": "11667:1:70", + "nodeType": "YulLiteral", + "src": "11667:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11651:3:70", + "nodeType": "YulIdentifier", + "src": "11651:3:70" + }, + "nativeSrc": "11651:18:70", + "nodeType": "YulFunctionCall", + "src": "11651:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11640:2:70", + "nodeType": "YulIdentifier", + "src": "11640:2:70" + }, + "nativeSrc": "11640:30:70", + "nodeType": "YulFunctionCall", + "src": "11640:30:70" + }, + "nativeSrc": "11637:50:70", + "nodeType": "YulIf", + "src": "11637:50:70" + }, + { + "nativeSrc": "11696:84:70", + "nodeType": "YulVariableDeclaration", + "src": "11696:84:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11752:9:70", + "nodeType": "YulIdentifier", + "src": "11752:9:70" + }, + { + "name": "offset", + "nativeSrc": "11763:6:70", + "nodeType": "YulIdentifier", + "src": "11763:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11748:3:70", + "nodeType": "YulIdentifier", + "src": "11748:3:70" + }, + "nativeSrc": "11748:22:70", + "nodeType": "YulFunctionCall", + "src": "11748:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "11772:7:70", + "nodeType": "YulIdentifier", + "src": "11772:7:70" + } + ], + "functionName": { + "name": "abi_decode_bytes_calldata", + "nativeSrc": "11722:25:70", + "nodeType": "YulIdentifier", + "src": "11722:25:70" + }, + "nativeSrc": "11722:58:70", + "nodeType": "YulFunctionCall", + "src": "11722:58:70" + }, + "variables": [ + { + "name": "value2_1", + "nativeSrc": "11700:8:70", + "nodeType": "YulTypedName", + "src": "11700:8:70", + "type": "" + }, + { + "name": "value3_1", + "nativeSrc": "11710:8:70", + "nodeType": "YulTypedName", + "src": "11710:8:70", + "type": "" + } + ] + }, + { + "nativeSrc": "11789:18:70", + "nodeType": "YulAssignment", + "src": "11789:18:70", + "value": { + "name": "value2_1", + "nativeSrc": "11799:8:70", + "nodeType": "YulIdentifier", + "src": "11799:8:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11789:6:70", + "nodeType": "YulIdentifier", + "src": "11789:6:70" + } + ] + }, + { + "nativeSrc": "11816:18:70", + "nodeType": "YulAssignment", + "src": "11816:18:70", + "value": { + "name": "value3_1", + "nativeSrc": "11826:8:70", + "nodeType": "YulIdentifier", + "src": "11826:8:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11816:6:70", + "nodeType": "YulIdentifier", + "src": "11816:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_enum$_PaymentTypes_$2433t_bytes_calldata_ptr", + "nativeSrc": "11129:711:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11211:9:70", + "nodeType": "YulTypedName", + "src": "11211:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11222:7:70", + "nodeType": "YulTypedName", + "src": "11222:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11234:6:70", + "nodeType": "YulTypedName", + "src": "11234:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11242:6:70", + "nodeType": "YulTypedName", + "src": "11242:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "11250:6:70", + "nodeType": "YulTypedName", + "src": "11250:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "11258:6:70", + "nodeType": "YulTypedName", + "src": "11258:6:70", + "type": "" + } + ], + "src": "11129:711:70" + }, + { + "body": { + "nativeSrc": "11965:507:70", + "nodeType": "YulBlock", + "src": "11965:507:70", + "statements": [ + { + "body": { + "nativeSrc": "12012:16:70", + "nodeType": "YulBlock", + "src": "12012:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12021:1:70", + "nodeType": "YulLiteral", + "src": "12021:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12024:1:70", + "nodeType": "YulLiteral", + "src": "12024:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12014:6:70", + "nodeType": "YulIdentifier", + "src": "12014:6:70" + }, + "nativeSrc": "12014:12:70", + "nodeType": "YulFunctionCall", + "src": "12014:12:70" + }, + "nativeSrc": "12014:12:70", + "nodeType": "YulExpressionStatement", + "src": "12014:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11986:7:70", + "nodeType": "YulIdentifier", + "src": "11986:7:70" + }, + { + "name": "headStart", + "nativeSrc": "11995:9:70", + "nodeType": "YulIdentifier", + "src": "11995:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11982:3:70", + "nodeType": "YulIdentifier", + "src": "11982:3:70" + }, + "nativeSrc": "11982:23:70", + "nodeType": "YulFunctionCall", + "src": "11982:23:70" + }, + { + "kind": "number", + "nativeSrc": "12007:3:70", + "nodeType": "YulLiteral", + "src": "12007:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11978:3:70", + "nodeType": "YulIdentifier", + "src": "11978:3:70" + }, + "nativeSrc": "11978:33:70", + "nodeType": "YulFunctionCall", + "src": "11978:33:70" + }, + "nativeSrc": "11975:53:70", + "nodeType": "YulIf", + "src": "11975:53:70" + }, + { + "nativeSrc": "12037:36:70", + "nodeType": "YulVariableDeclaration", + "src": "12037:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12063:9:70", + "nodeType": "YulIdentifier", + "src": "12063:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12050:12:70", + "nodeType": "YulIdentifier", + "src": "12050:12:70" + }, + "nativeSrc": "12050:23:70", + "nodeType": "YulFunctionCall", + "src": "12050:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "12041:5:70", + "nodeType": "YulTypedName", + "src": "12041:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12107:5:70", + "nodeType": "YulIdentifier", + "src": "12107:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "12082:24:70", + "nodeType": "YulIdentifier", + "src": "12082:24:70" + }, + "nativeSrc": "12082:31:70", + "nodeType": "YulFunctionCall", + "src": "12082:31:70" + }, + "nativeSrc": "12082:31:70", + "nodeType": "YulExpressionStatement", + "src": "12082:31:70" + }, + { + "nativeSrc": "12122:15:70", + "nodeType": "YulAssignment", + "src": "12122:15:70", + "value": { + "name": "value", + "nativeSrc": "12132:5:70", + "nodeType": "YulIdentifier", + "src": "12132:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12122:6:70", + "nodeType": "YulIdentifier", + "src": "12122:6:70" + } + ] + }, + { + "nativeSrc": "12146:16:70", + "nodeType": "YulVariableDeclaration", + "src": "12146:16:70", + "value": { + "kind": "number", + "nativeSrc": "12161:1:70", + "nodeType": "YulLiteral", + "src": "12161:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "12150:7:70", + "nodeType": "YulTypedName", + "src": "12150:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "12171:43:70", + "nodeType": "YulAssignment", + "src": "12171:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12199:9:70", + "nodeType": "YulIdentifier", + "src": "12199:9:70" + }, + { + "kind": "number", + "nativeSrc": "12210:2:70", + "nodeType": "YulLiteral", + "src": "12210:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12195:3:70", + "nodeType": "YulIdentifier", + "src": "12195:3:70" + }, + "nativeSrc": "12195:18:70", + "nodeType": "YulFunctionCall", + "src": "12195:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12182:12:70", + "nodeType": "YulIdentifier", + "src": "12182:12:70" + }, + "nativeSrc": "12182:32:70", + "nodeType": "YulFunctionCall", + "src": "12182:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "12171:7:70", + "nodeType": "YulIdentifier", + "src": "12171:7:70" + } + ] + }, + { + "nativeSrc": "12223:17:70", + "nodeType": "YulAssignment", + "src": "12223:17:70", + "value": { + "name": "value_1", + "nativeSrc": "12233:7:70", + "nodeType": "YulIdentifier", + "src": "12233:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12223:6:70", + "nodeType": "YulIdentifier", + "src": "12223:6:70" + } + ] + }, + { + "nativeSrc": "12249:47:70", + "nodeType": "YulVariableDeclaration", + "src": "12249:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12281:9:70", + "nodeType": "YulIdentifier", + "src": "12281:9:70" + }, + { + "kind": "number", + "nativeSrc": "12292:2:70", + "nodeType": "YulLiteral", + "src": "12292:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12277:3:70", + "nodeType": "YulIdentifier", + "src": "12277:3:70" + }, + "nativeSrc": "12277:18:70", + "nodeType": "YulFunctionCall", + "src": "12277:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12264:12:70", + "nodeType": "YulIdentifier", + "src": "12264:12:70" + }, + "nativeSrc": "12264:32:70", + "nodeType": "YulFunctionCall", + "src": "12264:32:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "12253:7:70", + "nodeType": "YulTypedName", + "src": "12253:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "12329:7:70", + "nodeType": "YulIdentifier", + "src": "12329:7:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "12305:23:70", + "nodeType": "YulIdentifier", + "src": "12305:23:70" + }, + "nativeSrc": "12305:32:70", + "nodeType": "YulFunctionCall", + "src": "12305:32:70" + }, + "nativeSrc": "12305:32:70", + "nodeType": "YulExpressionStatement", + "src": "12305:32:70" + }, + { + "nativeSrc": "12346:17:70", + "nodeType": "YulAssignment", + "src": "12346:17:70", + "value": { + "name": "value_2", + "nativeSrc": "12356:7:70", + "nodeType": "YulIdentifier", + "src": "12356:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "12346:6:70", + "nodeType": "YulIdentifier", + "src": "12346:6:70" + } + ] + }, + { + "nativeSrc": "12372:16:70", + "nodeType": "YulVariableDeclaration", + "src": "12372:16:70", + "value": { + "kind": "number", + "nativeSrc": "12387:1:70", + "nodeType": "YulLiteral", + "src": "12387:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "12376:7:70", + "nodeType": "YulTypedName", + "src": "12376:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "12397:43:70", + "nodeType": "YulAssignment", + "src": "12397:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12425:9:70", + "nodeType": "YulIdentifier", + "src": "12425:9:70" + }, + { + "kind": "number", + "nativeSrc": "12436:2:70", + "nodeType": "YulLiteral", + "src": "12436:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12421:3:70", + "nodeType": "YulIdentifier", + "src": "12421:3:70" + }, + "nativeSrc": "12421:18:70", + "nodeType": "YulFunctionCall", + "src": "12421:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12408:12:70", + "nodeType": "YulIdentifier", + "src": "12408:12:70" + }, + "nativeSrc": "12408:32:70", + "nodeType": "YulFunctionCall", + "src": "12408:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "12397:7:70", + "nodeType": "YulIdentifier", + "src": "12397:7:70" + } + ] + }, + { + "nativeSrc": "12449:17:70", + "nodeType": "YulAssignment", + "src": "12449:17:70", + "value": { + "name": "value_3", + "nativeSrc": "12459:7:70", + "nodeType": "YulIdentifier", + "src": "12459:7:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "12449:6:70", + "nodeType": "YulIdentifier", + "src": "12449:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint32t_uint256", + "nativeSrc": "11845:627:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11907:9:70", + "nodeType": "YulTypedName", + "src": "11907:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11918:7:70", + "nodeType": "YulTypedName", + "src": "11918:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11930:6:70", + "nodeType": "YulTypedName", + "src": "11930:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11938:6:70", + "nodeType": "YulTypedName", + "src": "11938:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "11946:6:70", + "nodeType": "YulTypedName", + "src": "11946:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "11954:6:70", + "nodeType": "YulTypedName", + "src": "11954:6:70", + "type": "" + } + ], + "src": "11845:627:70" + }, + { + "body": { + "nativeSrc": "12564:301:70", + "nodeType": "YulBlock", + "src": "12564:301:70", + "statements": [ + { + "body": { + "nativeSrc": "12610:16:70", + "nodeType": "YulBlock", + "src": "12610:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12619:1:70", + "nodeType": "YulLiteral", + "src": "12619:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12622:1:70", + "nodeType": "YulLiteral", + "src": "12622:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12612:6:70", + "nodeType": "YulIdentifier", + "src": "12612:6:70" + }, + "nativeSrc": "12612:12:70", + "nodeType": "YulFunctionCall", + "src": "12612:12:70" + }, + "nativeSrc": "12612:12:70", + "nodeType": "YulExpressionStatement", + "src": "12612:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12585:7:70", + "nodeType": "YulIdentifier", + "src": "12585:7:70" + }, + { + "name": "headStart", + "nativeSrc": "12594:9:70", + "nodeType": "YulIdentifier", + "src": "12594:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12581:3:70", + "nodeType": "YulIdentifier", + "src": "12581:3:70" + }, + "nativeSrc": "12581:23:70", + "nodeType": "YulFunctionCall", + "src": "12581:23:70" + }, + { + "kind": "number", + "nativeSrc": "12606:2:70", + "nodeType": "YulLiteral", + "src": "12606:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12577:3:70", + "nodeType": "YulIdentifier", + "src": "12577:3:70" + }, + "nativeSrc": "12577:32:70", + "nodeType": "YulFunctionCall", + "src": "12577:32:70" + }, + "nativeSrc": "12574:52:70", + "nodeType": "YulIf", + "src": "12574:52:70" + }, + { + "nativeSrc": "12635:36:70", + "nodeType": "YulVariableDeclaration", + "src": "12635:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12661:9:70", + "nodeType": "YulIdentifier", + "src": "12661:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12648:12:70", + "nodeType": "YulIdentifier", + "src": "12648:12:70" + }, + "nativeSrc": "12648:23:70", + "nodeType": "YulFunctionCall", + "src": "12648:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "12639:5:70", + "nodeType": "YulTypedName", + "src": "12639:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "12705:5:70", + "nodeType": "YulIdentifier", + "src": "12705:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "12680:24:70", + "nodeType": "YulIdentifier", + "src": "12680:24:70" + }, + "nativeSrc": "12680:31:70", + "nodeType": "YulFunctionCall", + "src": "12680:31:70" + }, + "nativeSrc": "12680:31:70", + "nodeType": "YulExpressionStatement", + "src": "12680:31:70" + }, + { + "nativeSrc": "12720:15:70", + "nodeType": "YulAssignment", + "src": "12720:15:70", + "value": { + "name": "value", + "nativeSrc": "12730:5:70", + "nodeType": "YulIdentifier", + "src": "12730:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12720:6:70", + "nodeType": "YulIdentifier", + "src": "12720:6:70" + } + ] + }, + { + "nativeSrc": "12744:47:70", + "nodeType": "YulVariableDeclaration", + "src": "12744:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12776:9:70", + "nodeType": "YulIdentifier", + "src": "12776:9:70" + }, + { + "kind": "number", + "nativeSrc": "12787:2:70", + "nodeType": "YulLiteral", + "src": "12787:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12772:3:70", + "nodeType": "YulIdentifier", + "src": "12772:3:70" + }, + "nativeSrc": "12772:18:70", + "nodeType": "YulFunctionCall", + "src": "12772:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12759:12:70", + "nodeType": "YulIdentifier", + "src": "12759:12:70" + }, + "nativeSrc": "12759:32:70", + "nodeType": "YulFunctionCall", + "src": "12759:32:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "12748:7:70", + "nodeType": "YulTypedName", + "src": "12748:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "12825:7:70", + "nodeType": "YulIdentifier", + "src": "12825:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "12800:24:70", + "nodeType": "YulIdentifier", + "src": "12800:24:70" + }, + "nativeSrc": "12800:33:70", + "nodeType": "YulFunctionCall", + "src": "12800:33:70" + }, + "nativeSrc": "12800:33:70", + "nodeType": "YulExpressionStatement", + "src": "12800:33:70" + }, + { + "nativeSrc": "12842:17:70", + "nodeType": "YulAssignment", + "src": "12842:17:70", + "value": { + "name": "value_1", + "nativeSrc": "12852:7:70", + "nodeType": "YulIdentifier", + "src": "12852:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12842:6:70", + "nodeType": "YulIdentifier", + "src": "12842:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "12477:388:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12522:9:70", + "nodeType": "YulTypedName", + "src": "12522:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12533:7:70", + "nodeType": "YulTypedName", + "src": "12533:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12545:6:70", + "nodeType": "YulTypedName", + "src": "12545:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12553:6:70", + "nodeType": "YulTypedName", + "src": "12553:6:70", + "type": "" + } + ], + "src": "12477:388:70" + }, + { + "body": { + "nativeSrc": "12971:76:70", + "nodeType": "YulBlock", + "src": "12971:76:70", + "statements": [ + { + "nativeSrc": "12981:26:70", + "nodeType": "YulAssignment", + "src": "12981:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12993:9:70", + "nodeType": "YulIdentifier", + "src": "12993:9:70" + }, + { + "kind": "number", + "nativeSrc": "13004:2:70", + "nodeType": "YulLiteral", + "src": "13004:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12989:3:70", + "nodeType": "YulIdentifier", + "src": "12989:3:70" + }, + "nativeSrc": "12989:18:70", + "nodeType": "YulFunctionCall", + "src": "12989:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12981:4:70", + "nodeType": "YulIdentifier", + "src": "12981:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13023:9:70", + "nodeType": "YulIdentifier", + "src": "13023:9:70" + }, + { + "name": "value0", + "nativeSrc": "13034:6:70", + "nodeType": "YulIdentifier", + "src": "13034:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13016:6:70", + "nodeType": "YulIdentifier", + "src": "13016:6:70" + }, + "nativeSrc": "13016:25:70", + "nodeType": "YulFunctionCall", + "src": "13016:25:70" + }, + "nativeSrc": "13016:25:70", + "nodeType": "YulExpressionStatement", + "src": "13016:25:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "12870:177:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12940:9:70", + "nodeType": "YulTypedName", + "src": "12940:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12951:6:70", + "nodeType": "YulTypedName", + "src": "12951:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12962:4:70", + "nodeType": "YulTypedName", + "src": "12962:4:70", + "type": "" + } + ], + "src": "12870:177:70" + }, + { + "body": { + "nativeSrc": "13122:156:70", + "nodeType": "YulBlock", + "src": "13122:156:70", + "statements": [ + { + "body": { + "nativeSrc": "13168:16:70", + "nodeType": "YulBlock", + "src": "13168:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13177:1:70", + "nodeType": "YulLiteral", + "src": "13177:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13180:1:70", + "nodeType": "YulLiteral", + "src": "13180:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13170:6:70", + "nodeType": "YulIdentifier", + "src": "13170:6:70" + }, + "nativeSrc": "13170:12:70", + "nodeType": "YulFunctionCall", + "src": "13170:12:70" + }, + "nativeSrc": "13170:12:70", + "nodeType": "YulExpressionStatement", + "src": "13170:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13143:7:70", + "nodeType": "YulIdentifier", + "src": "13143:7:70" + }, + { + "name": "headStart", + "nativeSrc": "13152:9:70", + "nodeType": "YulIdentifier", + "src": "13152:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13139:3:70", + "nodeType": "YulIdentifier", + "src": "13139:3:70" + }, + "nativeSrc": "13139:23:70", + "nodeType": "YulFunctionCall", + "src": "13139:23:70" + }, + { + "kind": "number", + "nativeSrc": "13164:2:70", + "nodeType": "YulLiteral", + "src": "13164:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13135:3:70", + "nodeType": "YulIdentifier", + "src": "13135:3:70" + }, + "nativeSrc": "13135:32:70", + "nodeType": "YulFunctionCall", + "src": "13135:32:70" + }, + "nativeSrc": "13132:52:70", + "nodeType": "YulIf", + "src": "13132:52:70" + }, + { + "nativeSrc": "13193:14:70", + "nodeType": "YulVariableDeclaration", + "src": "13193:14:70", + "value": { + "kind": "number", + "nativeSrc": "13206:1:70", + "nodeType": "YulLiteral", + "src": "13206:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "13197:5:70", + "nodeType": "YulTypedName", + "src": "13197:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "13216:32:70", + "nodeType": "YulAssignment", + "src": "13216:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13238:9:70", + "nodeType": "YulIdentifier", + "src": "13238:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13225:12:70", + "nodeType": "YulIdentifier", + "src": "13225:12:70" + }, + "nativeSrc": "13225:23:70", + "nodeType": "YulFunctionCall", + "src": "13225:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13216:5:70", + "nodeType": "YulIdentifier", + "src": "13216:5:70" + } + ] + }, + { + "nativeSrc": "13257:15:70", + "nodeType": "YulAssignment", + "src": "13257:15:70", + "value": { + "name": "value", + "nativeSrc": "13267:5:70", + "nodeType": "YulIdentifier", + "src": "13267:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13257:6:70", + "nodeType": "YulIdentifier", + "src": "13257:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "13052:226:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13088:9:70", + "nodeType": "YulTypedName", + "src": "13088:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13099:7:70", + "nodeType": "YulTypedName", + "src": "13099:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13111:6:70", + "nodeType": "YulTypedName", + "src": "13111:6:70", + "type": "" + } + ], + "src": "13052:226:70" + }, + { + "body": { + "nativeSrc": "13468:206:70", + "nodeType": "YulBlock", + "src": "13468:206:70", + "statements": [ + { + "nativeSrc": "13478:27:70", + "nodeType": "YulAssignment", + "src": "13478:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13490:9:70", + "nodeType": "YulIdentifier", + "src": "13490:9:70" + }, + { + "kind": "number", + "nativeSrc": "13501:3:70", + "nodeType": "YulLiteral", + "src": "13501:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13486:3:70", + "nodeType": "YulIdentifier", + "src": "13486:3:70" + }, + "nativeSrc": "13486:19:70", + "nodeType": "YulFunctionCall", + "src": "13486:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13478:4:70", + "nodeType": "YulIdentifier", + "src": "13478:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13521:9:70", + "nodeType": "YulIdentifier", + "src": "13521:9:70" + }, + { + "name": "value0", + "nativeSrc": "13532:6:70", + "nodeType": "YulIdentifier", + "src": "13532:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13514:6:70", + "nodeType": "YulIdentifier", + "src": "13514:6:70" + }, + "nativeSrc": "13514:25:70", + "nodeType": "YulFunctionCall", + "src": "13514:25:70" + }, + "nativeSrc": "13514:25:70", + "nodeType": "YulExpressionStatement", + "src": "13514:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13559:9:70", + "nodeType": "YulIdentifier", + "src": "13559:9:70" + }, + { + "kind": "number", + "nativeSrc": "13570:2:70", + "nodeType": "YulLiteral", + "src": "13570:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13555:3:70", + "nodeType": "YulIdentifier", + "src": "13555:3:70" + }, + "nativeSrc": "13555:18:70", + "nodeType": "YulFunctionCall", + "src": "13555:18:70" + }, + { + "name": "value1", + "nativeSrc": "13575:6:70", + "nodeType": "YulIdentifier", + "src": "13575:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13548:6:70", + "nodeType": "YulIdentifier", + "src": "13548:6:70" + }, + "nativeSrc": "13548:34:70", + "nodeType": "YulFunctionCall", + "src": "13548:34:70" + }, + "nativeSrc": "13548:34:70", + "nodeType": "YulExpressionStatement", + "src": "13548:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13602:9:70", + "nodeType": "YulIdentifier", + "src": "13602:9:70" + }, + { + "kind": "number", + "nativeSrc": "13613:2:70", + "nodeType": "YulLiteral", + "src": "13613:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13598:3:70", + "nodeType": "YulIdentifier", + "src": "13598:3:70" + }, + "nativeSrc": "13598:18:70", + "nodeType": "YulFunctionCall", + "src": "13598:18:70" + }, + { + "name": "value2", + "nativeSrc": "13618:6:70", + "nodeType": "YulIdentifier", + "src": "13618:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13591:6:70", + "nodeType": "YulIdentifier", + "src": "13591:6:70" + }, + "nativeSrc": "13591:34:70", + "nodeType": "YulFunctionCall", + "src": "13591:34:70" + }, + "nativeSrc": "13591:34:70", + "nodeType": "YulExpressionStatement", + "src": "13591:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13645:9:70", + "nodeType": "YulIdentifier", + "src": "13645:9:70" + }, + { + "kind": "number", + "nativeSrc": "13656:2:70", + "nodeType": "YulLiteral", + "src": "13656:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13641:3:70", + "nodeType": "YulIdentifier", + "src": "13641:3:70" + }, + "nativeSrc": "13641:18:70", + "nodeType": "YulFunctionCall", + "src": "13641:18:70" + }, + { + "name": "value3", + "nativeSrc": "13661:6:70", + "nodeType": "YulIdentifier", + "src": "13661:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13634:6:70", + "nodeType": "YulIdentifier", + "src": "13634:6:70" + }, + "nativeSrc": "13634:34:70", + "nodeType": "YulFunctionCall", + "src": "13634:34:70" + }, + "nativeSrc": "13634:34:70", + "nodeType": "YulExpressionStatement", + "src": "13634:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed", + "nativeSrc": "13283:391:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13413:9:70", + "nodeType": "YulTypedName", + "src": "13413:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "13424:6:70", + "nodeType": "YulTypedName", + "src": "13424:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13432:6:70", + "nodeType": "YulTypedName", + "src": "13432:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13440:6:70", + "nodeType": "YulTypedName", + "src": "13440:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13448:6:70", + "nodeType": "YulTypedName", + "src": "13448:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13459:4:70", + "nodeType": "YulTypedName", + "src": "13459:4:70", + "type": "" + } + ], + "src": "13283:391:70" + }, + { + "body": { + "nativeSrc": "13836:240:70", + "nodeType": "YulBlock", + "src": "13836:240:70", + "statements": [ + { + "nativeSrc": "13846:26:70", + "nodeType": "YulAssignment", + "src": "13846:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13858:9:70", + "nodeType": "YulIdentifier", + "src": "13858:9:70" + }, + { + "kind": "number", + "nativeSrc": "13869:2:70", + "nodeType": "YulLiteral", + "src": "13869:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13854:3:70", + "nodeType": "YulIdentifier", + "src": "13854:3:70" + }, + "nativeSrc": "13854:18:70", + "nodeType": "YulFunctionCall", + "src": "13854:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13846:4:70", + "nodeType": "YulIdentifier", + "src": "13846:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13888:9:70", + "nodeType": "YulIdentifier", + "src": "13888:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13903:6:70", + "nodeType": "YulIdentifier", + "src": "13903:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13919:3:70", + "nodeType": "YulLiteral", + "src": "13919:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "13924:1:70", + "nodeType": "YulLiteral", + "src": "13924:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13915:3:70", + "nodeType": "YulIdentifier", + "src": "13915:3:70" + }, + "nativeSrc": "13915:11:70", + "nodeType": "YulFunctionCall", + "src": "13915:11:70" + }, + { + "kind": "number", + "nativeSrc": "13928:1:70", + "nodeType": "YulLiteral", + "src": "13928:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13911:3:70", + "nodeType": "YulIdentifier", + "src": "13911:3:70" + }, + "nativeSrc": "13911:19:70", + "nodeType": "YulFunctionCall", + "src": "13911:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13899:3:70", + "nodeType": "YulIdentifier", + "src": "13899:3:70" + }, + "nativeSrc": "13899:32:70", + "nodeType": "YulFunctionCall", + "src": "13899:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13881:6:70", + "nodeType": "YulIdentifier", + "src": "13881:6:70" + }, + "nativeSrc": "13881:51:70", + "nodeType": "YulFunctionCall", + "src": "13881:51:70" + }, + "nativeSrc": "13881:51:70", + "nodeType": "YulExpressionStatement", + "src": "13881:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13952:9:70", + "nodeType": "YulIdentifier", + "src": "13952:9:70" + }, + { + "kind": "number", + "nativeSrc": "13963:2:70", + "nodeType": "YulLiteral", + "src": "13963:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13948:3:70", + "nodeType": "YulIdentifier", + "src": "13948:3:70" + }, + "nativeSrc": "13948:18:70", + "nodeType": "YulFunctionCall", + "src": "13948:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13972:6:70", + "nodeType": "YulIdentifier", + "src": "13972:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13988:3:70", + "nodeType": "YulLiteral", + "src": "13988:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "13993:1:70", + "nodeType": "YulLiteral", + "src": "13993:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13984:3:70", + "nodeType": "YulIdentifier", + "src": "13984:3:70" + }, + "nativeSrc": "13984:11:70", + "nodeType": "YulFunctionCall", + "src": "13984:11:70" + }, + { + "kind": "number", + "nativeSrc": "13997:1:70", + "nodeType": "YulLiteral", + "src": "13997:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13980:3:70", + "nodeType": "YulIdentifier", + "src": "13980:3:70" + }, + "nativeSrc": "13980:19:70", + "nodeType": "YulFunctionCall", + "src": "13980:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13968:3:70", + "nodeType": "YulIdentifier", + "src": "13968:3:70" + }, + "nativeSrc": "13968:32:70", + "nodeType": "YulFunctionCall", + "src": "13968:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13941:6:70", + "nodeType": "YulIdentifier", + "src": "13941:6:70" + }, + "nativeSrc": "13941:60:70", + "nodeType": "YulFunctionCall", + "src": "13941:60:70" + }, + "nativeSrc": "13941:60:70", + "nodeType": "YulExpressionStatement", + "src": "13941:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14021:9:70", + "nodeType": "YulIdentifier", + "src": "14021:9:70" + }, + { + "kind": "number", + "nativeSrc": "14032:2:70", + "nodeType": "YulLiteral", + "src": "14032:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14017:3:70", + "nodeType": "YulIdentifier", + "src": "14017:3:70" + }, + "nativeSrc": "14017:18:70", + "nodeType": "YulFunctionCall", + "src": "14017:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "14041:6:70", + "nodeType": "YulIdentifier", + "src": "14041:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14057:3:70", + "nodeType": "YulLiteral", + "src": "14057:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "14062:1:70", + "nodeType": "YulLiteral", + "src": "14062:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "14053:3:70", + "nodeType": "YulIdentifier", + "src": "14053:3:70" + }, + "nativeSrc": "14053:11:70", + "nodeType": "YulFunctionCall", + "src": "14053:11:70" + }, + { + "kind": "number", + "nativeSrc": "14066:1:70", + "nodeType": "YulLiteral", + "src": "14066:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14049:3:70", + "nodeType": "YulIdentifier", + "src": "14049:3:70" + }, + "nativeSrc": "14049:19:70", + "nodeType": "YulFunctionCall", + "src": "14049:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "14037:3:70", + "nodeType": "YulIdentifier", + "src": "14037:3:70" + }, + "nativeSrc": "14037:32:70", + "nodeType": "YulFunctionCall", + "src": "14037:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14010:6:70", + "nodeType": "YulIdentifier", + "src": "14010:6:70" + }, + "nativeSrc": "14010:60:70", + "nodeType": "YulFunctionCall", + "src": "14010:60:70" + }, + "nativeSrc": "14010:60:70", + "nodeType": "YulExpressionStatement", + "src": "14010:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nativeSrc": "13679:397:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13789:9:70", + "nodeType": "YulTypedName", + "src": "13789:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13800:6:70", + "nodeType": "YulTypedName", + "src": "13800:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13808:6:70", + "nodeType": "YulTypedName", + "src": "13808:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13816:6:70", + "nodeType": "YulTypedName", + "src": "13816:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13827:4:70", + "nodeType": "YulTypedName", + "src": "13827:4:70", + "type": "" + } + ], + "src": "13679:397:70" + }, + { + "body": { + "nativeSrc": "14159:167:70", + "nodeType": "YulBlock", + "src": "14159:167:70", + "statements": [ + { + "body": { + "nativeSrc": "14205:16:70", + "nodeType": "YulBlock", + "src": "14205:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14214:1:70", + "nodeType": "YulLiteral", + "src": "14214:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14217:1:70", + "nodeType": "YulLiteral", + "src": "14217:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14207:6:70", + "nodeType": "YulIdentifier", + "src": "14207:6:70" + }, + "nativeSrc": "14207:12:70", + "nodeType": "YulFunctionCall", + "src": "14207:12:70" + }, + "nativeSrc": "14207:12:70", + "nodeType": "YulExpressionStatement", + "src": "14207:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "14180:7:70", + "nodeType": "YulIdentifier", + "src": "14180:7:70" + }, + { + "name": "headStart", + "nativeSrc": "14189:9:70", + "nodeType": "YulIdentifier", + "src": "14189:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14176:3:70", + "nodeType": "YulIdentifier", + "src": "14176:3:70" + }, + "nativeSrc": "14176:23:70", + "nodeType": "YulFunctionCall", + "src": "14176:23:70" + }, + { + "kind": "number", + "nativeSrc": "14201:2:70", + "nodeType": "YulLiteral", + "src": "14201:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14172:3:70", + "nodeType": "YulIdentifier", + "src": "14172:3:70" + }, + "nativeSrc": "14172:32:70", + "nodeType": "YulFunctionCall", + "src": "14172:32:70" + }, + "nativeSrc": "14169:52:70", + "nodeType": "YulIf", + "src": "14169:52:70" + }, + { + "nativeSrc": "14230:29:70", + "nodeType": "YulVariableDeclaration", + "src": "14230:29:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14249:9:70", + "nodeType": "YulIdentifier", + "src": "14249:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14243:5:70", + "nodeType": "YulIdentifier", + "src": "14243:5:70" + }, + "nativeSrc": "14243:16:70", + "nodeType": "YulFunctionCall", + "src": "14243:16:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "14234:5:70", + "nodeType": "YulTypedName", + "src": "14234:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14290:5:70", + "nodeType": "YulIdentifier", + "src": "14290:5:70" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "14268:21:70", + "nodeType": "YulIdentifier", + "src": "14268:21:70" + }, + "nativeSrc": "14268:28:70", + "nodeType": "YulFunctionCall", + "src": "14268:28:70" + }, + "nativeSrc": "14268:28:70", + "nodeType": "YulExpressionStatement", + "src": "14268:28:70" + }, + { + "nativeSrc": "14305:15:70", + "nodeType": "YulAssignment", + "src": "14305:15:70", + "value": { + "name": "value", + "nativeSrc": "14315:5:70", + "nodeType": "YulIdentifier", + "src": "14315:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "14305:6:70", + "nodeType": "YulIdentifier", + "src": "14305:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "14081:245:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14125:9:70", + "nodeType": "YulTypedName", + "src": "14125:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "14136:7:70", + "nodeType": "YulTypedName", + "src": "14136:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "14148:6:70", + "nodeType": "YulTypedName", + "src": "14148:6:70", + "type": "" + } + ], + "src": "14081:245:70" + }, + { + "body": { + "nativeSrc": "14460:171:70", + "nodeType": "YulBlock", + "src": "14460:171:70", + "statements": [ + { + "nativeSrc": "14470:26:70", + "nodeType": "YulAssignment", + "src": "14470:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14482:9:70", + "nodeType": "YulIdentifier", + "src": "14482:9:70" + }, + { + "kind": "number", + "nativeSrc": "14493:2:70", + "nodeType": "YulLiteral", + "src": "14493:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14478:3:70", + "nodeType": "YulIdentifier", + "src": "14478:3:70" + }, + "nativeSrc": "14478:18:70", + "nodeType": "YulFunctionCall", + "src": "14478:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14470:4:70", + "nodeType": "YulIdentifier", + "src": "14470:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14512:9:70", + "nodeType": "YulIdentifier", + "src": "14512:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14527:6:70", + "nodeType": "YulIdentifier", + "src": "14527:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14543:3:70", + "nodeType": "YulLiteral", + "src": "14543:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "14548:1:70", + "nodeType": "YulLiteral", + "src": "14548:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "14539:3:70", + "nodeType": "YulIdentifier", + "src": "14539:3:70" + }, + "nativeSrc": "14539:11:70", + "nodeType": "YulFunctionCall", + "src": "14539:11:70" + }, + { + "kind": "number", + "nativeSrc": "14552:1:70", + "nodeType": "YulLiteral", + "src": "14552:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14535:3:70", + "nodeType": "YulIdentifier", + "src": "14535:3:70" + }, + "nativeSrc": "14535:19:70", + "nodeType": "YulFunctionCall", + "src": "14535:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "14523:3:70", + "nodeType": "YulIdentifier", + "src": "14523:3:70" + }, + "nativeSrc": "14523:32:70", + "nodeType": "YulFunctionCall", + "src": "14523:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14505:6:70", + "nodeType": "YulIdentifier", + "src": "14505:6:70" + }, + "nativeSrc": "14505:51:70", + "nodeType": "YulFunctionCall", + "src": "14505:51:70" + }, + "nativeSrc": "14505:51:70", + "nodeType": "YulExpressionStatement", + "src": "14505:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14576:9:70", + "nodeType": "YulIdentifier", + "src": "14576:9:70" + }, + { + "kind": "number", + "nativeSrc": "14587:2:70", + "nodeType": "YulLiteral", + "src": "14587:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14572:3:70", + "nodeType": "YulIdentifier", + "src": "14572:3:70" + }, + "nativeSrc": "14572:18:70", + "nodeType": "YulFunctionCall", + "src": "14572:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "14596:6:70", + "nodeType": "YulIdentifier", + "src": "14596:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14612:3:70", + "nodeType": "YulLiteral", + "src": "14612:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "14617:1:70", + "nodeType": "YulLiteral", + "src": "14617:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "14608:3:70", + "nodeType": "YulIdentifier", + "src": "14608:3:70" + }, + "nativeSrc": "14608:11:70", + "nodeType": "YulFunctionCall", + "src": "14608:11:70" + }, + { + "kind": "number", + "nativeSrc": "14621:1:70", + "nodeType": "YulLiteral", + "src": "14621:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14604:3:70", + "nodeType": "YulIdentifier", + "src": "14604:3:70" + }, + "nativeSrc": "14604:19:70", + "nodeType": "YulFunctionCall", + "src": "14604:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "14592:3:70", + "nodeType": "YulIdentifier", + "src": "14592:3:70" + }, + "nativeSrc": "14592:32:70", + "nodeType": "YulFunctionCall", + "src": "14592:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14565:6:70", + "nodeType": "YulIdentifier", + "src": "14565:6:70" + }, + "nativeSrc": "14565:60:70", + "nodeType": "YulFunctionCall", + "src": "14565:60:70" + }, + "nativeSrc": "14565:60:70", + "nodeType": "YulExpressionStatement", + "src": "14565:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "14331:300:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14421:9:70", + "nodeType": "YulTypedName", + "src": "14421:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14432:6:70", + "nodeType": "YulTypedName", + "src": "14432:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14440:6:70", + "nodeType": "YulTypedName", + "src": "14440:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14451:4:70", + "nodeType": "YulTypedName", + "src": "14451:4:70", + "type": "" + } + ], + "src": "14331:300:70" + }, + { + "body": { + "nativeSrc": "14668:95:70", + "nodeType": "YulBlock", + "src": "14668:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14685:1:70", + "nodeType": "YulLiteral", + "src": "14685:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14692:3:70", + "nodeType": "YulLiteral", + "src": "14692:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "14697:10:70", + "nodeType": "YulLiteral", + "src": "14697:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "14688:3:70", + "nodeType": "YulIdentifier", + "src": "14688:3:70" + }, + "nativeSrc": "14688:20:70", + "nodeType": "YulFunctionCall", + "src": "14688:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14678:6:70", + "nodeType": "YulIdentifier", + "src": "14678:6:70" + }, + "nativeSrc": "14678:31:70", + "nodeType": "YulFunctionCall", + "src": "14678:31:70" + }, + "nativeSrc": "14678:31:70", + "nodeType": "YulExpressionStatement", + "src": "14678:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14725:1:70", + "nodeType": "YulLiteral", + "src": "14725:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "14728:4:70", + "nodeType": "YulLiteral", + "src": "14728:4:70", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14718:6:70", + "nodeType": "YulIdentifier", + "src": "14718:6:70" + }, + "nativeSrc": "14718:15:70", + "nodeType": "YulFunctionCall", + "src": "14718:15:70" + }, + "nativeSrc": "14718:15:70", + "nodeType": "YulExpressionStatement", + "src": "14718:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14749:1:70", + "nodeType": "YulLiteral", + "src": "14749:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14752:4:70", + "nodeType": "YulLiteral", + "src": "14752:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14742:6:70", + "nodeType": "YulIdentifier", + "src": "14742:6:70" + }, + "nativeSrc": "14742:15:70", + "nodeType": "YulFunctionCall", + "src": "14742:15:70" + }, + "nativeSrc": "14742:15:70", + "nodeType": "YulExpressionStatement", + "src": "14742:15:70" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "14636:127:70", + "nodeType": "YulFunctionDefinition", + "src": "14636:127:70" + }, + { + "body": { + "nativeSrc": "14814:206:70", + "nodeType": "YulBlock", + "src": "14814:206:70", + "statements": [ + { + "nativeSrc": "14824:19:70", + "nodeType": "YulAssignment", + "src": "14824:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14840:2:70", + "nodeType": "YulLiteral", + "src": "14840:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14834:5:70", + "nodeType": "YulIdentifier", + "src": "14834:5:70" + }, + "nativeSrc": "14834:9:70", + "nodeType": "YulFunctionCall", + "src": "14834:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "14824:6:70", + "nodeType": "YulIdentifier", + "src": "14824:6:70" + } + ] + }, + { + "nativeSrc": "14852:34:70", + "nodeType": "YulVariableDeclaration", + "src": "14852:34:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14874:6:70", + "nodeType": "YulIdentifier", + "src": "14874:6:70" + }, + { + "kind": "number", + "nativeSrc": "14882:3:70", + "nodeType": "YulLiteral", + "src": "14882:3:70", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14870:3:70", + "nodeType": "YulIdentifier", + "src": "14870:3:70" + }, + "nativeSrc": "14870:16:70", + "nodeType": "YulFunctionCall", + "src": "14870:16:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "14856:10:70", + "nodeType": "YulTypedName", + "src": "14856:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14961:22:70", + "nodeType": "YulBlock", + "src": "14961:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "14963:16:70", + "nodeType": "YulIdentifier", + "src": "14963:16:70" + }, + "nativeSrc": "14963:18:70", + "nodeType": "YulFunctionCall", + "src": "14963:18:70" + }, + "nativeSrc": "14963:18:70", + "nodeType": "YulExpressionStatement", + "src": "14963:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "14904:10:70", + "nodeType": "YulIdentifier", + "src": "14904:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14924:2:70", + "nodeType": "YulLiteral", + "src": "14924:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "14928:1:70", + "nodeType": "YulLiteral", + "src": "14928:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "14920:3:70", + "nodeType": "YulIdentifier", + "src": "14920:3:70" + }, + "nativeSrc": "14920:10:70", + "nodeType": "YulFunctionCall", + "src": "14920:10:70" + }, + { + "kind": "number", + "nativeSrc": "14932:1:70", + "nodeType": "YulLiteral", + "src": "14932:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14916:3:70", + "nodeType": "YulIdentifier", + "src": "14916:3:70" + }, + "nativeSrc": "14916:18:70", + "nodeType": "YulFunctionCall", + "src": "14916:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14901:2:70", + "nodeType": "YulIdentifier", + "src": "14901:2:70" + }, + "nativeSrc": "14901:34:70", + "nodeType": "YulFunctionCall", + "src": "14901:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "14940:10:70", + "nodeType": "YulIdentifier", + "src": "14940:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "14952:6:70", + "nodeType": "YulIdentifier", + "src": "14952:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "14937:2:70", + "nodeType": "YulIdentifier", + "src": "14937:2:70" + }, + "nativeSrc": "14937:22:70", + "nodeType": "YulFunctionCall", + "src": "14937:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "14898:2:70", + "nodeType": "YulIdentifier", + "src": "14898:2:70" + }, + "nativeSrc": "14898:62:70", + "nodeType": "YulFunctionCall", + "src": "14898:62:70" + }, + "nativeSrc": "14895:88:70", + "nodeType": "YulIf", + "src": "14895:88:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14999:2:70", + "nodeType": "YulLiteral", + "src": "14999:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "15003:10:70", + "nodeType": "YulIdentifier", + "src": "15003:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14992:6:70", + "nodeType": "YulIdentifier", + "src": "14992:6:70" + }, + "nativeSrc": "14992:22:70", + "nodeType": "YulFunctionCall", + "src": "14992:22:70" + }, + "nativeSrc": "14992:22:70", + "nodeType": "YulExpressionStatement", + "src": "14992:22:70" + } + ] + }, + "name": "allocate_memory_4297", + "nativeSrc": "14768:252:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "14803:6:70", + "nodeType": "YulTypedName", + "src": "14803:6:70", + "type": "" + } + ], + "src": "14768:252:70" + }, + { + "body": { + "nativeSrc": "15071:205:70", + "nodeType": "YulBlock", + "src": "15071:205:70", + "statements": [ + { + "nativeSrc": "15081:19:70", + "nodeType": "YulAssignment", + "src": "15081:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15097:2:70", + "nodeType": "YulLiteral", + "src": "15097:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15091:5:70", + "nodeType": "YulIdentifier", + "src": "15091:5:70" + }, + "nativeSrc": "15091:9:70", + "nodeType": "YulFunctionCall", + "src": "15091:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "15081:6:70", + "nodeType": "YulIdentifier", + "src": "15081:6:70" + } + ] + }, + { + "nativeSrc": "15109:33:70", + "nodeType": "YulVariableDeclaration", + "src": "15109:33:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "15131:6:70", + "nodeType": "YulIdentifier", + "src": "15131:6:70" + }, + { + "kind": "number", + "nativeSrc": "15139:2:70", + "nodeType": "YulLiteral", + "src": "15139:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15127:3:70", + "nodeType": "YulIdentifier", + "src": "15127:3:70" + }, + "nativeSrc": "15127:15:70", + "nodeType": "YulFunctionCall", + "src": "15127:15:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "15113:10:70", + "nodeType": "YulTypedName", + "src": "15113:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15217:22:70", + "nodeType": "YulBlock", + "src": "15217:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "15219:16:70", + "nodeType": "YulIdentifier", + "src": "15219:16:70" + }, + "nativeSrc": "15219:18:70", + "nodeType": "YulFunctionCall", + "src": "15219:18:70" + }, + "nativeSrc": "15219:18:70", + "nodeType": "YulExpressionStatement", + "src": "15219:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "15160:10:70", + "nodeType": "YulIdentifier", + "src": "15160:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15180:2:70", + "nodeType": "YulLiteral", + "src": "15180:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "15184:1:70", + "nodeType": "YulLiteral", + "src": "15184:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15176:3:70", + "nodeType": "YulIdentifier", + "src": "15176:3:70" + }, + "nativeSrc": "15176:10:70", + "nodeType": "YulFunctionCall", + "src": "15176:10:70" + }, + { + "kind": "number", + "nativeSrc": "15188:1:70", + "nodeType": "YulLiteral", + "src": "15188:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15172:3:70", + "nodeType": "YulIdentifier", + "src": "15172:3:70" + }, + "nativeSrc": "15172:18:70", + "nodeType": "YulFunctionCall", + "src": "15172:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15157:2:70", + "nodeType": "YulIdentifier", + "src": "15157:2:70" + }, + "nativeSrc": "15157:34:70", + "nodeType": "YulFunctionCall", + "src": "15157:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "15196:10:70", + "nodeType": "YulIdentifier", + "src": "15196:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "15208:6:70", + "nodeType": "YulIdentifier", + "src": "15208:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15193:2:70", + "nodeType": "YulIdentifier", + "src": "15193:2:70" + }, + "nativeSrc": "15193:22:70", + "nodeType": "YulFunctionCall", + "src": "15193:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "15154:2:70", + "nodeType": "YulIdentifier", + "src": "15154:2:70" + }, + "nativeSrc": "15154:62:70", + "nodeType": "YulFunctionCall", + "src": "15154:62:70" + }, + "nativeSrc": "15151:88:70", + "nodeType": "YulIf", + "src": "15151:88:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15255:2:70", + "nodeType": "YulLiteral", + "src": "15255:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "15259:10:70", + "nodeType": "YulIdentifier", + "src": "15259:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15248:6:70", + "nodeType": "YulIdentifier", + "src": "15248:6:70" + }, + "nativeSrc": "15248:22:70", + "nodeType": "YulFunctionCall", + "src": "15248:22:70" + }, + "nativeSrc": "15248:22:70", + "nodeType": "YulExpressionStatement", + "src": "15248:22:70" + } + ] + }, + "name": "allocate_memory_4301", + "nativeSrc": "15025:251:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "15060:6:70", + "nodeType": "YulTypedName", + "src": "15060:6:70", + "type": "" + } + ], + "src": "15025:251:70" + }, + { + "body": { + "nativeSrc": "15322:207:70", + "nodeType": "YulBlock", + "src": "15322:207:70", + "statements": [ + { + "nativeSrc": "15332:19:70", + "nodeType": "YulAssignment", + "src": "15332:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15348:2:70", + "nodeType": "YulLiteral", + "src": "15348:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15342:5:70", + "nodeType": "YulIdentifier", + "src": "15342:5:70" + }, + "nativeSrc": "15342:9:70", + "nodeType": "YulFunctionCall", + "src": "15342:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "15332:6:70", + "nodeType": "YulIdentifier", + "src": "15332:6:70" + } + ] + }, + { + "nativeSrc": "15360:35:70", + "nodeType": "YulVariableDeclaration", + "src": "15360:35:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "15382:6:70", + "nodeType": "YulIdentifier", + "src": "15382:6:70" + }, + { + "kind": "number", + "nativeSrc": "15390:4:70", + "nodeType": "YulLiteral", + "src": "15390:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15378:3:70", + "nodeType": "YulIdentifier", + "src": "15378:3:70" + }, + "nativeSrc": "15378:17:70", + "nodeType": "YulFunctionCall", + "src": "15378:17:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "15364:10:70", + "nodeType": "YulTypedName", + "src": "15364:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15470:22:70", + "nodeType": "YulBlock", + "src": "15470:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "15472:16:70", + "nodeType": "YulIdentifier", + "src": "15472:16:70" + }, + "nativeSrc": "15472:18:70", + "nodeType": "YulFunctionCall", + "src": "15472:18:70" + }, + "nativeSrc": "15472:18:70", + "nodeType": "YulExpressionStatement", + "src": "15472:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "15413:10:70", + "nodeType": "YulIdentifier", + "src": "15413:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15433:2:70", + "nodeType": "YulLiteral", + "src": "15433:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "15437:1:70", + "nodeType": "YulLiteral", + "src": "15437:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15429:3:70", + "nodeType": "YulIdentifier", + "src": "15429:3:70" + }, + "nativeSrc": "15429:10:70", + "nodeType": "YulFunctionCall", + "src": "15429:10:70" + }, + { + "kind": "number", + "nativeSrc": "15441:1:70", + "nodeType": "YulLiteral", + "src": "15441:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15425:3:70", + "nodeType": "YulIdentifier", + "src": "15425:3:70" + }, + "nativeSrc": "15425:18:70", + "nodeType": "YulFunctionCall", + "src": "15425:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15410:2:70", + "nodeType": "YulIdentifier", + "src": "15410:2:70" + }, + "nativeSrc": "15410:34:70", + "nodeType": "YulFunctionCall", + "src": "15410:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "15449:10:70", + "nodeType": "YulIdentifier", + "src": "15449:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "15461:6:70", + "nodeType": "YulIdentifier", + "src": "15461:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15446:2:70", + "nodeType": "YulIdentifier", + "src": "15446:2:70" + }, + "nativeSrc": "15446:22:70", + "nodeType": "YulFunctionCall", + "src": "15446:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "15407:2:70", + "nodeType": "YulIdentifier", + "src": "15407:2:70" + }, + "nativeSrc": "15407:62:70", + "nodeType": "YulFunctionCall", + "src": "15407:62:70" + }, + "nativeSrc": "15404:88:70", + "nodeType": "YulIf", + "src": "15404:88:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15508:2:70", + "nodeType": "YulLiteral", + "src": "15508:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "15512:10:70", + "nodeType": "YulIdentifier", + "src": "15512:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15501:6:70", + "nodeType": "YulIdentifier", + "src": "15501:6:70" + }, + "nativeSrc": "15501:22:70", + "nodeType": "YulFunctionCall", + "src": "15501:22:70" + }, + "nativeSrc": "15501:22:70", + "nodeType": "YulExpressionStatement", + "src": "15501:22:70" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "15281:248:70", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "15311:6:70", + "nodeType": "YulTypedName", + "src": "15311:6:70", + "type": "" + } + ], + "src": "15281:248:70" + }, + { + "body": { + "nativeSrc": "15587:836:70", + "nodeType": "YulBlock", + "src": "15587:836:70", + "statements": [ + { + "body": { + "nativeSrc": "15636:16:70", + "nodeType": "YulBlock", + "src": "15636:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15645:1:70", + "nodeType": "YulLiteral", + "src": "15645:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15648:1:70", + "nodeType": "YulLiteral", + "src": "15648:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15638:6:70", + "nodeType": "YulIdentifier", + "src": "15638:6:70" + }, + "nativeSrc": "15638:12:70", + "nodeType": "YulFunctionCall", + "src": "15638:12:70" + }, + "nativeSrc": "15638:12:70", + "nodeType": "YulExpressionStatement", + "src": "15638:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15615:6:70", + "nodeType": "YulIdentifier", + "src": "15615:6:70" + }, + { + "kind": "number", + "nativeSrc": "15623:4:70", + "nodeType": "YulLiteral", + "src": "15623:4:70", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15611:3:70", + "nodeType": "YulIdentifier", + "src": "15611:3:70" + }, + "nativeSrc": "15611:17:70", + "nodeType": "YulFunctionCall", + "src": "15611:17:70" + }, + { + "name": "end", + "nativeSrc": "15630:3:70", + "nodeType": "YulIdentifier", + "src": "15630:3:70" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15607:3:70", + "nodeType": "YulIdentifier", + "src": "15607:3:70" + }, + "nativeSrc": "15607:27:70", + "nodeType": "YulFunctionCall", + "src": "15607:27:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "15600:6:70", + "nodeType": "YulIdentifier", + "src": "15600:6:70" + }, + "nativeSrc": "15600:35:70", + "nodeType": "YulFunctionCall", + "src": "15600:35:70" + }, + "nativeSrc": "15597:55:70", + "nodeType": "YulIf", + "src": "15597:55:70" + }, + { + "nativeSrc": "15661:34:70", + "nodeType": "YulVariableDeclaration", + "src": "15661:34:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15688:6:70", + "nodeType": "YulIdentifier", + "src": "15688:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15675:12:70", + "nodeType": "YulIdentifier", + "src": "15675:12:70" + }, + "nativeSrc": "15675:20:70", + "nodeType": "YulFunctionCall", + "src": "15675:20:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "15665:6:70", + "nodeType": "YulTypedName", + "src": "15665:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "15704:28:70", + "nodeType": "YulVariableDeclaration", + "src": "15704:28:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15719:6:70", + "nodeType": "YulIdentifier", + "src": "15719:6:70" + }, + { + "kind": "number", + "nativeSrc": "15727:4:70", + "nodeType": "YulLiteral", + "src": "15727:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15715:3:70", + "nodeType": "YulIdentifier", + "src": "15715:3:70" + }, + "nativeSrc": "15715:17:70", + "nodeType": "YulFunctionCall", + "src": "15715:17:70" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "15708:3:70", + "nodeType": "YulTypedName", + "src": "15708:3:70", + "type": "" + } + ] + }, + { + "nativeSrc": "15741:16:70", + "nodeType": "YulVariableDeclaration", + "src": "15741:16:70", + "value": { + "kind": "number", + "nativeSrc": "15756:1:70", + "nodeType": "YulLiteral", + "src": "15756:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "15745:7:70", + "nodeType": "YulTypedName", + "src": "15745:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "15766:13:70", + "nodeType": "YulVariableDeclaration", + "src": "15766:13:70", + "value": { + "kind": "number", + "nativeSrc": "15778:1:70", + "nodeType": "YulLiteral", + "src": "15778:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "15770:4:70", + "nodeType": "YulTypedName", + "src": "15770:4:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15822:22:70", + "nodeType": "YulBlock", + "src": "15822:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "15824:16:70", + "nodeType": "YulIdentifier", + "src": "15824:16:70" + }, + "nativeSrc": "15824:18:70", + "nodeType": "YulFunctionCall", + "src": "15824:18:70" + }, + "nativeSrc": "15824:18:70", + "nodeType": "YulExpressionStatement", + "src": "15824:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "15794:6:70", + "nodeType": "YulIdentifier", + "src": "15794:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15810:2:70", + "nodeType": "YulLiteral", + "src": "15810:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "15814:1:70", + "nodeType": "YulLiteral", + "src": "15814:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15806:3:70", + "nodeType": "YulIdentifier", + "src": "15806:3:70" + }, + "nativeSrc": "15806:10:70", + "nodeType": "YulFunctionCall", + "src": "15806:10:70" + }, + { + "kind": "number", + "nativeSrc": "15818:1:70", + "nodeType": "YulLiteral", + "src": "15818:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15802:3:70", + "nodeType": "YulIdentifier", + "src": "15802:3:70" + }, + "nativeSrc": "15802:18:70", + "nodeType": "YulFunctionCall", + "src": "15802:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15791:2:70", + "nodeType": "YulIdentifier", + "src": "15791:2:70" + }, + "nativeSrc": "15791:30:70", + "nodeType": "YulFunctionCall", + "src": "15791:30:70" + }, + "nativeSrc": "15788:56:70", + "nodeType": "YulIf", + "src": "15788:56:70" + }, + { + "nativeSrc": "15853:43:70", + "nodeType": "YulVariableDeclaration", + "src": "15853:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "15875:6:70", + "nodeType": "YulIdentifier", + "src": "15875:6:70" + }, + { + "kind": "number", + "nativeSrc": "15883:2:70", + "nodeType": "YulLiteral", + "src": "15883:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15871:3:70", + "nodeType": "YulIdentifier", + "src": "15871:3:70" + }, + "nativeSrc": "15871:15:70", + "nodeType": "YulFunctionCall", + "src": "15871:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15892:2:70", + "nodeType": "YulLiteral", + "src": "15892:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "15888:3:70", + "nodeType": "YulIdentifier", + "src": "15888:3:70" + }, + "nativeSrc": "15888:7:70", + "nodeType": "YulFunctionCall", + "src": "15888:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15867:3:70", + "nodeType": "YulIdentifier", + "src": "15867:3:70" + }, + "nativeSrc": "15867:29:70", + "nodeType": "YulFunctionCall", + "src": "15867:29:70" + }, + "variables": [ + { + "name": "result", + "nativeSrc": "15857:6:70", + "nodeType": "YulTypedName", + "src": "15857:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "15905:25:70", + "nodeType": "YulAssignment", + "src": "15905:25:70", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "15917:6:70", + "nodeType": "YulIdentifier", + "src": "15917:6:70" + }, + { + "kind": "number", + "nativeSrc": "15925:4:70", + "nodeType": "YulLiteral", + "src": "15925:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15913:3:70", + "nodeType": "YulIdentifier", + "src": "15913:3:70" + }, + "nativeSrc": "15913:17:70", + "nodeType": "YulFunctionCall", + "src": "15913:17:70" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "15905:4:70", + "nodeType": "YulIdentifier", + "src": "15905:4:70" + } + ] + }, + { + "nativeSrc": "15939:15:70", + "nodeType": "YulVariableDeclaration", + "src": "15939:15:70", + "value": { + "kind": "number", + "nativeSrc": "15953:1:70", + "nodeType": "YulLiteral", + "src": "15953:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "15943:6:70", + "nodeType": "YulTypedName", + "src": "15943:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "15963:19:70", + "nodeType": "YulAssignment", + "src": "15963:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15979:2:70", + "nodeType": "YulLiteral", + "src": "15979:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15973:5:70", + "nodeType": "YulIdentifier", + "src": "15973:5:70" + }, + "nativeSrc": "15973:9:70", + "nodeType": "YulFunctionCall", + "src": "15973:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "15963:6:70", + "nodeType": "YulIdentifier", + "src": "15963:6:70" + } + ] + }, + { + "nativeSrc": "15991:60:70", + "nodeType": "YulVariableDeclaration", + "src": "15991:60:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16013:6:70", + "nodeType": "YulIdentifier", + "src": "16013:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "result", + "nativeSrc": "16029:6:70", + "nodeType": "YulIdentifier", + "src": "16029:6:70" + }, + { + "kind": "number", + "nativeSrc": "16037:2:70", + "nodeType": "YulLiteral", + "src": "16037:2:70", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16025:3:70", + "nodeType": "YulIdentifier", + "src": "16025:3:70" + }, + "nativeSrc": "16025:15:70", + "nodeType": "YulFunctionCall", + "src": "16025:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16046:2:70", + "nodeType": "YulLiteral", + "src": "16046:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "16042:3:70", + "nodeType": "YulIdentifier", + "src": "16042:3:70" + }, + "nativeSrc": "16042:7:70", + "nodeType": "YulFunctionCall", + "src": "16042:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16021:3:70", + "nodeType": "YulIdentifier", + "src": "16021:3:70" + }, + "nativeSrc": "16021:29:70", + "nodeType": "YulFunctionCall", + "src": "16021:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16009:3:70", + "nodeType": "YulIdentifier", + "src": "16009:3:70" + }, + "nativeSrc": "16009:42:70", + "nodeType": "YulFunctionCall", + "src": "16009:42:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "15995:10:70", + "nodeType": "YulTypedName", + "src": "15995:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16126:22:70", + "nodeType": "YulBlock", + "src": "16126:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "16128:16:70", + "nodeType": "YulIdentifier", + "src": "16128:16:70" + }, + "nativeSrc": "16128:18:70", + "nodeType": "YulFunctionCall", + "src": "16128:18:70" + }, + "nativeSrc": "16128:18:70", + "nodeType": "YulExpressionStatement", + "src": "16128:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "16069:10:70", + "nodeType": "YulIdentifier", + "src": "16069:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16089:2:70", + "nodeType": "YulLiteral", + "src": "16089:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "16093:1:70", + "nodeType": "YulLiteral", + "src": "16093:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16085:3:70", + "nodeType": "YulIdentifier", + "src": "16085:3:70" + }, + "nativeSrc": "16085:10:70", + "nodeType": "YulFunctionCall", + "src": "16085:10:70" + }, + { + "kind": "number", + "nativeSrc": "16097:1:70", + "nodeType": "YulLiteral", + "src": "16097:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16081:3:70", + "nodeType": "YulIdentifier", + "src": "16081:3:70" + }, + "nativeSrc": "16081:18:70", + "nodeType": "YulFunctionCall", + "src": "16081:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16066:2:70", + "nodeType": "YulIdentifier", + "src": "16066:2:70" + }, + "nativeSrc": "16066:34:70", + "nodeType": "YulFunctionCall", + "src": "16066:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "16105:10:70", + "nodeType": "YulIdentifier", + "src": "16105:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "16117:6:70", + "nodeType": "YulIdentifier", + "src": "16117:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16102:2:70", + "nodeType": "YulIdentifier", + "src": "16102:2:70" + }, + "nativeSrc": "16102:22:70", + "nodeType": "YulFunctionCall", + "src": "16102:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "16063:2:70", + "nodeType": "YulIdentifier", + "src": "16063:2:70" + }, + "nativeSrc": "16063:62:70", + "nodeType": "YulFunctionCall", + "src": "16063:62:70" + }, + "nativeSrc": "16060:88:70", + "nodeType": "YulIf", + "src": "16060:88:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16164:2:70", + "nodeType": "YulLiteral", + "src": "16164:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "16168:10:70", + "nodeType": "YulIdentifier", + "src": "16168:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16157:6:70", + "nodeType": "YulIdentifier", + "src": "16157:6:70" + }, + "nativeSrc": "16157:22:70", + "nodeType": "YulFunctionCall", + "src": "16157:22:70" + }, + "nativeSrc": "16157:22:70", + "nodeType": "YulExpressionStatement", + "src": "16157:22:70" + }, + { + "nativeSrc": "16188:17:70", + "nodeType": "YulAssignment", + "src": "16188:17:70", + "value": { + "name": "memPtr", + "nativeSrc": "16199:6:70", + "nodeType": "YulIdentifier", + "src": "16199:6:70" + }, + "variableNames": [ + { + "name": "array_1", + "nativeSrc": "16188:7:70", + "nodeType": "YulIdentifier", + "src": "16188:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16221:6:70", + "nodeType": "YulIdentifier", + "src": "16221:6:70" + }, + { + "name": "length", + "nativeSrc": "16229:6:70", + "nodeType": "YulIdentifier", + "src": "16229:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16214:6:70", + "nodeType": "YulIdentifier", + "src": "16214:6:70" + }, + "nativeSrc": "16214:22:70", + "nodeType": "YulFunctionCall", + "src": "16214:22:70" + }, + "nativeSrc": "16214:22:70", + "nodeType": "YulExpressionStatement", + "src": "16214:22:70" + }, + { + "body": { + "nativeSrc": "16274:16:70", + "nodeType": "YulBlock", + "src": "16274:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16283:1:70", + "nodeType": "YulLiteral", + "src": "16283:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16286:1:70", + "nodeType": "YulLiteral", + "src": "16286:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16276:6:70", + "nodeType": "YulIdentifier", + "src": "16276:6:70" + }, + "nativeSrc": "16276:12:70", + "nodeType": "YulFunctionCall", + "src": "16276:12:70" + }, + "nativeSrc": "16276:12:70", + "nodeType": "YulExpressionStatement", + "src": "16276:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "16255:3:70", + "nodeType": "YulIdentifier", + "src": "16255:3:70" + }, + { + "name": "length", + "nativeSrc": "16260:6:70", + "nodeType": "YulIdentifier", + "src": "16260:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16251:3:70", + "nodeType": "YulIdentifier", + "src": "16251:3:70" + }, + "nativeSrc": "16251:16:70", + "nodeType": "YulFunctionCall", + "src": "16251:16:70" + }, + { + "name": "end", + "nativeSrc": "16269:3:70", + "nodeType": "YulIdentifier", + "src": "16269:3:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16248:2:70", + "nodeType": "YulIdentifier", + "src": "16248:2:70" + }, + "nativeSrc": "16248:25:70", + "nodeType": "YulFunctionCall", + "src": "16248:25:70" + }, + "nativeSrc": "16245:45:70", + "nodeType": "YulIf", + "src": "16245:45:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16316:6:70", + "nodeType": "YulIdentifier", + "src": "16316:6:70" + }, + { + "kind": "number", + "nativeSrc": "16324:4:70", + "nodeType": "YulLiteral", + "src": "16324:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16312:3:70", + "nodeType": "YulIdentifier", + "src": "16312:3:70" + }, + "nativeSrc": "16312:17:70", + "nodeType": "YulFunctionCall", + "src": "16312:17:70" + }, + { + "name": "src", + "nativeSrc": "16331:3:70", + "nodeType": "YulIdentifier", + "src": "16331:3:70" + }, + { + "name": "length", + "nativeSrc": "16336:6:70", + "nodeType": "YulIdentifier", + "src": "16336:6:70" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "16299:12:70", + "nodeType": "YulIdentifier", + "src": "16299:12:70" + }, + "nativeSrc": "16299:44:70", + "nodeType": "YulFunctionCall", + "src": "16299:44:70" + }, + "nativeSrc": "16299:44:70", + "nodeType": "YulExpressionStatement", + "src": "16299:44:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16367:6:70", + "nodeType": "YulIdentifier", + "src": "16367:6:70" + }, + { + "name": "length", + "nativeSrc": "16375:6:70", + "nodeType": "YulIdentifier", + "src": "16375:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16363:3:70", + "nodeType": "YulIdentifier", + "src": "16363:3:70" + }, + "nativeSrc": "16363:19:70", + "nodeType": "YulFunctionCall", + "src": "16363:19:70" + }, + { + "kind": "number", + "nativeSrc": "16384:4:70", + "nodeType": "YulLiteral", + "src": "16384:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16359:3:70", + "nodeType": "YulIdentifier", + "src": "16359:3:70" + }, + "nativeSrc": "16359:30:70", + "nodeType": "YulFunctionCall", + "src": "16359:30:70" + }, + { + "kind": "number", + "nativeSrc": "16391:1:70", + "nodeType": "YulLiteral", + "src": "16391:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16352:6:70", + "nodeType": "YulIdentifier", + "src": "16352:6:70" + }, + "nativeSrc": "16352:41:70", + "nodeType": "YulFunctionCall", + "src": "16352:41:70" + }, + "nativeSrc": "16352:41:70", + "nodeType": "YulExpressionStatement", + "src": "16352:41:70" + }, + { + "nativeSrc": "16402:15:70", + "nodeType": "YulAssignment", + "src": "16402:15:70", + "value": { + "name": "memPtr", + "nativeSrc": "16411:6:70", + "nodeType": "YulIdentifier", + "src": "16411:6:70" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "16402:5:70", + "nodeType": "YulIdentifier", + "src": "16402:5:70" + } + ] + } + ] + }, + "name": "abi_decode_string", + "nativeSrc": "15534:889:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "15561:6:70", + "nodeType": "YulTypedName", + "src": "15561:6:70", + "type": "" + }, + { + "name": "end", + "nativeSrc": "15569:3:70", + "nodeType": "YulTypedName", + "src": "15569:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "15577:5:70", + "nodeType": "YulTypedName", + "src": "15577:5:70", + "type": "" + } + ], + "src": "15534:889:70" + }, + { + "body": { + "nativeSrc": "16560:549:70", + "nodeType": "YulBlock", + "src": "16560:549:70", + "statements": [ + { + "body": { + "nativeSrc": "16606:16:70", + "nodeType": "YulBlock", + "src": "16606:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16615:1:70", + "nodeType": "YulLiteral", + "src": "16615:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16618:1:70", + "nodeType": "YulLiteral", + "src": "16618:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16608:6:70", + "nodeType": "YulIdentifier", + "src": "16608:6:70" + }, + "nativeSrc": "16608:12:70", + "nodeType": "YulFunctionCall", + "src": "16608:12:70" + }, + "nativeSrc": "16608:12:70", + "nodeType": "YulExpressionStatement", + "src": "16608:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "16581:7:70", + "nodeType": "YulIdentifier", + "src": "16581:7:70" + }, + { + "name": "headStart", + "nativeSrc": "16590:9:70", + "nodeType": "YulIdentifier", + "src": "16590:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16577:3:70", + "nodeType": "YulIdentifier", + "src": "16577:3:70" + }, + "nativeSrc": "16577:23:70", + "nodeType": "YulFunctionCall", + "src": "16577:23:70" + }, + { + "kind": "number", + "nativeSrc": "16602:2:70", + "nodeType": "YulLiteral", + "src": "16602:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16573:3:70", + "nodeType": "YulIdentifier", + "src": "16573:3:70" + }, + "nativeSrc": "16573:32:70", + "nodeType": "YulFunctionCall", + "src": "16573:32:70" + }, + "nativeSrc": "16570:52:70", + "nodeType": "YulIf", + "src": "16570:52:70" + }, + { + "nativeSrc": "16631:37:70", + "nodeType": "YulVariableDeclaration", + "src": "16631:37:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16658:9:70", + "nodeType": "YulIdentifier", + "src": "16658:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16645:12:70", + "nodeType": "YulIdentifier", + "src": "16645:12:70" + }, + "nativeSrc": "16645:23:70", + "nodeType": "YulFunctionCall", + "src": "16645:23:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16635:6:70", + "nodeType": "YulTypedName", + "src": "16635:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16711:16:70", + "nodeType": "YulBlock", + "src": "16711:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16720:1:70", + "nodeType": "YulLiteral", + "src": "16720:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16723:1:70", + "nodeType": "YulLiteral", + "src": "16723:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16713:6:70", + "nodeType": "YulIdentifier", + "src": "16713:6:70" + }, + "nativeSrc": "16713:12:70", + "nodeType": "YulFunctionCall", + "src": "16713:12:70" + }, + "nativeSrc": "16713:12:70", + "nodeType": "YulExpressionStatement", + "src": "16713:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16683:6:70", + "nodeType": "YulIdentifier", + "src": "16683:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16699:2:70", + "nodeType": "YulLiteral", + "src": "16699:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "16703:1:70", + "nodeType": "YulLiteral", + "src": "16703:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16695:3:70", + "nodeType": "YulIdentifier", + "src": "16695:3:70" + }, + "nativeSrc": "16695:10:70", + "nodeType": "YulFunctionCall", + "src": "16695:10:70" + }, + { + "kind": "number", + "nativeSrc": "16707:1:70", + "nodeType": "YulLiteral", + "src": "16707:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16691:3:70", + "nodeType": "YulIdentifier", + "src": "16691:3:70" + }, + "nativeSrc": "16691:18:70", + "nodeType": "YulFunctionCall", + "src": "16691:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16680:2:70", + "nodeType": "YulIdentifier", + "src": "16680:2:70" + }, + "nativeSrc": "16680:30:70", + "nodeType": "YulFunctionCall", + "src": "16680:30:70" + }, + "nativeSrc": "16677:50:70", + "nodeType": "YulIf", + "src": "16677:50:70" + }, + { + "nativeSrc": "16736:60:70", + "nodeType": "YulAssignment", + "src": "16736:60:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16768:9:70", + "nodeType": "YulIdentifier", + "src": "16768:9:70" + }, + { + "name": "offset", + "nativeSrc": "16779:6:70", + "nodeType": "YulIdentifier", + "src": "16779:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16764:3:70", + "nodeType": "YulIdentifier", + "src": "16764:3:70" + }, + "nativeSrc": "16764:22:70", + "nodeType": "YulFunctionCall", + "src": "16764:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "16788:7:70", + "nodeType": "YulIdentifier", + "src": "16788:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "16746:17:70", + "nodeType": "YulIdentifier", + "src": "16746:17:70" + }, + "nativeSrc": "16746:50:70", + "nodeType": "YulFunctionCall", + "src": "16746:50:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16736:6:70", + "nodeType": "YulIdentifier", + "src": "16736:6:70" + } + ] + }, + { + "nativeSrc": "16805:48:70", + "nodeType": "YulVariableDeclaration", + "src": "16805:48:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16838:9:70", + "nodeType": "YulIdentifier", + "src": "16838:9:70" + }, + { + "kind": "number", + "nativeSrc": "16849:2:70", + "nodeType": "YulLiteral", + "src": "16849:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16834:3:70", + "nodeType": "YulIdentifier", + "src": "16834:3:70" + }, + "nativeSrc": "16834:18:70", + "nodeType": "YulFunctionCall", + "src": "16834:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16821:12:70", + "nodeType": "YulIdentifier", + "src": "16821:12:70" + }, + "nativeSrc": "16821:32:70", + "nodeType": "YulFunctionCall", + "src": "16821:32:70" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "16809:8:70", + "nodeType": "YulTypedName", + "src": "16809:8:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16898:16:70", + "nodeType": "YulBlock", + "src": "16898:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16907:1:70", + "nodeType": "YulLiteral", + "src": "16907:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16910:1:70", + "nodeType": "YulLiteral", + "src": "16910:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16900:6:70", + "nodeType": "YulIdentifier", + "src": "16900:6:70" + }, + "nativeSrc": "16900:12:70", + "nodeType": "YulFunctionCall", + "src": "16900:12:70" + }, + "nativeSrc": "16900:12:70", + "nodeType": "YulExpressionStatement", + "src": "16900:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "16868:8:70", + "nodeType": "YulIdentifier", + "src": "16868:8:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16886:2:70", + "nodeType": "YulLiteral", + "src": "16886:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "16890:1:70", + "nodeType": "YulLiteral", + "src": "16890:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16882:3:70", + "nodeType": "YulIdentifier", + "src": "16882:3:70" + }, + "nativeSrc": "16882:10:70", + "nodeType": "YulFunctionCall", + "src": "16882:10:70" + }, + { + "kind": "number", + "nativeSrc": "16894:1:70", + "nodeType": "YulLiteral", + "src": "16894:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16878:3:70", + "nodeType": "YulIdentifier", + "src": "16878:3:70" + }, + "nativeSrc": "16878:18:70", + "nodeType": "YulFunctionCall", + "src": "16878:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16865:2:70", + "nodeType": "YulIdentifier", + "src": "16865:2:70" + }, + "nativeSrc": "16865:32:70", + "nodeType": "YulFunctionCall", + "src": "16865:32:70" + }, + "nativeSrc": "16862:52:70", + "nodeType": "YulIf", + "src": "16862:52:70" + }, + { + "nativeSrc": "16923:62:70", + "nodeType": "YulAssignment", + "src": "16923:62:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16955:9:70", + "nodeType": "YulIdentifier", + "src": "16955:9:70" + }, + { + "name": "offset_1", + "nativeSrc": "16966:8:70", + "nodeType": "YulIdentifier", + "src": "16966:8:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16951:3:70", + "nodeType": "YulIdentifier", + "src": "16951:3:70" + }, + "nativeSrc": "16951:24:70", + "nodeType": "YulFunctionCall", + "src": "16951:24:70" + }, + { + "name": "dataEnd", + "nativeSrc": "16977:7:70", + "nodeType": "YulIdentifier", + "src": "16977:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "16933:17:70", + "nodeType": "YulIdentifier", + "src": "16933:17:70" + }, + "nativeSrc": "16933:52:70", + "nodeType": "YulFunctionCall", + "src": "16933:52:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16923:6:70", + "nodeType": "YulIdentifier", + "src": "16923:6:70" + } + ] + }, + { + "nativeSrc": "16994:45:70", + "nodeType": "YulVariableDeclaration", + "src": "16994:45:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17024:9:70", + "nodeType": "YulIdentifier", + "src": "17024:9:70" + }, + { + "kind": "number", + "nativeSrc": "17035:2:70", + "nodeType": "YulLiteral", + "src": "17035:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17020:3:70", + "nodeType": "YulIdentifier", + "src": "17020:3:70" + }, + "nativeSrc": "17020:18:70", + "nodeType": "YulFunctionCall", + "src": "17020:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "17007:12:70", + "nodeType": "YulIdentifier", + "src": "17007:12:70" + }, + "nativeSrc": "17007:32:70", + "nodeType": "YulFunctionCall", + "src": "17007:32:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "16998:5:70", + "nodeType": "YulTypedName", + "src": "16998:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17073:5:70", + "nodeType": "YulIdentifier", + "src": "17073:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "17048:24:70", + "nodeType": "YulIdentifier", + "src": "17048:24:70" + }, + "nativeSrc": "17048:31:70", + "nodeType": "YulFunctionCall", + "src": "17048:31:70" + }, + "nativeSrc": "17048:31:70", + "nodeType": "YulExpressionStatement", + "src": "17048:31:70" + }, + { + "nativeSrc": "17088:15:70", + "nodeType": "YulAssignment", + "src": "17088:15:70", + "value": { + "name": "value", + "nativeSrc": "17098:5:70", + "nodeType": "YulIdentifier", + "src": "17098:5:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "17088:6:70", + "nodeType": "YulIdentifier", + "src": "17088:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_payable", + "nativeSrc": "16428:681:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16510:9:70", + "nodeType": "YulTypedName", + "src": "16510:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16521:7:70", + "nodeType": "YulTypedName", + "src": "16521:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16533:6:70", + "nodeType": "YulTypedName", + "src": "16533:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16541:6:70", + "nodeType": "YulTypedName", + "src": "16541:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16549:6:70", + "nodeType": "YulTypedName", + "src": "16549:6:70", + "type": "" + } + ], + "src": "16428:681:70" + }, + { + "body": { + "nativeSrc": "17169:325:70", + "nodeType": "YulBlock", + "src": "17169:325:70", + "statements": [ + { + "nativeSrc": "17179:22:70", + "nodeType": "YulAssignment", + "src": "17179:22:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17193:1:70", + "nodeType": "YulLiteral", + "src": "17193:1:70", + "type": "", + "value": "1" + }, + { + "name": "data", + "nativeSrc": "17196:4:70", + "nodeType": "YulIdentifier", + "src": "17196:4:70" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17189:3:70", + "nodeType": "YulIdentifier", + "src": "17189:3:70" + }, + "nativeSrc": "17189:12:70", + "nodeType": "YulFunctionCall", + "src": "17189:12:70" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "17179:6:70", + "nodeType": "YulIdentifier", + "src": "17179:6:70" + } + ] + }, + { + "nativeSrc": "17210:38:70", + "nodeType": "YulVariableDeclaration", + "src": "17210:38:70", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "17240:4:70", + "nodeType": "YulIdentifier", + "src": "17240:4:70" + }, + { + "kind": "number", + "nativeSrc": "17246:1:70", + "nodeType": "YulLiteral", + "src": "17246:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17236:3:70", + "nodeType": "YulIdentifier", + "src": "17236:3:70" + }, + "nativeSrc": "17236:12:70", + "nodeType": "YulFunctionCall", + "src": "17236:12:70" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "17214:18:70", + "nodeType": "YulTypedName", + "src": "17214:18:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17287:31:70", + "nodeType": "YulBlock", + "src": "17287:31:70", + "statements": [ + { + "nativeSrc": "17289:27:70", + "nodeType": "YulAssignment", + "src": "17289:27:70", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "17303:6:70", + "nodeType": "YulIdentifier", + "src": "17303:6:70" + }, + { + "kind": "number", + "nativeSrc": "17311:4:70", + "nodeType": "YulLiteral", + "src": "17311:4:70", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17299:3:70", + "nodeType": "YulIdentifier", + "src": "17299:3:70" + }, + "nativeSrc": "17299:17:70", + "nodeType": "YulFunctionCall", + "src": "17299:17:70" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "17289:6:70", + "nodeType": "YulIdentifier", + "src": "17289:6:70" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "17267:18:70", + "nodeType": "YulIdentifier", + "src": "17267:18:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17260:6:70", + "nodeType": "YulIdentifier", + "src": "17260:6:70" + }, + "nativeSrc": "17260:26:70", + "nodeType": "YulFunctionCall", + "src": "17260:26:70" + }, + "nativeSrc": "17257:61:70", + "nodeType": "YulIf", + "src": "17257:61:70" + }, + { + "body": { + "nativeSrc": "17377:111:70", + "nodeType": "YulBlock", + "src": "17377:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17398:1:70", + "nodeType": "YulLiteral", + "src": "17398:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17405:3:70", + "nodeType": "YulLiteral", + "src": "17405:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "17410:10:70", + "nodeType": "YulLiteral", + "src": "17410:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "17401:3:70", + "nodeType": "YulIdentifier", + "src": "17401:3:70" + }, + "nativeSrc": "17401:20:70", + "nodeType": "YulFunctionCall", + "src": "17401:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17391:6:70", + "nodeType": "YulIdentifier", + "src": "17391:6:70" + }, + "nativeSrc": "17391:31:70", + "nodeType": "YulFunctionCall", + "src": "17391:31:70" + }, + "nativeSrc": "17391:31:70", + "nodeType": "YulExpressionStatement", + "src": "17391:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17442:1:70", + "nodeType": "YulLiteral", + "src": "17442:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "17445:4:70", + "nodeType": "YulLiteral", + "src": "17445:4:70", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17435:6:70", + "nodeType": "YulIdentifier", + "src": "17435:6:70" + }, + "nativeSrc": "17435:15:70", + "nodeType": "YulFunctionCall", + "src": "17435:15:70" + }, + "nativeSrc": "17435:15:70", + "nodeType": "YulExpressionStatement", + "src": "17435:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17470:1:70", + "nodeType": "YulLiteral", + "src": "17470:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17473:4:70", + "nodeType": "YulLiteral", + "src": "17473:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17463:6:70", + "nodeType": "YulIdentifier", + "src": "17463:6:70" + }, + "nativeSrc": "17463:15:70", + "nodeType": "YulFunctionCall", + "src": "17463:15:70" + }, + "nativeSrc": "17463:15:70", + "nodeType": "YulExpressionStatement", + "src": "17463:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "17333:18:70", + "nodeType": "YulIdentifier", + "src": "17333:18:70" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "17356:6:70", + "nodeType": "YulIdentifier", + "src": "17356:6:70" + }, + { + "kind": "number", + "nativeSrc": "17364:2:70", + "nodeType": "YulLiteral", + "src": "17364:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17353:2:70", + "nodeType": "YulIdentifier", + "src": "17353:2:70" + }, + "nativeSrc": "17353:14:70", + "nodeType": "YulFunctionCall", + "src": "17353:14:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "17330:2:70", + "nodeType": "YulIdentifier", + "src": "17330:2:70" + }, + "nativeSrc": "17330:38:70", + "nodeType": "YulFunctionCall", + "src": "17330:38:70" + }, + "nativeSrc": "17327:161:70", + "nodeType": "YulIf", + "src": "17327:161:70" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "17114:380:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "17149:4:70", + "nodeType": "YulTypedName", + "src": "17149:4:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "17158:6:70", + "nodeType": "YulTypedName", + "src": "17158:6:70", + "type": "" + } + ], + "src": "17114:380:70" + }, + { + "body": { + "nativeSrc": "17555:65:70", + "nodeType": "YulBlock", + "src": "17555:65:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17572:1:70", + "nodeType": "YulLiteral", + "src": "17572:1:70", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "17575:3:70", + "nodeType": "YulIdentifier", + "src": "17575:3:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17565:6:70", + "nodeType": "YulIdentifier", + "src": "17565:6:70" + }, + "nativeSrc": "17565:14:70", + "nodeType": "YulFunctionCall", + "src": "17565:14:70" + }, + "nativeSrc": "17565:14:70", + "nodeType": "YulExpressionStatement", + "src": "17565:14:70" + }, + { + "nativeSrc": "17588:26:70", + "nodeType": "YulAssignment", + "src": "17588:26:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17606:1:70", + "nodeType": "YulLiteral", + "src": "17606:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17609:4:70", + "nodeType": "YulLiteral", + "src": "17609:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17596:9:70", + "nodeType": "YulIdentifier", + "src": "17596:9:70" + }, + "nativeSrc": "17596:18:70", + "nodeType": "YulFunctionCall", + "src": "17596:18:70" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17588:4:70", + "nodeType": "YulIdentifier", + "src": "17588:4:70" + } + ] + } + ] + }, + "name": "array_dataslot_string_storage", + "nativeSrc": "17499:121:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "17538:3:70", + "nodeType": "YulTypedName", + "src": "17538:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "17546:4:70", + "nodeType": "YulTypedName", + "src": "17546:4:70", + "type": "" + } + ], + "src": "17499:121:70" + }, + { + "body": { + "nativeSrc": "17706:437:70", + "nodeType": "YulBlock", + "src": "17706:437:70", + "statements": [ + { + "body": { + "nativeSrc": "17739:398:70", + "nodeType": "YulBlock", + "src": "17739:398:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17760:1:70", + "nodeType": "YulLiteral", + "src": "17760:1:70", + "type": "", + "value": "0" + }, + { + "name": "array", + "nativeSrc": "17763:5:70", + "nodeType": "YulIdentifier", + "src": "17763:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17753:6:70", + "nodeType": "YulIdentifier", + "src": "17753:6:70" + }, + "nativeSrc": "17753:16:70", + "nodeType": "YulFunctionCall", + "src": "17753:16:70" + }, + "nativeSrc": "17753:16:70", + "nodeType": "YulExpressionStatement", + "src": "17753:16:70" + }, + { + "nativeSrc": "17782:30:70", + "nodeType": "YulVariableDeclaration", + "src": "17782:30:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17804:1:70", + "nodeType": "YulLiteral", + "src": "17804:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17807:4:70", + "nodeType": "YulLiteral", + "src": "17807:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17794:9:70", + "nodeType": "YulIdentifier", + "src": "17794:9:70" + }, + "nativeSrc": "17794:18:70", + "nodeType": "YulFunctionCall", + "src": "17794:18:70" + }, + "variables": [ + { + "name": "data", + "nativeSrc": "17786:4:70", + "nodeType": "YulTypedName", + "src": "17786:4:70", + "type": "" + } + ] + }, + { + "nativeSrc": "17825:57:70", + "nodeType": "YulVariableDeclaration", + "src": "17825:57:70", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "17848:4:70", + "nodeType": "YulIdentifier", + "src": "17848:4:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17858:1:70", + "nodeType": "YulLiteral", + "src": "17858:1:70", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17865:10:70", + "nodeType": "YulIdentifier", + "src": "17865:10:70" + }, + { + "kind": "number", + "nativeSrc": "17877:2:70", + "nodeType": "YulLiteral", + "src": "17877:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17861:3:70", + "nodeType": "YulIdentifier", + "src": "17861:3:70" + }, + "nativeSrc": "17861:19:70", + "nodeType": "YulFunctionCall", + "src": "17861:19:70" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17854:3:70", + "nodeType": "YulIdentifier", + "src": "17854:3:70" + }, + "nativeSrc": "17854:27:70", + "nodeType": "YulFunctionCall", + "src": "17854:27:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17844:3:70", + "nodeType": "YulIdentifier", + "src": "17844:3:70" + }, + "nativeSrc": "17844:38:70", + "nodeType": "YulFunctionCall", + "src": "17844:38:70" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "17829:11:70", + "nodeType": "YulTypedName", + "src": "17829:11:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17919:23:70", + "nodeType": "YulBlock", + "src": "17919:23:70", + "statements": [ + { + "nativeSrc": "17921:19:70", + "nodeType": "YulAssignment", + "src": "17921:19:70", + "value": { + "name": "data", + "nativeSrc": "17936:4:70", + "nodeType": "YulIdentifier", + "src": "17936:4:70" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "17921:11:70", + "nodeType": "YulIdentifier", + "src": "17921:11:70" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17901:10:70", + "nodeType": "YulIdentifier", + "src": "17901:10:70" + }, + { + "kind": "number", + "nativeSrc": "17913:4:70", + "nodeType": "YulLiteral", + "src": "17913:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17898:2:70", + "nodeType": "YulIdentifier", + "src": "17898:2:70" + }, + "nativeSrc": "17898:20:70", + "nodeType": "YulFunctionCall", + "src": "17898:20:70" + }, + "nativeSrc": "17895:47:70", + "nodeType": "YulIf", + "src": "17895:47:70" + }, + { + "nativeSrc": "17955:41:70", + "nodeType": "YulVariableDeclaration", + "src": "17955:41:70", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "17969:4:70", + "nodeType": "YulIdentifier", + "src": "17969:4:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17979:1:70", + "nodeType": "YulLiteral", + "src": "17979:1:70", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "17986:3:70", + "nodeType": "YulIdentifier", + "src": "17986:3:70" + }, + { + "kind": "number", + "nativeSrc": "17991:2:70", + "nodeType": "YulLiteral", + "src": "17991:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17982:3:70", + "nodeType": "YulIdentifier", + "src": "17982:3:70" + }, + "nativeSrc": "17982:12:70", + "nodeType": "YulFunctionCall", + "src": "17982:12:70" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17975:3:70", + "nodeType": "YulIdentifier", + "src": "17975:3:70" + }, + "nativeSrc": "17975:20:70", + "nodeType": "YulFunctionCall", + "src": "17975:20:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17965:3:70", + "nodeType": "YulIdentifier", + "src": "17965:3:70" + }, + "nativeSrc": "17965:31:70", + "nodeType": "YulFunctionCall", + "src": "17965:31:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "17959:2:70", + "nodeType": "YulTypedName", + "src": "17959:2:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18009:24:70", + "nodeType": "YulVariableDeclaration", + "src": "18009:24:70", + "value": { + "name": "deleteStart", + "nativeSrc": "18022:11:70", + "nodeType": "YulIdentifier", + "src": "18022:11:70" + }, + "variables": [ + { + "name": "start", + "nativeSrc": "18013:5:70", + "nodeType": "YulTypedName", + "src": "18013:5:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18107:20:70", + "nodeType": "YulBlock", + "src": "18107:20:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18116:5:70", + "nodeType": "YulIdentifier", + "src": "18116:5:70" + }, + { + "kind": "number", + "nativeSrc": "18123:1:70", + "nodeType": "YulLiteral", + "src": "18123:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18109:6:70", + "nodeType": "YulIdentifier", + "src": "18109:6:70" + }, + "nativeSrc": "18109:16:70", + "nodeType": "YulFunctionCall", + "src": "18109:16:70" + }, + "nativeSrc": "18109:16:70", + "nodeType": "YulExpressionStatement", + "src": "18109:16:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18057:5:70", + "nodeType": "YulIdentifier", + "src": "18057:5:70" + }, + { + "name": "_1", + "nativeSrc": "18064:2:70", + "nodeType": "YulIdentifier", + "src": "18064:2:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18054:2:70", + "nodeType": "YulIdentifier", + "src": "18054:2:70" + }, + "nativeSrc": "18054:13:70", + "nodeType": "YulFunctionCall", + "src": "18054:13:70" + }, + "nativeSrc": "18046:81:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18068:26:70", + "nodeType": "YulBlock", + "src": "18068:26:70", + "statements": [ + { + "nativeSrc": "18070:22:70", + "nodeType": "YulAssignment", + "src": "18070:22:70", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18083:5:70", + "nodeType": "YulIdentifier", + "src": "18083:5:70" + }, + { + "kind": "number", + "nativeSrc": "18090:1:70", + "nodeType": "YulLiteral", + "src": "18090:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18079:3:70", + "nodeType": "YulIdentifier", + "src": "18079:3:70" + }, + "nativeSrc": "18079:13:70", + "nodeType": "YulFunctionCall", + "src": "18079:13:70" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "18070:5:70", + "nodeType": "YulIdentifier", + "src": "18070:5:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18050:3:70", + "nodeType": "YulBlock", + "src": "18050:3:70", + "statements": [] + }, + "src": "18046:81:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "17722:3:70", + "nodeType": "YulIdentifier", + "src": "17722:3:70" + }, + { + "kind": "number", + "nativeSrc": "17727:2:70", + "nodeType": "YulLiteral", + "src": "17727:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17719:2:70", + "nodeType": "YulIdentifier", + "src": "17719:2:70" + }, + "nativeSrc": "17719:11:70", + "nodeType": "YulFunctionCall", + "src": "17719:11:70" + }, + "nativeSrc": "17716:421:70", + "nodeType": "YulIf", + "src": "17716:421:70" + } + ] + }, + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "17625:518:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "17678:5:70", + "nodeType": "YulTypedName", + "src": "17678:5:70", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17685:3:70", + "nodeType": "YulTypedName", + "src": "17685:3:70", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "17690:10:70", + "nodeType": "YulTypedName", + "src": "17690:10:70", + "type": "" + } + ], + "src": "17625:518:70" + }, + { + "body": { + "nativeSrc": "18233:81:70", + "nodeType": "YulBlock", + "src": "18233:81:70", + "statements": [ + { + "nativeSrc": "18243:65:70", + "nodeType": "YulAssignment", + "src": "18243:65:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "18258:4:70", + "nodeType": "YulIdentifier", + "src": "18258:4:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18276:1:70", + "nodeType": "YulLiteral", + "src": "18276:1:70", + "type": "", + "value": "3" + }, + { + "name": "len", + "nativeSrc": "18279:3:70", + "nodeType": "YulIdentifier", + "src": "18279:3:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18272:3:70", + "nodeType": "YulIdentifier", + "src": "18272:3:70" + }, + "nativeSrc": "18272:11:70", + "nodeType": "YulFunctionCall", + "src": "18272:11:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18289:1:70", + "nodeType": "YulLiteral", + "src": "18289:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18285:3:70", + "nodeType": "YulIdentifier", + "src": "18285:3:70" + }, + "nativeSrc": "18285:6:70", + "nodeType": "YulFunctionCall", + "src": "18285:6:70" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18268:3:70", + "nodeType": "YulIdentifier", + "src": "18268:3:70" + }, + "nativeSrc": "18268:24:70", + "nodeType": "YulFunctionCall", + "src": "18268:24:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18264:3:70", + "nodeType": "YulIdentifier", + "src": "18264:3:70" + }, + "nativeSrc": "18264:29:70", + "nodeType": "YulFunctionCall", + "src": "18264:29:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18254:3:70", + "nodeType": "YulIdentifier", + "src": "18254:3:70" + }, + "nativeSrc": "18254:40:70", + "nodeType": "YulFunctionCall", + "src": "18254:40:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18300:1:70", + "nodeType": "YulLiteral", + "src": "18300:1:70", + "type": "", + "value": "1" + }, + { + "name": "len", + "nativeSrc": "18303:3:70", + "nodeType": "YulIdentifier", + "src": "18303:3:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18296:3:70", + "nodeType": "YulIdentifier", + "src": "18296:3:70" + }, + "nativeSrc": "18296:11:70", + "nodeType": "YulFunctionCall", + "src": "18296:11:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "18251:2:70", + "nodeType": "YulIdentifier", + "src": "18251:2:70" + }, + "nativeSrc": "18251:57:70", + "nodeType": "YulFunctionCall", + "src": "18251:57:70" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "18243:4:70", + "nodeType": "YulIdentifier", + "src": "18243:4:70" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "18148:166:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18210:4:70", + "nodeType": "YulTypedName", + "src": "18210:4:70", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18216:3:70", + "nodeType": "YulTypedName", + "src": "18216:3:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "18224:4:70", + "nodeType": "YulTypedName", + "src": "18224:4:70", + "type": "" + } + ], + "src": "18148:166:70" + }, + { + "body": { + "nativeSrc": "18415:1203:70", + "nodeType": "YulBlock", + "src": "18415:1203:70", + "statements": [ + { + "nativeSrc": "18425:24:70", + "nodeType": "YulVariableDeclaration", + "src": "18425:24:70", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "18445:3:70", + "nodeType": "YulIdentifier", + "src": "18445:3:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18439:5:70", + "nodeType": "YulIdentifier", + "src": "18439:5:70" + }, + "nativeSrc": "18439:10:70", + "nodeType": "YulFunctionCall", + "src": "18439:10:70" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "18429:6:70", + "nodeType": "YulTypedName", + "src": "18429:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18492:22:70", + "nodeType": "YulBlock", + "src": "18492:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "18494:16:70", + "nodeType": "YulIdentifier", + "src": "18494:16:70" + }, + "nativeSrc": "18494:18:70", + "nodeType": "YulFunctionCall", + "src": "18494:18:70" + }, + "nativeSrc": "18494:18:70", + "nodeType": "YulExpressionStatement", + "src": "18494:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18464:6:70", + "nodeType": "YulIdentifier", + "src": "18464:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18480:2:70", + "nodeType": "YulLiteral", + "src": "18480:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "18484:1:70", + "nodeType": "YulLiteral", + "src": "18484:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18476:3:70", + "nodeType": "YulIdentifier", + "src": "18476:3:70" + }, + "nativeSrc": "18476:10:70", + "nodeType": "YulFunctionCall", + "src": "18476:10:70" + }, + { + "kind": "number", + "nativeSrc": "18488:1:70", + "nodeType": "YulLiteral", + "src": "18488:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18472:3:70", + "nodeType": "YulIdentifier", + "src": "18472:3:70" + }, + "nativeSrc": "18472:18:70", + "nodeType": "YulFunctionCall", + "src": "18472:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18461:2:70", + "nodeType": "YulIdentifier", + "src": "18461:2:70" + }, + "nativeSrc": "18461:30:70", + "nodeType": "YulFunctionCall", + "src": "18461:30:70" + }, + "nativeSrc": "18458:56:70", + "nodeType": "YulIf", + "src": "18458:56:70" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18567:4:70", + "nodeType": "YulIdentifier", + "src": "18567:4:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18605:4:70", + "nodeType": "YulIdentifier", + "src": "18605:4:70" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18599:5:70", + "nodeType": "YulIdentifier", + "src": "18599:5:70" + }, + "nativeSrc": "18599:11:70", + "nodeType": "YulFunctionCall", + "src": "18599:11:70" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "18573:25:70", + "nodeType": "YulIdentifier", + "src": "18573:25:70" + }, + "nativeSrc": "18573:38:70", + "nodeType": "YulFunctionCall", + "src": "18573:38:70" + }, + { + "name": "newLen", + "nativeSrc": "18613:6:70", + "nodeType": "YulIdentifier", + "src": "18613:6:70" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "18523:43:70", + "nodeType": "YulIdentifier", + "src": "18523:43:70" + }, + "nativeSrc": "18523:97:70", + "nodeType": "YulFunctionCall", + "src": "18523:97:70" + }, + "nativeSrc": "18523:97:70", + "nodeType": "YulExpressionStatement", + "src": "18523:97:70" + }, + { + "nativeSrc": "18629:18:70", + "nodeType": "YulVariableDeclaration", + "src": "18629:18:70", + "value": { + "kind": "number", + "nativeSrc": "18646:1:70", + "nodeType": "YulLiteral", + "src": "18646:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "18633:9:70", + "nodeType": "YulTypedName", + "src": "18633:9:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18656:17:70", + "nodeType": "YulAssignment", + "src": "18656:17:70", + "value": { + "kind": "number", + "nativeSrc": "18669:4:70", + "nodeType": "YulLiteral", + "src": "18669:4:70", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "18656:9:70", + "nodeType": "YulIdentifier", + "src": "18656:9:70" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "18719:642:70", + "nodeType": "YulBlock", + "src": "18719:642:70", + "statements": [ + { + "nativeSrc": "18733:35:70", + "nodeType": "YulVariableDeclaration", + "src": "18733:35:70", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18752:6:70", + "nodeType": "YulIdentifier", + "src": "18752:6:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18764:2:70", + "nodeType": "YulLiteral", + "src": "18764:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18760:3:70", + "nodeType": "YulIdentifier", + "src": "18760:3:70" + }, + "nativeSrc": "18760:7:70", + "nodeType": "YulFunctionCall", + "src": "18760:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18748:3:70", + "nodeType": "YulIdentifier", + "src": "18748:3:70" + }, + "nativeSrc": "18748:20:70", + "nodeType": "YulFunctionCall", + "src": "18748:20:70" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "18737:7:70", + "nodeType": "YulTypedName", + "src": "18737:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18781:49:70", + "nodeType": "YulVariableDeclaration", + "src": "18781:49:70", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18825:4:70", + "nodeType": "YulIdentifier", + "src": "18825:4:70" + } + ], + "functionName": { + "name": "array_dataslot_string_storage", + "nativeSrc": "18795:29:70", + "nodeType": "YulIdentifier", + "src": "18795:29:70" + }, + "nativeSrc": "18795:35:70", + "nodeType": "YulFunctionCall", + "src": "18795:35:70" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "18785:6:70", + "nodeType": "YulTypedName", + "src": "18785:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "18843:10:70", + "nodeType": "YulVariableDeclaration", + "src": "18843:10:70", + "value": { + "kind": "number", + "nativeSrc": "18852:1:70", + "nodeType": "YulLiteral", + "src": "18852:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "18847:1:70", + "nodeType": "YulTypedName", + "src": "18847:1:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18923:165:70", + "nodeType": "YulBlock", + "src": "18923:165:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "18948:6:70", + "nodeType": "YulIdentifier", + "src": "18948:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "18966:3:70", + "nodeType": "YulIdentifier", + "src": "18966:3:70" + }, + { + "name": "srcOffset", + "nativeSrc": "18971:9:70", + "nodeType": "YulIdentifier", + "src": "18971:9:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18962:3:70", + "nodeType": "YulIdentifier", + "src": "18962:3:70" + }, + "nativeSrc": "18962:19:70", + "nodeType": "YulFunctionCall", + "src": "18962:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18956:5:70", + "nodeType": "YulIdentifier", + "src": "18956:5:70" + }, + "nativeSrc": "18956:26:70", + "nodeType": "YulFunctionCall", + "src": "18956:26:70" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18941:6:70", + "nodeType": "YulIdentifier", + "src": "18941:6:70" + }, + "nativeSrc": "18941:42:70", + "nodeType": "YulFunctionCall", + "src": "18941:42:70" + }, + "nativeSrc": "18941:42:70", + "nodeType": "YulExpressionStatement", + "src": "18941:42:70" + }, + { + "nativeSrc": "19000:24:70", + "nodeType": "YulAssignment", + "src": "19000:24:70", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19014:6:70", + "nodeType": "YulIdentifier", + "src": "19014:6:70" + }, + { + "kind": "number", + "nativeSrc": "19022:1:70", + "nodeType": "YulLiteral", + "src": "19022:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19010:3:70", + "nodeType": "YulIdentifier", + "src": "19010:3:70" + }, + "nativeSrc": "19010:14:70", + "nodeType": "YulFunctionCall", + "src": "19010:14:70" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "19000:6:70", + "nodeType": "YulIdentifier", + "src": "19000:6:70" + } + ] + }, + { + "nativeSrc": "19041:33:70", + "nodeType": "YulAssignment", + "src": "19041:33:70", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "19058:9:70", + "nodeType": "YulIdentifier", + "src": "19058:9:70" + }, + { + "kind": "number", + "nativeSrc": "19069:4:70", + "nodeType": "YulLiteral", + "src": "19069:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19054:3:70", + "nodeType": "YulIdentifier", + "src": "19054:3:70" + }, + "nativeSrc": "19054:20:70", + "nodeType": "YulFunctionCall", + "src": "19054:20:70" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19041:9:70", + "nodeType": "YulIdentifier", + "src": "19041:9:70" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "18877:1:70", + "nodeType": "YulIdentifier", + "src": "18877:1:70" + }, + { + "name": "loopEnd", + "nativeSrc": "18880:7:70", + "nodeType": "YulIdentifier", + "src": "18880:7:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18874:2:70", + "nodeType": "YulIdentifier", + "src": "18874:2:70" + }, + "nativeSrc": "18874:14:70", + "nodeType": "YulFunctionCall", + "src": "18874:14:70" + }, + "nativeSrc": "18866:222:70", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18889:21:70", + "nodeType": "YulBlock", + "src": "18889:21:70", + "statements": [ + { + "nativeSrc": "18891:17:70", + "nodeType": "YulAssignment", + "src": "18891:17:70", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "18900:1:70", + "nodeType": "YulIdentifier", + "src": "18900:1:70" + }, + { + "kind": "number", + "nativeSrc": "18903:4:70", + "nodeType": "YulLiteral", + "src": "18903:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18896:3:70", + "nodeType": "YulIdentifier", + "src": "18896:3:70" + }, + "nativeSrc": "18896:12:70", + "nodeType": "YulFunctionCall", + "src": "18896:12:70" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "18891:1:70", + "nodeType": "YulIdentifier", + "src": "18891:1:70" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18870:3:70", + "nodeType": "YulBlock", + "src": "18870:3:70", + "statements": [] + }, + "src": "18866:222:70" + }, + { + "body": { + "nativeSrc": "19136:166:70", + "nodeType": "YulBlock", + "src": "19136:166:70", + "statements": [ + { + "nativeSrc": "19154:43:70", + "nodeType": "YulVariableDeclaration", + "src": "19154:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19181:3:70", + "nodeType": "YulIdentifier", + "src": "19181:3:70" + }, + { + "name": "srcOffset", + "nativeSrc": "19186:9:70", + "nodeType": "YulIdentifier", + "src": "19186:9:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19177:3:70", + "nodeType": "YulIdentifier", + "src": "19177:3:70" + }, + "nativeSrc": "19177:19:70", + "nodeType": "YulFunctionCall", + "src": "19177:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19171:5:70", + "nodeType": "YulIdentifier", + "src": "19171:5:70" + }, + "nativeSrc": "19171:26:70", + "nodeType": "YulFunctionCall", + "src": "19171:26:70" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "19158:9:70", + "nodeType": "YulTypedName", + "src": "19158:9:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19221:6:70", + "nodeType": "YulIdentifier", + "src": "19221:6:70" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "19233:9:70", + "nodeType": "YulIdentifier", + "src": "19233:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19260:1:70", + "nodeType": "YulLiteral", + "src": "19260:1:70", + "type": "", + "value": "3" + }, + { + "name": "newLen", + "nativeSrc": "19263:6:70", + "nodeType": "YulIdentifier", + "src": "19263:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19256:3:70", + "nodeType": "YulIdentifier", + "src": "19256:3:70" + }, + "nativeSrc": "19256:14:70", + "nodeType": "YulFunctionCall", + "src": "19256:14:70" + }, + { + "kind": "number", + "nativeSrc": "19272:3:70", + "nodeType": "YulLiteral", + "src": "19272:3:70", + "type": "", + "value": "248" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19252:3:70", + "nodeType": "YulIdentifier", + "src": "19252:3:70" + }, + "nativeSrc": "19252:24:70", + "nodeType": "YulFunctionCall", + "src": "19252:24:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19282:1:70", + "nodeType": "YulLiteral", + "src": "19282:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19278:3:70", + "nodeType": "YulIdentifier", + "src": "19278:3:70" + }, + "nativeSrc": "19278:6:70", + "nodeType": "YulFunctionCall", + "src": "19278:6:70" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "19248:3:70", + "nodeType": "YulIdentifier", + "src": "19248:3:70" + }, + "nativeSrc": "19248:37:70", + "nodeType": "YulFunctionCall", + "src": "19248:37:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19244:3:70", + "nodeType": "YulIdentifier", + "src": "19244:3:70" + }, + "nativeSrc": "19244:42:70", + "nodeType": "YulFunctionCall", + "src": "19244:42:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19229:3:70", + "nodeType": "YulIdentifier", + "src": "19229:3:70" + }, + "nativeSrc": "19229:58:70", + "nodeType": "YulFunctionCall", + "src": "19229:58:70" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19214:6:70", + "nodeType": "YulIdentifier", + "src": "19214:6:70" + }, + "nativeSrc": "19214:74:70", + "nodeType": "YulFunctionCall", + "src": "19214:74:70" + }, + "nativeSrc": "19214:74:70", + "nodeType": "YulExpressionStatement", + "src": "19214:74:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "19107:7:70", + "nodeType": "YulIdentifier", + "src": "19107:7:70" + }, + { + "name": "newLen", + "nativeSrc": "19116:6:70", + "nodeType": "YulIdentifier", + "src": "19116:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19104:2:70", + "nodeType": "YulIdentifier", + "src": "19104:2:70" + }, + "nativeSrc": "19104:19:70", + "nodeType": "YulFunctionCall", + "src": "19104:19:70" + }, + "nativeSrc": "19101:201:70", + "nodeType": "YulIf", + "src": "19101:201:70" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19322:4:70", + "nodeType": "YulIdentifier", + "src": "19322:4:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19336:1:70", + "nodeType": "YulLiteral", + "src": "19336:1:70", + "type": "", + "value": "1" + }, + { + "name": "newLen", + "nativeSrc": "19339:6:70", + "nodeType": "YulIdentifier", + "src": "19339:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19332:3:70", + "nodeType": "YulIdentifier", + "src": "19332:3:70" + }, + "nativeSrc": "19332:14:70", + "nodeType": "YulFunctionCall", + "src": "19332:14:70" + }, + { + "kind": "number", + "nativeSrc": "19348:1:70", + "nodeType": "YulLiteral", + "src": "19348:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19328:3:70", + "nodeType": "YulIdentifier", + "src": "19328:3:70" + }, + "nativeSrc": "19328:22:70", + "nodeType": "YulFunctionCall", + "src": "19328:22:70" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19315:6:70", + "nodeType": "YulIdentifier", + "src": "19315:6:70" + }, + "nativeSrc": "19315:36:70", + "nodeType": "YulFunctionCall", + "src": "19315:36:70" + }, + "nativeSrc": "19315:36:70", + "nodeType": "YulExpressionStatement", + "src": "19315:36:70" + } + ] + }, + "nativeSrc": "18712:649:70", + "nodeType": "YulCase", + "src": "18712:649:70", + "value": { + "kind": "number", + "nativeSrc": "18717:1:70", + "nodeType": "YulLiteral", + "src": "18717:1:70", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19378:234:70", + "nodeType": "YulBlock", + "src": "19378:234:70", + "statements": [ + { + "nativeSrc": "19392:14:70", + "nodeType": "YulVariableDeclaration", + "src": "19392:14:70", + "value": { + "kind": "number", + "nativeSrc": "19405:1:70", + "nodeType": "YulLiteral", + "src": "19405:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19396:5:70", + "nodeType": "YulTypedName", + "src": "19396:5:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19441:67:70", + "nodeType": "YulBlock", + "src": "19441:67:70", + "statements": [ + { + "nativeSrc": "19459:35:70", + "nodeType": "YulAssignment", + "src": "19459:35:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19478:3:70", + "nodeType": "YulIdentifier", + "src": "19478:3:70" + }, + { + "name": "srcOffset", + "nativeSrc": "19483:9:70", + "nodeType": "YulIdentifier", + "src": "19483:9:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19474:3:70", + "nodeType": "YulIdentifier", + "src": "19474:3:70" + }, + "nativeSrc": "19474:19:70", + "nodeType": "YulFunctionCall", + "src": "19474:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19468:5:70", + "nodeType": "YulIdentifier", + "src": "19468:5:70" + }, + "nativeSrc": "19468:26:70", + "nodeType": "YulFunctionCall", + "src": "19468:26:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19459:5:70", + "nodeType": "YulIdentifier", + "src": "19459:5:70" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "19422:6:70", + "nodeType": "YulIdentifier", + "src": "19422:6:70" + }, + "nativeSrc": "19419:89:70", + "nodeType": "YulIf", + "src": "19419:89:70" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19528:4:70", + "nodeType": "YulIdentifier", + "src": "19528:4:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19587:5:70", + "nodeType": "YulIdentifier", + "src": "19587:5:70" + }, + { + "name": "newLen", + "nativeSrc": "19594:6:70", + "nodeType": "YulIdentifier", + "src": "19594:6:70" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "19534:52:70", + "nodeType": "YulIdentifier", + "src": "19534:52:70" + }, + "nativeSrc": "19534:67:70", + "nodeType": "YulFunctionCall", + "src": "19534:67:70" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19521:6:70", + "nodeType": "YulIdentifier", + "src": "19521:6:70" + }, + "nativeSrc": "19521:81:70", + "nodeType": "YulFunctionCall", + "src": "19521:81:70" + }, + "nativeSrc": "19521:81:70", + "nodeType": "YulExpressionStatement", + "src": "19521:81:70" + } + ] + }, + "nativeSrc": "19370:242:70", + "nodeType": "YulCase", + "src": "19370:242:70", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18692:6:70", + "nodeType": "YulIdentifier", + "src": "18692:6:70" + }, + { + "kind": "number", + "nativeSrc": "18700:2:70", + "nodeType": "YulLiteral", + "src": "18700:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18689:2:70", + "nodeType": "YulIdentifier", + "src": "18689:2:70" + }, + "nativeSrc": "18689:14:70", + "nodeType": "YulFunctionCall", + "src": "18689:14:70" + }, + "nativeSrc": "18682:930:70", + "nodeType": "YulSwitch", + "src": "18682:930:70" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "18319:1299:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18400:4:70", + "nodeType": "YulTypedName", + "src": "18400:4:70", + "type": "" + }, + { + "name": "src", + "nativeSrc": "18406:3:70", + "nodeType": "YulTypedName", + "src": "18406:3:70", + "type": "" + } + ], + "src": "18319:1299:70" + }, + { + "body": { + "nativeSrc": "19752:259:70", + "nodeType": "YulBlock", + "src": "19752:259:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19769:9:70", + "nodeType": "YulIdentifier", + "src": "19769:9:70" + }, + { + "kind": "number", + "nativeSrc": "19780:2:70", + "nodeType": "YulLiteral", + "src": "19780:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19762:6:70", + "nodeType": "YulIdentifier", + "src": "19762:6:70" + }, + "nativeSrc": "19762:21:70", + "nodeType": "YulFunctionCall", + "src": "19762:21:70" + }, + "nativeSrc": "19762:21:70", + "nodeType": "YulExpressionStatement", + "src": "19762:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19803:9:70", + "nodeType": "YulIdentifier", + "src": "19803:9:70" + }, + { + "kind": "number", + "nativeSrc": "19814:2:70", + "nodeType": "YulLiteral", + "src": "19814:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19799:3:70", + "nodeType": "YulIdentifier", + "src": "19799:3:70" + }, + "nativeSrc": "19799:18:70", + "nodeType": "YulFunctionCall", + "src": "19799:18:70" + }, + { + "name": "value1", + "nativeSrc": "19819:6:70", + "nodeType": "YulIdentifier", + "src": "19819:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19792:6:70", + "nodeType": "YulIdentifier", + "src": "19792:6:70" + }, + "nativeSrc": "19792:34:70", + "nodeType": "YulFunctionCall", + "src": "19792:34:70" + }, + "nativeSrc": "19792:34:70", + "nodeType": "YulExpressionStatement", + "src": "19792:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19852:9:70", + "nodeType": "YulIdentifier", + "src": "19852:9:70" + }, + { + "kind": "number", + "nativeSrc": "19863:2:70", + "nodeType": "YulLiteral", + "src": "19863:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19848:3:70", + "nodeType": "YulIdentifier", + "src": "19848:3:70" + }, + "nativeSrc": "19848:18:70", + "nodeType": "YulFunctionCall", + "src": "19848:18:70" + }, + { + "name": "value0", + "nativeSrc": "19868:6:70", + "nodeType": "YulIdentifier", + "src": "19868:6:70" + }, + { + "name": "value1", + "nativeSrc": "19876:6:70", + "nodeType": "YulIdentifier", + "src": "19876:6:70" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "19835:12:70", + "nodeType": "YulIdentifier", + "src": "19835:12:70" + }, + "nativeSrc": "19835:48:70", + "nodeType": "YulFunctionCall", + "src": "19835:48:70" + }, + "nativeSrc": "19835:48:70", + "nodeType": "YulExpressionStatement", + "src": "19835:48:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19907:9:70", + "nodeType": "YulIdentifier", + "src": "19907:9:70" + }, + { + "name": "value1", + "nativeSrc": "19918:6:70", + "nodeType": "YulIdentifier", + "src": "19918:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19903:3:70", + "nodeType": "YulIdentifier", + "src": "19903:3:70" + }, + "nativeSrc": "19903:22:70", + "nodeType": "YulFunctionCall", + "src": "19903:22:70" + }, + { + "kind": "number", + "nativeSrc": "19927:2:70", + "nodeType": "YulLiteral", + "src": "19927:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19899:3:70", + "nodeType": "YulIdentifier", + "src": "19899:3:70" + }, + "nativeSrc": "19899:31:70", + "nodeType": "YulFunctionCall", + "src": "19899:31:70" + }, + { + "kind": "number", + "nativeSrc": "19932:1:70", + "nodeType": "YulLiteral", + "src": "19932:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19892:6:70", + "nodeType": "YulIdentifier", + "src": "19892:6:70" + }, + "nativeSrc": "19892:42:70", + "nodeType": "YulFunctionCall", + "src": "19892:42:70" + }, + "nativeSrc": "19892:42:70", + "nodeType": "YulExpressionStatement", + "src": "19892:42:70" + }, + { + "nativeSrc": "19943:62:70", + "nodeType": "YulAssignment", + "src": "19943:62:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19959:9:70", + "nodeType": "YulIdentifier", + "src": "19959:9:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "19978:6:70", + "nodeType": "YulIdentifier", + "src": "19978:6:70" + }, + { + "kind": "number", + "nativeSrc": "19986:2:70", + "nodeType": "YulLiteral", + "src": "19986:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19974:3:70", + "nodeType": "YulIdentifier", + "src": "19974:3:70" + }, + "nativeSrc": "19974:15:70", + "nodeType": "YulFunctionCall", + "src": "19974:15:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19995:2:70", + "nodeType": "YulLiteral", + "src": "19995:2:70", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19991:3:70", + "nodeType": "YulIdentifier", + "src": "19991:3:70" + }, + "nativeSrc": "19991:7:70", + "nodeType": "YulFunctionCall", + "src": "19991:7:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19970:3:70", + "nodeType": "YulIdentifier", + "src": "19970:3:70" + }, + "nativeSrc": "19970:29:70", + "nodeType": "YulFunctionCall", + "src": "19970:29:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19955:3:70", + "nodeType": "YulIdentifier", + "src": "19955:3:70" + }, + "nativeSrc": "19955:45:70", + "nodeType": "YulFunctionCall", + "src": "19955:45:70" + }, + { + "kind": "number", + "nativeSrc": "20002:2:70", + "nodeType": "YulLiteral", + "src": "20002:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19951:3:70", + "nodeType": "YulIdentifier", + "src": "19951:3:70" + }, + "nativeSrc": "19951:54:70", + "nodeType": "YulFunctionCall", + "src": "19951:54:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19943:4:70", + "nodeType": "YulIdentifier", + "src": "19943:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "19623:388:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19713:9:70", + "nodeType": "YulTypedName", + "src": "19713:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19724:6:70", + "nodeType": "YulTypedName", + "src": "19724:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19732:6:70", + "nodeType": "YulTypedName", + "src": "19732:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19743:4:70", + "nodeType": "YulTypedName", + "src": "19743:4:70", + "type": "" + } + ], + "src": "19623:388:70" + }, + { + "body": { + "nativeSrc": "20094:177:70", + "nodeType": "YulBlock", + "src": "20094:177:70", + "statements": [ + { + "body": { + "nativeSrc": "20140:16:70", + "nodeType": "YulBlock", + "src": "20140:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20149:1:70", + "nodeType": "YulLiteral", + "src": "20149:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20152:1:70", + "nodeType": "YulLiteral", + "src": "20152:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20142:6:70", + "nodeType": "YulIdentifier", + "src": "20142:6:70" + }, + "nativeSrc": "20142:12:70", + "nodeType": "YulFunctionCall", + "src": "20142:12:70" + }, + "nativeSrc": "20142:12:70", + "nodeType": "YulExpressionStatement", + "src": "20142:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20115:7:70", + "nodeType": "YulIdentifier", + "src": "20115:7:70" + }, + { + "name": "headStart", + "nativeSrc": "20124:9:70", + "nodeType": "YulIdentifier", + "src": "20124:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20111:3:70", + "nodeType": "YulIdentifier", + "src": "20111:3:70" + }, + "nativeSrc": "20111:23:70", + "nodeType": "YulFunctionCall", + "src": "20111:23:70" + }, + { + "kind": "number", + "nativeSrc": "20136:2:70", + "nodeType": "YulLiteral", + "src": "20136:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20107:3:70", + "nodeType": "YulIdentifier", + "src": "20107:3:70" + }, + "nativeSrc": "20107:32:70", + "nodeType": "YulFunctionCall", + "src": "20107:32:70" + }, + "nativeSrc": "20104:52:70", + "nodeType": "YulIf", + "src": "20104:52:70" + }, + { + "nativeSrc": "20165:36:70", + "nodeType": "YulVariableDeclaration", + "src": "20165:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20191:9:70", + "nodeType": "YulIdentifier", + "src": "20191:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "20178:12:70", + "nodeType": "YulIdentifier", + "src": "20178:12:70" + }, + "nativeSrc": "20178:23:70", + "nodeType": "YulFunctionCall", + "src": "20178:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "20169:5:70", + "nodeType": "YulTypedName", + "src": "20169:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20235:5:70", + "nodeType": "YulIdentifier", + "src": "20235:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "20210:24:70", + "nodeType": "YulIdentifier", + "src": "20210:24:70" + }, + "nativeSrc": "20210:31:70", + "nodeType": "YulFunctionCall", + "src": "20210:31:70" + }, + "nativeSrc": "20210:31:70", + "nodeType": "YulExpressionStatement", + "src": "20210:31:70" + }, + { + "nativeSrc": "20250:15:70", + "nodeType": "YulAssignment", + "src": "20250:15:70", + "value": { + "name": "value", + "nativeSrc": "20260:5:70", + "nodeType": "YulIdentifier", + "src": "20260:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20250:6:70", + "nodeType": "YulIdentifier", + "src": "20250:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payable", + "nativeSrc": "20016:255:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20060:9:70", + "nodeType": "YulTypedName", + "src": "20060:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "20071:7:70", + "nodeType": "YulTypedName", + "src": "20071:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20083:6:70", + "nodeType": "YulTypedName", + "src": "20083:6:70", + "type": "" + } + ], + "src": "20016:255:70" + }, + { + "body": { + "nativeSrc": "20450:171:70", + "nodeType": "YulBlock", + "src": "20450:171:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20467:9:70", + "nodeType": "YulIdentifier", + "src": "20467:9:70" + }, + { + "kind": "number", + "nativeSrc": "20478:2:70", + "nodeType": "YulLiteral", + "src": "20478:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20460:6:70", + "nodeType": "YulIdentifier", + "src": "20460:6:70" + }, + "nativeSrc": "20460:21:70", + "nodeType": "YulFunctionCall", + "src": "20460:21:70" + }, + "nativeSrc": "20460:21:70", + "nodeType": "YulExpressionStatement", + "src": "20460:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20501:9:70", + "nodeType": "YulIdentifier", + "src": "20501:9:70" + }, + { + "kind": "number", + "nativeSrc": "20512:2:70", + "nodeType": "YulLiteral", + "src": "20512:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20497:3:70", + "nodeType": "YulIdentifier", + "src": "20497:3:70" + }, + "nativeSrc": "20497:18:70", + "nodeType": "YulFunctionCall", + "src": "20497:18:70" + }, + { + "kind": "number", + "nativeSrc": "20517:2:70", + "nodeType": "YulLiteral", + "src": "20517:2:70", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20490:6:70", + "nodeType": "YulIdentifier", + "src": "20490:6:70" + }, + "nativeSrc": "20490:30:70", + "nodeType": "YulFunctionCall", + "src": "20490:30:70" + }, + "nativeSrc": "20490:30:70", + "nodeType": "YulExpressionStatement", + "src": "20490:30:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20540:9:70", + "nodeType": "YulIdentifier", + "src": "20540:9:70" + }, + { + "kind": "number", + "nativeSrc": "20551:2:70", + "nodeType": "YulLiteral", + "src": "20551:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20536:3:70", + "nodeType": "YulIdentifier", + "src": "20536:3:70" + }, + "nativeSrc": "20536:18:70", + "nodeType": "YulFunctionCall", + "src": "20536:18:70" + }, + { + "hexValue": "4549503731323a20556e696e697469616c697a6564", + "kind": "string", + "nativeSrc": "20556:23:70", + "nodeType": "YulLiteral", + "src": "20556:23:70", + "type": "", + "value": "EIP712: Uninitialized" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20529:6:70", + "nodeType": "YulIdentifier", + "src": "20529:6:70" + }, + "nativeSrc": "20529:51:70", + "nodeType": "YulFunctionCall", + "src": "20529:51:70" + }, + "nativeSrc": "20529:51:70", + "nodeType": "YulExpressionStatement", + "src": "20529:51:70" + }, + { + "nativeSrc": "20589:26:70", + "nodeType": "YulAssignment", + "src": "20589:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20601:9:70", + "nodeType": "YulIdentifier", + "src": "20601:9:70" + }, + { + "kind": "number", + "nativeSrc": "20612:2:70", + "nodeType": "YulLiteral", + "src": "20612:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20597:3:70", + "nodeType": "YulIdentifier", + "src": "20597:3:70" + }, + "nativeSrc": "20597:18:70", + "nodeType": "YulFunctionCall", + "src": "20597:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20589:4:70", + "nodeType": "YulIdentifier", + "src": "20589:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "20276:345:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20427:9:70", + "nodeType": "YulTypedName", + "src": "20427:9:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20441:4:70", + "nodeType": "YulTypedName", + "src": "20441:4:70", + "type": "" + } + ], + "src": "20276:345:70" + }, + { + "body": { + "nativeSrc": "20658:95:70", + "nodeType": "YulBlock", + "src": "20658:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20675:1:70", + "nodeType": "YulLiteral", + "src": "20675:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20682:3:70", + "nodeType": "YulLiteral", + "src": "20682:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "20687:10:70", + "nodeType": "YulLiteral", + "src": "20687:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "20678:3:70", + "nodeType": "YulIdentifier", + "src": "20678:3:70" + }, + "nativeSrc": "20678:20:70", + "nodeType": "YulFunctionCall", + "src": "20678:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20668:6:70", + "nodeType": "YulIdentifier", + "src": "20668:6:70" + }, + "nativeSrc": "20668:31:70", + "nodeType": "YulFunctionCall", + "src": "20668:31:70" + }, + "nativeSrc": "20668:31:70", + "nodeType": "YulExpressionStatement", + "src": "20668:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20715:1:70", + "nodeType": "YulLiteral", + "src": "20715:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "20718:4:70", + "nodeType": "YulLiteral", + "src": "20718:4:70", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20708:6:70", + "nodeType": "YulIdentifier", + "src": "20708:6:70" + }, + "nativeSrc": "20708:15:70", + "nodeType": "YulFunctionCall", + "src": "20708:15:70" + }, + "nativeSrc": "20708:15:70", + "nodeType": "YulExpressionStatement", + "src": "20708:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20739:1:70", + "nodeType": "YulLiteral", + "src": "20739:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20742:4:70", + "nodeType": "YulLiteral", + "src": "20742:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20732:6:70", + "nodeType": "YulIdentifier", + "src": "20732:6:70" + }, + "nativeSrc": "20732:15:70", + "nodeType": "YulFunctionCall", + "src": "20732:15:70" + }, + "nativeSrc": "20732:15:70", + "nodeType": "YulExpressionStatement", + "src": "20732:15:70" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "20626:127:70", + "nodeType": "YulFunctionDefinition", + "src": "20626:127:70" + }, + { + "body": { + "nativeSrc": "20807:79:70", + "nodeType": "YulBlock", + "src": "20807:79:70", + "statements": [ + { + "nativeSrc": "20817:17:70", + "nodeType": "YulAssignment", + "src": "20817:17:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "20829:1:70", + "nodeType": "YulIdentifier", + "src": "20829:1:70" + }, + { + "name": "y", + "nativeSrc": "20832:1:70", + "nodeType": "YulIdentifier", + "src": "20832:1:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20825:3:70", + "nodeType": "YulIdentifier", + "src": "20825:3:70" + }, + "nativeSrc": "20825:9:70", + "nodeType": "YulFunctionCall", + "src": "20825:9:70" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "20817:4:70", + "nodeType": "YulIdentifier", + "src": "20817:4:70" + } + ] + }, + { + "body": { + "nativeSrc": "20858:22:70", + "nodeType": "YulBlock", + "src": "20858:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "20860:16:70", + "nodeType": "YulIdentifier", + "src": "20860:16:70" + }, + "nativeSrc": "20860:18:70", + "nodeType": "YulFunctionCall", + "src": "20860:18:70" + }, + "nativeSrc": "20860:18:70", + "nodeType": "YulExpressionStatement", + "src": "20860:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "20849:4:70", + "nodeType": "YulIdentifier", + "src": "20849:4:70" + }, + { + "name": "x", + "nativeSrc": "20855:1:70", + "nodeType": "YulIdentifier", + "src": "20855:1:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20846:2:70", + "nodeType": "YulIdentifier", + "src": "20846:2:70" + }, + "nativeSrc": "20846:11:70", + "nodeType": "YulFunctionCall", + "src": "20846:11:70" + }, + "nativeSrc": "20843:37:70", + "nodeType": "YulIf", + "src": "20843:37:70" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "20758:128:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "20789:1:70", + "nodeType": "YulTypedName", + "src": "20789:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "20792:1:70", + "nodeType": "YulTypedName", + "src": "20792:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "20798:4:70", + "nodeType": "YulTypedName", + "src": "20798:4:70", + "type": "" + } + ], + "src": "20758:128:70" + }, + { + "body": { + "nativeSrc": "21021:201:70", + "nodeType": "YulBlock", + "src": "21021:201:70", + "statements": [ + { + "body": { + "nativeSrc": "21059:16:70", + "nodeType": "YulBlock", + "src": "21059:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21068:1:70", + "nodeType": "YulLiteral", + "src": "21068:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21071:1:70", + "nodeType": "YulLiteral", + "src": "21071:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21061:6:70", + "nodeType": "YulIdentifier", + "src": "21061:6:70" + }, + "nativeSrc": "21061:12:70", + "nodeType": "YulFunctionCall", + "src": "21061:12:70" + }, + "nativeSrc": "21061:12:70", + "nodeType": "YulExpressionStatement", + "src": "21061:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "21037:10:70", + "nodeType": "YulIdentifier", + "src": "21037:10:70" + }, + { + "name": "endIndex", + "nativeSrc": "21049:8:70", + "nodeType": "YulIdentifier", + "src": "21049:8:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21034:2:70", + "nodeType": "YulIdentifier", + "src": "21034:2:70" + }, + "nativeSrc": "21034:24:70", + "nodeType": "YulFunctionCall", + "src": "21034:24:70" + }, + "nativeSrc": "21031:44:70", + "nodeType": "YulIf", + "src": "21031:44:70" + }, + { + "body": { + "nativeSrc": "21108:16:70", + "nodeType": "YulBlock", + "src": "21108:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21117:1:70", + "nodeType": "YulLiteral", + "src": "21117:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21120:1:70", + "nodeType": "YulLiteral", + "src": "21120:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21110:6:70", + "nodeType": "YulIdentifier", + "src": "21110:6:70" + }, + "nativeSrc": "21110:12:70", + "nodeType": "YulFunctionCall", + "src": "21110:12:70" + }, + "nativeSrc": "21110:12:70", + "nodeType": "YulExpressionStatement", + "src": "21110:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "21090:8:70", + "nodeType": "YulIdentifier", + "src": "21090:8:70" + }, + { + "name": "length", + "nativeSrc": "21100:6:70", + "nodeType": "YulIdentifier", + "src": "21100:6:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21087:2:70", + "nodeType": "YulIdentifier", + "src": "21087:2:70" + }, + "nativeSrc": "21087:20:70", + "nodeType": "YulFunctionCall", + "src": "21087:20:70" + }, + "nativeSrc": "21084:40:70", + "nodeType": "YulIf", + "src": "21084:40:70" + }, + { + "nativeSrc": "21133:36:70", + "nodeType": "YulAssignment", + "src": "21133:36:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "21150:6:70", + "nodeType": "YulIdentifier", + "src": "21150:6:70" + }, + { + "name": "startIndex", + "nativeSrc": "21158:10:70", + "nodeType": "YulIdentifier", + "src": "21158:10:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21146:3:70", + "nodeType": "YulIdentifier", + "src": "21146:3:70" + }, + "nativeSrc": "21146:23:70", + "nodeType": "YulFunctionCall", + "src": "21146:23:70" + }, + "variableNames": [ + { + "name": "offsetOut", + "nativeSrc": "21133:9:70", + "nodeType": "YulIdentifier", + "src": "21133:9:70" + } + ] + }, + { + "nativeSrc": "21178:38:70", + "nodeType": "YulAssignment", + "src": "21178:38:70", + "value": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "21195:8:70", + "nodeType": "YulIdentifier", + "src": "21195:8:70" + }, + { + "name": "startIndex", + "nativeSrc": "21205:10:70", + "nodeType": "YulIdentifier", + "src": "21205:10:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21191:3:70", + "nodeType": "YulIdentifier", + "src": "21191:3:70" + }, + "nativeSrc": "21191:25:70", + "nodeType": "YulFunctionCall", + "src": "21191:25:70" + }, + "variableNames": [ + { + "name": "lengthOut", + "nativeSrc": "21178:9:70", + "nodeType": "YulIdentifier", + "src": "21178:9:70" + } + ] + } + ] + }, + "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", + "nativeSrc": "20891:331:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "20955:6:70", + "nodeType": "YulTypedName", + "src": "20955:6:70", + "type": "" + }, + { + "name": "length", + "nativeSrc": "20963:6:70", + "nodeType": "YulTypedName", + "src": "20963:6:70", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "20971:10:70", + "nodeType": "YulTypedName", + "src": "20971:10:70", + "type": "" + }, + { + "name": "endIndex", + "nativeSrc": "20983:8:70", + "nodeType": "YulTypedName", + "src": "20983:8:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "offsetOut", + "nativeSrc": "20996:9:70", + "nodeType": "YulTypedName", + "src": "20996:9:70", + "type": "" + }, + { + "name": "lengthOut", + "nativeSrc": "21007:9:70", + "nodeType": "YulTypedName", + "src": "21007:9:70", + "type": "" + } + ], + "src": "20891:331:70" + }, + { + "body": { + "nativeSrc": "21259:95:70", + "nodeType": "YulBlock", + "src": "21259:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21276:1:70", + "nodeType": "YulLiteral", + "src": "21276:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21283:3:70", + "nodeType": "YulLiteral", + "src": "21283:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "21288:10:70", + "nodeType": "YulLiteral", + "src": "21288:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21279:3:70", + "nodeType": "YulIdentifier", + "src": "21279:3:70" + }, + "nativeSrc": "21279:20:70", + "nodeType": "YulFunctionCall", + "src": "21279:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21269:6:70", + "nodeType": "YulIdentifier", + "src": "21269:6:70" + }, + "nativeSrc": "21269:31:70", + "nodeType": "YulFunctionCall", + "src": "21269:31:70" + }, + "nativeSrc": "21269:31:70", + "nodeType": "YulExpressionStatement", + "src": "21269:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21316:1:70", + "nodeType": "YulLiteral", + "src": "21316:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "21319:4:70", + "nodeType": "YulLiteral", + "src": "21319:4:70", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21309:6:70", + "nodeType": "YulIdentifier", + "src": "21309:6:70" + }, + "nativeSrc": "21309:15:70", + "nodeType": "YulFunctionCall", + "src": "21309:15:70" + }, + "nativeSrc": "21309:15:70", + "nodeType": "YulExpressionStatement", + "src": "21309:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21340:1:70", + "nodeType": "YulLiteral", + "src": "21340:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21343:4:70", + "nodeType": "YulLiteral", + "src": "21343:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21333:6:70", + "nodeType": "YulIdentifier", + "src": "21333:6:70" + }, + "nativeSrc": "21333:15:70", + "nodeType": "YulFunctionCall", + "src": "21333:15:70" + }, + "nativeSrc": "21333:15:70", + "nodeType": "YulExpressionStatement", + "src": "21333:15:70" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "21227:127:70", + "nodeType": "YulFunctionDefinition", + "src": "21227:127:70" + }, + { + "body": { + "nativeSrc": "21453:427:70", + "nodeType": "YulBlock", + "src": "21453:427:70", + "statements": [ + { + "nativeSrc": "21463:51:70", + "nodeType": "YulVariableDeclaration", + "src": "21463:51:70", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "21502:11:70", + "nodeType": "YulIdentifier", + "src": "21502:11:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21489:12:70", + "nodeType": "YulIdentifier", + "src": "21489:12:70" + }, + "nativeSrc": "21489:25:70", + "nodeType": "YulFunctionCall", + "src": "21489:25:70" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "21467:18:70", + "nodeType": "YulTypedName", + "src": "21467:18:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21603:16:70", + "nodeType": "YulBlock", + "src": "21603:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21612:1:70", + "nodeType": "YulLiteral", + "src": "21612:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21615:1:70", + "nodeType": "YulLiteral", + "src": "21615:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21605:6:70", + "nodeType": "YulIdentifier", + "src": "21605:6:70" + }, + "nativeSrc": "21605:12:70", + "nodeType": "YulFunctionCall", + "src": "21605:12:70" + }, + "nativeSrc": "21605:12:70", + "nodeType": "YulExpressionStatement", + "src": "21605:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "21537:18:70", + "nodeType": "YulIdentifier", + "src": "21537:18:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "21565:12:70", + "nodeType": "YulIdentifier", + "src": "21565:12:70" + }, + "nativeSrc": "21565:14:70", + "nodeType": "YulFunctionCall", + "src": "21565:14:70" + }, + { + "name": "base_ref", + "nativeSrc": "21581:8:70", + "nodeType": "YulIdentifier", + "src": "21581:8:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21561:3:70", + "nodeType": "YulIdentifier", + "src": "21561:3:70" + }, + "nativeSrc": "21561:29:70", + "nodeType": "YulFunctionCall", + "src": "21561:29:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21596:2:70", + "nodeType": "YulLiteral", + "src": "21596:2:70", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "21592:3:70", + "nodeType": "YulIdentifier", + "src": "21592:3:70" + }, + "nativeSrc": "21592:7:70", + "nodeType": "YulFunctionCall", + "src": "21592:7:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21557:3:70", + "nodeType": "YulIdentifier", + "src": "21557:3:70" + }, + "nativeSrc": "21557:43:70", + "nodeType": "YulFunctionCall", + "src": "21557:43:70" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "21533:3:70", + "nodeType": "YulIdentifier", + "src": "21533:3:70" + }, + "nativeSrc": "21533:68:70", + "nodeType": "YulFunctionCall", + "src": "21533:68:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "21526:6:70", + "nodeType": "YulIdentifier", + "src": "21526:6:70" + }, + "nativeSrc": "21526:76:70", + "nodeType": "YulFunctionCall", + "src": "21526:76:70" + }, + "nativeSrc": "21523:96:70", + "nodeType": "YulIf", + "src": "21523:96:70" + }, + { + "nativeSrc": "21628:47:70", + "nodeType": "YulVariableDeclaration", + "src": "21628:47:70", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "21646:8:70", + "nodeType": "YulIdentifier", + "src": "21646:8:70" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "21656:18:70", + "nodeType": "YulIdentifier", + "src": "21656:18:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21642:3:70", + "nodeType": "YulIdentifier", + "src": "21642:3:70" + }, + "nativeSrc": "21642:33:70", + "nodeType": "YulFunctionCall", + "src": "21642:33:70" + }, + "variables": [ + { + "name": "addr_1", + "nativeSrc": "21632:6:70", + "nodeType": "YulTypedName", + "src": "21632:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "21684:30:70", + "nodeType": "YulAssignment", + "src": "21684:30:70", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "21707:6:70", + "nodeType": "YulIdentifier", + "src": "21707:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21694:12:70", + "nodeType": "YulIdentifier", + "src": "21694:12:70" + }, + "nativeSrc": "21694:20:70", + "nodeType": "YulFunctionCall", + "src": "21694:20:70" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "21684:6:70", + "nodeType": "YulIdentifier", + "src": "21684:6:70" + } + ] + }, + { + "body": { + "nativeSrc": "21757:16:70", + "nodeType": "YulBlock", + "src": "21757:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21766:1:70", + "nodeType": "YulLiteral", + "src": "21766:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21769:1:70", + "nodeType": "YulLiteral", + "src": "21769:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21759:6:70", + "nodeType": "YulIdentifier", + "src": "21759:6:70" + }, + "nativeSrc": "21759:12:70", + "nodeType": "YulFunctionCall", + "src": "21759:12:70" + }, + "nativeSrc": "21759:12:70", + "nodeType": "YulExpressionStatement", + "src": "21759:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "21729:6:70", + "nodeType": "YulIdentifier", + "src": "21729:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21745:2:70", + "nodeType": "YulLiteral", + "src": "21745:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "21749:1:70", + "nodeType": "YulLiteral", + "src": "21749:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21741:3:70", + "nodeType": "YulIdentifier", + "src": "21741:3:70" + }, + "nativeSrc": "21741:10:70", + "nodeType": "YulFunctionCall", + "src": "21741:10:70" + }, + { + "kind": "number", + "nativeSrc": "21753:1:70", + "nodeType": "YulLiteral", + "src": "21753:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21737:3:70", + "nodeType": "YulIdentifier", + "src": "21737:3:70" + }, + "nativeSrc": "21737:18:70", + "nodeType": "YulFunctionCall", + "src": "21737:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21726:2:70", + "nodeType": "YulIdentifier", + "src": "21726:2:70" + }, + "nativeSrc": "21726:30:70", + "nodeType": "YulFunctionCall", + "src": "21726:30:70" + }, + "nativeSrc": "21723:50:70", + "nodeType": "YulIf", + "src": "21723:50:70" + }, + { + "nativeSrc": "21782:25:70", + "nodeType": "YulAssignment", + "src": "21782:25:70", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "21794:6:70", + "nodeType": "YulIdentifier", + "src": "21794:6:70" + }, + { + "kind": "number", + "nativeSrc": "21802:4:70", + "nodeType": "YulLiteral", + "src": "21802:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21790:3:70", + "nodeType": "YulIdentifier", + "src": "21790:3:70" + }, + "nativeSrc": "21790:17:70", + "nodeType": "YulFunctionCall", + "src": "21790:17:70" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "21782:4:70", + "nodeType": "YulIdentifier", + "src": "21782:4:70" + } + ] + }, + { + "body": { + "nativeSrc": "21858:16:70", + "nodeType": "YulBlock", + "src": "21858:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21867:1:70", + "nodeType": "YulLiteral", + "src": "21867:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21870:1:70", + "nodeType": "YulLiteral", + "src": "21870:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21860:6:70", + "nodeType": "YulIdentifier", + "src": "21860:6:70" + }, + "nativeSrc": "21860:12:70", + "nodeType": "YulFunctionCall", + "src": "21860:12:70" + }, + "nativeSrc": "21860:12:70", + "nodeType": "YulExpressionStatement", + "src": "21860:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "21823:4:70", + "nodeType": "YulIdentifier", + "src": "21823:4:70" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "21833:12:70", + "nodeType": "YulIdentifier", + "src": "21833:12:70" + }, + "nativeSrc": "21833:14:70", + "nodeType": "YulFunctionCall", + "src": "21833:14:70" + }, + { + "name": "length", + "nativeSrc": "21849:6:70", + "nodeType": "YulIdentifier", + "src": "21849:6:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21829:3:70", + "nodeType": "YulIdentifier", + "src": "21829:3:70" + }, + "nativeSrc": "21829:27:70", + "nodeType": "YulFunctionCall", + "src": "21829:27:70" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "21819:3:70", + "nodeType": "YulIdentifier", + "src": "21819:3:70" + }, + "nativeSrc": "21819:38:70", + "nodeType": "YulFunctionCall", + "src": "21819:38:70" + }, + "nativeSrc": "21816:58:70", + "nodeType": "YulIf", + "src": "21816:58:70" + } + ] + }, + "name": "access_calldata_tail_t_bytes_calldata_ptr", + "nativeSrc": "21359:521:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "21410:8:70", + "nodeType": "YulTypedName", + "src": "21410:8:70", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "21420:11:70", + "nodeType": "YulTypedName", + "src": "21420:11:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "21436:4:70", + "nodeType": "YulTypedName", + "src": "21436:4:70", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21442:6:70", + "nodeType": "YulTypedName", + "src": "21442:6:70", + "type": "" + } + ], + "src": "21359:521:70" + }, + { + "body": { + "nativeSrc": "22078:247:70", + "nodeType": "YulBlock", + "src": "22078:247:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22101:3:70", + "nodeType": "YulIdentifier", + "src": "22101:3:70" + }, + { + "name": "value0", + "nativeSrc": "22106:6:70", + "nodeType": "YulIdentifier", + "src": "22106:6:70" + }, + { + "name": "value1", + "nativeSrc": "22114:6:70", + "nodeType": "YulIdentifier", + "src": "22114:6:70" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "22088:12:70", + "nodeType": "YulIdentifier", + "src": "22088:12:70" + }, + "nativeSrc": "22088:33:70", + "nodeType": "YulFunctionCall", + "src": "22088:33:70" + }, + "nativeSrc": "22088:33:70", + "nodeType": "YulExpressionStatement", + "src": "22088:33:70" + }, + { + "nativeSrc": "22130:26:70", + "nodeType": "YulVariableDeclaration", + "src": "22130:26:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22144:3:70", + "nodeType": "YulIdentifier", + "src": "22144:3:70" + }, + { + "name": "value1", + "nativeSrc": "22149:6:70", + "nodeType": "YulIdentifier", + "src": "22149:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22140:3:70", + "nodeType": "YulIdentifier", + "src": "22140:3:70" + }, + "nativeSrc": "22140:16:70", + "nodeType": "YulFunctionCall", + "src": "22140:16:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "22134:2:70", + "nodeType": "YulTypedName", + "src": "22134:2:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "22172:2:70", + "nodeType": "YulIdentifier", + "src": "22172:2:70" + }, + { + "kind": "number", + "nativeSrc": "22176:1:70", + "nodeType": "YulLiteral", + "src": "22176:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22165:6:70", + "nodeType": "YulIdentifier", + "src": "22165:6:70" + }, + "nativeSrc": "22165:13:70", + "nodeType": "YulFunctionCall", + "src": "22165:13:70" + }, + "nativeSrc": "22165:13:70", + "nodeType": "YulExpressionStatement", + "src": "22165:13:70" + }, + { + "nativeSrc": "22187:27:70", + "nodeType": "YulVariableDeclaration", + "src": "22187:27:70", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22207:6:70", + "nodeType": "YulIdentifier", + "src": "22207:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22201:5:70", + "nodeType": "YulIdentifier", + "src": "22201:5:70" + }, + "nativeSrc": "22201:13:70", + "nodeType": "YulFunctionCall", + "src": "22201:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "22191:6:70", + "nodeType": "YulTypedName", + "src": "22191:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22262:6:70", + "nodeType": "YulIdentifier", + "src": "22262:6:70" + }, + { + "kind": "number", + "nativeSrc": "22270:4:70", + "nodeType": "YulLiteral", + "src": "22270:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22258:3:70", + "nodeType": "YulIdentifier", + "src": "22258:3:70" + }, + "nativeSrc": "22258:17:70", + "nodeType": "YulFunctionCall", + "src": "22258:17:70" + }, + { + "name": "_1", + "nativeSrc": "22277:2:70", + "nodeType": "YulIdentifier", + "src": "22277:2:70" + }, + { + "name": "length", + "nativeSrc": "22281:6:70", + "nodeType": "YulIdentifier", + "src": "22281:6:70" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "22223:34:70", + "nodeType": "YulIdentifier", + "src": "22223:34:70" + }, + "nativeSrc": "22223:65:70", + "nodeType": "YulFunctionCall", + "src": "22223:65:70" + }, + "nativeSrc": "22223:65:70", + "nodeType": "YulExpressionStatement", + "src": "22223:65:70" + }, + { + "nativeSrc": "22297:22:70", + "nodeType": "YulAssignment", + "src": "22297:22:70", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "22308:2:70", + "nodeType": "YulIdentifier", + "src": "22308:2:70" + }, + { + "name": "length", + "nativeSrc": "22312:6:70", + "nodeType": "YulIdentifier", + "src": "22312:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22304:3:70", + "nodeType": "YulIdentifier", + "src": "22304:3:70" + }, + "nativeSrc": "22304:15:70", + "nodeType": "YulFunctionCall", + "src": "22304:15:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "22297:3:70", + "nodeType": "YulIdentifier", + "src": "22297:3:70" + } + ] + } + ] + }, + "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": "21885:440:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "22038:3:70", + "nodeType": "YulTypedName", + "src": "22038:3:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "22043:6:70", + "nodeType": "YulTypedName", + "src": "22043:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22051:6:70", + "nodeType": "YulTypedName", + "src": "22051:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22059:6:70", + "nodeType": "YulTypedName", + "src": "22059:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "22070:3:70", + "nodeType": "YulTypedName", + "src": "22070:3:70", + "type": "" + } + ], + "src": "21885:440:70" + }, + { + "body": { + "nativeSrc": "22362:95:70", + "nodeType": "YulBlock", + "src": "22362:95:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22379:1:70", + "nodeType": "YulLiteral", + "src": "22379:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22386:3:70", + "nodeType": "YulLiteral", + "src": "22386:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "22391:10:70", + "nodeType": "YulLiteral", + "src": "22391:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "22382:3:70", + "nodeType": "YulIdentifier", + "src": "22382:3:70" + }, + "nativeSrc": "22382:20:70", + "nodeType": "YulFunctionCall", + "src": "22382:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22372:6:70", + "nodeType": "YulIdentifier", + "src": "22372:6:70" + }, + "nativeSrc": "22372:31:70", + "nodeType": "YulFunctionCall", + "src": "22372:31:70" + }, + "nativeSrc": "22372:31:70", + "nodeType": "YulExpressionStatement", + "src": "22372:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22419:1:70", + "nodeType": "YulLiteral", + "src": "22419:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22422:4:70", + "nodeType": "YulLiteral", + "src": "22422:4:70", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22412:6:70", + "nodeType": "YulIdentifier", + "src": "22412:6:70" + }, + "nativeSrc": "22412:15:70", + "nodeType": "YulFunctionCall", + "src": "22412:15:70" + }, + "nativeSrc": "22412:15:70", + "nodeType": "YulExpressionStatement", + "src": "22412:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22443:1:70", + "nodeType": "YulLiteral", + "src": "22443:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22446:4:70", + "nodeType": "YulLiteral", + "src": "22446:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22436:6:70", + "nodeType": "YulIdentifier", + "src": "22436:6:70" + }, + "nativeSrc": "22436:15:70", + "nodeType": "YulFunctionCall", + "src": "22436:15:70" + }, + "nativeSrc": "22436:15:70", + "nodeType": "YulExpressionStatement", + "src": "22436:15:70" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "22330:127:70", + "nodeType": "YulFunctionDefinition", + "src": "22330:127:70" + }, + { + "body": { + "nativeSrc": "22516:186:70", + "nodeType": "YulBlock", + "src": "22516:186:70", + "statements": [ + { + "body": { + "nativeSrc": "22558:111:70", + "nodeType": "YulBlock", + "src": "22558:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22579:1:70", + "nodeType": "YulLiteral", + "src": "22579:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22586:3:70", + "nodeType": "YulLiteral", + "src": "22586:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "22591:10:70", + "nodeType": "YulLiteral", + "src": "22591:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "22582:3:70", + "nodeType": "YulIdentifier", + "src": "22582:3:70" + }, + "nativeSrc": "22582:20:70", + "nodeType": "YulFunctionCall", + "src": "22582:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22572:6:70", + "nodeType": "YulIdentifier", + "src": "22572:6:70" + }, + "nativeSrc": "22572:31:70", + "nodeType": "YulFunctionCall", + "src": "22572:31:70" + }, + "nativeSrc": "22572:31:70", + "nodeType": "YulExpressionStatement", + "src": "22572:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22623:1:70", + "nodeType": "YulLiteral", + "src": "22623:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22626:4:70", + "nodeType": "YulLiteral", + "src": "22626:4:70", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22616:6:70", + "nodeType": "YulIdentifier", + "src": "22616:6:70" + }, + "nativeSrc": "22616:15:70", + "nodeType": "YulFunctionCall", + "src": "22616:15:70" + }, + "nativeSrc": "22616:15:70", + "nodeType": "YulExpressionStatement", + "src": "22616:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22651:1:70", + "nodeType": "YulLiteral", + "src": "22651:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22654:4:70", + "nodeType": "YulLiteral", + "src": "22654:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22644:6:70", + "nodeType": "YulIdentifier", + "src": "22644:6:70" + }, + "nativeSrc": "22644:15:70", + "nodeType": "YulFunctionCall", + "src": "22644:15:70" + }, + "nativeSrc": "22644:15:70", + "nodeType": "YulExpressionStatement", + "src": "22644:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "22539:5:70", + "nodeType": "YulIdentifier", + "src": "22539:5:70" + }, + { + "kind": "number", + "nativeSrc": "22546:1:70", + "nodeType": "YulLiteral", + "src": "22546:1:70", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22536:2:70", + "nodeType": "YulIdentifier", + "src": "22536:2:70" + }, + "nativeSrc": "22536:12:70", + "nodeType": "YulFunctionCall", + "src": "22536:12:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22529:6:70", + "nodeType": "YulIdentifier", + "src": "22529:6:70" + }, + "nativeSrc": "22529:20:70", + "nodeType": "YulFunctionCall", + "src": "22529:20:70" + }, + "nativeSrc": "22526:143:70", + "nodeType": "YulIf", + "src": "22526:143:70" + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22685:3:70", + "nodeType": "YulIdentifier", + "src": "22685:3:70" + }, + { + "name": "value", + "nativeSrc": "22690:5:70", + "nodeType": "YulIdentifier", + "src": "22690:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22678:6:70", + "nodeType": "YulIdentifier", + "src": "22678:6:70" + }, + "nativeSrc": "22678:18:70", + "nodeType": "YulFunctionCall", + "src": "22678:18:70" + }, + "nativeSrc": "22678:18:70", + "nodeType": "YulExpressionStatement", + "src": "22678:18:70" + } + ] + }, + "name": "abi_encode_enum_PaymentTypes", + "nativeSrc": "22462:240:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "22500:5:70", + "nodeType": "YulTypedName", + "src": "22500:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "22507:3:70", + "nodeType": "YulTypedName", + "src": "22507:3:70", + "type": "" + } + ], + "src": "22462:240:70" + }, + { + "body": { + "nativeSrc": "22823:98:70", + "nodeType": "YulBlock", + "src": "22823:98:70", + "statements": [ + { + "nativeSrc": "22833:26:70", + "nodeType": "YulAssignment", + "src": "22833:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22845:9:70", + "nodeType": "YulIdentifier", + "src": "22845:9:70" + }, + { + "kind": "number", + "nativeSrc": "22856:2:70", + "nodeType": "YulLiteral", + "src": "22856:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22841:3:70", + "nodeType": "YulIdentifier", + "src": "22841:3:70" + }, + "nativeSrc": "22841:18:70", + "nodeType": "YulFunctionCall", + "src": "22841:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22833:4:70", + "nodeType": "YulIdentifier", + "src": "22833:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22897:6:70", + "nodeType": "YulIdentifier", + "src": "22897:6:70" + }, + { + "name": "headStart", + "nativeSrc": "22905:9:70", + "nodeType": "YulIdentifier", + "src": "22905:9:70" + } + ], + "functionName": { + "name": "abi_encode_enum_PaymentTypes", + "nativeSrc": "22868:28:70", + "nodeType": "YulIdentifier", + "src": "22868:28:70" + }, + "nativeSrc": "22868:47:70", + "nodeType": "YulFunctionCall", + "src": "22868:47:70" + }, + "nativeSrc": "22868:47:70", + "nodeType": "YulExpressionStatement", + "src": "22868:47:70" + } + ] + }, + "name": "abi_encode_tuple_t_enum$_PaymentTypes_$2433__to_t_uint8__fromStack_reversed", + "nativeSrc": "22707:214:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22792:9:70", + "nodeType": "YulTypedName", + "src": "22792:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22803:6:70", + "nodeType": "YulTypedName", + "src": "22803:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22814:4:70", + "nodeType": "YulTypedName", + "src": "22814:4:70", + "type": "" + } + ], + "src": "22707:214:70" + }, + { + "body": { + "nativeSrc": "23034:101:70", + "nodeType": "YulBlock", + "src": "23034:101:70", + "statements": [ + { + "nativeSrc": "23044:26:70", + "nodeType": "YulAssignment", + "src": "23044:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23056:9:70", + "nodeType": "YulIdentifier", + "src": "23056:9:70" + }, + { + "kind": "number", + "nativeSrc": "23067:2:70", + "nodeType": "YulLiteral", + "src": "23067:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23052:3:70", + "nodeType": "YulIdentifier", + "src": "23052:3:70" + }, + "nativeSrc": "23052:18:70", + "nodeType": "YulFunctionCall", + "src": "23052:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23044:4:70", + "nodeType": "YulIdentifier", + "src": "23044:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23086:9:70", + "nodeType": "YulIdentifier", + "src": "23086:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23101:6:70", + "nodeType": "YulIdentifier", + "src": "23101:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23117:2:70", + "nodeType": "YulLiteral", + "src": "23117:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "23121:1:70", + "nodeType": "YulLiteral", + "src": "23121:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "23113:3:70", + "nodeType": "YulIdentifier", + "src": "23113:3:70" + }, + "nativeSrc": "23113:10:70", + "nodeType": "YulFunctionCall", + "src": "23113:10:70" + }, + { + "kind": "number", + "nativeSrc": "23125:1:70", + "nodeType": "YulLiteral", + "src": "23125:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23109:3:70", + "nodeType": "YulIdentifier", + "src": "23109:3:70" + }, + "nativeSrc": "23109:18:70", + "nodeType": "YulFunctionCall", + "src": "23109:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "23097:3:70", + "nodeType": "YulIdentifier", + "src": "23097:3:70" + }, + "nativeSrc": "23097:31:70", + "nodeType": "YulFunctionCall", + "src": "23097:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23079:6:70", + "nodeType": "YulIdentifier", + "src": "23079:6:70" + }, + "nativeSrc": "23079:50:70", + "nodeType": "YulFunctionCall", + "src": "23079:50:70" + }, + "nativeSrc": "23079:50:70", + "nodeType": "YulExpressionStatement", + "src": "23079:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "22926:209:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23003:9:70", + "nodeType": "YulTypedName", + "src": "23003:9:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23014:6:70", + "nodeType": "YulTypedName", + "src": "23014:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23025:4:70", + "nodeType": "YulTypedName", + "src": "23025:4:70", + "type": "" + } + ], + "src": "22926:209:70" + }, + { + "body": { + "nativeSrc": "23227:259:70", + "nodeType": "YulBlock", + "src": "23227:259:70", + "statements": [ + { + "body": { + "nativeSrc": "23273:16:70", + "nodeType": "YulBlock", + "src": "23273:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23282:1:70", + "nodeType": "YulLiteral", + "src": "23282:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23285:1:70", + "nodeType": "YulLiteral", + "src": "23285:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23275:6:70", + "nodeType": "YulIdentifier", + "src": "23275:6:70" + }, + "nativeSrc": "23275:12:70", + "nodeType": "YulFunctionCall", + "src": "23275:12:70" + }, + "nativeSrc": "23275:12:70", + "nodeType": "YulExpressionStatement", + "src": "23275:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "23248:7:70", + "nodeType": "YulIdentifier", + "src": "23248:7:70" + }, + { + "name": "headStart", + "nativeSrc": "23257:9:70", + "nodeType": "YulIdentifier", + "src": "23257:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23244:3:70", + "nodeType": "YulIdentifier", + "src": "23244:3:70" + }, + "nativeSrc": "23244:23:70", + "nodeType": "YulFunctionCall", + "src": "23244:23:70" + }, + { + "kind": "number", + "nativeSrc": "23269:2:70", + "nodeType": "YulLiteral", + "src": "23269:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "23240:3:70", + "nodeType": "YulIdentifier", + "src": "23240:3:70" + }, + "nativeSrc": "23240:32:70", + "nodeType": "YulFunctionCall", + "src": "23240:32:70" + }, + "nativeSrc": "23237:52:70", + "nodeType": "YulIf", + "src": "23237:52:70" + }, + { + "nativeSrc": "23298:14:70", + "nodeType": "YulVariableDeclaration", + "src": "23298:14:70", + "value": { + "kind": "number", + "nativeSrc": "23311:1:70", + "nodeType": "YulLiteral", + "src": "23311:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "23302:5:70", + "nodeType": "YulTypedName", + "src": "23302:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23321:32:70", + "nodeType": "YulAssignment", + "src": "23321:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23343:9:70", + "nodeType": "YulIdentifier", + "src": "23343:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "23330:12:70", + "nodeType": "YulIdentifier", + "src": "23330:12:70" + }, + "nativeSrc": "23330:23:70", + "nodeType": "YulFunctionCall", + "src": "23330:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23321:5:70", + "nodeType": "YulIdentifier", + "src": "23321:5:70" + } + ] + }, + { + "nativeSrc": "23362:15:70", + "nodeType": "YulAssignment", + "src": "23362:15:70", + "value": { + "name": "value", + "nativeSrc": "23372:5:70", + "nodeType": "YulIdentifier", + "src": "23372:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "23362:6:70", + "nodeType": "YulIdentifier", + "src": "23362:6:70" + } + ] + }, + { + "nativeSrc": "23386:16:70", + "nodeType": "YulVariableDeclaration", + "src": "23386:16:70", + "value": { + "kind": "number", + "nativeSrc": "23401:1:70", + "nodeType": "YulLiteral", + "src": "23401:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "23390:7:70", + "nodeType": "YulTypedName", + "src": "23390:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "23411:43:70", + "nodeType": "YulAssignment", + "src": "23411:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23439:9:70", + "nodeType": "YulIdentifier", + "src": "23439:9:70" + }, + { + "kind": "number", + "nativeSrc": "23450:2:70", + "nodeType": "YulLiteral", + "src": "23450:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23435:3:70", + "nodeType": "YulIdentifier", + "src": "23435:3:70" + }, + "nativeSrc": "23435:18:70", + "nodeType": "YulFunctionCall", + "src": "23435:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "23422:12:70", + "nodeType": "YulIdentifier", + "src": "23422:12:70" + }, + "nativeSrc": "23422:32:70", + "nodeType": "YulFunctionCall", + "src": "23422:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "23411:7:70", + "nodeType": "YulIdentifier", + "src": "23411:7:70" + } + ] + }, + { + "nativeSrc": "23463:17:70", + "nodeType": "YulAssignment", + "src": "23463:17:70", + "value": { + "name": "value_1", + "nativeSrc": "23473:7:70", + "nodeType": "YulIdentifier", + "src": "23473:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "23463:6:70", + "nodeType": "YulIdentifier", + "src": "23463:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nativeSrc": "23140:346:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23185:9:70", + "nodeType": "YulTypedName", + "src": "23185:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "23196:7:70", + "nodeType": "YulTypedName", + "src": "23196:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "23208:6:70", + "nodeType": "YulTypedName", + "src": "23208:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23216:6:70", + "nodeType": "YulTypedName", + "src": "23216:6:70", + "type": "" + } + ], + "src": "23140:346:70" + }, + { + "body": { + "nativeSrc": "23676:258:70", + "nodeType": "YulBlock", + "src": "23676:258:70", + "statements": [ + { + "nativeSrc": "23686:27:70", + "nodeType": "YulAssignment", + "src": "23686:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23698:9:70", + "nodeType": "YulIdentifier", + "src": "23698:9:70" + }, + { + "kind": "number", + "nativeSrc": "23709:3:70", + "nodeType": "YulLiteral", + "src": "23709:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23694:3:70", + "nodeType": "YulIdentifier", + "src": "23694:3:70" + }, + "nativeSrc": "23694:19:70", + "nodeType": "YulFunctionCall", + "src": "23694:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23686:4:70", + "nodeType": "YulIdentifier", + "src": "23686:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23729:9:70", + "nodeType": "YulIdentifier", + "src": "23729:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23744:6:70", + "nodeType": "YulIdentifier", + "src": "23744:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23760:3:70", + "nodeType": "YulLiteral", + "src": "23760:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "23765:1:70", + "nodeType": "YulLiteral", + "src": "23765:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "23756:3:70", + "nodeType": "YulIdentifier", + "src": "23756:3:70" + }, + "nativeSrc": "23756:11:70", + "nodeType": "YulFunctionCall", + "src": "23756:11:70" + }, + { + "kind": "number", + "nativeSrc": "23769:1:70", + "nodeType": "YulLiteral", + "src": "23769:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23752:3:70", + "nodeType": "YulIdentifier", + "src": "23752:3:70" + }, + "nativeSrc": "23752:19:70", + "nodeType": "YulFunctionCall", + "src": "23752:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "23740:3:70", + "nodeType": "YulIdentifier", + "src": "23740:3:70" + }, + "nativeSrc": "23740:32:70", + "nodeType": "YulFunctionCall", + "src": "23740:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23722:6:70", + "nodeType": "YulIdentifier", + "src": "23722:6:70" + }, + "nativeSrc": "23722:51:70", + "nodeType": "YulFunctionCall", + "src": "23722:51:70" + }, + "nativeSrc": "23722:51:70", + "nodeType": "YulExpressionStatement", + "src": "23722:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23793:9:70", + "nodeType": "YulIdentifier", + "src": "23793:9:70" + }, + { + "kind": "number", + "nativeSrc": "23804:2:70", + "nodeType": "YulLiteral", + "src": "23804:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23789:3:70", + "nodeType": "YulIdentifier", + "src": "23789:3:70" + }, + "nativeSrc": "23789:18:70", + "nodeType": "YulFunctionCall", + "src": "23789:18:70" + }, + { + "name": "value1", + "nativeSrc": "23809:6:70", + "nodeType": "YulIdentifier", + "src": "23809:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23782:6:70", + "nodeType": "YulIdentifier", + "src": "23782:6:70" + }, + "nativeSrc": "23782:34:70", + "nodeType": "YulFunctionCall", + "src": "23782:34:70" + }, + "nativeSrc": "23782:34:70", + "nodeType": "YulExpressionStatement", + "src": "23782:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23836:9:70", + "nodeType": "YulIdentifier", + "src": "23836:9:70" + }, + { + "kind": "number", + "nativeSrc": "23847:2:70", + "nodeType": "YulLiteral", + "src": "23847:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23832:3:70", + "nodeType": "YulIdentifier", + "src": "23832:3:70" + }, + "nativeSrc": "23832:18:70", + "nodeType": "YulFunctionCall", + "src": "23832:18:70" + }, + { + "name": "value2", + "nativeSrc": "23852:6:70", + "nodeType": "YulIdentifier", + "src": "23852:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23825:6:70", + "nodeType": "YulIdentifier", + "src": "23825:6:70" + }, + "nativeSrc": "23825:34:70", + "nodeType": "YulFunctionCall", + "src": "23825:34:70" + }, + "nativeSrc": "23825:34:70", + "nodeType": "YulExpressionStatement", + "src": "23825:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23879:9:70", + "nodeType": "YulIdentifier", + "src": "23879:9:70" + }, + { + "kind": "number", + "nativeSrc": "23890:2:70", + "nodeType": "YulLiteral", + "src": "23890:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23875:3:70", + "nodeType": "YulIdentifier", + "src": "23875:3:70" + }, + "nativeSrc": "23875:18:70", + "nodeType": "YulFunctionCall", + "src": "23875:18:70" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "23899:6:70", + "nodeType": "YulIdentifier", + "src": "23899:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23915:3:70", + "nodeType": "YulLiteral", + "src": "23915:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "23920:1:70", + "nodeType": "YulLiteral", + "src": "23920:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "23911:3:70", + "nodeType": "YulIdentifier", + "src": "23911:3:70" + }, + "nativeSrc": "23911:11:70", + "nodeType": "YulFunctionCall", + "src": "23911:11:70" + }, + { + "kind": "number", + "nativeSrc": "23924:1:70", + "nodeType": "YulLiteral", + "src": "23924:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23907:3:70", + "nodeType": "YulIdentifier", + "src": "23907:3:70" + }, + "nativeSrc": "23907:19:70", + "nodeType": "YulFunctionCall", + "src": "23907:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "23895:3:70", + "nodeType": "YulIdentifier", + "src": "23895:3:70" + }, + "nativeSrc": "23895:32:70", + "nodeType": "YulFunctionCall", + "src": "23895:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23868:6:70", + "nodeType": "YulIdentifier", + "src": "23868:6:70" + }, + "nativeSrc": "23868:60:70", + "nodeType": "YulFunctionCall", + "src": "23868:60:70" + }, + "nativeSrc": "23868:60:70", + "nodeType": "YulExpressionStatement", + "src": "23868:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "23491:443:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23621:9:70", + "nodeType": "YulTypedName", + "src": "23621:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "23632:6:70", + "nodeType": "YulTypedName", + "src": "23632:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "23640:6:70", + "nodeType": "YulTypedName", + "src": "23640:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23648:6:70", + "nodeType": "YulTypedName", + "src": "23648:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23656:6:70", + "nodeType": "YulTypedName", + "src": "23656:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23667:4:70", + "nodeType": "YulTypedName", + "src": "23667:4:70", + "type": "" + } + ], + "src": "23491:443:70" + }, + { + "body": { + "nativeSrc": "24077:567:70", + "nodeType": "YulBlock", + "src": "24077:567:70", + "statements": [ + { + "body": { + "nativeSrc": "24124:16:70", + "nodeType": "YulBlock", + "src": "24124:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24133:1:70", + "nodeType": "YulLiteral", + "src": "24133:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24136:1:70", + "nodeType": "YulLiteral", + "src": "24136:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24126:6:70", + "nodeType": "YulIdentifier", + "src": "24126:6:70" + }, + "nativeSrc": "24126:12:70", + "nodeType": "YulFunctionCall", + "src": "24126:12:70" + }, + "nativeSrc": "24126:12:70", + "nodeType": "YulExpressionStatement", + "src": "24126:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "24098:7:70", + "nodeType": "YulIdentifier", + "src": "24098:7:70" + }, + { + "name": "headStart", + "nativeSrc": "24107:9:70", + "nodeType": "YulIdentifier", + "src": "24107:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24094:3:70", + "nodeType": "YulIdentifier", + "src": "24094:3:70" + }, + "nativeSrc": "24094:23:70", + "nodeType": "YulFunctionCall", + "src": "24094:23:70" + }, + { + "kind": "number", + "nativeSrc": "24119:3:70", + "nodeType": "YulLiteral", + "src": "24119:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "24090:3:70", + "nodeType": "YulIdentifier", + "src": "24090:3:70" + }, + "nativeSrc": "24090:33:70", + "nodeType": "YulFunctionCall", + "src": "24090:33:70" + }, + "nativeSrc": "24087:53:70", + "nodeType": "YulIf", + "src": "24087:53:70" + }, + { + "nativeSrc": "24149:14:70", + "nodeType": "YulVariableDeclaration", + "src": "24149:14:70", + "value": { + "kind": "number", + "nativeSrc": "24162:1:70", + "nodeType": "YulLiteral", + "src": "24162:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "24153:5:70", + "nodeType": "YulTypedName", + "src": "24153:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "24172:32:70", + "nodeType": "YulAssignment", + "src": "24172:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24194:9:70", + "nodeType": "YulIdentifier", + "src": "24194:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "24181:12:70", + "nodeType": "YulIdentifier", + "src": "24181:12:70" + }, + "nativeSrc": "24181:23:70", + "nodeType": "YulFunctionCall", + "src": "24181:23:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24172:5:70", + "nodeType": "YulIdentifier", + "src": "24172:5:70" + } + ] + }, + { + "nativeSrc": "24213:15:70", + "nodeType": "YulAssignment", + "src": "24213:15:70", + "value": { + "name": "value", + "nativeSrc": "24223:5:70", + "nodeType": "YulIdentifier", + "src": "24223:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "24213:6:70", + "nodeType": "YulIdentifier", + "src": "24213:6:70" + } + ] + }, + { + "nativeSrc": "24237:16:70", + "nodeType": "YulVariableDeclaration", + "src": "24237:16:70", + "value": { + "kind": "number", + "nativeSrc": "24252:1:70", + "nodeType": "YulLiteral", + "src": "24252:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "24241:7:70", + "nodeType": "YulTypedName", + "src": "24241:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "24262:43:70", + "nodeType": "YulAssignment", + "src": "24262:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24290:9:70", + "nodeType": "YulIdentifier", + "src": "24290:9:70" + }, + { + "kind": "number", + "nativeSrc": "24301:2:70", + "nodeType": "YulLiteral", + "src": "24301:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24286:3:70", + "nodeType": "YulIdentifier", + "src": "24286:3:70" + }, + "nativeSrc": "24286:18:70", + "nodeType": "YulFunctionCall", + "src": "24286:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "24273:12:70", + "nodeType": "YulIdentifier", + "src": "24273:12:70" + }, + "nativeSrc": "24273:32:70", + "nodeType": "YulFunctionCall", + "src": "24273:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "24262:7:70", + "nodeType": "YulIdentifier", + "src": "24262:7:70" + } + ] + }, + { + "nativeSrc": "24314:17:70", + "nodeType": "YulAssignment", + "src": "24314:17:70", + "value": { + "name": "value_1", + "nativeSrc": "24324:7:70", + "nodeType": "YulIdentifier", + "src": "24324:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "24314:6:70", + "nodeType": "YulIdentifier", + "src": "24314:6:70" + } + ] + }, + { + "nativeSrc": "24340:47:70", + "nodeType": "YulVariableDeclaration", + "src": "24340:47:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24372:9:70", + "nodeType": "YulIdentifier", + "src": "24372:9:70" + }, + { + "kind": "number", + "nativeSrc": "24383:2:70", + "nodeType": "YulLiteral", + "src": "24383:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24368:3:70", + "nodeType": "YulIdentifier", + "src": "24368:3:70" + }, + "nativeSrc": "24368:18:70", + "nodeType": "YulFunctionCall", + "src": "24368:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "24355:12:70", + "nodeType": "YulIdentifier", + "src": "24355:12:70" + }, + "nativeSrc": "24355:32:70", + "nodeType": "YulFunctionCall", + "src": "24355:32:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "24344:7:70", + "nodeType": "YulTypedName", + "src": "24344:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "24421:7:70", + "nodeType": "YulIdentifier", + "src": "24421:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "24396:24:70", + "nodeType": "YulIdentifier", + "src": "24396:24:70" + }, + "nativeSrc": "24396:33:70", + "nodeType": "YulFunctionCall", + "src": "24396:33:70" + }, + "nativeSrc": "24396:33:70", + "nodeType": "YulExpressionStatement", + "src": "24396:33:70" + }, + { + "nativeSrc": "24438:17:70", + "nodeType": "YulAssignment", + "src": "24438:17:70", + "value": { + "name": "value_2", + "nativeSrc": "24448:7:70", + "nodeType": "YulIdentifier", + "src": "24448:7:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "24438:6:70", + "nodeType": "YulIdentifier", + "src": "24438:6:70" + } + ] + }, + { + "nativeSrc": "24464:46:70", + "nodeType": "YulVariableDeclaration", + "src": "24464:46:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24495:9:70", + "nodeType": "YulIdentifier", + "src": "24495:9:70" + }, + { + "kind": "number", + "nativeSrc": "24506:2:70", + "nodeType": "YulLiteral", + "src": "24506:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24491:3:70", + "nodeType": "YulIdentifier", + "src": "24491:3:70" + }, + "nativeSrc": "24491:18:70", + "nodeType": "YulFunctionCall", + "src": "24491:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "24478:12:70", + "nodeType": "YulIdentifier", + "src": "24478:12:70" + }, + "nativeSrc": "24478:32:70", + "nodeType": "YulFunctionCall", + "src": "24478:32:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "24468:6:70", + "nodeType": "YulTypedName", + "src": "24468:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "24553:16:70", + "nodeType": "YulBlock", + "src": "24553:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24562:1:70", + "nodeType": "YulLiteral", + "src": "24562:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24565:1:70", + "nodeType": "YulLiteral", + "src": "24565:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24555:6:70", + "nodeType": "YulIdentifier", + "src": "24555:6:70" + }, + "nativeSrc": "24555:12:70", + "nodeType": "YulFunctionCall", + "src": "24555:12:70" + }, + "nativeSrc": "24555:12:70", + "nodeType": "YulExpressionStatement", + "src": "24555:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "24525:6:70", + "nodeType": "YulIdentifier", + "src": "24525:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24541:2:70", + "nodeType": "YulLiteral", + "src": "24541:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "24545:1:70", + "nodeType": "YulLiteral", + "src": "24545:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24537:3:70", + "nodeType": "YulIdentifier", + "src": "24537:3:70" + }, + "nativeSrc": "24537:10:70", + "nodeType": "YulFunctionCall", + "src": "24537:10:70" + }, + { + "kind": "number", + "nativeSrc": "24549:1:70", + "nodeType": "YulLiteral", + "src": "24549:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24533:3:70", + "nodeType": "YulIdentifier", + "src": "24533:3:70" + }, + "nativeSrc": "24533:18:70", + "nodeType": "YulFunctionCall", + "src": "24533:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "24522:2:70", + "nodeType": "YulIdentifier", + "src": "24522:2:70" + }, + "nativeSrc": "24522:30:70", + "nodeType": "YulFunctionCall", + "src": "24522:30:70" + }, + "nativeSrc": "24519:50:70", + "nodeType": "YulIf", + "src": "24519:50:70" + }, + { + "nativeSrc": "24578:60:70", + "nodeType": "YulAssignment", + "src": "24578:60:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24610:9:70", + "nodeType": "YulIdentifier", + "src": "24610:9:70" + }, + { + "name": "offset", + "nativeSrc": "24621:6:70", + "nodeType": "YulIdentifier", + "src": "24621:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24606:3:70", + "nodeType": "YulIdentifier", + "src": "24606:3:70" + }, + "nativeSrc": "24606:22:70", + "nodeType": "YulFunctionCall", + "src": "24606:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "24630:7:70", + "nodeType": "YulIdentifier", + "src": "24630:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "24588:17:70", + "nodeType": "YulIdentifier", + "src": "24588:17:70" + }, + "nativeSrc": "24588:50:70", + "nodeType": "YulFunctionCall", + "src": "24588:50:70" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "24578:6:70", + "nodeType": "YulIdentifier", + "src": "24578:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256t_address_payablet_bytes_memory_ptr", + "nativeSrc": "23939:705:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24019:9:70", + "nodeType": "YulTypedName", + "src": "24019:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "24030:7:70", + "nodeType": "YulTypedName", + "src": "24030:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "24042:6:70", + "nodeType": "YulTypedName", + "src": "24042:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24050:6:70", + "nodeType": "YulTypedName", + "src": "24050:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24058:6:70", + "nodeType": "YulTypedName", + "src": "24058:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "24066:6:70", + "nodeType": "YulTypedName", + "src": "24066:6:70", + "type": "" + } + ], + "src": "23939:705:70" + }, + { + "body": { + "nativeSrc": "24708:77:70", + "nodeType": "YulBlock", + "src": "24708:77:70", + "statements": [ + { + "nativeSrc": "24718:22:70", + "nodeType": "YulAssignment", + "src": "24718:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "24733:6:70", + "nodeType": "YulIdentifier", + "src": "24733:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24727:5:70", + "nodeType": "YulIdentifier", + "src": "24727:5:70" + }, + "nativeSrc": "24727:13:70", + "nodeType": "YulFunctionCall", + "src": "24727:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24718:5:70", + "nodeType": "YulIdentifier", + "src": "24718:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24773:5:70", + "nodeType": "YulIdentifier", + "src": "24773:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "24749:23:70", + "nodeType": "YulIdentifier", + "src": "24749:23:70" + }, + "nativeSrc": "24749:30:70", + "nodeType": "YulFunctionCall", + "src": "24749:30:70" + }, + "nativeSrc": "24749:30:70", + "nodeType": "YulExpressionStatement", + "src": "24749:30:70" + } + ] + }, + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "24649:136:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "24687:6:70", + "nodeType": "YulTypedName", + "src": "24687:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "24698:5:70", + "nodeType": "YulTypedName", + "src": "24698:5:70", + "type": "" + } + ], + "src": "24649:136:70" + }, + { + "body": { + "nativeSrc": "24834:85:70", + "nodeType": "YulBlock", + "src": "24834:85:70", + "statements": [ + { + "body": { + "nativeSrc": "24897:16:70", + "nodeType": "YulBlock", + "src": "24897:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24906:1:70", + "nodeType": "YulLiteral", + "src": "24906:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24909:1:70", + "nodeType": "YulLiteral", + "src": "24909:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24899:6:70", + "nodeType": "YulIdentifier", + "src": "24899:6:70" + }, + "nativeSrc": "24899:12:70", + "nodeType": "YulFunctionCall", + "src": "24899:12:70" + }, + "nativeSrc": "24899:12:70", + "nodeType": "YulExpressionStatement", + "src": "24899:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24857:5:70", + "nodeType": "YulIdentifier", + "src": "24857:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24868:5:70", + "nodeType": "YulIdentifier", + "src": "24868:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24883:2:70", + "nodeType": "YulLiteral", + "src": "24883:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "24887:1:70", + "nodeType": "YulLiteral", + "src": "24887:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24879:3:70", + "nodeType": "YulIdentifier", + "src": "24879:3:70" + }, + "nativeSrc": "24879:10:70", + "nodeType": "YulFunctionCall", + "src": "24879:10:70" + }, + { + "kind": "number", + "nativeSrc": "24891:1:70", + "nodeType": "YulLiteral", + "src": "24891:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24875:3:70", + "nodeType": "YulIdentifier", + "src": "24875:3:70" + }, + "nativeSrc": "24875:18:70", + "nodeType": "YulFunctionCall", + "src": "24875:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24864:3:70", + "nodeType": "YulIdentifier", + "src": "24864:3:70" + }, + "nativeSrc": "24864:30:70", + "nodeType": "YulFunctionCall", + "src": "24864:30:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "24854:2:70", + "nodeType": "YulIdentifier", + "src": "24854:2:70" + }, + "nativeSrc": "24854:41:70", + "nodeType": "YulFunctionCall", + "src": "24854:41:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "24847:6:70", + "nodeType": "YulIdentifier", + "src": "24847:6:70" + }, + "nativeSrc": "24847:49:70", + "nodeType": "YulFunctionCall", + "src": "24847:49:70" + }, + "nativeSrc": "24844:69:70", + "nodeType": "YulIf", + "src": "24844:69:70" + } + ] + }, + "name": "validator_revert_uint64", + "nativeSrc": "24790:129:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24823:5:70", + "nodeType": "YulTypedName", + "src": "24823:5:70", + "type": "" + } + ], + "src": "24790:129:70" + }, + { + "body": { + "nativeSrc": "24983:77:70", + "nodeType": "YulBlock", + "src": "24983:77:70", + "statements": [ + { + "nativeSrc": "24993:22:70", + "nodeType": "YulAssignment", + "src": "24993:22:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "25008:6:70", + "nodeType": "YulIdentifier", + "src": "25008:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25002:5:70", + "nodeType": "YulIdentifier", + "src": "25002:5:70" + }, + "nativeSrc": "25002:13:70", + "nodeType": "YulFunctionCall", + "src": "25002:13:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24993:5:70", + "nodeType": "YulIdentifier", + "src": "24993:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25048:5:70", + "nodeType": "YulIdentifier", + "src": "25048:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "25024:23:70", + "nodeType": "YulIdentifier", + "src": "25024:23:70" + }, + "nativeSrc": "25024:30:70", + "nodeType": "YulFunctionCall", + "src": "25024:30:70" + }, + "nativeSrc": "25024:30:70", + "nodeType": "YulExpressionStatement", + "src": "25024:30:70" + } + ] + }, + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "24924:136:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "24962:6:70", + "nodeType": "YulTypedName", + "src": "24962:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "24973:5:70", + "nodeType": "YulTypedName", + "src": "24973:5:70", + "type": "" + } + ], + "src": "24924:136:70" + }, + { + "body": { + "nativeSrc": "25173:1128:70", + "nodeType": "YulBlock", + "src": "25173:1128:70", + "statements": [ + { + "nativeSrc": "25183:43:70", + "nodeType": "YulVariableDeclaration", + "src": "25183:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "25201:7:70", + "nodeType": "YulIdentifier", + "src": "25201:7:70" + }, + { + "name": "headStart", + "nativeSrc": "25210:9:70", + "nodeType": "YulIdentifier", + "src": "25210:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25197:3:70", + "nodeType": "YulIdentifier", + "src": "25197:3:70" + }, + "nativeSrc": "25197:23:70", + "nodeType": "YulFunctionCall", + "src": "25197:23:70" + }, + { + "kind": "number", + "nativeSrc": "25222:3:70", + "nodeType": "YulLiteral", + "src": "25222:3:70", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "25193:3:70", + "nodeType": "YulIdentifier", + "src": "25193:3:70" + }, + "nativeSrc": "25193:33:70", + "nodeType": "YulFunctionCall", + "src": "25193:33:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "25187:2:70", + "nodeType": "YulTypedName", + "src": "25187:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "25241:16:70", + "nodeType": "YulBlock", + "src": "25241:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25250:1:70", + "nodeType": "YulLiteral", + "src": "25250:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25253:1:70", + "nodeType": "YulLiteral", + "src": "25253:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25243:6:70", + "nodeType": "YulIdentifier", + "src": "25243:6:70" + }, + "nativeSrc": "25243:12:70", + "nodeType": "YulFunctionCall", + "src": "25243:12:70" + }, + "nativeSrc": "25243:12:70", + "nodeType": "YulExpressionStatement", + "src": "25243:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "25238:2:70", + "nodeType": "YulIdentifier", + "src": "25238:2:70" + }, + "nativeSrc": "25235:22:70", + "nodeType": "YulIf", + "src": "25235:22:70" + }, + { + "nativeSrc": "25266:7:70", + "nodeType": "YulAssignment", + "src": "25266:7:70", + "value": { + "kind": "number", + "nativeSrc": "25272:1:70", + "nodeType": "YulLiteral", + "src": "25272:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "25266:2:70", + "nodeType": "YulIdentifier", + "src": "25266:2:70" + } + ] + }, + { + "nativeSrc": "25282:35:70", + "nodeType": "YulVariableDeclaration", + "src": "25282:35:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4297", + "nativeSrc": "25295:20:70", + "nodeType": "YulIdentifier", + "src": "25295:20:70" + }, + "nativeSrc": "25295:22:70", + "nodeType": "YulFunctionCall", + "src": "25295:22:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "25286:5:70", + "nodeType": "YulTypedName", + "src": "25286:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "25326:17:70", + "nodeType": "YulVariableDeclaration", + "src": "25326:17:70", + "value": { + "name": "_1", + "nativeSrc": "25341:2:70", + "nodeType": "YulIdentifier", + "src": "25341:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "25330:7:70", + "nodeType": "YulTypedName", + "src": "25330:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "25352:27:70", + "nodeType": "YulAssignment", + "src": "25352:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25369:9:70", + "nodeType": "YulIdentifier", + "src": "25369:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25363:5:70", + "nodeType": "YulIdentifier", + "src": "25363:5:70" + }, + "nativeSrc": "25363:16:70", + "nodeType": "YulFunctionCall", + "src": "25363:16:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "25352:7:70", + "nodeType": "YulIdentifier", + "src": "25352:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25395:5:70", + "nodeType": "YulIdentifier", + "src": "25395:5:70" + }, + { + "name": "value_1", + "nativeSrc": "25402:7:70", + "nodeType": "YulIdentifier", + "src": "25402:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25388:6:70", + "nodeType": "YulIdentifier", + "src": "25388:6:70" + }, + "nativeSrc": "25388:22:70", + "nodeType": "YulFunctionCall", + "src": "25388:22:70" + }, + "nativeSrc": "25388:22:70", + "nodeType": "YulExpressionStatement", + "src": "25388:22:70" + }, + { + "nativeSrc": "25419:17:70", + "nodeType": "YulVariableDeclaration", + "src": "25419:17:70", + "value": { + "name": "_1", + "nativeSrc": "25434:2:70", + "nodeType": "YulIdentifier", + "src": "25434:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "25423:7:70", + "nodeType": "YulTypedName", + "src": "25423:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "25445:36:70", + "nodeType": "YulAssignment", + "src": "25445:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25466:9:70", + "nodeType": "YulIdentifier", + "src": "25466:9:70" + }, + { + "kind": "number", + "nativeSrc": "25477:2:70", + "nodeType": "YulLiteral", + "src": "25477:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25462:3:70", + "nodeType": "YulIdentifier", + "src": "25462:3:70" + }, + "nativeSrc": "25462:18:70", + "nodeType": "YulFunctionCall", + "src": "25462:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25456:5:70", + "nodeType": "YulIdentifier", + "src": "25456:5:70" + }, + "nativeSrc": "25456:25:70", + "nodeType": "YulFunctionCall", + "src": "25456:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "25445:7:70", + "nodeType": "YulIdentifier", + "src": "25445:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25501:5:70", + "nodeType": "YulIdentifier", + "src": "25501:5:70" + }, + { + "kind": "number", + "nativeSrc": "25508:2:70", + "nodeType": "YulLiteral", + "src": "25508:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25497:3:70", + "nodeType": "YulIdentifier", + "src": "25497:3:70" + }, + "nativeSrc": "25497:14:70", + "nodeType": "YulFunctionCall", + "src": "25497:14:70" + }, + { + "name": "value_2", + "nativeSrc": "25513:7:70", + "nodeType": "YulIdentifier", + "src": "25513:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25490:6:70", + "nodeType": "YulIdentifier", + "src": "25490:6:70" + }, + "nativeSrc": "25490:31:70", + "nodeType": "YulFunctionCall", + "src": "25490:31:70" + }, + "nativeSrc": "25490:31:70", + "nodeType": "YulExpressionStatement", + "src": "25490:31:70" + }, + { + "nativeSrc": "25530:17:70", + "nodeType": "YulVariableDeclaration", + "src": "25530:17:70", + "value": { + "name": "_1", + "nativeSrc": "25545:2:70", + "nodeType": "YulIdentifier", + "src": "25545:2:70" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "25534:7:70", + "nodeType": "YulTypedName", + "src": "25534:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "25556:36:70", + "nodeType": "YulAssignment", + "src": "25556:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25577:9:70", + "nodeType": "YulIdentifier", + "src": "25577:9:70" + }, + { + "kind": "number", + "nativeSrc": "25588:2:70", + "nodeType": "YulLiteral", + "src": "25588:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25573:3:70", + "nodeType": "YulIdentifier", + "src": "25573:3:70" + }, + "nativeSrc": "25573:18:70", + "nodeType": "YulFunctionCall", + "src": "25573:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25567:5:70", + "nodeType": "YulIdentifier", + "src": "25567:5:70" + }, + "nativeSrc": "25567:25:70", + "nodeType": "YulFunctionCall", + "src": "25567:25:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "25556:7:70", + "nodeType": "YulIdentifier", + "src": "25556:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25612:5:70", + "nodeType": "YulIdentifier", + "src": "25612:5:70" + }, + { + "kind": "number", + "nativeSrc": "25619:2:70", + "nodeType": "YulLiteral", + "src": "25619:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25608:3:70", + "nodeType": "YulIdentifier", + "src": "25608:3:70" + }, + "nativeSrc": "25608:14:70", + "nodeType": "YulFunctionCall", + "src": "25608:14:70" + }, + { + "name": "value_3", + "nativeSrc": "25624:7:70", + "nodeType": "YulIdentifier", + "src": "25624:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25601:6:70", + "nodeType": "YulIdentifier", + "src": "25601:6:70" + }, + "nativeSrc": "25601:31:70", + "nodeType": "YulFunctionCall", + "src": "25601:31:70" + }, + "nativeSrc": "25601:31:70", + "nodeType": "YulExpressionStatement", + "src": "25601:31:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25652:5:70", + "nodeType": "YulIdentifier", + "src": "25652:5:70" + }, + { + "kind": "number", + "nativeSrc": "25659:2:70", + "nodeType": "YulLiteral", + "src": "25659:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25648:3:70", + "nodeType": "YulIdentifier", + "src": "25648:3:70" + }, + "nativeSrc": "25648:14:70", + "nodeType": "YulFunctionCall", + "src": "25648:14:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25697:9:70", + "nodeType": "YulIdentifier", + "src": "25697:9:70" + }, + { + "kind": "number", + "nativeSrc": "25708:2:70", + "nodeType": "YulLiteral", + "src": "25708:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25693:3:70", + "nodeType": "YulIdentifier", + "src": "25693:3:70" + }, + "nativeSrc": "25693:18:70", + "nodeType": "YulFunctionCall", + "src": "25693:18:70" + } + ], + "functionName": { + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "25664:28:70", + "nodeType": "YulIdentifier", + "src": "25664:28:70" + }, + "nativeSrc": "25664:48:70", + "nodeType": "YulFunctionCall", + "src": "25664:48:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25641:6:70", + "nodeType": "YulIdentifier", + "src": "25641:6:70" + }, + "nativeSrc": "25641:72:70", + "nodeType": "YulFunctionCall", + "src": "25641:72:70" + }, + "nativeSrc": "25641:72:70", + "nodeType": "YulExpressionStatement", + "src": "25641:72:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25733:5:70", + "nodeType": "YulIdentifier", + "src": "25733:5:70" + }, + { + "kind": "number", + "nativeSrc": "25740:3:70", + "nodeType": "YulLiteral", + "src": "25740:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25729:3:70", + "nodeType": "YulIdentifier", + "src": "25729:3:70" + }, + "nativeSrc": "25729:15:70", + "nodeType": "YulFunctionCall", + "src": "25729:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25779:9:70", + "nodeType": "YulIdentifier", + "src": "25779:9:70" + }, + { + "kind": "number", + "nativeSrc": "25790:3:70", + "nodeType": "YulLiteral", + "src": "25790:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25775:3:70", + "nodeType": "YulIdentifier", + "src": "25775:3:70" + }, + "nativeSrc": "25775:19:70", + "nodeType": "YulFunctionCall", + "src": "25775:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "25746:28:70", + "nodeType": "YulIdentifier", + "src": "25746:28:70" + }, + "nativeSrc": "25746:49:70", + "nodeType": "YulFunctionCall", + "src": "25746:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25722:6:70", + "nodeType": "YulIdentifier", + "src": "25722:6:70" + }, + "nativeSrc": "25722:74:70", + "nodeType": "YulFunctionCall", + "src": "25722:74:70" + }, + "nativeSrc": "25722:74:70", + "nodeType": "YulExpressionStatement", + "src": "25722:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25816:5:70", + "nodeType": "YulIdentifier", + "src": "25816:5:70" + }, + { + "kind": "number", + "nativeSrc": "25823:3:70", + "nodeType": "YulLiteral", + "src": "25823:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25812:3:70", + "nodeType": "YulIdentifier", + "src": "25812:3:70" + }, + "nativeSrc": "25812:15:70", + "nodeType": "YulFunctionCall", + "src": "25812:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25862:9:70", + "nodeType": "YulIdentifier", + "src": "25862:9:70" + }, + { + "kind": "number", + "nativeSrc": "25873:3:70", + "nodeType": "YulLiteral", + "src": "25873:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25858:3:70", + "nodeType": "YulIdentifier", + "src": "25858:3:70" + }, + "nativeSrc": "25858:19:70", + "nodeType": "YulFunctionCall", + "src": "25858:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "25829:28:70", + "nodeType": "YulIdentifier", + "src": "25829:28:70" + }, + "nativeSrc": "25829:49:70", + "nodeType": "YulFunctionCall", + "src": "25829:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25805:6:70", + "nodeType": "YulIdentifier", + "src": "25805:6:70" + }, + "nativeSrc": "25805:74:70", + "nodeType": "YulFunctionCall", + "src": "25805:74:70" + }, + "nativeSrc": "25805:74:70", + "nodeType": "YulExpressionStatement", + "src": "25805:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25899:5:70", + "nodeType": "YulIdentifier", + "src": "25899:5:70" + }, + { + "kind": "number", + "nativeSrc": "25906:3:70", + "nodeType": "YulLiteral", + "src": "25906:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25895:3:70", + "nodeType": "YulIdentifier", + "src": "25895:3:70" + }, + "nativeSrc": "25895:15:70", + "nodeType": "YulFunctionCall", + "src": "25895:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25945:9:70", + "nodeType": "YulIdentifier", + "src": "25945:9:70" + }, + { + "kind": "number", + "nativeSrc": "25956:3:70", + "nodeType": "YulLiteral", + "src": "25956:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25941:3:70", + "nodeType": "YulIdentifier", + "src": "25941:3:70" + }, + "nativeSrc": "25941:19:70", + "nodeType": "YulFunctionCall", + "src": "25941:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint32_fromMemory", + "nativeSrc": "25912:28:70", + "nodeType": "YulIdentifier", + "src": "25912:28:70" + }, + "nativeSrc": "25912:49:70", + "nodeType": "YulFunctionCall", + "src": "25912:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25888:6:70", + "nodeType": "YulIdentifier", + "src": "25888:6:70" + }, + "nativeSrc": "25888:74:70", + "nodeType": "YulFunctionCall", + "src": "25888:74:70" + }, + "nativeSrc": "25888:74:70", + "nodeType": "YulExpressionStatement", + "src": "25888:74:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25982:5:70", + "nodeType": "YulIdentifier", + "src": "25982:5:70" + }, + { + "kind": "number", + "nativeSrc": "25989:3:70", + "nodeType": "YulLiteral", + "src": "25989:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25978:3:70", + "nodeType": "YulIdentifier", + "src": "25978:3:70" + }, + "nativeSrc": "25978:15:70", + "nodeType": "YulFunctionCall", + "src": "25978:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26028:9:70", + "nodeType": "YulIdentifier", + "src": "26028:9:70" + }, + { + "kind": "number", + "nativeSrc": "26039:3:70", + "nodeType": "YulLiteral", + "src": "26039:3:70", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26024:3:70", + "nodeType": "YulIdentifier", + "src": "26024:3:70" + }, + "nativeSrc": "26024:19:70", + "nodeType": "YulFunctionCall", + "src": "26024:19:70" + } + ], + "functionName": { + "name": "abi_decode_uint64_fromMemory", + "nativeSrc": "25995:28:70", + "nodeType": "YulIdentifier", + "src": "25995:28:70" + }, + "nativeSrc": "25995:49:70", + "nodeType": "YulFunctionCall", + "src": "25995:49:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25971:6:70", + "nodeType": "YulIdentifier", + "src": "25971:6:70" + }, + "nativeSrc": "25971:74:70", + "nodeType": "YulFunctionCall", + "src": "25971:74:70" + }, + "nativeSrc": "25971:74:70", + "nodeType": "YulExpressionStatement", + "src": "25971:74:70" + }, + { + "nativeSrc": "26054:17:70", + "nodeType": "YulVariableDeclaration", + "src": "26054:17:70", + "value": { + "name": "_1", + "nativeSrc": "26069:2:70", + "nodeType": "YulIdentifier", + "src": "26069:2:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "26058:7:70", + "nodeType": "YulTypedName", + "src": "26058:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "26080:37:70", + "nodeType": "YulAssignment", + "src": "26080:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26101:9:70", + "nodeType": "YulIdentifier", + "src": "26101:9:70" + }, + { + "kind": "number", + "nativeSrc": "26112:3:70", + "nodeType": "YulLiteral", + "src": "26112:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26097:3:70", + "nodeType": "YulIdentifier", + "src": "26097:3:70" + }, + "nativeSrc": "26097:19:70", + "nodeType": "YulFunctionCall", + "src": "26097:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26091:5:70", + "nodeType": "YulIdentifier", + "src": "26091:5:70" + }, + "nativeSrc": "26091:26:70", + "nodeType": "YulFunctionCall", + "src": "26091:26:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "26080:7:70", + "nodeType": "YulIdentifier", + "src": "26080:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "26137:5:70", + "nodeType": "YulIdentifier", + "src": "26137:5:70" + }, + { + "kind": "number", + "nativeSrc": "26144:3:70", + "nodeType": "YulLiteral", + "src": "26144:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26133:3:70", + "nodeType": "YulIdentifier", + "src": "26133:3:70" + }, + "nativeSrc": "26133:15:70", + "nodeType": "YulFunctionCall", + "src": "26133:15:70" + }, + { + "name": "value_4", + "nativeSrc": "26150:7:70", + "nodeType": "YulIdentifier", + "src": "26150:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26126:6:70", + "nodeType": "YulIdentifier", + "src": "26126:6:70" + }, + "nativeSrc": "26126:32:70", + "nodeType": "YulFunctionCall", + "src": "26126:32:70" + }, + "nativeSrc": "26126:32:70", + "nodeType": "YulExpressionStatement", + "src": "26126:32:70" + }, + { + "nativeSrc": "26167:17:70", + "nodeType": "YulVariableDeclaration", + "src": "26167:17:70", + "value": { + "name": "_1", + "nativeSrc": "26182:2:70", + "nodeType": "YulIdentifier", + "src": "26182:2:70" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "26171:7:70", + "nodeType": "YulTypedName", + "src": "26171:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "26193:37:70", + "nodeType": "YulAssignment", + "src": "26193:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26214:9:70", + "nodeType": "YulIdentifier", + "src": "26214:9:70" + }, + { + "kind": "number", + "nativeSrc": "26225:3:70", + "nodeType": "YulLiteral", + "src": "26225:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26210:3:70", + "nodeType": "YulIdentifier", + "src": "26210:3:70" + }, + "nativeSrc": "26210:19:70", + "nodeType": "YulFunctionCall", + "src": "26210:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26204:5:70", + "nodeType": "YulIdentifier", + "src": "26204:5:70" + }, + "nativeSrc": "26204:26:70", + "nodeType": "YulFunctionCall", + "src": "26204:26:70" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "26193:7:70", + "nodeType": "YulIdentifier", + "src": "26193:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "26250:5:70", + "nodeType": "YulIdentifier", + "src": "26250:5:70" + }, + { + "kind": "number", + "nativeSrc": "26257:3:70", + "nodeType": "YulLiteral", + "src": "26257:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26246:3:70", + "nodeType": "YulIdentifier", + "src": "26246:3:70" + }, + "nativeSrc": "26246:15:70", + "nodeType": "YulFunctionCall", + "src": "26246:15:70" + }, + { + "name": "value_5", + "nativeSrc": "26263:7:70", + "nodeType": "YulIdentifier", + "src": "26263:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26239:6:70", + "nodeType": "YulIdentifier", + "src": "26239:6:70" + }, + "nativeSrc": "26239:32:70", + "nodeType": "YulFunctionCall", + "src": "26239:32:70" + }, + "nativeSrc": "26239:32:70", + "nodeType": "YulExpressionStatement", + "src": "26239:32:70" + }, + { + "nativeSrc": "26280:15:70", + "nodeType": "YulAssignment", + "src": "26280:15:70", + "value": { + "name": "value", + "nativeSrc": "26290:5:70", + "nodeType": "YulIdentifier", + "src": "26290:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "26280:6:70", + "nodeType": "YulIdentifier", + "src": "26280:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Provision_$3962_memory_ptr_fromMemory", + "nativeSrc": "25065:1236:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25139:9:70", + "nodeType": "YulTypedName", + "src": "25139:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "25150:7:70", + "nodeType": "YulTypedName", + "src": "25150:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "25162:6:70", + "nodeType": "YulTypedName", + "src": "25162:6:70", + "type": "" + } + ], + "src": "25065:1236:70" + }, + { + "body": { + "nativeSrc": "26429:161:70", + "nodeType": "YulBlock", + "src": "26429:161:70", + "statements": [ + { + "nativeSrc": "26439:26:70", + "nodeType": "YulAssignment", + "src": "26439:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26451:9:70", + "nodeType": "YulIdentifier", + "src": "26451:9:70" + }, + { + "kind": "number", + "nativeSrc": "26462:2:70", + "nodeType": "YulLiteral", + "src": "26462:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26447:3:70", + "nodeType": "YulIdentifier", + "src": "26447:3:70" + }, + "nativeSrc": "26447:18:70", + "nodeType": "YulFunctionCall", + "src": "26447:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26439:4:70", + "nodeType": "YulIdentifier", + "src": "26439:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26481:9:70", + "nodeType": "YulIdentifier", + "src": "26481:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26496:6:70", + "nodeType": "YulIdentifier", + "src": "26496:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26512:3:70", + "nodeType": "YulLiteral", + "src": "26512:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "26517:1:70", + "nodeType": "YulLiteral", + "src": "26517:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "26508:3:70", + "nodeType": "YulIdentifier", + "src": "26508:3:70" + }, + "nativeSrc": "26508:11:70", + "nodeType": "YulFunctionCall", + "src": "26508:11:70" + }, + { + "kind": "number", + "nativeSrc": "26521:1:70", + "nodeType": "YulLiteral", + "src": "26521:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26504:3:70", + "nodeType": "YulIdentifier", + "src": "26504:3:70" + }, + "nativeSrc": "26504:19:70", + "nodeType": "YulFunctionCall", + "src": "26504:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26492:3:70", + "nodeType": "YulIdentifier", + "src": "26492:3:70" + }, + "nativeSrc": "26492:32:70", + "nodeType": "YulFunctionCall", + "src": "26492:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26474:6:70", + "nodeType": "YulIdentifier", + "src": "26474:6:70" + }, + "nativeSrc": "26474:51:70", + "nodeType": "YulFunctionCall", + "src": "26474:51:70" + }, + "nativeSrc": "26474:51:70", + "nodeType": "YulExpressionStatement", + "src": "26474:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26545:9:70", + "nodeType": "YulIdentifier", + "src": "26545:9:70" + }, + { + "kind": "number", + "nativeSrc": "26556:2:70", + "nodeType": "YulLiteral", + "src": "26556:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26541:3:70", + "nodeType": "YulIdentifier", + "src": "26541:3:70" + }, + "nativeSrc": "26541:18:70", + "nodeType": "YulFunctionCall", + "src": "26541:18:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26575:6:70", + "nodeType": "YulIdentifier", + "src": "26575:6:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26568:6:70", + "nodeType": "YulIdentifier", + "src": "26568:6:70" + }, + "nativeSrc": "26568:14:70", + "nodeType": "YulFunctionCall", + "src": "26568:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26561:6:70", + "nodeType": "YulIdentifier", + "src": "26561:6:70" + }, + "nativeSrc": "26561:22:70", + "nodeType": "YulFunctionCall", + "src": "26561:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26534:6:70", + "nodeType": "YulIdentifier", + "src": "26534:6:70" + }, + "nativeSrc": "26534:50:70", + "nodeType": "YulFunctionCall", + "src": "26534:50:70" + }, + "nativeSrc": "26534:50:70", + "nodeType": "YulExpressionStatement", + "src": "26534:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed", + "nativeSrc": "26306:284:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26390:9:70", + "nodeType": "YulTypedName", + "src": "26390:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26401:6:70", + "nodeType": "YulTypedName", + "src": "26401:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26409:6:70", + "nodeType": "YulTypedName", + "src": "26409:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26420:4:70", + "nodeType": "YulTypedName", + "src": "26420:4:70", + "type": "" + } + ], + "src": "26306:284:70" + }, + { + "body": { + "nativeSrc": "26730:156:70", + "nodeType": "YulBlock", + "src": "26730:156:70", + "statements": [ + { + "nativeSrc": "26740:26:70", + "nodeType": "YulAssignment", + "src": "26740:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26752:9:70", + "nodeType": "YulIdentifier", + "src": "26752:9:70" + }, + { + "kind": "number", + "nativeSrc": "26763:2:70", + "nodeType": "YulLiteral", + "src": "26763:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26748:3:70", + "nodeType": "YulIdentifier", + "src": "26748:3:70" + }, + "nativeSrc": "26748:18:70", + "nodeType": "YulFunctionCall", + "src": "26748:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26740:4:70", + "nodeType": "YulIdentifier", + "src": "26740:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26782:9:70", + "nodeType": "YulIdentifier", + "src": "26782:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26797:6:70", + "nodeType": "YulIdentifier", + "src": "26797:6:70" + }, + { + "kind": "number", + "nativeSrc": "26805:4:70", + "nodeType": "YulLiteral", + "src": "26805:4:70", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26793:3:70", + "nodeType": "YulIdentifier", + "src": "26793:3:70" + }, + "nativeSrc": "26793:17:70", + "nodeType": "YulFunctionCall", + "src": "26793:17:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26775:6:70", + "nodeType": "YulIdentifier", + "src": "26775:6:70" + }, + "nativeSrc": "26775:36:70", + "nodeType": "YulFunctionCall", + "src": "26775:36:70" + }, + "nativeSrc": "26775:36:70", + "nodeType": "YulExpressionStatement", + "src": "26775:36:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26831:9:70", + "nodeType": "YulIdentifier", + "src": "26831:9:70" + }, + { + "kind": "number", + "nativeSrc": "26842:2:70", + "nodeType": "YulLiteral", + "src": "26842:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26827:3:70", + "nodeType": "YulIdentifier", + "src": "26827:3:70" + }, + "nativeSrc": "26827:18:70", + "nodeType": "YulFunctionCall", + "src": "26827:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26851:6:70", + "nodeType": "YulIdentifier", + "src": "26851:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26867:3:70", + "nodeType": "YulLiteral", + "src": "26867:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "26872:1:70", + "nodeType": "YulLiteral", + "src": "26872:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "26863:3:70", + "nodeType": "YulIdentifier", + "src": "26863:3:70" + }, + "nativeSrc": "26863:11:70", + "nodeType": "YulFunctionCall", + "src": "26863:11:70" + }, + { + "kind": "number", + "nativeSrc": "26876:1:70", + "nodeType": "YulLiteral", + "src": "26876:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26859:3:70", + "nodeType": "YulIdentifier", + "src": "26859:3:70" + }, + "nativeSrc": "26859:19:70", + "nodeType": "YulFunctionCall", + "src": "26859:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26847:3:70", + "nodeType": "YulIdentifier", + "src": "26847:3:70" + }, + "nativeSrc": "26847:32:70", + "nodeType": "YulFunctionCall", + "src": "26847:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26820:6:70", + "nodeType": "YulIdentifier", + "src": "26820:6:70" + }, + "nativeSrc": "26820:60:70", + "nodeType": "YulFunctionCall", + "src": "26820:60:70" + }, + "nativeSrc": "26820:60:70", + "nodeType": "YulExpressionStatement", + "src": "26820:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_rational_0_by_1_t_address__to_t_uint8_t_address__fromStack_reversed", + "nativeSrc": "26595:291:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26691:9:70", + "nodeType": "YulTypedName", + "src": "26691:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26702:6:70", + "nodeType": "YulTypedName", + "src": "26702:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26710:6:70", + "nodeType": "YulTypedName", + "src": "26710:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26721:4:70", + "nodeType": "YulTypedName", + "src": "26721:4:70", + "type": "" + } + ], + "src": "26595:291:70" + }, + { + "body": { + "nativeSrc": "26972:149:70", + "nodeType": "YulBlock", + "src": "26972:149:70", + "statements": [ + { + "body": { + "nativeSrc": "27018:16:70", + "nodeType": "YulBlock", + "src": "27018:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27027:1:70", + "nodeType": "YulLiteral", + "src": "27027:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27030:1:70", + "nodeType": "YulLiteral", + "src": "27030:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27020:6:70", + "nodeType": "YulIdentifier", + "src": "27020:6:70" + }, + "nativeSrc": "27020:12:70", + "nodeType": "YulFunctionCall", + "src": "27020:12:70" + }, + "nativeSrc": "27020:12:70", + "nodeType": "YulExpressionStatement", + "src": "27020:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "26993:7:70", + "nodeType": "YulIdentifier", + "src": "26993:7:70" + }, + { + "name": "headStart", + "nativeSrc": "27002:9:70", + "nodeType": "YulIdentifier", + "src": "27002:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26989:3:70", + "nodeType": "YulIdentifier", + "src": "26989:3:70" + }, + "nativeSrc": "26989:23:70", + "nodeType": "YulFunctionCall", + "src": "26989:23:70" + }, + { + "kind": "number", + "nativeSrc": "27014:2:70", + "nodeType": "YulLiteral", + "src": "27014:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26985:3:70", + "nodeType": "YulIdentifier", + "src": "26985:3:70" + }, + "nativeSrc": "26985:32:70", + "nodeType": "YulFunctionCall", + "src": "26985:32:70" + }, + "nativeSrc": "26982:52:70", + "nodeType": "YulIf", + "src": "26982:52:70" + }, + { + "nativeSrc": "27043:14:70", + "nodeType": "YulVariableDeclaration", + "src": "27043:14:70", + "value": { + "kind": "number", + "nativeSrc": "27056:1:70", + "nodeType": "YulLiteral", + "src": "27056:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "27047:5:70", + "nodeType": "YulTypedName", + "src": "27047:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "27066:25:70", + "nodeType": "YulAssignment", + "src": "27066:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27081:9:70", + "nodeType": "YulIdentifier", + "src": "27081:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27075:5:70", + "nodeType": "YulIdentifier", + "src": "27075:5:70" + }, + "nativeSrc": "27075:16:70", + "nodeType": "YulFunctionCall", + "src": "27075:16:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "27066:5:70", + "nodeType": "YulIdentifier", + "src": "27066:5:70" + } + ] + }, + { + "nativeSrc": "27100:15:70", + "nodeType": "YulAssignment", + "src": "27100:15:70", + "value": { + "name": "value", + "nativeSrc": "27110:5:70", + "nodeType": "YulIdentifier", + "src": "27110:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "27100:6:70", + "nodeType": "YulIdentifier", + "src": "27100:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "26891:230:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26938:9:70", + "nodeType": "YulTypedName", + "src": "26938:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "26949:7:70", + "nodeType": "YulTypedName", + "src": "26949:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "26961:6:70", + "nodeType": "YulTypedName", + "src": "26961:6:70", + "type": "" + } + ], + "src": "26891:230:70" + }, + { + "body": { + "nativeSrc": "27206:169:70", + "nodeType": "YulBlock", + "src": "27206:169:70", + "statements": [ + { + "body": { + "nativeSrc": "27252:16:70", + "nodeType": "YulBlock", + "src": "27252:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27261:1:70", + "nodeType": "YulLiteral", + "src": "27261:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27264:1:70", + "nodeType": "YulLiteral", + "src": "27264:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27254:6:70", + "nodeType": "YulIdentifier", + "src": "27254:6:70" + }, + "nativeSrc": "27254:12:70", + "nodeType": "YulFunctionCall", + "src": "27254:12:70" + }, + "nativeSrc": "27254:12:70", + "nodeType": "YulExpressionStatement", + "src": "27254:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "27227:7:70", + "nodeType": "YulIdentifier", + "src": "27227:7:70" + }, + { + "name": "headStart", + "nativeSrc": "27236:9:70", + "nodeType": "YulIdentifier", + "src": "27236:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "27223:3:70", + "nodeType": "YulIdentifier", + "src": "27223:3:70" + }, + "nativeSrc": "27223:23:70", + "nodeType": "YulFunctionCall", + "src": "27223:23:70" + }, + { + "kind": "number", + "nativeSrc": "27248:2:70", + "nodeType": "YulLiteral", + "src": "27248:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "27219:3:70", + "nodeType": "YulIdentifier", + "src": "27219:3:70" + }, + "nativeSrc": "27219:32:70", + "nodeType": "YulFunctionCall", + "src": "27219:32:70" + }, + "nativeSrc": "27216:52:70", + "nodeType": "YulIf", + "src": "27216:52:70" + }, + { + "nativeSrc": "27277:29:70", + "nodeType": "YulVariableDeclaration", + "src": "27277:29:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27296:9:70", + "nodeType": "YulIdentifier", + "src": "27296:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27290:5:70", + "nodeType": "YulIdentifier", + "src": "27290:5:70" + }, + "nativeSrc": "27290:16:70", + "nodeType": "YulFunctionCall", + "src": "27290:16:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "27281:5:70", + "nodeType": "YulTypedName", + "src": "27281:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27339:5:70", + "nodeType": "YulIdentifier", + "src": "27339:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint32", + "nativeSrc": "27315:23:70", + "nodeType": "YulIdentifier", + "src": "27315:23:70" + }, + "nativeSrc": "27315:30:70", + "nodeType": "YulFunctionCall", + "src": "27315:30:70" + }, + "nativeSrc": "27315:30:70", + "nodeType": "YulExpressionStatement", + "src": "27315:30:70" + }, + { + "nativeSrc": "27354:15:70", + "nodeType": "YulAssignment", + "src": "27354:15:70", + "value": { + "name": "value", + "nativeSrc": "27364:5:70", + "nodeType": "YulIdentifier", + "src": "27364:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "27354:6:70", + "nodeType": "YulIdentifier", + "src": "27354:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint32_fromMemory", + "nativeSrc": "27126:249:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27172:9:70", + "nodeType": "YulTypedName", + "src": "27172:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "27183:7:70", + "nodeType": "YulTypedName", + "src": "27183:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "27195:6:70", + "nodeType": "YulTypedName", + "src": "27195:6:70", + "type": "" + } + ], + "src": "27126:249:70" + }, + { + "body": { + "nativeSrc": "27460:169:70", + "nodeType": "YulBlock", + "src": "27460:169:70", + "statements": [ + { + "body": { + "nativeSrc": "27506:16:70", + "nodeType": "YulBlock", + "src": "27506:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27515:1:70", + "nodeType": "YulLiteral", + "src": "27515:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27518:1:70", + "nodeType": "YulLiteral", + "src": "27518:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27508:6:70", + "nodeType": "YulIdentifier", + "src": "27508:6:70" + }, + "nativeSrc": "27508:12:70", + "nodeType": "YulFunctionCall", + "src": "27508:12:70" + }, + "nativeSrc": "27508:12:70", + "nodeType": "YulExpressionStatement", + "src": "27508:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "27481:7:70", + "nodeType": "YulIdentifier", + "src": "27481:7:70" + }, + { + "name": "headStart", + "nativeSrc": "27490:9:70", + "nodeType": "YulIdentifier", + "src": "27490:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "27477:3:70", + "nodeType": "YulIdentifier", + "src": "27477:3:70" + }, + "nativeSrc": "27477:23:70", + "nodeType": "YulFunctionCall", + "src": "27477:23:70" + }, + { + "kind": "number", + "nativeSrc": "27502:2:70", + "nodeType": "YulLiteral", + "src": "27502:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "27473:3:70", + "nodeType": "YulIdentifier", + "src": "27473:3:70" + }, + "nativeSrc": "27473:32:70", + "nodeType": "YulFunctionCall", + "src": "27473:32:70" + }, + "nativeSrc": "27470:52:70", + "nodeType": "YulIf", + "src": "27470:52:70" + }, + { + "nativeSrc": "27531:29:70", + "nodeType": "YulVariableDeclaration", + "src": "27531:29:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27550:9:70", + "nodeType": "YulIdentifier", + "src": "27550:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27544:5:70", + "nodeType": "YulIdentifier", + "src": "27544:5:70" + }, + "nativeSrc": "27544:16:70", + "nodeType": "YulFunctionCall", + "src": "27544:16:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "27535:5:70", + "nodeType": "YulTypedName", + "src": "27535:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27593:5:70", + "nodeType": "YulIdentifier", + "src": "27593:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "27569:23:70", + "nodeType": "YulIdentifier", + "src": "27569:23:70" + }, + "nativeSrc": "27569:30:70", + "nodeType": "YulFunctionCall", + "src": "27569:30:70" + }, + "nativeSrc": "27569:30:70", + "nodeType": "YulExpressionStatement", + "src": "27569:30:70" + }, + { + "nativeSrc": "27608:15:70", + "nodeType": "YulAssignment", + "src": "27608:15:70", + "value": { + "name": "value", + "nativeSrc": "27618:5:70", + "nodeType": "YulIdentifier", + "src": "27618:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "27608:6:70", + "nodeType": "YulIdentifier", + "src": "27608:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64_fromMemory", + "nativeSrc": "27380:249:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27426:9:70", + "nodeType": "YulTypedName", + "src": "27426:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "27437:7:70", + "nodeType": "YulTypedName", + "src": "27437:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "27449:6:70", + "nodeType": "YulTypedName", + "src": "27449:6:70", + "type": "" + } + ], + "src": "27380:249:70" + }, + { + "body": { + "nativeSrc": "27757:135:70", + "nodeType": "YulBlock", + "src": "27757:135:70", + "statements": [ + { + "nativeSrc": "27767:26:70", + "nodeType": "YulAssignment", + "src": "27767:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27779:9:70", + "nodeType": "YulIdentifier", + "src": "27779:9:70" + }, + { + "kind": "number", + "nativeSrc": "27790:2:70", + "nodeType": "YulLiteral", + "src": "27790:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27775:3:70", + "nodeType": "YulIdentifier", + "src": "27775:3:70" + }, + "nativeSrc": "27775:18:70", + "nodeType": "YulFunctionCall", + "src": "27775:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27767:4:70", + "nodeType": "YulIdentifier", + "src": "27767:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27809:9:70", + "nodeType": "YulIdentifier", + "src": "27809:9:70" + }, + { + "name": "value0", + "nativeSrc": "27820:6:70", + "nodeType": "YulIdentifier", + "src": "27820:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27802:6:70", + "nodeType": "YulIdentifier", + "src": "27802:6:70" + }, + "nativeSrc": "27802:25:70", + "nodeType": "YulFunctionCall", + "src": "27802:25:70" + }, + "nativeSrc": "27802:25:70", + "nodeType": "YulExpressionStatement", + "src": "27802:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27847:9:70", + "nodeType": "YulIdentifier", + "src": "27847:9:70" + }, + { + "kind": "number", + "nativeSrc": "27858:2:70", + "nodeType": "YulLiteral", + "src": "27858:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27843:3:70", + "nodeType": "YulIdentifier", + "src": "27843:3:70" + }, + "nativeSrc": "27843:18:70", + "nodeType": "YulFunctionCall", + "src": "27843:18:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "27877:6:70", + "nodeType": "YulIdentifier", + "src": "27877:6:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "27870:6:70", + "nodeType": "YulIdentifier", + "src": "27870:6:70" + }, + "nativeSrc": "27870:14:70", + "nodeType": "YulFunctionCall", + "src": "27870:14:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "27863:6:70", + "nodeType": "YulIdentifier", + "src": "27863:6:70" + }, + "nativeSrc": "27863:22:70", + "nodeType": "YulFunctionCall", + "src": "27863:22:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27836:6:70", + "nodeType": "YulIdentifier", + "src": "27836:6:70" + }, + "nativeSrc": "27836:50:70", + "nodeType": "YulFunctionCall", + "src": "27836:50:70" + }, + "nativeSrc": "27836:50:70", + "nodeType": "YulExpressionStatement", + "src": "27836:50:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed", + "nativeSrc": "27634:258:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27718:9:70", + "nodeType": "YulTypedName", + "src": "27718:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27729:6:70", + "nodeType": "YulTypedName", + "src": "27729:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27737:6:70", + "nodeType": "YulTypedName", + "src": "27737:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "27748:4:70", + "nodeType": "YulTypedName", + "src": "27748:4:70", + "type": "" + } + ], + "src": "27634:258:70" + }, + { + "body": { + "nativeSrc": "28026:145:70", + "nodeType": "YulBlock", + "src": "28026:145:70", + "statements": [ + { + "nativeSrc": "28036:26:70", + "nodeType": "YulAssignment", + "src": "28036:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28048:9:70", + "nodeType": "YulIdentifier", + "src": "28048:9:70" + }, + { + "kind": "number", + "nativeSrc": "28059:2:70", + "nodeType": "YulLiteral", + "src": "28059:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28044:3:70", + "nodeType": "YulIdentifier", + "src": "28044:3:70" + }, + "nativeSrc": "28044:18:70", + "nodeType": "YulFunctionCall", + "src": "28044:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "28036:4:70", + "nodeType": "YulIdentifier", + "src": "28036:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28078:9:70", + "nodeType": "YulIdentifier", + "src": "28078:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28093:6:70", + "nodeType": "YulIdentifier", + "src": "28093:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28109:3:70", + "nodeType": "YulLiteral", + "src": "28109:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "28114:1:70", + "nodeType": "YulLiteral", + "src": "28114:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "28105:3:70", + "nodeType": "YulIdentifier", + "src": "28105:3:70" + }, + "nativeSrc": "28105:11:70", + "nodeType": "YulFunctionCall", + "src": "28105:11:70" + }, + { + "kind": "number", + "nativeSrc": "28118:1:70", + "nodeType": "YulLiteral", + "src": "28118:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "28101:3:70", + "nodeType": "YulIdentifier", + "src": "28101:3:70" + }, + "nativeSrc": "28101:19:70", + "nodeType": "YulFunctionCall", + "src": "28101:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "28089:3:70", + "nodeType": "YulIdentifier", + "src": "28089:3:70" + }, + "nativeSrc": "28089:32:70", + "nodeType": "YulFunctionCall", + "src": "28089:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28071:6:70", + "nodeType": "YulIdentifier", + "src": "28071:6:70" + }, + "nativeSrc": "28071:51:70", + "nodeType": "YulFunctionCall", + "src": "28071:51:70" + }, + "nativeSrc": "28071:51:70", + "nodeType": "YulExpressionStatement", + "src": "28071:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28142:9:70", + "nodeType": "YulIdentifier", + "src": "28142:9:70" + }, + { + "kind": "number", + "nativeSrc": "28153:2:70", + "nodeType": "YulLiteral", + "src": "28153:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28138:3:70", + "nodeType": "YulIdentifier", + "src": "28138:3:70" + }, + "nativeSrc": "28138:18:70", + "nodeType": "YulFunctionCall", + "src": "28138:18:70" + }, + { + "name": "value1", + "nativeSrc": "28158:6:70", + "nodeType": "YulIdentifier", + "src": "28158:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28131:6:70", + "nodeType": "YulIdentifier", + "src": "28131:6:70" + }, + "nativeSrc": "28131:34:70", + "nodeType": "YulFunctionCall", + "src": "28131:34:70" + }, + "nativeSrc": "28131:34:70", + "nodeType": "YulExpressionStatement", + "src": "28131:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "27897:274:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27987:9:70", + "nodeType": "YulTypedName", + "src": "27987:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27998:6:70", + "nodeType": "YulTypedName", + "src": "27998:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28006:6:70", + "nodeType": "YulTypedName", + "src": "28006:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "28017:4:70", + "nodeType": "YulTypedName", + "src": "28017:4:70", + "type": "" + } + ], + "src": "27897:274:70" + }, + { + "body": { + "nativeSrc": "28224:77:70", + "nodeType": "YulBlock", + "src": "28224:77:70", + "statements": [ + { + "nativeSrc": "28234:16:70", + "nodeType": "YulAssignment", + "src": "28234:16:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "28245:1:70", + "nodeType": "YulIdentifier", + "src": "28245:1:70" + }, + { + "name": "y", + "nativeSrc": "28248:1:70", + "nodeType": "YulIdentifier", + "src": "28248:1:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28241:3:70", + "nodeType": "YulIdentifier", + "src": "28241:3:70" + }, + "nativeSrc": "28241:9:70", + "nodeType": "YulFunctionCall", + "src": "28241:9:70" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "28234:3:70", + "nodeType": "YulIdentifier", + "src": "28234:3:70" + } + ] + }, + { + "body": { + "nativeSrc": "28273:22:70", + "nodeType": "YulBlock", + "src": "28273:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "28275:16:70", + "nodeType": "YulIdentifier", + "src": "28275:16:70" + }, + "nativeSrc": "28275:18:70", + "nodeType": "YulFunctionCall", + "src": "28275:18:70" + }, + "nativeSrc": "28275:18:70", + "nodeType": "YulExpressionStatement", + "src": "28275:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "28265:1:70", + "nodeType": "YulIdentifier", + "src": "28265:1:70" + }, + { + "name": "sum", + "nativeSrc": "28268:3:70", + "nodeType": "YulIdentifier", + "src": "28268:3:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "28262:2:70", + "nodeType": "YulIdentifier", + "src": "28262:2:70" + }, + "nativeSrc": "28262:10:70", + "nodeType": "YulFunctionCall", + "src": "28262:10:70" + }, + "nativeSrc": "28259:36:70", + "nodeType": "YulIf", + "src": "28259:36:70" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "28176:125:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "28207:1:70", + "nodeType": "YulTypedName", + "src": "28207:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "28210:1:70", + "nodeType": "YulTypedName", + "src": "28210:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "28216:3:70", + "nodeType": "YulTypedName", + "src": "28216:3:70", + "type": "" + } + ], + "src": "28176:125:70" + }, + { + "body": { + "nativeSrc": "28443:150:70", + "nodeType": "YulBlock", + "src": "28443:150:70", + "statements": [ + { + "nativeSrc": "28453:27:70", + "nodeType": "YulVariableDeclaration", + "src": "28453:27:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28473:6:70", + "nodeType": "YulIdentifier", + "src": "28473:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28467:5:70", + "nodeType": "YulIdentifier", + "src": "28467:5:70" + }, + "nativeSrc": "28467:13:70", + "nodeType": "YulFunctionCall", + "src": "28467:13:70" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "28457:6:70", + "nodeType": "YulTypedName", + "src": "28457:6:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28528:6:70", + "nodeType": "YulIdentifier", + "src": "28528:6:70" + }, + { + "kind": "number", + "nativeSrc": "28536:4:70", + "nodeType": "YulLiteral", + "src": "28536:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28524:3:70", + "nodeType": "YulIdentifier", + "src": "28524:3:70" + }, + "nativeSrc": "28524:17:70", + "nodeType": "YulFunctionCall", + "src": "28524:17:70" + }, + { + "name": "pos", + "nativeSrc": "28543:3:70", + "nodeType": "YulIdentifier", + "src": "28543:3:70" + }, + { + "name": "length", + "nativeSrc": "28548:6:70", + "nodeType": "YulIdentifier", + "src": "28548:6:70" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "28489:34:70", + "nodeType": "YulIdentifier", + "src": "28489:34:70" + }, + "nativeSrc": "28489:66:70", + "nodeType": "YulFunctionCall", + "src": "28489:66:70" + }, + "nativeSrc": "28489:66:70", + "nodeType": "YulExpressionStatement", + "src": "28489:66:70" + }, + { + "nativeSrc": "28564:23:70", + "nodeType": "YulAssignment", + "src": "28564:23:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28575:3:70", + "nodeType": "YulIdentifier", + "src": "28575:3:70" + }, + { + "name": "length", + "nativeSrc": "28580:6:70", + "nodeType": "YulIdentifier", + "src": "28580:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28571:3:70", + "nodeType": "YulIdentifier", + "src": "28571:3:70" + }, + "nativeSrc": "28571:16:70", + "nodeType": "YulFunctionCall", + "src": "28571:16:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28564:3:70", + "nodeType": "YulIdentifier", + "src": "28564:3:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "28306:287:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28419:3:70", + "nodeType": "YulTypedName", + "src": "28419:3:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28424:6:70", + "nodeType": "YulTypedName", + "src": "28424:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28435:3:70", + "nodeType": "YulTypedName", + "src": "28435:3:70", + "type": "" + } + ], + "src": "28306:287:70" + }, + { + "body": { + "nativeSrc": "28646:84:70", + "nodeType": "YulBlock", + "src": "28646:84:70", + "statements": [ + { + "nativeSrc": "28656:29:70", + "nodeType": "YulAssignment", + "src": "28656:29:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "28678:6:70", + "nodeType": "YulIdentifier", + "src": "28678:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "28665:12:70", + "nodeType": "YulIdentifier", + "src": "28665:12:70" + }, + "nativeSrc": "28665:20:70", + "nodeType": "YulFunctionCall", + "src": "28665:20:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "28656:5:70", + "nodeType": "YulIdentifier", + "src": "28656:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "28718:5:70", + "nodeType": "YulIdentifier", + "src": "28718:5:70" + } + ], + "functionName": { + "name": "validator_revert_uint64", + "nativeSrc": "28694:23:70", + "nodeType": "YulIdentifier", + "src": "28694:23:70" + }, + "nativeSrc": "28694:30:70", + "nodeType": "YulFunctionCall", + "src": "28694:30:70" + }, + "nativeSrc": "28694:30:70", + "nodeType": "YulExpressionStatement", + "src": "28694:30:70" + } + ] + }, + "name": "abi_decode_uint64", + "nativeSrc": "28598:132:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "28625:6:70", + "nodeType": "YulTypedName", + "src": "28625:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "28636:5:70", + "nodeType": "YulTypedName", + "src": "28636:5:70", + "type": "" + } + ], + "src": "28598:132:70" + }, + { + "body": { + "nativeSrc": "28784:124:70", + "nodeType": "YulBlock", + "src": "28784:124:70", + "statements": [ + { + "nativeSrc": "28794:29:70", + "nodeType": "YulAssignment", + "src": "28794:29:70", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "28816:6:70", + "nodeType": "YulIdentifier", + "src": "28816:6:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "28803:12:70", + "nodeType": "YulIdentifier", + "src": "28803:12:70" + }, + "nativeSrc": "28803:20:70", + "nodeType": "YulFunctionCall", + "src": "28803:20:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "28794:5:70", + "nodeType": "YulIdentifier", + "src": "28794:5:70" + } + ] + }, + { + "body": { + "nativeSrc": "28886:16:70", + "nodeType": "YulBlock", + "src": "28886:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28895:1:70", + "nodeType": "YulLiteral", + "src": "28895:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28898:1:70", + "nodeType": "YulLiteral", + "src": "28898:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "28888:6:70", + "nodeType": "YulIdentifier", + "src": "28888:6:70" + }, + "nativeSrc": "28888:12:70", + "nodeType": "YulFunctionCall", + "src": "28888:12:70" + }, + "nativeSrc": "28888:12:70", + "nodeType": "YulExpressionStatement", + "src": "28888:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28845:5:70", + "nodeType": "YulIdentifier", + "src": "28845:5:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28856:5:70", + "nodeType": "YulIdentifier", + "src": "28856:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28871:3:70", + "nodeType": "YulLiteral", + "src": "28871:3:70", + "type": "", + "value": "128" + }, + { + "kind": "number", + "nativeSrc": "28876:1:70", + "nodeType": "YulLiteral", + "src": "28876:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "28867:3:70", + "nodeType": "YulIdentifier", + "src": "28867:3:70" + }, + "nativeSrc": "28867:11:70", + "nodeType": "YulFunctionCall", + "src": "28867:11:70" + }, + { + "kind": "number", + "nativeSrc": "28880:1:70", + "nodeType": "YulLiteral", + "src": "28880:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "28863:3:70", + "nodeType": "YulIdentifier", + "src": "28863:3:70" + }, + "nativeSrc": "28863:19:70", + "nodeType": "YulFunctionCall", + "src": "28863:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "28852:3:70", + "nodeType": "YulIdentifier", + "src": "28852:3:70" + }, + "nativeSrc": "28852:31:70", + "nodeType": "YulFunctionCall", + "src": "28852:31:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "28842:2:70", + "nodeType": "YulIdentifier", + "src": "28842:2:70" + }, + "nativeSrc": "28842:42:70", + "nodeType": "YulFunctionCall", + "src": "28842:42:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "28835:6:70", + "nodeType": "YulIdentifier", + "src": "28835:6:70" + }, + "nativeSrc": "28835:50:70", + "nodeType": "YulFunctionCall", + "src": "28835:50:70" + }, + "nativeSrc": "28832:70:70", + "nodeType": "YulIf", + "src": "28832:70:70" + } + ] + }, + "name": "abi_decode_uint128", + "nativeSrc": "28735:173:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "28763:6:70", + "nodeType": "YulTypedName", + "src": "28763:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "28774:5:70", + "nodeType": "YulTypedName", + "src": "28774:5:70", + "type": "" + } + ], + "src": "28735:173:70" + }, + { + "body": { + "nativeSrc": "29027:1514:70", + "nodeType": "YulBlock", + "src": "29027:1514:70", + "statements": [ + { + "body": { + "nativeSrc": "29073:16:70", + "nodeType": "YulBlock", + "src": "29073:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29082:1:70", + "nodeType": "YulLiteral", + "src": "29082:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29085:1:70", + "nodeType": "YulLiteral", + "src": "29085:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29075:6:70", + "nodeType": "YulIdentifier", + "src": "29075:6:70" + }, + "nativeSrc": "29075:12:70", + "nodeType": "YulFunctionCall", + "src": "29075:12:70" + }, + "nativeSrc": "29075:12:70", + "nodeType": "YulExpressionStatement", + "src": "29075:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "29048:7:70", + "nodeType": "YulIdentifier", + "src": "29048:7:70" + }, + { + "name": "headStart", + "nativeSrc": "29057:9:70", + "nodeType": "YulIdentifier", + "src": "29057:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29044:3:70", + "nodeType": "YulIdentifier", + "src": "29044:3:70" + }, + "nativeSrc": "29044:23:70", + "nodeType": "YulFunctionCall", + "src": "29044:23:70" + }, + { + "kind": "number", + "nativeSrc": "29069:2:70", + "nodeType": "YulLiteral", + "src": "29069:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "29040:3:70", + "nodeType": "YulIdentifier", + "src": "29040:3:70" + }, + "nativeSrc": "29040:32:70", + "nodeType": "YulFunctionCall", + "src": "29040:32:70" + }, + "nativeSrc": "29037:52:70", + "nodeType": "YulIf", + "src": "29037:52:70" + }, + { + "nativeSrc": "29098:37:70", + "nodeType": "YulVariableDeclaration", + "src": "29098:37:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29125:9:70", + "nodeType": "YulIdentifier", + "src": "29125:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "29112:12:70", + "nodeType": "YulIdentifier", + "src": "29112:12:70" + }, + "nativeSrc": "29112:23:70", + "nodeType": "YulFunctionCall", + "src": "29112:23:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "29102:6:70", + "nodeType": "YulTypedName", + "src": "29102:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29178:16:70", + "nodeType": "YulBlock", + "src": "29178:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29187:1:70", + "nodeType": "YulLiteral", + "src": "29187:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29190:1:70", + "nodeType": "YulLiteral", + "src": "29190:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29180:6:70", + "nodeType": "YulIdentifier", + "src": "29180:6:70" + }, + "nativeSrc": "29180:12:70", + "nodeType": "YulFunctionCall", + "src": "29180:12:70" + }, + "nativeSrc": "29180:12:70", + "nodeType": "YulExpressionStatement", + "src": "29180:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "29150:6:70", + "nodeType": "YulIdentifier", + "src": "29150:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29166:2:70", + "nodeType": "YulLiteral", + "src": "29166:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "29170:1:70", + "nodeType": "YulLiteral", + "src": "29170:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "29162:3:70", + "nodeType": "YulIdentifier", + "src": "29162:3:70" + }, + "nativeSrc": "29162:10:70", + "nodeType": "YulFunctionCall", + "src": "29162:10:70" + }, + { + "kind": "number", + "nativeSrc": "29174:1:70", + "nodeType": "YulLiteral", + "src": "29174:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29158:3:70", + "nodeType": "YulIdentifier", + "src": "29158:3:70" + }, + "nativeSrc": "29158:18:70", + "nodeType": "YulFunctionCall", + "src": "29158:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "29147:2:70", + "nodeType": "YulIdentifier", + "src": "29147:2:70" + }, + "nativeSrc": "29147:30:70", + "nodeType": "YulFunctionCall", + "src": "29147:30:70" + }, + "nativeSrc": "29144:50:70", + "nodeType": "YulIf", + "src": "29144:50:70" + }, + { + "nativeSrc": "29203:32:70", + "nodeType": "YulVariableDeclaration", + "src": "29203:32:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29217:9:70", + "nodeType": "YulIdentifier", + "src": "29217:9:70" + }, + { + "name": "offset", + "nativeSrc": "29228:6:70", + "nodeType": "YulIdentifier", + "src": "29228:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29213:3:70", + "nodeType": "YulIdentifier", + "src": "29213:3:70" + }, + "nativeSrc": "29213:22:70", + "nodeType": "YulFunctionCall", + "src": "29213:22:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "29207:2:70", + "nodeType": "YulTypedName", + "src": "29207:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29273:16:70", + "nodeType": "YulBlock", + "src": "29273:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29282:1:70", + "nodeType": "YulLiteral", + "src": "29282:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29285:1:70", + "nodeType": "YulLiteral", + "src": "29285:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29275:6:70", + "nodeType": "YulIdentifier", + "src": "29275:6:70" + }, + "nativeSrc": "29275:12:70", + "nodeType": "YulFunctionCall", + "src": "29275:12:70" + }, + "nativeSrc": "29275:12:70", + "nodeType": "YulExpressionStatement", + "src": "29275:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "29255:7:70", + "nodeType": "YulIdentifier", + "src": "29255:7:70" + }, + { + "name": "_1", + "nativeSrc": "29264:2:70", + "nodeType": "YulIdentifier", + "src": "29264:2:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29251:3:70", + "nodeType": "YulIdentifier", + "src": "29251:3:70" + }, + "nativeSrc": "29251:16:70", + "nodeType": "YulFunctionCall", + "src": "29251:16:70" + }, + { + "kind": "number", + "nativeSrc": "29269:2:70", + "nodeType": "YulLiteral", + "src": "29269:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "29247:3:70", + "nodeType": "YulIdentifier", + "src": "29247:3:70" + }, + "nativeSrc": "29247:25:70", + "nodeType": "YulFunctionCall", + "src": "29247:25:70" + }, + "nativeSrc": "29244:45:70", + "nodeType": "YulIf", + "src": "29244:45:70" + }, + { + "nativeSrc": "29298:35:70", + "nodeType": "YulVariableDeclaration", + "src": "29298:35:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4301", + "nativeSrc": "29311:20:70", + "nodeType": "YulIdentifier", + "src": "29311:20:70" + }, + "nativeSrc": "29311:22:70", + "nodeType": "YulFunctionCall", + "src": "29311:22:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "29302:5:70", + "nodeType": "YulTypedName", + "src": "29302:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "29342:32:70", + "nodeType": "YulVariableDeclaration", + "src": "29342:32:70", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "29371:2:70", + "nodeType": "YulIdentifier", + "src": "29371:2:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "29358:12:70", + "nodeType": "YulIdentifier", + "src": "29358:12:70" + }, + "nativeSrc": "29358:16:70", + "nodeType": "YulFunctionCall", + "src": "29358:16:70" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "29346:8:70", + "nodeType": "YulTypedName", + "src": "29346:8:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29419:16:70", + "nodeType": "YulBlock", + "src": "29419:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29428:1:70", + "nodeType": "YulLiteral", + "src": "29428:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29431:1:70", + "nodeType": "YulLiteral", + "src": "29431:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29421:6:70", + "nodeType": "YulIdentifier", + "src": "29421:6:70" + }, + "nativeSrc": "29421:12:70", + "nodeType": "YulFunctionCall", + "src": "29421:12:70" + }, + "nativeSrc": "29421:12:70", + "nodeType": "YulExpressionStatement", + "src": "29421:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "29389:8:70", + "nodeType": "YulIdentifier", + "src": "29389:8:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29407:2:70", + "nodeType": "YulLiteral", + "src": "29407:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "29411:1:70", + "nodeType": "YulLiteral", + "src": "29411:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "29403:3:70", + "nodeType": "YulIdentifier", + "src": "29403:3:70" + }, + "nativeSrc": "29403:10:70", + "nodeType": "YulFunctionCall", + "src": "29403:10:70" + }, + { + "kind": "number", + "nativeSrc": "29415:1:70", + "nodeType": "YulLiteral", + "src": "29415:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29399:3:70", + "nodeType": "YulIdentifier", + "src": "29399:3:70" + }, + "nativeSrc": "29399:18:70", + "nodeType": "YulFunctionCall", + "src": "29399:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "29386:2:70", + "nodeType": "YulIdentifier", + "src": "29386:2:70" + }, + "nativeSrc": "29386:32:70", + "nodeType": "YulFunctionCall", + "src": "29386:32:70" + }, + "nativeSrc": "29383:52:70", + "nodeType": "YulIf", + "src": "29383:52:70" + }, + { + "nativeSrc": "29444:27:70", + "nodeType": "YulVariableDeclaration", + "src": "29444:27:70", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "29458:2:70", + "nodeType": "YulIdentifier", + "src": "29458:2:70" + }, + { + "name": "offset_1", + "nativeSrc": "29462:8:70", + "nodeType": "YulIdentifier", + "src": "29462:8:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29454:3:70", + "nodeType": "YulIdentifier", + "src": "29454:3:70" + }, + "nativeSrc": "29454:17:70", + "nodeType": "YulFunctionCall", + "src": "29454:17:70" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "29448:2:70", + "nodeType": "YulTypedName", + "src": "29448:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29511:16:70", + "nodeType": "YulBlock", + "src": "29511:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29520:1:70", + "nodeType": "YulLiteral", + "src": "29520:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29523:1:70", + "nodeType": "YulLiteral", + "src": "29523:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29513:6:70", + "nodeType": "YulIdentifier", + "src": "29513:6:70" + }, + "nativeSrc": "29513:12:70", + "nodeType": "YulFunctionCall", + "src": "29513:12:70" + }, + "nativeSrc": "29513:12:70", + "nodeType": "YulExpressionStatement", + "src": "29513:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "29491:7:70", + "nodeType": "YulIdentifier", + "src": "29491:7:70" + }, + { + "name": "_2", + "nativeSrc": "29500:2:70", + "nodeType": "YulIdentifier", + "src": "29500:2:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29487:3:70", + "nodeType": "YulIdentifier", + "src": "29487:3:70" + }, + "nativeSrc": "29487:16:70", + "nodeType": "YulFunctionCall", + "src": "29487:16:70" + }, + { + "kind": "number", + "nativeSrc": "29505:4:70", + "nodeType": "YulLiteral", + "src": "29505:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "29483:3:70", + "nodeType": "YulIdentifier", + "src": "29483:3:70" + }, + "nativeSrc": "29483:27:70", + "nodeType": "YulFunctionCall", + "src": "29483:27:70" + }, + "nativeSrc": "29480:47:70", + "nodeType": "YulIf", + "src": "29480:47:70" + }, + { + "nativeSrc": "29536:32:70", + "nodeType": "YulVariableDeclaration", + "src": "29536:32:70", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "29551:15:70", + "nodeType": "YulIdentifier", + "src": "29551:15:70" + }, + "nativeSrc": "29551:17:70", + "nodeType": "YulFunctionCall", + "src": "29551:17:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "29540:7:70", + "nodeType": "YulTypedName", + "src": "29540:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "29577:16:70", + "nodeType": "YulVariableDeclaration", + "src": "29577:16:70", + "value": { + "kind": "number", + "nativeSrc": "29592:1:70", + "nodeType": "YulLiteral", + "src": "29592:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "29581:7:70", + "nodeType": "YulTypedName", + "src": "29581:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "29602:27:70", + "nodeType": "YulAssignment", + "src": "29602:27:70", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29626:2:70", + "nodeType": "YulIdentifier", + "src": "29626:2:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "29613:12:70", + "nodeType": "YulIdentifier", + "src": "29613:12:70" + }, + "nativeSrc": "29613:16:70", + "nodeType": "YulFunctionCall", + "src": "29613:16:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "29602:7:70", + "nodeType": "YulIdentifier", + "src": "29602:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29645:7:70", + "nodeType": "YulIdentifier", + "src": "29645:7:70" + }, + { + "name": "value_2", + "nativeSrc": "29654:7:70", + "nodeType": "YulIdentifier", + "src": "29654:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29638:6:70", + "nodeType": "YulIdentifier", + "src": "29638:6:70" + }, + "nativeSrc": "29638:24:70", + "nodeType": "YulFunctionCall", + "src": "29638:24:70" + }, + "nativeSrc": "29638:24:70", + "nodeType": "YulExpressionStatement", + "src": "29638:24:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29682:7:70", + "nodeType": "YulIdentifier", + "src": "29682:7:70" + }, + { + "kind": "number", + "nativeSrc": "29691:2:70", + "nodeType": "YulLiteral", + "src": "29691:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29678:3:70", + "nodeType": "YulIdentifier", + "src": "29678:3:70" + }, + "nativeSrc": "29678:16:70", + "nodeType": "YulFunctionCall", + "src": "29678:16:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29719:2:70", + "nodeType": "YulIdentifier", + "src": "29719:2:70" + }, + { + "kind": "number", + "nativeSrc": "29723:2:70", + "nodeType": "YulLiteral", + "src": "29723:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29715:3:70", + "nodeType": "YulIdentifier", + "src": "29715:3:70" + }, + "nativeSrc": "29715:11:70", + "nodeType": "YulFunctionCall", + "src": "29715:11:70" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "29696:18:70", + "nodeType": "YulIdentifier", + "src": "29696:18:70" + }, + "nativeSrc": "29696:31:70", + "nodeType": "YulFunctionCall", + "src": "29696:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29671:6:70", + "nodeType": "YulIdentifier", + "src": "29671:6:70" + }, + "nativeSrc": "29671:57:70", + "nodeType": "YulFunctionCall", + "src": "29671:57:70" + }, + "nativeSrc": "29671:57:70", + "nodeType": "YulExpressionStatement", + "src": "29671:57:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29748:7:70", + "nodeType": "YulIdentifier", + "src": "29748:7:70" + }, + { + "kind": "number", + "nativeSrc": "29757:2:70", + "nodeType": "YulLiteral", + "src": "29757:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29744:3:70", + "nodeType": "YulIdentifier", + "src": "29744:3:70" + }, + "nativeSrc": "29744:16:70", + "nodeType": "YulFunctionCall", + "src": "29744:16:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29785:2:70", + "nodeType": "YulIdentifier", + "src": "29785:2:70" + }, + { + "kind": "number", + "nativeSrc": "29789:2:70", + "nodeType": "YulLiteral", + "src": "29789:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29781:3:70", + "nodeType": "YulIdentifier", + "src": "29781:3:70" + }, + "nativeSrc": "29781:11:70", + "nodeType": "YulFunctionCall", + "src": "29781:11:70" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "29762:18:70", + "nodeType": "YulIdentifier", + "src": "29762:18:70" + }, + "nativeSrc": "29762:31:70", + "nodeType": "YulFunctionCall", + "src": "29762:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29737:6:70", + "nodeType": "YulIdentifier", + "src": "29737:6:70" + }, + "nativeSrc": "29737:57:70", + "nodeType": "YulFunctionCall", + "src": "29737:57:70" + }, + "nativeSrc": "29737:57:70", + "nodeType": "YulExpressionStatement", + "src": "29737:57:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29814:7:70", + "nodeType": "YulIdentifier", + "src": "29814:7:70" + }, + { + "kind": "number", + "nativeSrc": "29823:2:70", + "nodeType": "YulLiteral", + "src": "29823:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29810:3:70", + "nodeType": "YulIdentifier", + "src": "29810:3:70" + }, + "nativeSrc": "29810:16:70", + "nodeType": "YulFunctionCall", + "src": "29810:16:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29851:2:70", + "nodeType": "YulIdentifier", + "src": "29851:2:70" + }, + { + "kind": "number", + "nativeSrc": "29855:2:70", + "nodeType": "YulLiteral", + "src": "29855:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29847:3:70", + "nodeType": "YulIdentifier", + "src": "29847:3:70" + }, + "nativeSrc": "29847:11:70", + "nodeType": "YulFunctionCall", + "src": "29847:11:70" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "29828:18:70", + "nodeType": "YulIdentifier", + "src": "29828:18:70" + }, + "nativeSrc": "29828:31:70", + "nodeType": "YulFunctionCall", + "src": "29828:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29803:6:70", + "nodeType": "YulIdentifier", + "src": "29803:6:70" + }, + "nativeSrc": "29803:57:70", + "nodeType": "YulFunctionCall", + "src": "29803:57:70" + }, + "nativeSrc": "29803:57:70", + "nodeType": "YulExpressionStatement", + "src": "29803:57:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29880:7:70", + "nodeType": "YulIdentifier", + "src": "29880:7:70" + }, + { + "kind": "number", + "nativeSrc": "29889:3:70", + "nodeType": "YulLiteral", + "src": "29889:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29876:3:70", + "nodeType": "YulIdentifier", + "src": "29876:3:70" + }, + "nativeSrc": "29876:17:70", + "nodeType": "YulFunctionCall", + "src": "29876:17:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29917:2:70", + "nodeType": "YulIdentifier", + "src": "29917:2:70" + }, + { + "kind": "number", + "nativeSrc": "29921:3:70", + "nodeType": "YulLiteral", + "src": "29921:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29913:3:70", + "nodeType": "YulIdentifier", + "src": "29913:3:70" + }, + "nativeSrc": "29913:12:70", + "nodeType": "YulFunctionCall", + "src": "29913:12:70" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "29895:17:70", + "nodeType": "YulIdentifier", + "src": "29895:17:70" + }, + "nativeSrc": "29895:31:70", + "nodeType": "YulFunctionCall", + "src": "29895:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29869:6:70", + "nodeType": "YulIdentifier", + "src": "29869:6:70" + }, + "nativeSrc": "29869:58:70", + "nodeType": "YulFunctionCall", + "src": "29869:58:70" + }, + "nativeSrc": "29869:58:70", + "nodeType": "YulExpressionStatement", + "src": "29869:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "29947:7:70", + "nodeType": "YulIdentifier", + "src": "29947:7:70" + }, + { + "kind": "number", + "nativeSrc": "29956:3:70", + "nodeType": "YulLiteral", + "src": "29956:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29943:3:70", + "nodeType": "YulIdentifier", + "src": "29943:3:70" + }, + "nativeSrc": "29943:17:70", + "nodeType": "YulFunctionCall", + "src": "29943:17:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "29985:2:70", + "nodeType": "YulIdentifier", + "src": "29985:2:70" + }, + { + "kind": "number", + "nativeSrc": "29989:3:70", + "nodeType": "YulLiteral", + "src": "29989:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29981:3:70", + "nodeType": "YulIdentifier", + "src": "29981:3:70" + }, + "nativeSrc": "29981:12:70", + "nodeType": "YulFunctionCall", + "src": "29981:12:70" + } + ], + "functionName": { + "name": "abi_decode_uint128", + "nativeSrc": "29962:18:70", + "nodeType": "YulIdentifier", + "src": "29962:18:70" + }, + "nativeSrc": "29962:32:70", + "nodeType": "YulFunctionCall", + "src": "29962:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29936:6:70", + "nodeType": "YulIdentifier", + "src": "29936:6:70" + }, + "nativeSrc": "29936:59:70", + "nodeType": "YulFunctionCall", + "src": "29936:59:70" + }, + "nativeSrc": "29936:59:70", + "nodeType": "YulExpressionStatement", + "src": "29936:59:70" + }, + { + "nativeSrc": "30004:42:70", + "nodeType": "YulVariableDeclaration", + "src": "30004:42:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "30037:2:70", + "nodeType": "YulIdentifier", + "src": "30037:2:70" + }, + { + "kind": "number", + "nativeSrc": "30041:3:70", + "nodeType": "YulLiteral", + "src": "30041:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30033:3:70", + "nodeType": "YulIdentifier", + "src": "30033:3:70" + }, + "nativeSrc": "30033:12:70", + "nodeType": "YulFunctionCall", + "src": "30033:12:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "30020:12:70", + "nodeType": "YulIdentifier", + "src": "30020:12:70" + }, + "nativeSrc": "30020:26:70", + "nodeType": "YulFunctionCall", + "src": "30020:26:70" + }, + "variables": [ + { + "name": "offset_2", + "nativeSrc": "30008:8:70", + "nodeType": "YulTypedName", + "src": "30008:8:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "30091:16:70", + "nodeType": "YulBlock", + "src": "30091:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30100:1:70", + "nodeType": "YulLiteral", + "src": "30100:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30103:1:70", + "nodeType": "YulLiteral", + "src": "30103:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30093:6:70", + "nodeType": "YulIdentifier", + "src": "30093:6:70" + }, + "nativeSrc": "30093:12:70", + "nodeType": "YulFunctionCall", + "src": "30093:12:70" + }, + "nativeSrc": "30093:12:70", + "nodeType": "YulExpressionStatement", + "src": "30093:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_2", + "nativeSrc": "30061:8:70", + "nodeType": "YulIdentifier", + "src": "30061:8:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30079:2:70", + "nodeType": "YulLiteral", + "src": "30079:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "30083:1:70", + "nodeType": "YulLiteral", + "src": "30083:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30075:3:70", + "nodeType": "YulIdentifier", + "src": "30075:3:70" + }, + "nativeSrc": "30075:10:70", + "nodeType": "YulFunctionCall", + "src": "30075:10:70" + }, + { + "kind": "number", + "nativeSrc": "30087:1:70", + "nodeType": "YulLiteral", + "src": "30087:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30071:3:70", + "nodeType": "YulIdentifier", + "src": "30071:3:70" + }, + "nativeSrc": "30071:18:70", + "nodeType": "YulFunctionCall", + "src": "30071:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "30058:2:70", + "nodeType": "YulIdentifier", + "src": "30058:2:70" + }, + "nativeSrc": "30058:32:70", + "nodeType": "YulFunctionCall", + "src": "30058:32:70" + }, + "nativeSrc": "30055:52:70", + "nodeType": "YulIf", + "src": "30055:52:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "30127:7:70", + "nodeType": "YulIdentifier", + "src": "30127:7:70" + }, + { + "kind": "number", + "nativeSrc": "30136:3:70", + "nodeType": "YulLiteral", + "src": "30136:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30123:3:70", + "nodeType": "YulIdentifier", + "src": "30123:3:70" + }, + "nativeSrc": "30123:17:70", + "nodeType": "YulFunctionCall", + "src": "30123:17:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "30164:2:70", + "nodeType": "YulIdentifier", + "src": "30164:2:70" + }, + { + "name": "offset_2", + "nativeSrc": "30168:8:70", + "nodeType": "YulIdentifier", + "src": "30168:8:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30160:3:70", + "nodeType": "YulIdentifier", + "src": "30160:3:70" + }, + "nativeSrc": "30160:17:70", + "nodeType": "YulFunctionCall", + "src": "30160:17:70" + }, + { + "name": "dataEnd", + "nativeSrc": "30179:7:70", + "nodeType": "YulIdentifier", + "src": "30179:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "30142:17:70", + "nodeType": "YulIdentifier", + "src": "30142:17:70" + }, + "nativeSrc": "30142:45:70", + "nodeType": "YulFunctionCall", + "src": "30142:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30116:6:70", + "nodeType": "YulIdentifier", + "src": "30116:6:70" + }, + "nativeSrc": "30116:72:70", + "nodeType": "YulFunctionCall", + "src": "30116:72:70" + }, + "nativeSrc": "30116:72:70", + "nodeType": "YulExpressionStatement", + "src": "30116:72:70" + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30204:5:70", + "nodeType": "YulIdentifier", + "src": "30204:5:70" + }, + { + "name": "value_1", + "nativeSrc": "30211:7:70", + "nodeType": "YulIdentifier", + "src": "30211:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30197:6:70", + "nodeType": "YulIdentifier", + "src": "30197:6:70" + }, + "nativeSrc": "30197:22:70", + "nodeType": "YulFunctionCall", + "src": "30197:22:70" + }, + "nativeSrc": "30197:22:70", + "nodeType": "YulExpressionStatement", + "src": "30197:22:70" + }, + { + "nativeSrc": "30228:41:70", + "nodeType": "YulVariableDeclaration", + "src": "30228:41:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "30261:2:70", + "nodeType": "YulIdentifier", + "src": "30261:2:70" + }, + { + "kind": "number", + "nativeSrc": "30265:2:70", + "nodeType": "YulLiteral", + "src": "30265:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30257:3:70", + "nodeType": "YulIdentifier", + "src": "30257:3:70" + }, + "nativeSrc": "30257:11:70", + "nodeType": "YulFunctionCall", + "src": "30257:11:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "30244:12:70", + "nodeType": "YulIdentifier", + "src": "30244:12:70" + }, + "nativeSrc": "30244:25:70", + "nodeType": "YulFunctionCall", + "src": "30244:25:70" + }, + "variables": [ + { + "name": "offset_3", + "nativeSrc": "30232:8:70", + "nodeType": "YulTypedName", + "src": "30232:8:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "30314:16:70", + "nodeType": "YulBlock", + "src": "30314:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30323:1:70", + "nodeType": "YulLiteral", + "src": "30323:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30326:1:70", + "nodeType": "YulLiteral", + "src": "30326:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30316:6:70", + "nodeType": "YulIdentifier", + "src": "30316:6:70" + }, + "nativeSrc": "30316:12:70", + "nodeType": "YulFunctionCall", + "src": "30316:12:70" + }, + "nativeSrc": "30316:12:70", + "nodeType": "YulExpressionStatement", + "src": "30316:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_3", + "nativeSrc": "30284:8:70", + "nodeType": "YulIdentifier", + "src": "30284:8:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30302:2:70", + "nodeType": "YulLiteral", + "src": "30302:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "30306:1:70", + "nodeType": "YulLiteral", + "src": "30306:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30298:3:70", + "nodeType": "YulIdentifier", + "src": "30298:3:70" + }, + "nativeSrc": "30298:10:70", + "nodeType": "YulFunctionCall", + "src": "30298:10:70" + }, + { + "kind": "number", + "nativeSrc": "30310:1:70", + "nodeType": "YulLiteral", + "src": "30310:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30294:3:70", + "nodeType": "YulIdentifier", + "src": "30294:3:70" + }, + "nativeSrc": "30294:18:70", + "nodeType": "YulFunctionCall", + "src": "30294:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "30281:2:70", + "nodeType": "YulIdentifier", + "src": "30281:2:70" + }, + "nativeSrc": "30281:32:70", + "nodeType": "YulFunctionCall", + "src": "30281:32:70" + }, + "nativeSrc": "30278:52:70", + "nodeType": "YulIf", + "src": "30278:52:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "30350:5:70", + "nodeType": "YulIdentifier", + "src": "30350:5:70" + }, + { + "kind": "number", + "nativeSrc": "30357:2:70", + "nodeType": "YulLiteral", + "src": "30357:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30346:3:70", + "nodeType": "YulIdentifier", + "src": "30346:3:70" + }, + "nativeSrc": "30346:14:70", + "nodeType": "YulFunctionCall", + "src": "30346:14:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "30384:2:70", + "nodeType": "YulIdentifier", + "src": "30384:2:70" + }, + { + "name": "offset_3", + "nativeSrc": "30388:8:70", + "nodeType": "YulIdentifier", + "src": "30388:8:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30380:3:70", + "nodeType": "YulIdentifier", + "src": "30380:3:70" + }, + "nativeSrc": "30380:17:70", + "nodeType": "YulFunctionCall", + "src": "30380:17:70" + }, + { + "name": "dataEnd", + "nativeSrc": "30399:7:70", + "nodeType": "YulIdentifier", + "src": "30399:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "30362:17:70", + "nodeType": "YulIdentifier", + "src": "30362:17:70" + }, + "nativeSrc": "30362:45:70", + "nodeType": "YulFunctionCall", + "src": "30362:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30339:6:70", + "nodeType": "YulIdentifier", + "src": "30339:6:70" + }, + "nativeSrc": "30339:69:70", + "nodeType": "YulFunctionCall", + "src": "30339:69:70" + }, + "nativeSrc": "30339:69:70", + "nodeType": "YulExpressionStatement", + "src": "30339:69:70" + }, + { + "nativeSrc": "30417:15:70", + "nodeType": "YulAssignment", + "src": "30417:15:70", + "value": { + "name": "value", + "nativeSrc": "30427:5:70", + "nodeType": "YulIdentifier", + "src": "30427:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "30417:6:70", + "nodeType": "YulIdentifier", + "src": "30417:6:70" + } + ] + }, + { + "nativeSrc": "30441:16:70", + "nodeType": "YulVariableDeclaration", + "src": "30441:16:70", + "value": { + "kind": "number", + "nativeSrc": "30456:1:70", + "nodeType": "YulLiteral", + "src": "30456:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "30445:7:70", + "nodeType": "YulTypedName", + "src": "30445:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "30466:43:70", + "nodeType": "YulAssignment", + "src": "30466:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30494:9:70", + "nodeType": "YulIdentifier", + "src": "30494:9:70" + }, + { + "kind": "number", + "nativeSrc": "30505:2:70", + "nodeType": "YulLiteral", + "src": "30505:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30490:3:70", + "nodeType": "YulIdentifier", + "src": "30490:3:70" + }, + "nativeSrc": "30490:18:70", + "nodeType": "YulFunctionCall", + "src": "30490:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "30477:12:70", + "nodeType": "YulIdentifier", + "src": "30477:12:70" + }, + "nativeSrc": "30477:32:70", + "nodeType": "YulFunctionCall", + "src": "30477:32:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "30466:7:70", + "nodeType": "YulIdentifier", + "src": "30466:7:70" + } + ] + }, + { + "nativeSrc": "30518:17:70", + "nodeType": "YulAssignment", + "src": "30518:17:70", + "value": { + "name": "value_3", + "nativeSrc": "30528:7:70", + "nodeType": "YulIdentifier", + "src": "30528:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "30518:6:70", + "nodeType": "YulIdentifier", + "src": "30518:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_SignedRAV_$2525_memory_ptrt_uint256", + "nativeSrc": "28913:1628:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "28985:9:70", + "nodeType": "YulTypedName", + "src": "28985:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "28996:7:70", + "nodeType": "YulTypedName", + "src": "28996:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "29008:6:70", + "nodeType": "YulTypedName", + "src": "29008:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29016:6:70", + "nodeType": "YulTypedName", + "src": "29016:6:70", + "type": "" + } + ], + "src": "28913:1628:70" + }, + { + "body": { + "nativeSrc": "30736:207:70", + "nodeType": "YulBlock", + "src": "30736:207:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "30775:6:70", + "nodeType": "YulIdentifier", + "src": "30775:6:70" + }, + { + "name": "headStart", + "nativeSrc": "30783:9:70", + "nodeType": "YulIdentifier", + "src": "30783:9:70" + } + ], + "functionName": { + "name": "abi_encode_enum_PaymentTypes", + "nativeSrc": "30746:28:70", + "nodeType": "YulIdentifier", + "src": "30746:28:70" + }, + "nativeSrc": "30746:47:70", + "nodeType": "YulFunctionCall", + "src": "30746:47:70" + }, + "nativeSrc": "30746:47:70", + "nodeType": "YulExpressionStatement", + "src": "30746:47:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30813:9:70", + "nodeType": "YulIdentifier", + "src": "30813:9:70" + }, + { + "kind": "number", + "nativeSrc": "30824:2:70", + "nodeType": "YulLiteral", + "src": "30824:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30809:3:70", + "nodeType": "YulIdentifier", + "src": "30809:3:70" + }, + "nativeSrc": "30809:18:70", + "nodeType": "YulFunctionCall", + "src": "30809:18:70" + }, + { + "kind": "number", + "nativeSrc": "30829:2:70", + "nodeType": "YulLiteral", + "src": "30829:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30802:6:70", + "nodeType": "YulIdentifier", + "src": "30802:6:70" + }, + "nativeSrc": "30802:30:70", + "nodeType": "YulFunctionCall", + "src": "30802:30:70" + }, + "nativeSrc": "30802:30:70", + "nodeType": "YulExpressionStatement", + "src": "30802:30:70" + }, + { + "nativeSrc": "30841:53:70", + "nodeType": "YulAssignment", + "src": "30841:53:70", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30867:6:70", + "nodeType": "YulIdentifier", + "src": "30867:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30879:9:70", + "nodeType": "YulIdentifier", + "src": "30879:9:70" + }, + { + "kind": "number", + "nativeSrc": "30890:2:70", + "nodeType": "YulLiteral", + "src": "30890:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30875:3:70", + "nodeType": "YulIdentifier", + "src": "30875:3:70" + }, + "nativeSrc": "30875:18:70", + "nodeType": "YulFunctionCall", + "src": "30875:18:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "30849:17:70", + "nodeType": "YulIdentifier", + "src": "30849:17:70" + }, + "nativeSrc": "30849:45:70", + "nodeType": "YulFunctionCall", + "src": "30849:45:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30841:4:70", + "nodeType": "YulIdentifier", + "src": "30841:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30914:9:70", + "nodeType": "YulIdentifier", + "src": "30914:9:70" + }, + { + "kind": "number", + "nativeSrc": "30925:2:70", + "nodeType": "YulLiteral", + "src": "30925:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30910:3:70", + "nodeType": "YulIdentifier", + "src": "30910:3:70" + }, + "nativeSrc": "30910:18:70", + "nodeType": "YulFunctionCall", + "src": "30910:18:70" + }, + { + "name": "value2", + "nativeSrc": "30930:6:70", + "nodeType": "YulIdentifier", + "src": "30930:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30903:6:70", + "nodeType": "YulIdentifier", + "src": "30903:6:70" + }, + "nativeSrc": "30903:34:70", + "nodeType": "YulFunctionCall", + "src": "30903:34:70" + }, + "nativeSrc": "30903:34:70", + "nodeType": "YulExpressionStatement", + "src": "30903:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_enum$_PaymentTypes_$2433_t_bytes_memory_ptr_t_uint256__to_t_uint8_t_bytes_memory_ptr_t_uint256__fromStack_reversed", + "nativeSrc": "30546:397:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30689:9:70", + "nodeType": "YulTypedName", + "src": "30689:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "30700:6:70", + "nodeType": "YulTypedName", + "src": "30700:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30708:6:70", + "nodeType": "YulTypedName", + "src": "30708:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30716:6:70", + "nodeType": "YulTypedName", + "src": "30716:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30727:4:70", + "nodeType": "YulTypedName", + "src": "30727:4:70", + "type": "" + } + ], + "src": "30546:397:70" + }, + { + "body": { + "nativeSrc": "31000:116:70", + "nodeType": "YulBlock", + "src": "31000:116:70", + "statements": [ + { + "nativeSrc": "31010:20:70", + "nodeType": "YulAssignment", + "src": "31010:20:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31025:1:70", + "nodeType": "YulIdentifier", + "src": "31025:1:70" + }, + { + "name": "y", + "nativeSrc": "31028:1:70", + "nodeType": "YulIdentifier", + "src": "31028:1:70" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "31021:3:70", + "nodeType": "YulIdentifier", + "src": "31021:3:70" + }, + "nativeSrc": "31021:9:70", + "nodeType": "YulFunctionCall", + "src": "31021:9:70" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "31010:7:70", + "nodeType": "YulIdentifier", + "src": "31010:7:70" + } + ] + }, + { + "body": { + "nativeSrc": "31088:22:70", + "nodeType": "YulBlock", + "src": "31088:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "31090:16:70", + "nodeType": "YulIdentifier", + "src": "31090:16:70" + }, + "nativeSrc": "31090:18:70", + "nodeType": "YulFunctionCall", + "src": "31090:18:70" + }, + "nativeSrc": "31090:18:70", + "nodeType": "YulExpressionStatement", + "src": "31090:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "31059:1:70", + "nodeType": "YulIdentifier", + "src": "31059:1:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31052:6:70", + "nodeType": "YulIdentifier", + "src": "31052:6:70" + }, + "nativeSrc": "31052:9:70", + "nodeType": "YulFunctionCall", + "src": "31052:9:70" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "31066:1:70", + "nodeType": "YulIdentifier", + "src": "31066:1:70" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "31073:7:70", + "nodeType": "YulIdentifier", + "src": "31073:7:70" + }, + { + "name": "x", + "nativeSrc": "31082:1:70", + "nodeType": "YulIdentifier", + "src": "31082:1:70" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "31069:3:70", + "nodeType": "YulIdentifier", + "src": "31069:3:70" + }, + "nativeSrc": "31069:15:70", + "nodeType": "YulFunctionCall", + "src": "31069:15:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "31063:2:70", + "nodeType": "YulIdentifier", + "src": "31063:2:70" + }, + "nativeSrc": "31063:22:70", + "nodeType": "YulFunctionCall", + "src": "31063:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "31049:2:70", + "nodeType": "YulIdentifier", + "src": "31049:2:70" + }, + "nativeSrc": "31049:37:70", + "nodeType": "YulFunctionCall", + "src": "31049:37:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31042:6:70", + "nodeType": "YulIdentifier", + "src": "31042:6:70" + }, + "nativeSrc": "31042:45:70", + "nodeType": "YulFunctionCall", + "src": "31042:45:70" + }, + "nativeSrc": "31039:71:70", + "nodeType": "YulIf", + "src": "31039:71:70" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "30948:168:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "30979:1:70", + "nodeType": "YulTypedName", + "src": "30979:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "30982:1:70", + "nodeType": "YulTypedName", + "src": "30982:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "30988:7:70", + "nodeType": "YulTypedName", + "src": "30988:7:70", + "type": "" + } + ], + "src": "30948:168:70" + }, + { + "body": { + "nativeSrc": "31250:119:70", + "nodeType": "YulBlock", + "src": "31250:119:70", + "statements": [ + { + "nativeSrc": "31260:26:70", + "nodeType": "YulAssignment", + "src": "31260:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31272:9:70", + "nodeType": "YulIdentifier", + "src": "31272:9:70" + }, + { + "kind": "number", + "nativeSrc": "31283:2:70", + "nodeType": "YulLiteral", + "src": "31283:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31268:3:70", + "nodeType": "YulIdentifier", + "src": "31268:3:70" + }, + "nativeSrc": "31268:18:70", + "nodeType": "YulFunctionCall", + "src": "31268:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31260:4:70", + "nodeType": "YulIdentifier", + "src": "31260:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31302:9:70", + "nodeType": "YulIdentifier", + "src": "31302:9:70" + }, + { + "name": "value0", + "nativeSrc": "31313:6:70", + "nodeType": "YulIdentifier", + "src": "31313:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31295:6:70", + "nodeType": "YulIdentifier", + "src": "31295:6:70" + }, + "nativeSrc": "31295:25:70", + "nodeType": "YulFunctionCall", + "src": "31295:25:70" + }, + "nativeSrc": "31295:25:70", + "nodeType": "YulExpressionStatement", + "src": "31295:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31340:9:70", + "nodeType": "YulIdentifier", + "src": "31340:9:70" + }, + { + "kind": "number", + "nativeSrc": "31351:2:70", + "nodeType": "YulLiteral", + "src": "31351:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31336:3:70", + "nodeType": "YulIdentifier", + "src": "31336:3:70" + }, + "nativeSrc": "31336:18:70", + "nodeType": "YulFunctionCall", + "src": "31336:18:70" + }, + { + "name": "value1", + "nativeSrc": "31356:6:70", + "nodeType": "YulIdentifier", + "src": "31356:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31329:6:70", + "nodeType": "YulIdentifier", + "src": "31329:6:70" + }, + "nativeSrc": "31329:34:70", + "nodeType": "YulFunctionCall", + "src": "31329:34:70" + }, + "nativeSrc": "31329:34:70", + "nodeType": "YulExpressionStatement", + "src": "31329:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed", + "nativeSrc": "31121:248:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31211:9:70", + "nodeType": "YulTypedName", + "src": "31211:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31222:6:70", + "nodeType": "YulTypedName", + "src": "31222:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31230:6:70", + "nodeType": "YulTypedName", + "src": "31230:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31241:4:70", + "nodeType": "YulTypedName", + "src": "31241:4:70", + "type": "" + } + ], + "src": "31121:248:70" + }, + { + "body": { + "nativeSrc": "31531:162:70", + "nodeType": "YulBlock", + "src": "31531:162:70", + "statements": [ + { + "nativeSrc": "31541:26:70", + "nodeType": "YulAssignment", + "src": "31541:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31553:9:70", + "nodeType": "YulIdentifier", + "src": "31553:9:70" + }, + { + "kind": "number", + "nativeSrc": "31564:2:70", + "nodeType": "YulLiteral", + "src": "31564:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31549:3:70", + "nodeType": "YulIdentifier", + "src": "31549:3:70" + }, + "nativeSrc": "31549:18:70", + "nodeType": "YulFunctionCall", + "src": "31549:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31541:4:70", + "nodeType": "YulIdentifier", + "src": "31541:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31583:9:70", + "nodeType": "YulIdentifier", + "src": "31583:9:70" + }, + { + "name": "value0", + "nativeSrc": "31594:6:70", + "nodeType": "YulIdentifier", + "src": "31594:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31576:6:70", + "nodeType": "YulIdentifier", + "src": "31576:6:70" + }, + "nativeSrc": "31576:25:70", + "nodeType": "YulFunctionCall", + "src": "31576:25:70" + }, + "nativeSrc": "31576:25:70", + "nodeType": "YulExpressionStatement", + "src": "31576:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31621:9:70", + "nodeType": "YulIdentifier", + "src": "31621:9:70" + }, + { + "kind": "number", + "nativeSrc": "31632:2:70", + "nodeType": "YulLiteral", + "src": "31632:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31617:3:70", + "nodeType": "YulIdentifier", + "src": "31617:3:70" + }, + "nativeSrc": "31617:18:70", + "nodeType": "YulFunctionCall", + "src": "31617:18:70" + }, + { + "name": "value1", + "nativeSrc": "31637:6:70", + "nodeType": "YulIdentifier", + "src": "31637:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31610:6:70", + "nodeType": "YulIdentifier", + "src": "31610:6:70" + }, + "nativeSrc": "31610:34:70", + "nodeType": "YulFunctionCall", + "src": "31610:34:70" + }, + "nativeSrc": "31610:34:70", + "nodeType": "YulExpressionStatement", + "src": "31610:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31664:9:70", + "nodeType": "YulIdentifier", + "src": "31664:9:70" + }, + { + "kind": "number", + "nativeSrc": "31675:2:70", + "nodeType": "YulLiteral", + "src": "31675:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31660:3:70", + "nodeType": "YulIdentifier", + "src": "31660:3:70" + }, + "nativeSrc": "31660:18:70", + "nodeType": "YulFunctionCall", + "src": "31660:18:70" + }, + { + "name": "value2", + "nativeSrc": "31680:6:70", + "nodeType": "YulIdentifier", + "src": "31680:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31653:6:70", + "nodeType": "YulIdentifier", + "src": "31653:6:70" + }, + "nativeSrc": "31653:34:70", + "nodeType": "YulFunctionCall", + "src": "31653:34:70" + }, + "nativeSrc": "31653:34:70", + "nodeType": "YulExpressionStatement", + "src": "31653:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "31374:319:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31484:9:70", + "nodeType": "YulTypedName", + "src": "31484:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "31495:6:70", + "nodeType": "YulTypedName", + "src": "31495:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31503:6:70", + "nodeType": "YulTypedName", + "src": "31503:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31511:6:70", + "nodeType": "YulTypedName", + "src": "31511:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31522:4:70", + "nodeType": "YulTypedName", + "src": "31522:4:70", + "type": "" + } + ], + "src": "31374:319:70" + }, + { + "body": { + "nativeSrc": "31819:463:70", + "nodeType": "YulBlock", + "src": "31819:463:70", + "statements": [ + { + "body": { + "nativeSrc": "31865:16:70", + "nodeType": "YulBlock", + "src": "31865:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31874:1:70", + "nodeType": "YulLiteral", + "src": "31874:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "31877:1:70", + "nodeType": "YulLiteral", + "src": "31877:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "31867:6:70", + "nodeType": "YulIdentifier", + "src": "31867:6:70" + }, + "nativeSrc": "31867:12:70", + "nodeType": "YulFunctionCall", + "src": "31867:12:70" + }, + "nativeSrc": "31867:12:70", + "nodeType": "YulExpressionStatement", + "src": "31867:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "31840:7:70", + "nodeType": "YulIdentifier", + "src": "31840:7:70" + }, + { + "name": "headStart", + "nativeSrc": "31849:9:70", + "nodeType": "YulIdentifier", + "src": "31849:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31836:3:70", + "nodeType": "YulIdentifier", + "src": "31836:3:70" + }, + "nativeSrc": "31836:23:70", + "nodeType": "YulFunctionCall", + "src": "31836:23:70" + }, + { + "kind": "number", + "nativeSrc": "31861:2:70", + "nodeType": "YulLiteral", + "src": "31861:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "31832:3:70", + "nodeType": "YulIdentifier", + "src": "31832:3:70" + }, + "nativeSrc": "31832:32:70", + "nodeType": "YulFunctionCall", + "src": "31832:32:70" + }, + "nativeSrc": "31829:52:70", + "nodeType": "YulIf", + "src": "31829:52:70" + }, + { + "nativeSrc": "31890:36:70", + "nodeType": "YulVariableDeclaration", + "src": "31890:36:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31916:9:70", + "nodeType": "YulIdentifier", + "src": "31916:9:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "31903:12:70", + "nodeType": "YulIdentifier", + "src": "31903:12:70" + }, + "nativeSrc": "31903:23:70", + "nodeType": "YulFunctionCall", + "src": "31903:23:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "31894:5:70", + "nodeType": "YulTypedName", + "src": "31894:5:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "31960:5:70", + "nodeType": "YulIdentifier", + "src": "31960:5:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "31935:24:70", + "nodeType": "YulIdentifier", + "src": "31935:24:70" + }, + "nativeSrc": "31935:31:70", + "nodeType": "YulFunctionCall", + "src": "31935:31:70" + }, + "nativeSrc": "31935:31:70", + "nodeType": "YulExpressionStatement", + "src": "31935:31:70" + }, + { + "nativeSrc": "31975:15:70", + "nodeType": "YulAssignment", + "src": "31975:15:70", + "value": { + "name": "value", + "nativeSrc": "31985:5:70", + "nodeType": "YulIdentifier", + "src": "31985:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "31975:6:70", + "nodeType": "YulIdentifier", + "src": "31975:6:70" + } + ] + }, + { + "nativeSrc": "31999:16:70", + "nodeType": "YulVariableDeclaration", + "src": "31999:16:70", + "value": { + "kind": "number", + "nativeSrc": "32014:1:70", + "nodeType": "YulLiteral", + "src": "32014:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "32003:7:70", + "nodeType": "YulTypedName", + "src": "32003:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "32024:43:70", + "nodeType": "YulAssignment", + "src": "32024:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32052:9:70", + "nodeType": "YulIdentifier", + "src": "32052:9:70" + }, + { + "kind": "number", + "nativeSrc": "32063:2:70", + "nodeType": "YulLiteral", + "src": "32063:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32048:3:70", + "nodeType": "YulIdentifier", + "src": "32048:3:70" + }, + "nativeSrc": "32048:18:70", + "nodeType": "YulFunctionCall", + "src": "32048:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "32035:12:70", + "nodeType": "YulIdentifier", + "src": "32035:12:70" + }, + "nativeSrc": "32035:32:70", + "nodeType": "YulFunctionCall", + "src": "32035:32:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "32024:7:70", + "nodeType": "YulIdentifier", + "src": "32024:7:70" + } + ] + }, + { + "nativeSrc": "32076:17:70", + "nodeType": "YulAssignment", + "src": "32076:17:70", + "value": { + "name": "value_1", + "nativeSrc": "32086:7:70", + "nodeType": "YulIdentifier", + "src": "32086:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "32076:6:70", + "nodeType": "YulIdentifier", + "src": "32076:6:70" + } + ] + }, + { + "nativeSrc": "32102:46:70", + "nodeType": "YulVariableDeclaration", + "src": "32102:46:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32133:9:70", + "nodeType": "YulIdentifier", + "src": "32133:9:70" + }, + { + "kind": "number", + "nativeSrc": "32144:2:70", + "nodeType": "YulLiteral", + "src": "32144:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32129:3:70", + "nodeType": "YulIdentifier", + "src": "32129:3:70" + }, + "nativeSrc": "32129:18:70", + "nodeType": "YulFunctionCall", + "src": "32129:18:70" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "32116:12:70", + "nodeType": "YulIdentifier", + "src": "32116:12:70" + }, + "nativeSrc": "32116:32:70", + "nodeType": "YulFunctionCall", + "src": "32116:32:70" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "32106:6:70", + "nodeType": "YulTypedName", + "src": "32106:6:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "32191:16:70", + "nodeType": "YulBlock", + "src": "32191:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32200:1:70", + "nodeType": "YulLiteral", + "src": "32200:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "32203:1:70", + "nodeType": "YulLiteral", + "src": "32203:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "32193:6:70", + "nodeType": "YulIdentifier", + "src": "32193:6:70" + }, + "nativeSrc": "32193:12:70", + "nodeType": "YulFunctionCall", + "src": "32193:12:70" + }, + "nativeSrc": "32193:12:70", + "nodeType": "YulExpressionStatement", + "src": "32193:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "32163:6:70", + "nodeType": "YulIdentifier", + "src": "32163:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32179:2:70", + "nodeType": "YulLiteral", + "src": "32179:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "32183:1:70", + "nodeType": "YulLiteral", + "src": "32183:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32175:3:70", + "nodeType": "YulIdentifier", + "src": "32175:3:70" + }, + "nativeSrc": "32175:10:70", + "nodeType": "YulFunctionCall", + "src": "32175:10:70" + }, + { + "kind": "number", + "nativeSrc": "32187:1:70", + "nodeType": "YulLiteral", + "src": "32187:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "32171:3:70", + "nodeType": "YulIdentifier", + "src": "32171:3:70" + }, + "nativeSrc": "32171:18:70", + "nodeType": "YulFunctionCall", + "src": "32171:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "32160:2:70", + "nodeType": "YulIdentifier", + "src": "32160:2:70" + }, + "nativeSrc": "32160:30:70", + "nodeType": "YulFunctionCall", + "src": "32160:30:70" + }, + "nativeSrc": "32157:50:70", + "nodeType": "YulIf", + "src": "32157:50:70" + }, + { + "nativeSrc": "32216:60:70", + "nodeType": "YulAssignment", + "src": "32216:60:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32248:9:70", + "nodeType": "YulIdentifier", + "src": "32248:9:70" + }, + { + "name": "offset", + "nativeSrc": "32259:6:70", + "nodeType": "YulIdentifier", + "src": "32259:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32244:3:70", + "nodeType": "YulIdentifier", + "src": "32244:3:70" + }, + "nativeSrc": "32244:22:70", + "nodeType": "YulFunctionCall", + "src": "32244:22:70" + }, + { + "name": "dataEnd", + "nativeSrc": "32268:7:70", + "nodeType": "YulIdentifier", + "src": "32268:7:70" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "32226:17:70", + "nodeType": "YulIdentifier", + "src": "32226:17:70" + }, + "nativeSrc": "32226:50:70", + "nodeType": "YulFunctionCall", + "src": "32226:50:70" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "32216:6:70", + "nodeType": "YulIdentifier", + "src": "32216:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr", + "nativeSrc": "31698:584:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31769:9:70", + "nodeType": "YulTypedName", + "src": "31769:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "31780:7:70", + "nodeType": "YulTypedName", + "src": "31780:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "31792:6:70", + "nodeType": "YulTypedName", + "src": "31792:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31800:6:70", + "nodeType": "YulTypedName", + "src": "31800:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "31808:6:70", + "nodeType": "YulTypedName", + "src": "31808:6:70", + "type": "" + } + ], + "src": "31698:584:70" + }, + { + "body": { + "nativeSrc": "32444:214:70", + "nodeType": "YulBlock", + "src": "32444:214:70", + "statements": [ + { + "nativeSrc": "32454:26:70", + "nodeType": "YulAssignment", + "src": "32454:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32466:9:70", + "nodeType": "YulIdentifier", + "src": "32466:9:70" + }, + { + "kind": "number", + "nativeSrc": "32477:2:70", + "nodeType": "YulLiteral", + "src": "32477:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32462:3:70", + "nodeType": "YulIdentifier", + "src": "32462:3:70" + }, + "nativeSrc": "32462:18:70", + "nodeType": "YulFunctionCall", + "src": "32462:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "32454:4:70", + "nodeType": "YulIdentifier", + "src": "32454:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32496:9:70", + "nodeType": "YulIdentifier", + "src": "32496:9:70" + }, + { + "name": "value0", + "nativeSrc": "32507:6:70", + "nodeType": "YulIdentifier", + "src": "32507:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32489:6:70", + "nodeType": "YulIdentifier", + "src": "32489:6:70" + }, + "nativeSrc": "32489:25:70", + "nodeType": "YulFunctionCall", + "src": "32489:25:70" + }, + "nativeSrc": "32489:25:70", + "nodeType": "YulExpressionStatement", + "src": "32489:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32534:9:70", + "nodeType": "YulIdentifier", + "src": "32534:9:70" + }, + { + "kind": "number", + "nativeSrc": "32545:2:70", + "nodeType": "YulLiteral", + "src": "32545:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32530:3:70", + "nodeType": "YulIdentifier", + "src": "32530:3:70" + }, + "nativeSrc": "32530:18:70", + "nodeType": "YulFunctionCall", + "src": "32530:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "32554:6:70", + "nodeType": "YulIdentifier", + "src": "32554:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32570:3:70", + "nodeType": "YulLiteral", + "src": "32570:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "32575:1:70", + "nodeType": "YulLiteral", + "src": "32575:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32566:3:70", + "nodeType": "YulIdentifier", + "src": "32566:3:70" + }, + "nativeSrc": "32566:11:70", + "nodeType": "YulFunctionCall", + "src": "32566:11:70" + }, + { + "kind": "number", + "nativeSrc": "32579:1:70", + "nodeType": "YulLiteral", + "src": "32579:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "32562:3:70", + "nodeType": "YulIdentifier", + "src": "32562:3:70" + }, + "nativeSrc": "32562:19:70", + "nodeType": "YulFunctionCall", + "src": "32562:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32550:3:70", + "nodeType": "YulIdentifier", + "src": "32550:3:70" + }, + "nativeSrc": "32550:32:70", + "nodeType": "YulFunctionCall", + "src": "32550:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32523:6:70", + "nodeType": "YulIdentifier", + "src": "32523:6:70" + }, + "nativeSrc": "32523:60:70", + "nodeType": "YulFunctionCall", + "src": "32523:60:70" + }, + "nativeSrc": "32523:60:70", + "nodeType": "YulExpressionStatement", + "src": "32523:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32603:9:70", + "nodeType": "YulIdentifier", + "src": "32603:9:70" + }, + { + "kind": "number", + "nativeSrc": "32614:2:70", + "nodeType": "YulLiteral", + "src": "32614:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32599:3:70", + "nodeType": "YulIdentifier", + "src": "32599:3:70" + }, + "nativeSrc": "32599:18:70", + "nodeType": "YulFunctionCall", + "src": "32599:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "32623:6:70", + "nodeType": "YulIdentifier", + "src": "32623:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32639:3:70", + "nodeType": "YulLiteral", + "src": "32639:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "32644:1:70", + "nodeType": "YulLiteral", + "src": "32644:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32635:3:70", + "nodeType": "YulIdentifier", + "src": "32635:3:70" + }, + "nativeSrc": "32635:11:70", + "nodeType": "YulFunctionCall", + "src": "32635:11:70" + }, + { + "kind": "number", + "nativeSrc": "32648:1:70", + "nodeType": "YulLiteral", + "src": "32648:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "32631:3:70", + "nodeType": "YulIdentifier", + "src": "32631:3:70" + }, + "nativeSrc": "32631:19:70", + "nodeType": "YulFunctionCall", + "src": "32631:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32619:3:70", + "nodeType": "YulIdentifier", + "src": "32619:3:70" + }, + "nativeSrc": "32619:32:70", + "nodeType": "YulFunctionCall", + "src": "32619:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32592:6:70", + "nodeType": "YulIdentifier", + "src": "32592:6:70" + }, + "nativeSrc": "32592:60:70", + "nodeType": "YulFunctionCall", + "src": "32592:60:70" + }, + "nativeSrc": "32592:60:70", + "nodeType": "YulExpressionStatement", + "src": "32592:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed", + "nativeSrc": "32287:371:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "32397:9:70", + "nodeType": "YulTypedName", + "src": "32397:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "32408:6:70", + "nodeType": "YulTypedName", + "src": "32408:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "32416:6:70", + "nodeType": "YulTypedName", + "src": "32416:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "32424:6:70", + "nodeType": "YulTypedName", + "src": "32424:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "32435:4:70", + "nodeType": "YulTypedName", + "src": "32435:4:70", + "type": "" + } + ], + "src": "32287:371:70" + }, + { + "body": { + "nativeSrc": "32866:230:70", + "nodeType": "YulBlock", + "src": "32866:230:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32883:9:70", + "nodeType": "YulIdentifier", + "src": "32883:9:70" + }, + { + "kind": "number", + "nativeSrc": "32894:3:70", + "nodeType": "YulLiteral", + "src": "32894:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32876:6:70", + "nodeType": "YulIdentifier", + "src": "32876:6:70" + }, + "nativeSrc": "32876:22:70", + "nodeType": "YulFunctionCall", + "src": "32876:22:70" + }, + "nativeSrc": "32876:22:70", + "nodeType": "YulExpressionStatement", + "src": "32876:22:70" + }, + { + "nativeSrc": "32907:54:70", + "nodeType": "YulAssignment", + "src": "32907:54:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "32933:6:70", + "nodeType": "YulIdentifier", + "src": "32933:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32945:9:70", + "nodeType": "YulIdentifier", + "src": "32945:9:70" + }, + { + "kind": "number", + "nativeSrc": "32956:3:70", + "nodeType": "YulLiteral", + "src": "32956:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32941:3:70", + "nodeType": "YulIdentifier", + "src": "32941:3:70" + }, + "nativeSrc": "32941:19:70", + "nodeType": "YulFunctionCall", + "src": "32941:19:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "32915:17:70", + "nodeType": "YulIdentifier", + "src": "32915:17:70" + }, + "nativeSrc": "32915:46:70", + "nodeType": "YulFunctionCall", + "src": "32915:46:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "32907:4:70", + "nodeType": "YulIdentifier", + "src": "32907:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32981:9:70", + "nodeType": "YulIdentifier", + "src": "32981:9:70" + }, + { + "kind": "number", + "nativeSrc": "32992:2:70", + "nodeType": "YulLiteral", + "src": "32992:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32977:3:70", + "nodeType": "YulIdentifier", + "src": "32977:3:70" + }, + "nativeSrc": "32977:18:70", + "nodeType": "YulFunctionCall", + "src": "32977:18:70" + }, + { + "name": "value1", + "nativeSrc": "32997:6:70", + "nodeType": "YulIdentifier", + "src": "32997:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32970:6:70", + "nodeType": "YulIdentifier", + "src": "32970:6:70" + }, + "nativeSrc": "32970:34:70", + "nodeType": "YulFunctionCall", + "src": "32970:34:70" + }, + "nativeSrc": "32970:34:70", + "nodeType": "YulExpressionStatement", + "src": "32970:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33024:9:70", + "nodeType": "YulIdentifier", + "src": "33024:9:70" + }, + { + "kind": "number", + "nativeSrc": "33035:2:70", + "nodeType": "YulLiteral", + "src": "33035:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33020:3:70", + "nodeType": "YulIdentifier", + "src": "33020:3:70" + }, + "nativeSrc": "33020:18:70", + "nodeType": "YulFunctionCall", + "src": "33020:18:70" + }, + { + "name": "value2", + "nativeSrc": "33040:6:70", + "nodeType": "YulIdentifier", + "src": "33040:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33013:6:70", + "nodeType": "YulIdentifier", + "src": "33013:6:70" + }, + "nativeSrc": "33013:34:70", + "nodeType": "YulFunctionCall", + "src": "33013:34:70" + }, + "nativeSrc": "33013:34:70", + "nodeType": "YulExpressionStatement", + "src": "33013:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33067:9:70", + "nodeType": "YulIdentifier", + "src": "33067:9:70" + }, + { + "kind": "number", + "nativeSrc": "33078:2:70", + "nodeType": "YulLiteral", + "src": "33078:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33063:3:70", + "nodeType": "YulIdentifier", + "src": "33063:3:70" + }, + "nativeSrc": "33063:18:70", + "nodeType": "YulFunctionCall", + "src": "33063:18:70" + }, + { + "name": "value3", + "nativeSrc": "33083:6:70", + "nodeType": "YulIdentifier", + "src": "33083:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33056:6:70", + "nodeType": "YulIdentifier", + "src": "33056:6:70" + }, + "nativeSrc": "33056:34:70", + "nodeType": "YulFunctionCall", + "src": "33056:34:70" + }, + "nativeSrc": "33056:34:70", + "nodeType": "YulExpressionStatement", + "src": "33056:34:70" + } + ] + }, + "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": "32663:433:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "32811:9:70", + "nodeType": "YulTypedName", + "src": "32811:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "32822:6:70", + "nodeType": "YulTypedName", + "src": "32822:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "32830:6:70", + "nodeType": "YulTypedName", + "src": "32830:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "32838:6:70", + "nodeType": "YulTypedName", + "src": "32838:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "32846:6:70", + "nodeType": "YulTypedName", + "src": "32846:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "32857:4:70", + "nodeType": "YulTypedName", + "src": "32857:4:70", + "type": "" + } + ], + "src": "32663:433:70" + }, + { + "body": { + "nativeSrc": "33207:266:70", + "nodeType": "YulBlock", + "src": "33207:266:70", + "statements": [ + { + "body": { + "nativeSrc": "33253:16:70", + "nodeType": "YulBlock", + "src": "33253:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33262:1:70", + "nodeType": "YulLiteral", + "src": "33262:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "33265:1:70", + "nodeType": "YulLiteral", + "src": "33265:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "33255:6:70", + "nodeType": "YulIdentifier", + "src": "33255:6:70" + }, + "nativeSrc": "33255:12:70", + "nodeType": "YulFunctionCall", + "src": "33255:12:70" + }, + "nativeSrc": "33255:12:70", + "nodeType": "YulExpressionStatement", + "src": "33255:12:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "33228:7:70", + "nodeType": "YulIdentifier", + "src": "33228:7:70" + }, + { + "name": "headStart", + "nativeSrc": "33237:9:70", + "nodeType": "YulIdentifier", + "src": "33237:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "33224:3:70", + "nodeType": "YulIdentifier", + "src": "33224:3:70" + }, + "nativeSrc": "33224:23:70", + "nodeType": "YulFunctionCall", + "src": "33224:23:70" + }, + { + "kind": "number", + "nativeSrc": "33249:2:70", + "nodeType": "YulLiteral", + "src": "33249:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "33220:3:70", + "nodeType": "YulIdentifier", + "src": "33220:3:70" + }, + "nativeSrc": "33220:32:70", + "nodeType": "YulFunctionCall", + "src": "33220:32:70" + }, + "nativeSrc": "33217:52:70", + "nodeType": "YulIf", + "src": "33217:52:70" + }, + { + "nativeSrc": "33278:14:70", + "nodeType": "YulVariableDeclaration", + "src": "33278:14:70", + "value": { + "kind": "number", + "nativeSrc": "33291:1:70", + "nodeType": "YulLiteral", + "src": "33291:1:70", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "33282:5:70", + "nodeType": "YulTypedName", + "src": "33282:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "33301:25:70", + "nodeType": "YulAssignment", + "src": "33301:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33316:9:70", + "nodeType": "YulIdentifier", + "src": "33316:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "33310:5:70", + "nodeType": "YulIdentifier", + "src": "33310:5:70" + }, + "nativeSrc": "33310:16:70", + "nodeType": "YulFunctionCall", + "src": "33310:16:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "33301:5:70", + "nodeType": "YulIdentifier", + "src": "33301:5:70" + } + ] + }, + { + "nativeSrc": "33335:15:70", + "nodeType": "YulAssignment", + "src": "33335:15:70", + "value": { + "name": "value", + "nativeSrc": "33345:5:70", + "nodeType": "YulIdentifier", + "src": "33345:5:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "33335:6:70", + "nodeType": "YulIdentifier", + "src": "33335:6:70" + } + ] + }, + { + "nativeSrc": "33359:40:70", + "nodeType": "YulVariableDeclaration", + "src": "33359:40:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33384:9:70", + "nodeType": "YulIdentifier", + "src": "33384:9:70" + }, + { + "kind": "number", + "nativeSrc": "33395:2:70", + "nodeType": "YulLiteral", + "src": "33395:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33380:3:70", + "nodeType": "YulIdentifier", + "src": "33380:3:70" + }, + "nativeSrc": "33380:18:70", + "nodeType": "YulFunctionCall", + "src": "33380:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "33374:5:70", + "nodeType": "YulIdentifier", + "src": "33374:5:70" + }, + "nativeSrc": "33374:25:70", + "nodeType": "YulFunctionCall", + "src": "33374:25:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "33363:7:70", + "nodeType": "YulTypedName", + "src": "33363:7:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "33433:7:70", + "nodeType": "YulIdentifier", + "src": "33433:7:70" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "33408:24:70", + "nodeType": "YulIdentifier", + "src": "33408:24:70" + }, + "nativeSrc": "33408:33:70", + "nodeType": "YulFunctionCall", + "src": "33408:33:70" + }, + "nativeSrc": "33408:33:70", + "nodeType": "YulExpressionStatement", + "src": "33408:33:70" + }, + { + "nativeSrc": "33450:17:70", + "nodeType": "YulAssignment", + "src": "33450:17:70", + "value": { + "name": "value_1", + "nativeSrc": "33460:7:70", + "nodeType": "YulIdentifier", + "src": "33460:7:70" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "33450:6:70", + "nodeType": "YulIdentifier", + "src": "33450:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address_payable_fromMemory", + "nativeSrc": "33101:372:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33165:9:70", + "nodeType": "YulTypedName", + "src": "33165:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "33176:7:70", + "nodeType": "YulTypedName", + "src": "33176:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "33188:6:70", + "nodeType": "YulTypedName", + "src": "33188:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "33196:6:70", + "nodeType": "YulTypedName", + "src": "33196:6:70", + "type": "" + } + ], + "src": "33101:372:70" + }, + { + "body": { + "nativeSrc": "33607:145:70", + "nodeType": "YulBlock", + "src": "33607:145:70", + "statements": [ + { + "nativeSrc": "33617:26:70", + "nodeType": "YulAssignment", + "src": "33617:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33629:9:70", + "nodeType": "YulIdentifier", + "src": "33629:9:70" + }, + { + "kind": "number", + "nativeSrc": "33640:2:70", + "nodeType": "YulLiteral", + "src": "33640:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33625:3:70", + "nodeType": "YulIdentifier", + "src": "33625:3:70" + }, + "nativeSrc": "33625:18:70", + "nodeType": "YulFunctionCall", + "src": "33625:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "33617:4:70", + "nodeType": "YulIdentifier", + "src": "33617:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33659:9:70", + "nodeType": "YulIdentifier", + "src": "33659:9:70" + }, + { + "name": "value0", + "nativeSrc": "33670:6:70", + "nodeType": "YulIdentifier", + "src": "33670:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33652:6:70", + "nodeType": "YulIdentifier", + "src": "33652:6:70" + }, + "nativeSrc": "33652:25:70", + "nodeType": "YulFunctionCall", + "src": "33652:25:70" + }, + "nativeSrc": "33652:25:70", + "nodeType": "YulExpressionStatement", + "src": "33652:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33697:9:70", + "nodeType": "YulIdentifier", + "src": "33697:9:70" + }, + { + "kind": "number", + "nativeSrc": "33708:2:70", + "nodeType": "YulLiteral", + "src": "33708:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33693:3:70", + "nodeType": "YulIdentifier", + "src": "33693:3:70" + }, + "nativeSrc": "33693:18:70", + "nodeType": "YulFunctionCall", + "src": "33693:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "33717:6:70", + "nodeType": "YulIdentifier", + "src": "33717:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33733:3:70", + "nodeType": "YulLiteral", + "src": "33733:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "33738:1:70", + "nodeType": "YulLiteral", + "src": "33738:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "33729:3:70", + "nodeType": "YulIdentifier", + "src": "33729:3:70" + }, + "nativeSrc": "33729:11:70", + "nodeType": "YulFunctionCall", + "src": "33729:11:70" + }, + { + "kind": "number", + "nativeSrc": "33742:1:70", + "nodeType": "YulLiteral", + "src": "33742:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "33725:3:70", + "nodeType": "YulIdentifier", + "src": "33725:3:70" + }, + "nativeSrc": "33725:19:70", + "nodeType": "YulFunctionCall", + "src": "33725:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "33713:3:70", + "nodeType": "YulIdentifier", + "src": "33713:3:70" + }, + "nativeSrc": "33713:32:70", + "nodeType": "YulFunctionCall", + "src": "33713:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33686:6:70", + "nodeType": "YulIdentifier", + "src": "33686:6:70" + }, + "nativeSrc": "33686:60:70", + "nodeType": "YulFunctionCall", + "src": "33686:60:70" + }, + "nativeSrc": "33686:60:70", + "nodeType": "YulExpressionStatement", + "src": "33686:60:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "33478:274:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33568:9:70", + "nodeType": "YulTypedName", + "src": "33568:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "33579:6:70", + "nodeType": "YulTypedName", + "src": "33579:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "33587:6:70", + "nodeType": "YulTypedName", + "src": "33587:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "33598:4:70", + "nodeType": "YulTypedName", + "src": "33598:4:70", + "type": "" + } + ], + "src": "33478:274:70" + }, + { + "body": { + "nativeSrc": "33804:89:70", + "nodeType": "YulBlock", + "src": "33804:89:70", + "statements": [ + { + "body": { + "nativeSrc": "33831:22:70", + "nodeType": "YulBlock", + "src": "33831:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "33833:16:70", + "nodeType": "YulIdentifier", + "src": "33833:16:70" + }, + "nativeSrc": "33833:18:70", + "nodeType": "YulFunctionCall", + "src": "33833:18:70" + }, + "nativeSrc": "33833:18:70", + "nodeType": "YulExpressionStatement", + "src": "33833:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "33824:5:70", + "nodeType": "YulIdentifier", + "src": "33824:5:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "33817:6:70", + "nodeType": "YulIdentifier", + "src": "33817:6:70" + }, + "nativeSrc": "33817:13:70", + "nodeType": "YulFunctionCall", + "src": "33817:13:70" + }, + "nativeSrc": "33814:39:70", + "nodeType": "YulIf", + "src": "33814:39:70" + }, + { + "nativeSrc": "33862:25:70", + "nodeType": "YulAssignment", + "src": "33862:25:70", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "33873:5:70", + "nodeType": "YulIdentifier", + "src": "33873:5:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33884:1:70", + "nodeType": "YulLiteral", + "src": "33884:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "33880:3:70", + "nodeType": "YulIdentifier", + "src": "33880:3:70" + }, + "nativeSrc": "33880:6:70", + "nodeType": "YulFunctionCall", + "src": "33880:6:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33869:3:70", + "nodeType": "YulIdentifier", + "src": "33869:3:70" + }, + "nativeSrc": "33869:18:70", + "nodeType": "YulFunctionCall", + "src": "33869:18:70" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "33862:3:70", + "nodeType": "YulIdentifier", + "src": "33862:3:70" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nativeSrc": "33757:136:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "33786:5:70", + "nodeType": "YulTypedName", + "src": "33786:5:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "33796:3:70", + "nodeType": "YulTypedName", + "src": "33796:3:70", + "type": "" + } + ], + "src": "33757:136:70" + }, + { + "body": { + "nativeSrc": "33945:88:70", + "nodeType": "YulBlock", + "src": "33945:88:70", + "statements": [ + { + "body": { + "nativeSrc": "33976:22:70", + "nodeType": "YulBlock", + "src": "33976:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "33978:16:70", + "nodeType": "YulIdentifier", + "src": "33978:16:70" + }, + "nativeSrc": "33978:18:70", + "nodeType": "YulFunctionCall", + "src": "33978:18:70" + }, + "nativeSrc": "33978:18:70", + "nodeType": "YulExpressionStatement", + "src": "33978:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "33961:5:70", + "nodeType": "YulIdentifier", + "src": "33961:5:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33972:1:70", + "nodeType": "YulLiteral", + "src": "33972:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "33968:3:70", + "nodeType": "YulIdentifier", + "src": "33968:3:70" + }, + "nativeSrc": "33968:6:70", + "nodeType": "YulFunctionCall", + "src": "33968:6:70" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "33958:2:70", + "nodeType": "YulIdentifier", + "src": "33958:2:70" + }, + "nativeSrc": "33958:17:70", + "nodeType": "YulFunctionCall", + "src": "33958:17:70" + }, + "nativeSrc": "33955:43:70", + "nodeType": "YulIf", + "src": "33955:43:70" + }, + { + "nativeSrc": "34007:20:70", + "nodeType": "YulAssignment", + "src": "34007:20:70", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "34018:5:70", + "nodeType": "YulIdentifier", + "src": "34018:5:70" + }, + { + "kind": "number", + "nativeSrc": "34025:1:70", + "nodeType": "YulLiteral", + "src": "34025:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34014:3:70", + "nodeType": "YulIdentifier", + "src": "34014:3:70" + }, + "nativeSrc": "34014:13:70", + "nodeType": "YulFunctionCall", + "src": "34014:13:70" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "34007:3:70", + "nodeType": "YulIdentifier", + "src": "34007:3:70" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "33898:135:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "33927:5:70", + "nodeType": "YulTypedName", + "src": "33927:5:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "33937:3:70", + "nodeType": "YulTypedName", + "src": "33937:3:70", + "type": "" + } + ], + "src": "33898:135:70" + }, + { + "body": { + "nativeSrc": "34193:231:70", + "nodeType": "YulBlock", + "src": "34193:231:70", + "statements": [ + { + "nativeSrc": "34203:26:70", + "nodeType": "YulAssignment", + "src": "34203:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34215:9:70", + "nodeType": "YulIdentifier", + "src": "34215:9:70" + }, + { + "kind": "number", + "nativeSrc": "34226:2:70", + "nodeType": "YulLiteral", + "src": "34226:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34211:3:70", + "nodeType": "YulIdentifier", + "src": "34211:3:70" + }, + "nativeSrc": "34211:18:70", + "nodeType": "YulFunctionCall", + "src": "34211:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "34203:4:70", + "nodeType": "YulIdentifier", + "src": "34203:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34245:9:70", + "nodeType": "YulIdentifier", + "src": "34245:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "34260:6:70", + "nodeType": "YulIdentifier", + "src": "34260:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34276:3:70", + "nodeType": "YulLiteral", + "src": "34276:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "34281:1:70", + "nodeType": "YulLiteral", + "src": "34281:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34272:3:70", + "nodeType": "YulIdentifier", + "src": "34272:3:70" + }, + "nativeSrc": "34272:11:70", + "nodeType": "YulFunctionCall", + "src": "34272:11:70" + }, + { + "kind": "number", + "nativeSrc": "34285:1:70", + "nodeType": "YulLiteral", + "src": "34285:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34268:3:70", + "nodeType": "YulIdentifier", + "src": "34268:3:70" + }, + "nativeSrc": "34268:19:70", + "nodeType": "YulFunctionCall", + "src": "34268:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34256:3:70", + "nodeType": "YulIdentifier", + "src": "34256:3:70" + }, + "nativeSrc": "34256:32:70", + "nodeType": "YulFunctionCall", + "src": "34256:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34238:6:70", + "nodeType": "YulIdentifier", + "src": "34238:6:70" + }, + "nativeSrc": "34238:51:70", + "nodeType": "YulFunctionCall", + "src": "34238:51:70" + }, + "nativeSrc": "34238:51:70", + "nodeType": "YulExpressionStatement", + "src": "34238:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34309:9:70", + "nodeType": "YulIdentifier", + "src": "34309:9:70" + }, + { + "kind": "number", + "nativeSrc": "34320:2:70", + "nodeType": "YulLiteral", + "src": "34320:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34305:3:70", + "nodeType": "YulIdentifier", + "src": "34305:3:70" + }, + "nativeSrc": "34305:18:70", + "nodeType": "YulFunctionCall", + "src": "34305:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "34329:6:70", + "nodeType": "YulIdentifier", + "src": "34329:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34345:3:70", + "nodeType": "YulLiteral", + "src": "34345:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "34350:1:70", + "nodeType": "YulLiteral", + "src": "34350:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34341:3:70", + "nodeType": "YulIdentifier", + "src": "34341:3:70" + }, + "nativeSrc": "34341:11:70", + "nodeType": "YulFunctionCall", + "src": "34341:11:70" + }, + { + "kind": "number", + "nativeSrc": "34354:1:70", + "nodeType": "YulLiteral", + "src": "34354:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34337:3:70", + "nodeType": "YulIdentifier", + "src": "34337:3:70" + }, + "nativeSrc": "34337:19:70", + "nodeType": "YulFunctionCall", + "src": "34337:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34325:3:70", + "nodeType": "YulIdentifier", + "src": "34325:3:70" + }, + "nativeSrc": "34325:32:70", + "nodeType": "YulFunctionCall", + "src": "34325:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34298:6:70", + "nodeType": "YulIdentifier", + "src": "34298:6:70" + }, + "nativeSrc": "34298:60:70", + "nodeType": "YulFunctionCall", + "src": "34298:60:70" + }, + "nativeSrc": "34298:60:70", + "nodeType": "YulExpressionStatement", + "src": "34298:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34378:9:70", + "nodeType": "YulIdentifier", + "src": "34378:9:70" + }, + { + "kind": "number", + "nativeSrc": "34389:2:70", + "nodeType": "YulLiteral", + "src": "34389:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34374:3:70", + "nodeType": "YulIdentifier", + "src": "34374:3:70" + }, + "nativeSrc": "34374:18:70", + "nodeType": "YulFunctionCall", + "src": "34374:18:70" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "34398:6:70", + "nodeType": "YulIdentifier", + "src": "34398:6:70" + }, + { + "kind": "number", + "nativeSrc": "34406:10:70", + "nodeType": "YulLiteral", + "src": "34406:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34394:3:70", + "nodeType": "YulIdentifier", + "src": "34394:3:70" + }, + "nativeSrc": "34394:23:70", + "nodeType": "YulFunctionCall", + "src": "34394:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34367:6:70", + "nodeType": "YulIdentifier", + "src": "34367:6:70" + }, + "nativeSrc": "34367:51:70", + "nodeType": "YulFunctionCall", + "src": "34367:51:70" + }, + "nativeSrc": "34367:51:70", + "nodeType": "YulExpressionStatement", + "src": "34367:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint32__to_t_address_t_address_t_uint32__fromStack_reversed", + "nativeSrc": "34038:386:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34146:9:70", + "nodeType": "YulTypedName", + "src": "34146:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "34157:6:70", + "nodeType": "YulTypedName", + "src": "34157:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "34165:6:70", + "nodeType": "YulTypedName", + "src": "34165:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "34173:6:70", + "nodeType": "YulTypedName", + "src": "34173:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "34184:4:70", + "nodeType": "YulTypedName", + "src": "34184:4:70", + "type": "" + } + ], + "src": "34038:386:70" + }, + { + "body": { + "nativeSrc": "34473:60:70", + "nodeType": "YulBlock", + "src": "34473:60:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "34490:3:70", + "nodeType": "YulIdentifier", + "src": "34490:3:70" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "34499:5:70", + "nodeType": "YulIdentifier", + "src": "34499:5:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34514:3:70", + "nodeType": "YulLiteral", + "src": "34514:3:70", + "type": "", + "value": "128" + }, + { + "kind": "number", + "nativeSrc": "34519:1:70", + "nodeType": "YulLiteral", + "src": "34519:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34510:3:70", + "nodeType": "YulIdentifier", + "src": "34510:3:70" + }, + "nativeSrc": "34510:11:70", + "nodeType": "YulFunctionCall", + "src": "34510:11:70" + }, + { + "kind": "number", + "nativeSrc": "34523:1:70", + "nodeType": "YulLiteral", + "src": "34523:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34506:3:70", + "nodeType": "YulIdentifier", + "src": "34506:3:70" + }, + "nativeSrc": "34506:19:70", + "nodeType": "YulFunctionCall", + "src": "34506:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34495:3:70", + "nodeType": "YulIdentifier", + "src": "34495:3:70" + }, + "nativeSrc": "34495:31:70", + "nodeType": "YulFunctionCall", + "src": "34495:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34483:6:70", + "nodeType": "YulIdentifier", + "src": "34483:6:70" + }, + "nativeSrc": "34483:44:70", + "nodeType": "YulFunctionCall", + "src": "34483:44:70" + }, + "nativeSrc": "34483:44:70", + "nodeType": "YulExpressionStatement", + "src": "34483:44:70" + } + ] + }, + "name": "abi_encode_uint128", + "nativeSrc": "34429:104:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34457:5:70", + "nodeType": "YulTypedName", + "src": "34457:5:70", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "34464:3:70", + "nodeType": "YulTypedName", + "src": "34464:3:70", + "type": "" + } + ], + "src": "34429:104:70" + }, + { + "body": { + "nativeSrc": "34749:1166:70", + "nodeType": "YulBlock", + "src": "34749:1166:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34766:9:70", + "nodeType": "YulIdentifier", + "src": "34766:9:70" + }, + { + "kind": "number", + "nativeSrc": "34777:2:70", + "nodeType": "YulLiteral", + "src": "34777:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34759:6:70", + "nodeType": "YulIdentifier", + "src": "34759:6:70" + }, + "nativeSrc": "34759:21:70", + "nodeType": "YulFunctionCall", + "src": "34759:21:70" + }, + "nativeSrc": "34759:21:70", + "nodeType": "YulExpressionStatement", + "src": "34759:21:70" + }, + { + "nativeSrc": "34789:33:70", + "nodeType": "YulVariableDeclaration", + "src": "34789:33:70", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "34815:6:70", + "nodeType": "YulIdentifier", + "src": "34815:6:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34809:5:70", + "nodeType": "YulIdentifier", + "src": "34809:5:70" + }, + "nativeSrc": "34809:13:70", + "nodeType": "YulFunctionCall", + "src": "34809:13:70" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "34793:12:70", + "nodeType": "YulTypedName", + "src": "34793:12:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34842:9:70", + "nodeType": "YulIdentifier", + "src": "34842:9:70" + }, + { + "kind": "number", + "nativeSrc": "34853:2:70", + "nodeType": "YulLiteral", + "src": "34853:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34838:3:70", + "nodeType": "YulIdentifier", + "src": "34838:3:70" + }, + "nativeSrc": "34838:18:70", + "nodeType": "YulFunctionCall", + "src": "34838:18:70" + }, + { + "kind": "number", + "nativeSrc": "34858:4:70", + "nodeType": "YulLiteral", + "src": "34858:4:70", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34831:6:70", + "nodeType": "YulIdentifier", + "src": "34831:6:70" + }, + "nativeSrc": "34831:32:70", + "nodeType": "YulFunctionCall", + "src": "34831:32:70" + }, + "nativeSrc": "34831:32:70", + "nodeType": "YulExpressionStatement", + "src": "34831:32:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34883:9:70", + "nodeType": "YulIdentifier", + "src": "34883:9:70" + }, + { + "kind": "number", + "nativeSrc": "34894:3:70", + "nodeType": "YulLiteral", + "src": "34894:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34879:3:70", + "nodeType": "YulIdentifier", + "src": "34879:3:70" + }, + "nativeSrc": "34879:19:70", + "nodeType": "YulFunctionCall", + "src": "34879:19:70" + }, + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "34906:12:70", + "nodeType": "YulIdentifier", + "src": "34906:12:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34900:5:70", + "nodeType": "YulIdentifier", + "src": "34900:5:70" + }, + "nativeSrc": "34900:19:70", + "nodeType": "YulFunctionCall", + "src": "34900:19:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34872:6:70", + "nodeType": "YulIdentifier", + "src": "34872:6:70" + }, + "nativeSrc": "34872:48:70", + "nodeType": "YulFunctionCall", + "src": "34872:48:70" + }, + "nativeSrc": "34872:48:70", + "nodeType": "YulExpressionStatement", + "src": "34872:48:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34940:9:70", + "nodeType": "YulIdentifier", + "src": "34940:9:70" + }, + { + "kind": "number", + "nativeSrc": "34951:3:70", + "nodeType": "YulLiteral", + "src": "34951:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34936:3:70", + "nodeType": "YulIdentifier", + "src": "34936:3:70" + }, + "nativeSrc": "34936:19:70", + "nodeType": "YulFunctionCall", + "src": "34936:19:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "34971:12:70", + "nodeType": "YulIdentifier", + "src": "34971:12:70" + }, + { + "kind": "number", + "nativeSrc": "34985:4:70", + "nodeType": "YulLiteral", + "src": "34985:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34967:3:70", + "nodeType": "YulIdentifier", + "src": "34967:3:70" + }, + "nativeSrc": "34967:23:70", + "nodeType": "YulFunctionCall", + "src": "34967:23:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34961:5:70", + "nodeType": "YulIdentifier", + "src": "34961:5:70" + }, + "nativeSrc": "34961:30:70", + "nodeType": "YulFunctionCall", + "src": "34961:30:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35001:3:70", + "nodeType": "YulLiteral", + "src": "35001:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "35006:1:70", + "nodeType": "YulLiteral", + "src": "35006:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34997:3:70", + "nodeType": "YulIdentifier", + "src": "34997:3:70" + }, + "nativeSrc": "34997:11:70", + "nodeType": "YulFunctionCall", + "src": "34997:11:70" + }, + { + "kind": "number", + "nativeSrc": "35010:1:70", + "nodeType": "YulLiteral", + "src": "35010:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34993:3:70", + "nodeType": "YulIdentifier", + "src": "34993:3:70" + }, + "nativeSrc": "34993:19:70", + "nodeType": "YulFunctionCall", + "src": "34993:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34957:3:70", + "nodeType": "YulIdentifier", + "src": "34957:3:70" + }, + "nativeSrc": "34957:56:70", + "nodeType": "YulFunctionCall", + "src": "34957:56:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34929:6:70", + "nodeType": "YulIdentifier", + "src": "34929:6:70" + }, + "nativeSrc": "34929:85:70", + "nodeType": "YulFunctionCall", + "src": "34929:85:70" + }, + "nativeSrc": "34929:85:70", + "nodeType": "YulExpressionStatement", + "src": "34929:85:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35034:9:70", + "nodeType": "YulIdentifier", + "src": "35034:9:70" + }, + { + "kind": "number", + "nativeSrc": "35045:4:70", + "nodeType": "YulLiteral", + "src": "35045:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35030:3:70", + "nodeType": "YulIdentifier", + "src": "35030:3:70" + }, + "nativeSrc": "35030:20:70", + "nodeType": "YulFunctionCall", + "src": "35030:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35066:12:70", + "nodeType": "YulIdentifier", + "src": "35066:12:70" + }, + { + "kind": "number", + "nativeSrc": "35080:4:70", + "nodeType": "YulLiteral", + "src": "35080:4:70", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35062:3:70", + "nodeType": "YulIdentifier", + "src": "35062:3:70" + }, + "nativeSrc": "35062:23:70", + "nodeType": "YulFunctionCall", + "src": "35062:23:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35056:5:70", + "nodeType": "YulIdentifier", + "src": "35056:5:70" + }, + "nativeSrc": "35056:30:70", + "nodeType": "YulFunctionCall", + "src": "35056:30:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35096:3:70", + "nodeType": "YulLiteral", + "src": "35096:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "35101:1:70", + "nodeType": "YulLiteral", + "src": "35101:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "35092:3:70", + "nodeType": "YulIdentifier", + "src": "35092:3:70" + }, + "nativeSrc": "35092:11:70", + "nodeType": "YulFunctionCall", + "src": "35092:11:70" + }, + { + "kind": "number", + "nativeSrc": "35105:1:70", + "nodeType": "YulLiteral", + "src": "35105:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "35088:3:70", + "nodeType": "YulIdentifier", + "src": "35088:3:70" + }, + "nativeSrc": "35088:19:70", + "nodeType": "YulFunctionCall", + "src": "35088:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35052:3:70", + "nodeType": "YulIdentifier", + "src": "35052:3:70" + }, + "nativeSrc": "35052:56:70", + "nodeType": "YulFunctionCall", + "src": "35052:56:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35023:6:70", + "nodeType": "YulIdentifier", + "src": "35023:6:70" + }, + "nativeSrc": "35023:86:70", + "nodeType": "YulFunctionCall", + "src": "35023:86:70" + }, + "nativeSrc": "35023:86:70", + "nodeType": "YulExpressionStatement", + "src": "35023:86:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35129:9:70", + "nodeType": "YulIdentifier", + "src": "35129:9:70" + }, + { + "kind": "number", + "nativeSrc": "35140:3:70", + "nodeType": "YulLiteral", + "src": "35140:3:70", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35125:3:70", + "nodeType": "YulIdentifier", + "src": "35125:3:70" + }, + "nativeSrc": "35125:19:70", + "nodeType": "YulFunctionCall", + "src": "35125:19:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35160:12:70", + "nodeType": "YulIdentifier", + "src": "35160:12:70" + }, + { + "kind": "number", + "nativeSrc": "35174:2:70", + "nodeType": "YulLiteral", + "src": "35174:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35156:3:70", + "nodeType": "YulIdentifier", + "src": "35156:3:70" + }, + "nativeSrc": "35156:21:70", + "nodeType": "YulFunctionCall", + "src": "35156:21:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35150:5:70", + "nodeType": "YulIdentifier", + "src": "35150:5:70" + }, + "nativeSrc": "35150:28:70", + "nodeType": "YulFunctionCall", + "src": "35150:28:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35188:3:70", + "nodeType": "YulLiteral", + "src": "35188:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "35193:1:70", + "nodeType": "YulLiteral", + "src": "35193:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "35184:3:70", + "nodeType": "YulIdentifier", + "src": "35184:3:70" + }, + "nativeSrc": "35184:11:70", + "nodeType": "YulFunctionCall", + "src": "35184:11:70" + }, + { + "kind": "number", + "nativeSrc": "35197:1:70", + "nodeType": "YulLiteral", + "src": "35197:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "35180:3:70", + "nodeType": "YulIdentifier", + "src": "35180:3:70" + }, + "nativeSrc": "35180:19:70", + "nodeType": "YulFunctionCall", + "src": "35180:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35146:3:70", + "nodeType": "YulIdentifier", + "src": "35146:3:70" + }, + "nativeSrc": "35146:54:70", + "nodeType": "YulFunctionCall", + "src": "35146:54:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35118:6:70", + "nodeType": "YulIdentifier", + "src": "35118:6:70" + }, + "nativeSrc": "35118:83:70", + "nodeType": "YulFunctionCall", + "src": "35118:83:70" + }, + "nativeSrc": "35118:83:70", + "nodeType": "YulExpressionStatement", + "src": "35118:83:70" + }, + { + "nativeSrc": "35210:52:70", + "nodeType": "YulVariableDeclaration", + "src": "35210:52:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35242:12:70", + "nodeType": "YulIdentifier", + "src": "35242:12:70" + }, + { + "kind": "number", + "nativeSrc": "35256:4:70", + "nodeType": "YulLiteral", + "src": "35256:4:70", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35238:3:70", + "nodeType": "YulIdentifier", + "src": "35238:3:70" + }, + "nativeSrc": "35238:23:70", + "nodeType": "YulFunctionCall", + "src": "35238:23:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35232:5:70", + "nodeType": "YulIdentifier", + "src": "35232:5:70" + }, + "nativeSrc": "35232:30:70", + "nodeType": "YulFunctionCall", + "src": "35232:30:70" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "35214:14:70", + "nodeType": "YulTypedName", + "src": "35214:14:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "35289:14:70", + "nodeType": "YulIdentifier", + "src": "35289:14:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35309:9:70", + "nodeType": "YulIdentifier", + "src": "35309:9:70" + }, + { + "kind": "number", + "nativeSrc": "35320:3:70", + "nodeType": "YulLiteral", + "src": "35320:3:70", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35305:3:70", + "nodeType": "YulIdentifier", + "src": "35305:3:70" + }, + "nativeSrc": "35305:19:70", + "nodeType": "YulFunctionCall", + "src": "35305:19:70" + } + ], + "functionName": { + "name": "abi_encode_uint64", + "nativeSrc": "35271:17:70", + "nodeType": "YulIdentifier", + "src": "35271:17:70" + }, + "nativeSrc": "35271:54:70", + "nodeType": "YulFunctionCall", + "src": "35271:54:70" + }, + "nativeSrc": "35271:54:70", + "nodeType": "YulExpressionStatement", + "src": "35271:54:70" + }, + { + "nativeSrc": "35334:51:70", + "nodeType": "YulVariableDeclaration", + "src": "35334:51:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35366:12:70", + "nodeType": "YulIdentifier", + "src": "35366:12:70" + }, + { + "kind": "number", + "nativeSrc": "35380:3:70", + "nodeType": "YulLiteral", + "src": "35380:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35362:3:70", + "nodeType": "YulIdentifier", + "src": "35362:3:70" + }, + "nativeSrc": "35362:22:70", + "nodeType": "YulFunctionCall", + "src": "35362:22:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35356:5:70", + "nodeType": "YulIdentifier", + "src": "35356:5:70" + }, + "nativeSrc": "35356:29:70", + "nodeType": "YulFunctionCall", + "src": "35356:29:70" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "35338:14:70", + "nodeType": "YulTypedName", + "src": "35338:14:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "35413:14:70", + "nodeType": "YulIdentifier", + "src": "35413:14:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35433:9:70", + "nodeType": "YulIdentifier", + "src": "35433:9:70" + }, + { + "kind": "number", + "nativeSrc": "35444:3:70", + "nodeType": "YulLiteral", + "src": "35444:3:70", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35429:3:70", + "nodeType": "YulIdentifier", + "src": "35429:3:70" + }, + "nativeSrc": "35429:19:70", + "nodeType": "YulFunctionCall", + "src": "35429:19:70" + } + ], + "functionName": { + "name": "abi_encode_uint128", + "nativeSrc": "35394:18:70", + "nodeType": "YulIdentifier", + "src": "35394:18:70" + }, + "nativeSrc": "35394:55:70", + "nodeType": "YulFunctionCall", + "src": "35394:55:70" + }, + "nativeSrc": "35394:55:70", + "nodeType": "YulExpressionStatement", + "src": "35394:55:70" + }, + { + "nativeSrc": "35458:51:70", + "nodeType": "YulVariableDeclaration", + "src": "35458:51:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35490:12:70", + "nodeType": "YulIdentifier", + "src": "35490:12:70" + }, + { + "kind": "number", + "nativeSrc": "35504:3:70", + "nodeType": "YulLiteral", + "src": "35504:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35486:3:70", + "nodeType": "YulIdentifier", + "src": "35486:3:70" + }, + "nativeSrc": "35486:22:70", + "nodeType": "YulFunctionCall", + "src": "35486:22:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35480:5:70", + "nodeType": "YulIdentifier", + "src": "35480:5:70" + }, + "nativeSrc": "35480:29:70", + "nodeType": "YulFunctionCall", + "src": "35480:29:70" + }, + "variables": [ + { + "name": "memberValue0_3", + "nativeSrc": "35462:14:70", + "nodeType": "YulTypedName", + "src": "35462:14:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35529:9:70", + "nodeType": "YulIdentifier", + "src": "35529:9:70" + }, + { + "kind": "number", + "nativeSrc": "35540:3:70", + "nodeType": "YulLiteral", + "src": "35540:3:70", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35525:3:70", + "nodeType": "YulIdentifier", + "src": "35525:3:70" + }, + "nativeSrc": "35525:19:70", + "nodeType": "YulFunctionCall", + "src": "35525:19:70" + }, + { + "kind": "number", + "nativeSrc": "35546:4:70", + "nodeType": "YulLiteral", + "src": "35546:4:70", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35518:6:70", + "nodeType": "YulIdentifier", + "src": "35518:6:70" + }, + "nativeSrc": "35518:33:70", + "nodeType": "YulFunctionCall", + "src": "35518:33:70" + }, + "nativeSrc": "35518:33:70", + "nodeType": "YulExpressionStatement", + "src": "35518:33:70" + }, + { + "nativeSrc": "35560:65:70", + "nodeType": "YulVariableDeclaration", + "src": "35560:65:70", + "value": { + "arguments": [ + { + "name": "memberValue0_3", + "nativeSrc": "35589:14:70", + "nodeType": "YulIdentifier", + "src": "35589:14:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35609:9:70", + "nodeType": "YulIdentifier", + "src": "35609:9:70" + }, + { + "kind": "number", + "nativeSrc": "35620:3:70", + "nodeType": "YulLiteral", + "src": "35620:3:70", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35605:3:70", + "nodeType": "YulIdentifier", + "src": "35605:3:70" + }, + "nativeSrc": "35605:19:70", + "nodeType": "YulFunctionCall", + "src": "35605:19:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "35571:17:70", + "nodeType": "YulIdentifier", + "src": "35571:17:70" + }, + "nativeSrc": "35571:54:70", + "nodeType": "YulFunctionCall", + "src": "35571:54:70" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "35564:3:70", + "nodeType": "YulTypedName", + "src": "35564:3:70", + "type": "" + } + ] + }, + { + "nativeSrc": "35634:46:70", + "nodeType": "YulVariableDeclaration", + "src": "35634:46:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "35666:6:70", + "nodeType": "YulIdentifier", + "src": "35666:6:70" + }, + { + "kind": "number", + "nativeSrc": "35674:4:70", + "nodeType": "YulLiteral", + "src": "35674:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35662:3:70", + "nodeType": "YulIdentifier", + "src": "35662:3:70" + }, + "nativeSrc": "35662:17:70", + "nodeType": "YulFunctionCall", + "src": "35662:17:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35656:5:70", + "nodeType": "YulIdentifier", + "src": "35656:5:70" + }, + "nativeSrc": "35656:24:70", + "nodeType": "YulFunctionCall", + "src": "35656:24:70" + }, + "variables": [ + { + "name": "memberValue0_4", + "nativeSrc": "35638:14:70", + "nodeType": "YulTypedName", + "src": "35638:14:70", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35700:9:70", + "nodeType": "YulIdentifier", + "src": "35700:9:70" + }, + { + "kind": "number", + "nativeSrc": "35711:4:70", + "nodeType": "YulLiteral", + "src": "35711:4:70", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35696:3:70", + "nodeType": "YulIdentifier", + "src": "35696:3:70" + }, + "nativeSrc": "35696:20:70", + "nodeType": "YulFunctionCall", + "src": "35696:20:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "35726:3:70", + "nodeType": "YulIdentifier", + "src": "35726:3:70" + }, + { + "name": "headStart", + "nativeSrc": "35731:9:70", + "nodeType": "YulIdentifier", + "src": "35731:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "35722:3:70", + "nodeType": "YulIdentifier", + "src": "35722:3:70" + }, + "nativeSrc": "35722:19:70", + "nodeType": "YulFunctionCall", + "src": "35722:19:70" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35747:2:70", + "nodeType": "YulLiteral", + "src": "35747:2:70", + "type": "", + "value": "95" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "35743:3:70", + "nodeType": "YulIdentifier", + "src": "35743:3:70" + }, + "nativeSrc": "35743:7:70", + "nodeType": "YulFunctionCall", + "src": "35743:7:70" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35718:3:70", + "nodeType": "YulIdentifier", + "src": "35718:3:70" + }, + "nativeSrc": "35718:33:70", + "nodeType": "YulFunctionCall", + "src": "35718:33:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35689:6:70", + "nodeType": "YulIdentifier", + "src": "35689:6:70" + }, + "nativeSrc": "35689:63:70", + "nodeType": "YulFunctionCall", + "src": "35689:63:70" + }, + "nativeSrc": "35689:63:70", + "nodeType": "YulExpressionStatement", + "src": "35689:63:70" + }, + { + "nativeSrc": "35761:46:70", + "nodeType": "YulAssignment", + "src": "35761:46:70", + "value": { + "arguments": [ + { + "name": "memberValue0_4", + "nativeSrc": "35787:14:70", + "nodeType": "YulIdentifier", + "src": "35787:14:70" + }, + { + "name": "end", + "nativeSrc": "35803:3:70", + "nodeType": "YulIdentifier", + "src": "35803:3:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "35769:17:70", + "nodeType": "YulIdentifier", + "src": "35769:17:70" + }, + "nativeSrc": "35769:38:70", + "nodeType": "YulFunctionCall", + "src": "35769:38:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "35761:4:70", + "nodeType": "YulIdentifier", + "src": "35761:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35827:9:70", + "nodeType": "YulIdentifier", + "src": "35827:9:70" + }, + { + "kind": "number", + "nativeSrc": "35838:4:70", + "nodeType": "YulLiteral", + "src": "35838:4:70", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35823:3:70", + "nodeType": "YulIdentifier", + "src": "35823:3:70" + }, + "nativeSrc": "35823:20:70", + "nodeType": "YulFunctionCall", + "src": "35823:20:70" + }, + { + "name": "value1", + "nativeSrc": "35845:6:70", + "nodeType": "YulIdentifier", + "src": "35845:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35816:6:70", + "nodeType": "YulIdentifier", + "src": "35816:6:70" + }, + "nativeSrc": "35816:36:70", + "nodeType": "YulFunctionCall", + "src": "35816:36:70" + }, + "nativeSrc": "35816:36:70", + "nodeType": "YulExpressionStatement", + "src": "35816:36:70" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "35880:6:70", + "nodeType": "YulIdentifier", + "src": "35880:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35892:9:70", + "nodeType": "YulIdentifier", + "src": "35892:9:70" + }, + { + "kind": "number", + "nativeSrc": "35903:4:70", + "nodeType": "YulLiteral", + "src": "35903:4:70", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35888:3:70", + "nodeType": "YulIdentifier", + "src": "35888:3:70" + }, + "nativeSrc": "35888:20:70", + "nodeType": "YulFunctionCall", + "src": "35888:20:70" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "35861:18:70", + "nodeType": "YulIdentifier", + "src": "35861:18:70" + }, + "nativeSrc": "35861:48:70", + "nodeType": "YulFunctionCall", + "src": "35861:48:70" + }, + "nativeSrc": "35861:48:70", + "nodeType": "YulExpressionStatement", + "src": "35861:48:70" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_SignedRAV_$2525_memory_ptr_t_uint256_t_address__to_t_struct$_SignedRAV_$2525_memory_ptr_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "34538:1377:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34702:9:70", + "nodeType": "YulTypedName", + "src": "34702:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "34713:6:70", + "nodeType": "YulTypedName", + "src": "34713:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "34721:6:70", + "nodeType": "YulTypedName", + "src": "34721:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "34729:6:70", + "nodeType": "YulTypedName", + "src": "34729:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "34740:4:70", + "nodeType": "YulTypedName", + "src": "34740:4:70", + "type": "" + } + ], + "src": "34538:1377:70" + }, + { + "body": { + "nativeSrc": "36094:158:70", + "nodeType": "YulBlock", + "src": "36094:158:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36111:9:70", + "nodeType": "YulIdentifier", + "src": "36111:9:70" + }, + { + "kind": "number", + "nativeSrc": "36122:2:70", + "nodeType": "YulLiteral", + "src": "36122:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36104:6:70", + "nodeType": "YulIdentifier", + "src": "36104:6:70" + }, + "nativeSrc": "36104:21:70", + "nodeType": "YulFunctionCall", + "src": "36104:21:70" + }, + "nativeSrc": "36104:21:70", + "nodeType": "YulExpressionStatement", + "src": "36104:21:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36145:9:70", + "nodeType": "YulIdentifier", + "src": "36145:9:70" + }, + { + "kind": "number", + "nativeSrc": "36156:2:70", + "nodeType": "YulLiteral", + "src": "36156:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36141:3:70", + "nodeType": "YulIdentifier", + "src": "36141:3:70" + }, + "nativeSrc": "36141:18:70", + "nodeType": "YulFunctionCall", + "src": "36141:18:70" + }, + { + "kind": "number", + "nativeSrc": "36161:1:70", + "nodeType": "YulLiteral", + "src": "36161:1:70", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36134:6:70", + "nodeType": "YulIdentifier", + "src": "36134:6:70" + }, + "nativeSrc": "36134:29:70", + "nodeType": "YulFunctionCall", + "src": "36134:29:70" + }, + "nativeSrc": "36134:29:70", + "nodeType": "YulExpressionStatement", + "src": "36134:29:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36183:9:70", + "nodeType": "YulIdentifier", + "src": "36183:9:70" + }, + { + "kind": "number", + "nativeSrc": "36194:2:70", + "nodeType": "YulLiteral", + "src": "36194:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36179:3:70", + "nodeType": "YulIdentifier", + "src": "36179:3:70" + }, + "nativeSrc": "36179:18:70", + "nodeType": "YulFunctionCall", + "src": "36179:18:70" + }, + { + "hexValue": "217472616e73666572", + "kind": "string", + "nativeSrc": "36199:11:70", + "nodeType": "YulLiteral", + "src": "36199:11:70", + "type": "", + "value": "!transfer" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36172:6:70", + "nodeType": "YulIdentifier", + "src": "36172:6:70" + }, + "nativeSrc": "36172:39:70", + "nodeType": "YulFunctionCall", + "src": "36172:39:70" + }, + "nativeSrc": "36172:39:70", + "nodeType": "YulExpressionStatement", + "src": "36172:39:70" + }, + { + "nativeSrc": "36220:26:70", + "nodeType": "YulAssignment", + "src": "36220:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36232:9:70", + "nodeType": "YulIdentifier", + "src": "36232:9:70" + }, + { + "kind": "number", + "nativeSrc": "36243:2:70", + "nodeType": "YulLiteral", + "src": "36243:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36228:3:70", + "nodeType": "YulIdentifier", + "src": "36228:3:70" + }, + "nativeSrc": "36228:18:70", + "nodeType": "YulFunctionCall", + "src": "36228:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36220:4:70", + "nodeType": "YulIdentifier", + "src": "36220:4:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "35920:332:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36071:9:70", + "nodeType": "YulTypedName", + "src": "36071:9:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36085:4:70", + "nodeType": "YulTypedName", + "src": "36085:4:70", + "type": "" + } + ], + "src": "35920:332:70" + }, + { + "body": { + "nativeSrc": "36429:236:70", + "nodeType": "YulBlock", + "src": "36429:236:70", + "statements": [ + { + "nativeSrc": "36439:26:70", + "nodeType": "YulAssignment", + "src": "36439:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36451:9:70", + "nodeType": "YulIdentifier", + "src": "36451:9:70" + }, + { + "kind": "number", + "nativeSrc": "36462:2:70", + "nodeType": "YulLiteral", + "src": "36462:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36447:3:70", + "nodeType": "YulIdentifier", + "src": "36447:3:70" + }, + "nativeSrc": "36447:18:70", + "nodeType": "YulFunctionCall", + "src": "36447:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36439:4:70", + "nodeType": "YulIdentifier", + "src": "36439:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36481:9:70", + "nodeType": "YulIdentifier", + "src": "36481:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36496:6:70", + "nodeType": "YulIdentifier", + "src": "36496:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36512:3:70", + "nodeType": "YulLiteral", + "src": "36512:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "36517:1:70", + "nodeType": "YulLiteral", + "src": "36517:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "36508:3:70", + "nodeType": "YulIdentifier", + "src": "36508:3:70" + }, + "nativeSrc": "36508:11:70", + "nodeType": "YulFunctionCall", + "src": "36508:11:70" + }, + { + "kind": "number", + "nativeSrc": "36521:1:70", + "nodeType": "YulLiteral", + "src": "36521:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36504:3:70", + "nodeType": "YulIdentifier", + "src": "36504:3:70" + }, + "nativeSrc": "36504:19:70", + "nodeType": "YulFunctionCall", + "src": "36504:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36492:3:70", + "nodeType": "YulIdentifier", + "src": "36492:3:70" + }, + "nativeSrc": "36492:32:70", + "nodeType": "YulFunctionCall", + "src": "36492:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36474:6:70", + "nodeType": "YulIdentifier", + "src": "36474:6:70" + }, + "nativeSrc": "36474:51:70", + "nodeType": "YulFunctionCall", + "src": "36474:51:70" + }, + "nativeSrc": "36474:51:70", + "nodeType": "YulExpressionStatement", + "src": "36474:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36545:9:70", + "nodeType": "YulIdentifier", + "src": "36545:9:70" + }, + { + "kind": "number", + "nativeSrc": "36556:2:70", + "nodeType": "YulLiteral", + "src": "36556:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36541:3:70", + "nodeType": "YulIdentifier", + "src": "36541:3:70" + }, + "nativeSrc": "36541:18:70", + "nodeType": "YulFunctionCall", + "src": "36541:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "36565:6:70", + "nodeType": "YulIdentifier", + "src": "36565:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36581:3:70", + "nodeType": "YulLiteral", + "src": "36581:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "36586:1:70", + "nodeType": "YulLiteral", + "src": "36586:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "36577:3:70", + "nodeType": "YulIdentifier", + "src": "36577:3:70" + }, + "nativeSrc": "36577:11:70", + "nodeType": "YulFunctionCall", + "src": "36577:11:70" + }, + { + "kind": "number", + "nativeSrc": "36590:1:70", + "nodeType": "YulLiteral", + "src": "36590:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36573:3:70", + "nodeType": "YulIdentifier", + "src": "36573:3:70" + }, + "nativeSrc": "36573:19:70", + "nodeType": "YulFunctionCall", + "src": "36573:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36561:3:70", + "nodeType": "YulIdentifier", + "src": "36561:3:70" + }, + "nativeSrc": "36561:32:70", + "nodeType": "YulFunctionCall", + "src": "36561:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36534:6:70", + "nodeType": "YulIdentifier", + "src": "36534:6:70" + }, + "nativeSrc": "36534:60:70", + "nodeType": "YulFunctionCall", + "src": "36534:60:70" + }, + "nativeSrc": "36534:60:70", + "nodeType": "YulExpressionStatement", + "src": "36534:60:70" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "36632:6:70", + "nodeType": "YulIdentifier", + "src": "36632:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36644:9:70", + "nodeType": "YulIdentifier", + "src": "36644:9:70" + }, + { + "kind": "number", + "nativeSrc": "36655:2:70", + "nodeType": "YulLiteral", + "src": "36655:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36640:3:70", + "nodeType": "YulIdentifier", + "src": "36640:3:70" + }, + "nativeSrc": "36640:18:70", + "nodeType": "YulFunctionCall", + "src": "36640:18:70" + } + ], + "functionName": { + "name": "abi_encode_enum_PaymentTypes", + "nativeSrc": "36603:28:70", + "nodeType": "YulIdentifier", + "src": "36603:28:70" + }, + "nativeSrc": "36603:56:70", + "nodeType": "YulFunctionCall", + "src": "36603:56:70" + }, + "nativeSrc": "36603:56:70", + "nodeType": "YulExpressionStatement", + "src": "36603:56:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_enum$_PaymentTypes_$2433__to_t_address_t_address_t_uint8__fromStack_reversed", + "nativeSrc": "36257:408:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36382:9:70", + "nodeType": "YulTypedName", + "src": "36382:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "36393:6:70", + "nodeType": "YulTypedName", + "src": "36393:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "36401:6:70", + "nodeType": "YulTypedName", + "src": "36401:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36409:6:70", + "nodeType": "YulTypedName", + "src": "36409:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36420:4:70", + "nodeType": "YulTypedName", + "src": "36420:4:70", + "type": "" + } + ], + "src": "36257:408:70" + }, + { + "body": { + "nativeSrc": "36783:893:70", + "nodeType": "YulBlock", + "src": "36783:893:70", + "statements": [ + { + "nativeSrc": "36793:43:70", + "nodeType": "YulVariableDeclaration", + "src": "36793:43:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "36811:7:70", + "nodeType": "YulIdentifier", + "src": "36811:7:70" + }, + { + "name": "headStart", + "nativeSrc": "36820:9:70", + "nodeType": "YulIdentifier", + "src": "36820:9:70" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36807:3:70", + "nodeType": "YulIdentifier", + "src": "36807:3:70" + }, + "nativeSrc": "36807:23:70", + "nodeType": "YulFunctionCall", + "src": "36807:23:70" + }, + { + "kind": "number", + "nativeSrc": "36832:3:70", + "nodeType": "YulLiteral", + "src": "36832:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "36803:3:70", + "nodeType": "YulIdentifier", + "src": "36803:3:70" + }, + "nativeSrc": "36803:33:70", + "nodeType": "YulFunctionCall", + "src": "36803:33:70" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "36797:2:70", + "nodeType": "YulTypedName", + "src": "36797:2:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "36851:16:70", + "nodeType": "YulBlock", + "src": "36851:16:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36860:1:70", + "nodeType": "YulLiteral", + "src": "36860:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36863:1:70", + "nodeType": "YulLiteral", + "src": "36863:1:70", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "36853:6:70", + "nodeType": "YulIdentifier", + "src": "36853:6:70" + }, + "nativeSrc": "36853:12:70", + "nodeType": "YulFunctionCall", + "src": "36853:12:70" + }, + "nativeSrc": "36853:12:70", + "nodeType": "YulExpressionStatement", + "src": "36853:12:70" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "36848:2:70", + "nodeType": "YulIdentifier", + "src": "36848:2:70" + }, + "nativeSrc": "36845:22:70", + "nodeType": "YulIf", + "src": "36845:22:70" + }, + { + "nativeSrc": "36876:7:70", + "nodeType": "YulAssignment", + "src": "36876:7:70", + "value": { + "kind": "number", + "nativeSrc": "36882:1:70", + "nodeType": "YulLiteral", + "src": "36882:1:70", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "36876:2:70", + "nodeType": "YulIdentifier", + "src": "36876:2:70" + } + ] + }, + { + "nativeSrc": "36892:16:70", + "nodeType": "YulVariableDeclaration", + "src": "36892:16:70", + "value": { + "name": "_1", + "nativeSrc": "36906:2:70", + "nodeType": "YulIdentifier", + "src": "36906:2:70" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "36896:6:70", + "nodeType": "YulTypedName", + "src": "36896:6:70", + "type": "" + } + ] + }, + { + "nativeSrc": "36917:19:70", + "nodeType": "YulAssignment", + "src": "36917:19:70", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36933:2:70", + "nodeType": "YulLiteral", + "src": "36933:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "36927:5:70", + "nodeType": "YulIdentifier", + "src": "36927:5:70" + }, + "nativeSrc": "36927:9:70", + "nodeType": "YulFunctionCall", + "src": "36927:9:70" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "36917:6:70", + "nodeType": "YulIdentifier", + "src": "36917:6:70" + } + ] + }, + { + "nativeSrc": "36945:34:70", + "nodeType": "YulVariableDeclaration", + "src": "36945:34:70", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "36967:6:70", + "nodeType": "YulIdentifier", + "src": "36967:6:70" + }, + { + "kind": "number", + "nativeSrc": "36975:3:70", + "nodeType": "YulLiteral", + "src": "36975:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36963:3:70", + "nodeType": "YulIdentifier", + "src": "36963:3:70" + }, + "nativeSrc": "36963:16:70", + "nodeType": "YulFunctionCall", + "src": "36963:16:70" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "36949:10:70", + "nodeType": "YulTypedName", + "src": "36949:10:70", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "37054:22:70", + "nodeType": "YulBlock", + "src": "37054:22:70", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "37056:16:70", + "nodeType": "YulIdentifier", + "src": "37056:16:70" + }, + "nativeSrc": "37056:18:70", + "nodeType": "YulFunctionCall", + "src": "37056:18:70" + }, + "nativeSrc": "37056:18:70", + "nodeType": "YulExpressionStatement", + "src": "37056:18:70" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "36997:10:70", + "nodeType": "YulIdentifier", + "src": "36997:10:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37017:2:70", + "nodeType": "YulLiteral", + "src": "37017:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "37021:1:70", + "nodeType": "YulLiteral", + "src": "37021:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "37013:3:70", + "nodeType": "YulIdentifier", + "src": "37013:3:70" + }, + "nativeSrc": "37013:10:70", + "nodeType": "YulFunctionCall", + "src": "37013:10:70" + }, + { + "kind": "number", + "nativeSrc": "37025:1:70", + "nodeType": "YulLiteral", + "src": "37025:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37009:3:70", + "nodeType": "YulIdentifier", + "src": "37009:3:70" + }, + "nativeSrc": "37009:18:70", + "nodeType": "YulFunctionCall", + "src": "37009:18:70" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36994:2:70", + "nodeType": "YulIdentifier", + "src": "36994:2:70" + }, + "nativeSrc": "36994:34:70", + "nodeType": "YulFunctionCall", + "src": "36994:34:70" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "37033:10:70", + "nodeType": "YulIdentifier", + "src": "37033:10:70" + }, + { + "name": "memPtr", + "nativeSrc": "37045:6:70", + "nodeType": "YulIdentifier", + "src": "37045:6:70" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "37030:2:70", + "nodeType": "YulIdentifier", + "src": "37030:2:70" + }, + "nativeSrc": "37030:22:70", + "nodeType": "YulFunctionCall", + "src": "37030:22:70" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "36991:2:70", + "nodeType": "YulIdentifier", + "src": "36991:2:70" + }, + "nativeSrc": "36991:62:70", + "nodeType": "YulFunctionCall", + "src": "36991:62:70" + }, + "nativeSrc": "36988:88:70", + "nodeType": "YulIf", + "src": "36988:88:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37092:2:70", + "nodeType": "YulLiteral", + "src": "37092:2:70", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "37096:10:70", + "nodeType": "YulIdentifier", + "src": "37096:10:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37085:6:70", + "nodeType": "YulIdentifier", + "src": "37085:6:70" + }, + "nativeSrc": "37085:22:70", + "nodeType": "YulFunctionCall", + "src": "37085:22:70" + }, + "nativeSrc": "37085:22:70", + "nodeType": "YulExpressionStatement", + "src": "37085:22:70" + }, + { + "nativeSrc": "37116:15:70", + "nodeType": "YulVariableDeclaration", + "src": "37116:15:70", + "value": { + "name": "_1", + "nativeSrc": "37129:2:70", + "nodeType": "YulIdentifier", + "src": "37129:2:70" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "37120:5:70", + "nodeType": "YulTypedName", + "src": "37120:5:70", + "type": "" + } + ] + }, + { + "nativeSrc": "37140:25:70", + "nodeType": "YulAssignment", + "src": "37140:25:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37155:9:70", + "nodeType": "YulIdentifier", + "src": "37155:9:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "37149:5:70", + "nodeType": "YulIdentifier", + "src": "37149:5:70" + }, + "nativeSrc": "37149:16:70", + "nodeType": "YulFunctionCall", + "src": "37149:16:70" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "37140:5:70", + "nodeType": "YulIdentifier", + "src": "37140:5:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "37181:6:70", + "nodeType": "YulIdentifier", + "src": "37181:6:70" + }, + { + "name": "value", + "nativeSrc": "37189:5:70", + "nodeType": "YulIdentifier", + "src": "37189:5:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37174:6:70", + "nodeType": "YulIdentifier", + "src": "37174:6:70" + }, + "nativeSrc": "37174:21:70", + "nodeType": "YulFunctionCall", + "src": "37174:21:70" + }, + "nativeSrc": "37174:21:70", + "nodeType": "YulExpressionStatement", + "src": "37174:21:70" + }, + { + "nativeSrc": "37204:17:70", + "nodeType": "YulVariableDeclaration", + "src": "37204:17:70", + "value": { + "name": "_1", + "nativeSrc": "37219:2:70", + "nodeType": "YulIdentifier", + "src": "37219:2:70" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "37208:7:70", + "nodeType": "YulTypedName", + "src": "37208:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "37230:36:70", + "nodeType": "YulAssignment", + "src": "37230:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37251:9:70", + "nodeType": "YulIdentifier", + "src": "37251:9:70" + }, + { + "kind": "number", + "nativeSrc": "37262:2:70", + "nodeType": "YulLiteral", + "src": "37262:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37247:3:70", + "nodeType": "YulIdentifier", + "src": "37247:3:70" + }, + "nativeSrc": "37247:18:70", + "nodeType": "YulFunctionCall", + "src": "37247:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "37241:5:70", + "nodeType": "YulIdentifier", + "src": "37241:5:70" + }, + "nativeSrc": "37241:25:70", + "nodeType": "YulFunctionCall", + "src": "37241:25:70" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "37230:7:70", + "nodeType": "YulIdentifier", + "src": "37230:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "37286:6:70", + "nodeType": "YulIdentifier", + "src": "37286:6:70" + }, + { + "kind": "number", + "nativeSrc": "37294:2:70", + "nodeType": "YulLiteral", + "src": "37294:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37282:3:70", + "nodeType": "YulIdentifier", + "src": "37282:3:70" + }, + "nativeSrc": "37282:15:70", + "nodeType": "YulFunctionCall", + "src": "37282:15:70" + }, + { + "name": "value_1", + "nativeSrc": "37299:7:70", + "nodeType": "YulIdentifier", + "src": "37299:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37275:6:70", + "nodeType": "YulIdentifier", + "src": "37275:6:70" + }, + "nativeSrc": "37275:32:70", + "nodeType": "YulFunctionCall", + "src": "37275:32:70" + }, + "nativeSrc": "37275:32:70", + "nodeType": "YulExpressionStatement", + "src": "37275:32:70" + }, + { + "nativeSrc": "37316:17:70", + "nodeType": "YulVariableDeclaration", + "src": "37316:17:70", + "value": { + "name": "_1", + "nativeSrc": "37331:2:70", + "nodeType": "YulIdentifier", + "src": "37331:2:70" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "37320:7:70", + "nodeType": "YulTypedName", + "src": "37320:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "37342:36:70", + "nodeType": "YulAssignment", + "src": "37342:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37363:9:70", + "nodeType": "YulIdentifier", + "src": "37363:9:70" + }, + { + "kind": "number", + "nativeSrc": "37374:2:70", + "nodeType": "YulLiteral", + "src": "37374:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37359:3:70", + "nodeType": "YulIdentifier", + "src": "37359:3:70" + }, + "nativeSrc": "37359:18:70", + "nodeType": "YulFunctionCall", + "src": "37359:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "37353:5:70", + "nodeType": "YulIdentifier", + "src": "37353:5:70" + }, + "nativeSrc": "37353:25:70", + "nodeType": "YulFunctionCall", + "src": "37353:25:70" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "37342:7:70", + "nodeType": "YulIdentifier", + "src": "37342:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "37398:6:70", + "nodeType": "YulIdentifier", + "src": "37398:6:70" + }, + { + "kind": "number", + "nativeSrc": "37406:2:70", + "nodeType": "YulLiteral", + "src": "37406:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37394:3:70", + "nodeType": "YulIdentifier", + "src": "37394:3:70" + }, + "nativeSrc": "37394:15:70", + "nodeType": "YulFunctionCall", + "src": "37394:15:70" + }, + { + "name": "value_2", + "nativeSrc": "37411:7:70", + "nodeType": "YulIdentifier", + "src": "37411:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37387:6:70", + "nodeType": "YulIdentifier", + "src": "37387:6:70" + }, + "nativeSrc": "37387:32:70", + "nodeType": "YulFunctionCall", + "src": "37387:32:70" + }, + "nativeSrc": "37387:32:70", + "nodeType": "YulExpressionStatement", + "src": "37387:32:70" + }, + { + "nativeSrc": "37428:17:70", + "nodeType": "YulVariableDeclaration", + "src": "37428:17:70", + "value": { + "name": "_1", + "nativeSrc": "37443:2:70", + "nodeType": "YulIdentifier", + "src": "37443:2:70" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "37432:7:70", + "nodeType": "YulTypedName", + "src": "37432:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "37454:36:70", + "nodeType": "YulAssignment", + "src": "37454:36:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37475:9:70", + "nodeType": "YulIdentifier", + "src": "37475:9:70" + }, + { + "kind": "number", + "nativeSrc": "37486:2:70", + "nodeType": "YulLiteral", + "src": "37486:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37471:3:70", + "nodeType": "YulIdentifier", + "src": "37471:3:70" + }, + "nativeSrc": "37471:18:70", + "nodeType": "YulFunctionCall", + "src": "37471:18:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "37465:5:70", + "nodeType": "YulIdentifier", + "src": "37465:5:70" + }, + "nativeSrc": "37465:25:70", + "nodeType": "YulFunctionCall", + "src": "37465:25:70" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "37454:7:70", + "nodeType": "YulIdentifier", + "src": "37454:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "37510:6:70", + "nodeType": "YulIdentifier", + "src": "37510:6:70" + }, + { + "kind": "number", + "nativeSrc": "37518:2:70", + "nodeType": "YulLiteral", + "src": "37518:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37506:3:70", + "nodeType": "YulIdentifier", + "src": "37506:3:70" + }, + "nativeSrc": "37506:15:70", + "nodeType": "YulFunctionCall", + "src": "37506:15:70" + }, + { + "name": "value_3", + "nativeSrc": "37523:7:70", + "nodeType": "YulIdentifier", + "src": "37523:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37499:6:70", + "nodeType": "YulIdentifier", + "src": "37499:6:70" + }, + "nativeSrc": "37499:32:70", + "nodeType": "YulFunctionCall", + "src": "37499:32:70" + }, + "nativeSrc": "37499:32:70", + "nodeType": "YulExpressionStatement", + "src": "37499:32:70" + }, + { + "nativeSrc": "37540:17:70", + "nodeType": "YulVariableDeclaration", + "src": "37540:17:70", + "value": { + "name": "_1", + "nativeSrc": "37555:2:70", + "nodeType": "YulIdentifier", + "src": "37555:2:70" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "37544:7:70", + "nodeType": "YulTypedName", + "src": "37544:7:70", + "type": "" + } + ] + }, + { + "nativeSrc": "37566:37:70", + "nodeType": "YulAssignment", + "src": "37566:37:70", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37587:9:70", + "nodeType": "YulIdentifier", + "src": "37587:9:70" + }, + { + "kind": "number", + "nativeSrc": "37598:3:70", + "nodeType": "YulLiteral", + "src": "37598:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37583:3:70", + "nodeType": "YulIdentifier", + "src": "37583:3:70" + }, + "nativeSrc": "37583:19:70", + "nodeType": "YulFunctionCall", + "src": "37583:19:70" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "37577:5:70", + "nodeType": "YulIdentifier", + "src": "37577:5:70" + }, + "nativeSrc": "37577:26:70", + "nodeType": "YulFunctionCall", + "src": "37577:26:70" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "37566:7:70", + "nodeType": "YulIdentifier", + "src": "37566:7:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "37623:6:70", + "nodeType": "YulIdentifier", + "src": "37623:6:70" + }, + { + "kind": "number", + "nativeSrc": "37631:3:70", + "nodeType": "YulLiteral", + "src": "37631:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37619:3:70", + "nodeType": "YulIdentifier", + "src": "37619:3:70" + }, + "nativeSrc": "37619:16:70", + "nodeType": "YulFunctionCall", + "src": "37619:16:70" + }, + { + "name": "value_4", + "nativeSrc": "37637:7:70", + "nodeType": "YulIdentifier", + "src": "37637:7:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37612:6:70", + "nodeType": "YulIdentifier", + "src": "37612:6:70" + }, + "nativeSrc": "37612:33:70", + "nodeType": "YulFunctionCall", + "src": "37612:33:70" + }, + "nativeSrc": "37612:33:70", + "nodeType": "YulExpressionStatement", + "src": "37612:33:70" + }, + { + "nativeSrc": "37654:16:70", + "nodeType": "YulAssignment", + "src": "37654:16:70", + "value": { + "name": "memPtr", + "nativeSrc": "37664:6:70", + "nodeType": "YulIdentifier", + "src": "37664:6:70" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "37654:6:70", + "nodeType": "YulIdentifier", + "src": "37654:6:70" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_DelegationPool_$3992_memory_ptr_fromMemory", + "nativeSrc": "36670:1006:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36749:9:70", + "nodeType": "YulTypedName", + "src": "36749:9:70", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "36760:7:70", + "nodeType": "YulTypedName", + "src": "36760:7:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "36772:6:70", + "nodeType": "YulTypedName", + "src": "36772:6:70", + "type": "" + } + ], + "src": "36670:1006:70" + }, + { + "body": { + "nativeSrc": "37838:214:70", + "nodeType": "YulBlock", + "src": "37838:214:70", + "statements": [ + { + "nativeSrc": "37848:26:70", + "nodeType": "YulAssignment", + "src": "37848:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37860:9:70", + "nodeType": "YulIdentifier", + "src": "37860:9:70" + }, + { + "kind": "number", + "nativeSrc": "37871:2:70", + "nodeType": "YulLiteral", + "src": "37871:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37856:3:70", + "nodeType": "YulIdentifier", + "src": "37856:3:70" + }, + "nativeSrc": "37856:18:70", + "nodeType": "YulFunctionCall", + "src": "37856:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37848:4:70", + "nodeType": "YulIdentifier", + "src": "37848:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37890:9:70", + "nodeType": "YulIdentifier", + "src": "37890:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "37905:6:70", + "nodeType": "YulIdentifier", + "src": "37905:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37921:3:70", + "nodeType": "YulLiteral", + "src": "37921:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "37926:1:70", + "nodeType": "YulLiteral", + "src": "37926:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "37917:3:70", + "nodeType": "YulIdentifier", + "src": "37917:3:70" + }, + "nativeSrc": "37917:11:70", + "nodeType": "YulFunctionCall", + "src": "37917:11:70" + }, + { + "kind": "number", + "nativeSrc": "37930:1:70", + "nodeType": "YulLiteral", + "src": "37930:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37913:3:70", + "nodeType": "YulIdentifier", + "src": "37913:3:70" + }, + "nativeSrc": "37913:19:70", + "nodeType": "YulFunctionCall", + "src": "37913:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37901:3:70", + "nodeType": "YulIdentifier", + "src": "37901:3:70" + }, + "nativeSrc": "37901:32:70", + "nodeType": "YulFunctionCall", + "src": "37901:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37883:6:70", + "nodeType": "YulIdentifier", + "src": "37883:6:70" + }, + "nativeSrc": "37883:51:70", + "nodeType": "YulFunctionCall", + "src": "37883:51:70" + }, + "nativeSrc": "37883:51:70", + "nodeType": "YulExpressionStatement", + "src": "37883:51:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37954:9:70", + "nodeType": "YulIdentifier", + "src": "37954:9:70" + }, + { + "kind": "number", + "nativeSrc": "37965:2:70", + "nodeType": "YulLiteral", + "src": "37965:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37950:3:70", + "nodeType": "YulIdentifier", + "src": "37950:3:70" + }, + "nativeSrc": "37950:18:70", + "nodeType": "YulFunctionCall", + "src": "37950:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37974:6:70", + "nodeType": "YulIdentifier", + "src": "37974:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37990:3:70", + "nodeType": "YulLiteral", + "src": "37990:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "37995:1:70", + "nodeType": "YulLiteral", + "src": "37995:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "37986:3:70", + "nodeType": "YulIdentifier", + "src": "37986:3:70" + }, + "nativeSrc": "37986:11:70", + "nodeType": "YulFunctionCall", + "src": "37986:11:70" + }, + { + "kind": "number", + "nativeSrc": "37999:1:70", + "nodeType": "YulLiteral", + "src": "37999:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37982:3:70", + "nodeType": "YulIdentifier", + "src": "37982:3:70" + }, + "nativeSrc": "37982:19:70", + "nodeType": "YulFunctionCall", + "src": "37982:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37970:3:70", + "nodeType": "YulIdentifier", + "src": "37970:3:70" + }, + "nativeSrc": "37970:32:70", + "nodeType": "YulFunctionCall", + "src": "37970:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37943:6:70", + "nodeType": "YulIdentifier", + "src": "37943:6:70" + }, + "nativeSrc": "37943:60:70", + "nodeType": "YulFunctionCall", + "src": "37943:60:70" + }, + "nativeSrc": "37943:60:70", + "nodeType": "YulExpressionStatement", + "src": "37943:60:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38023:9:70", + "nodeType": "YulIdentifier", + "src": "38023:9:70" + }, + { + "kind": "number", + "nativeSrc": "38034:2:70", + "nodeType": "YulLiteral", + "src": "38034:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38019:3:70", + "nodeType": "YulIdentifier", + "src": "38019:3:70" + }, + "nativeSrc": "38019:18:70", + "nodeType": "YulFunctionCall", + "src": "38019:18:70" + }, + { + "name": "value2", + "nativeSrc": "38039:6:70", + "nodeType": "YulIdentifier", + "src": "38039:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38012:6:70", + "nodeType": "YulIdentifier", + "src": "38012:6:70" + }, + "nativeSrc": "38012:34:70", + "nodeType": "YulFunctionCall", + "src": "38012:34:70" + }, + "nativeSrc": "38012:34:70", + "nodeType": "YulExpressionStatement", + "src": "38012:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "37681:371:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37791:9:70", + "nodeType": "YulTypedName", + "src": "37791:9:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "37802:6:70", + "nodeType": "YulTypedName", + "src": "37802:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37810:6:70", + "nodeType": "YulTypedName", + "src": "37810:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37818:6:70", + "nodeType": "YulTypedName", + "src": "37818:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37829:4:70", + "nodeType": "YulTypedName", + "src": "37829:4:70", + "type": "" + } + ], + "src": "37681:371:70" + }, + { + "body": { + "nativeSrc": "38316:318:70", + "nodeType": "YulBlock", + "src": "38316:318:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38333:9:70", + "nodeType": "YulIdentifier", + "src": "38333:9:70" + }, + { + "name": "value0", + "nativeSrc": "38344:6:70", + "nodeType": "YulIdentifier", + "src": "38344:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38326:6:70", + "nodeType": "YulIdentifier", + "src": "38326:6:70" + }, + "nativeSrc": "38326:25:70", + "nodeType": "YulFunctionCall", + "src": "38326:25:70" + }, + "nativeSrc": "38326:25:70", + "nodeType": "YulExpressionStatement", + "src": "38326:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38371:9:70", + "nodeType": "YulIdentifier", + "src": "38371:9:70" + }, + { + "kind": "number", + "nativeSrc": "38382:2:70", + "nodeType": "YulLiteral", + "src": "38382:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38367:3:70", + "nodeType": "YulIdentifier", + "src": "38367:3:70" + }, + "nativeSrc": "38367:18:70", + "nodeType": "YulFunctionCall", + "src": "38367:18:70" + }, + { + "name": "value1", + "nativeSrc": "38387:6:70", + "nodeType": "YulIdentifier", + "src": "38387:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38360:6:70", + "nodeType": "YulIdentifier", + "src": "38360:6:70" + }, + "nativeSrc": "38360:34:70", + "nodeType": "YulFunctionCall", + "src": "38360:34:70" + }, + "nativeSrc": "38360:34:70", + "nodeType": "YulExpressionStatement", + "src": "38360:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38414:9:70", + "nodeType": "YulIdentifier", + "src": "38414:9:70" + }, + { + "kind": "number", + "nativeSrc": "38425:2:70", + "nodeType": "YulLiteral", + "src": "38425:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38410:3:70", + "nodeType": "YulIdentifier", + "src": "38410:3:70" + }, + "nativeSrc": "38410:18:70", + "nodeType": "YulFunctionCall", + "src": "38410:18:70" + }, + { + "name": "value2", + "nativeSrc": "38430:6:70", + "nodeType": "YulIdentifier", + "src": "38430:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38403:6:70", + "nodeType": "YulIdentifier", + "src": "38403:6:70" + }, + "nativeSrc": "38403:34:70", + "nodeType": "YulFunctionCall", + "src": "38403:34:70" + }, + "nativeSrc": "38403:34:70", + "nodeType": "YulExpressionStatement", + "src": "38403:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38457:9:70", + "nodeType": "YulIdentifier", + "src": "38457:9:70" + }, + { + "kind": "number", + "nativeSrc": "38468:2:70", + "nodeType": "YulLiteral", + "src": "38468:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38453:3:70", + "nodeType": "YulIdentifier", + "src": "38453:3:70" + }, + "nativeSrc": "38453:18:70", + "nodeType": "YulFunctionCall", + "src": "38453:18:70" + }, + { + "name": "value3", + "nativeSrc": "38473:6:70", + "nodeType": "YulIdentifier", + "src": "38473:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38446:6:70", + "nodeType": "YulIdentifier", + "src": "38446:6:70" + }, + "nativeSrc": "38446:34:70", + "nodeType": "YulFunctionCall", + "src": "38446:34:70" + }, + "nativeSrc": "38446:34:70", + "nodeType": "YulExpressionStatement", + "src": "38446:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38500:9:70", + "nodeType": "YulIdentifier", + "src": "38500:9:70" + }, + { + "kind": "number", + "nativeSrc": "38511:3:70", + "nodeType": "YulLiteral", + "src": "38511:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38496:3:70", + "nodeType": "YulIdentifier", + "src": "38496:3:70" + }, + "nativeSrc": "38496:19:70", + "nodeType": "YulFunctionCall", + "src": "38496:19:70" + }, + { + "kind": "number", + "nativeSrc": "38517:3:70", + "nodeType": "YulLiteral", + "src": "38517:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38489:6:70", + "nodeType": "YulIdentifier", + "src": "38489:6:70" + }, + "nativeSrc": "38489:32:70", + "nodeType": "YulFunctionCall", + "src": "38489:32:70" + }, + "nativeSrc": "38489:32:70", + "nodeType": "YulExpressionStatement", + "src": "38489:32:70" + }, + { + "nativeSrc": "38530:54:70", + "nodeType": "YulAssignment", + "src": "38530:54:70", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "38556:6:70", + "nodeType": "YulIdentifier", + "src": "38556:6:70" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38568:9:70", + "nodeType": "YulIdentifier", + "src": "38568:9:70" + }, + { + "kind": "number", + "nativeSrc": "38579:3:70", + "nodeType": "YulLiteral", + "src": "38579:3:70", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38564:3:70", + "nodeType": "YulIdentifier", + "src": "38564:3:70" + }, + "nativeSrc": "38564:19:70", + "nodeType": "YulFunctionCall", + "src": "38564:19:70" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "38538:17:70", + "nodeType": "YulIdentifier", + "src": "38538:17:70" + }, + "nativeSrc": "38538:46:70", + "nodeType": "YulFunctionCall", + "src": "38538:46:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38530:4:70", + "nodeType": "YulIdentifier", + "src": "38530:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38604:9:70", + "nodeType": "YulIdentifier", + "src": "38604:9:70" + }, + { + "kind": "number", + "nativeSrc": "38615:3:70", + "nodeType": "YulLiteral", + "src": "38615:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38600:3:70", + "nodeType": "YulIdentifier", + "src": "38600:3:70" + }, + "nativeSrc": "38600:19:70", + "nodeType": "YulFunctionCall", + "src": "38600:19:70" + }, + { + "name": "value5", + "nativeSrc": "38621:6:70", + "nodeType": "YulIdentifier", + "src": "38621:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38593:6:70", + "nodeType": "YulIdentifier", + "src": "38593:6:70" + }, + "nativeSrc": "38593:35:70", + "nodeType": "YulFunctionCall", + "src": "38593:35:70" + }, + "nativeSrc": "38593:35:70", + "nodeType": "YulExpressionStatement", + "src": "38593:35:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed", + "nativeSrc": "38057:577:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38245:9:70", + "nodeType": "YulTypedName", + "src": "38245:9:70", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "38256:6:70", + "nodeType": "YulTypedName", + "src": "38256:6:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "38264:6:70", + "nodeType": "YulTypedName", + "src": "38264:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "38272:6:70", + "nodeType": "YulTypedName", + "src": "38272:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38280:6:70", + "nodeType": "YulTypedName", + "src": "38280:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38288:6:70", + "nodeType": "YulTypedName", + "src": "38288:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38296:6:70", + "nodeType": "YulTypedName", + "src": "38296:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38307:4:70", + "nodeType": "YulTypedName", + "src": "38307:4:70", + "type": "" + } + ], + "src": "38057:577:70" + }, + { + "body": { + "nativeSrc": "38814:215:70", + "nodeType": "YulBlock", + "src": "38814:215:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38831:3:70", + "nodeType": "YulIdentifier", + "src": "38831:3:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38844:2:70", + "nodeType": "YulLiteral", + "src": "38844:2:70", + "type": "", + "value": "96" + }, + { + "name": "value0", + "nativeSrc": "38848:6:70", + "nodeType": "YulIdentifier", + "src": "38848:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38840:3:70", + "nodeType": "YulIdentifier", + "src": "38840:3:70" + }, + "nativeSrc": "38840:15:70", + "nodeType": "YulFunctionCall", + "src": "38840:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38869:2:70", + "nodeType": "YulLiteral", + "src": "38869:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "38873:1:70", + "nodeType": "YulLiteral", + "src": "38873:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38865:3:70", + "nodeType": "YulIdentifier", + "src": "38865:3:70" + }, + "nativeSrc": "38865:10:70", + "nodeType": "YulFunctionCall", + "src": "38865:10:70" + }, + { + "kind": "number", + "nativeSrc": "38877:1:70", + "nodeType": "YulLiteral", + "src": "38877:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38861:3:70", + "nodeType": "YulIdentifier", + "src": "38861:3:70" + }, + "nativeSrc": "38861:18:70", + "nodeType": "YulFunctionCall", + "src": "38861:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "38857:3:70", + "nodeType": "YulIdentifier", + "src": "38857:3:70" + }, + "nativeSrc": "38857:23:70", + "nodeType": "YulFunctionCall", + "src": "38857:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38836:3:70", + "nodeType": "YulIdentifier", + "src": "38836:3:70" + }, + "nativeSrc": "38836:45:70", + "nodeType": "YulFunctionCall", + "src": "38836:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38824:6:70", + "nodeType": "YulIdentifier", + "src": "38824:6:70" + }, + "nativeSrc": "38824:58:70", + "nodeType": "YulFunctionCall", + "src": "38824:58:70" + }, + "nativeSrc": "38824:58:70", + "nodeType": "YulExpressionStatement", + "src": "38824:58:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38902:3:70", + "nodeType": "YulIdentifier", + "src": "38902:3:70" + }, + { + "kind": "number", + "nativeSrc": "38907:2:70", + "nodeType": "YulLiteral", + "src": "38907:2:70", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38898:3:70", + "nodeType": "YulIdentifier", + "src": "38898:3:70" + }, + "nativeSrc": "38898:12:70", + "nodeType": "YulFunctionCall", + "src": "38898:12:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38920:2:70", + "nodeType": "YulLiteral", + "src": "38920:2:70", + "type": "", + "value": "96" + }, + { + "name": "value1", + "nativeSrc": "38924:6:70", + "nodeType": "YulIdentifier", + "src": "38924:6:70" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38916:3:70", + "nodeType": "YulIdentifier", + "src": "38916:3:70" + }, + "nativeSrc": "38916:15:70", + "nodeType": "YulFunctionCall", + "src": "38916:15:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38945:2:70", + "nodeType": "YulLiteral", + "src": "38945:2:70", + "type": "", + "value": "96" + }, + { + "kind": "number", + "nativeSrc": "38949:1:70", + "nodeType": "YulLiteral", + "src": "38949:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38941:3:70", + "nodeType": "YulIdentifier", + "src": "38941:3:70" + }, + "nativeSrc": "38941:10:70", + "nodeType": "YulFunctionCall", + "src": "38941:10:70" + }, + { + "kind": "number", + "nativeSrc": "38953:1:70", + "nodeType": "YulLiteral", + "src": "38953:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38937:3:70", + "nodeType": "YulIdentifier", + "src": "38937:3:70" + }, + "nativeSrc": "38937:18:70", + "nodeType": "YulFunctionCall", + "src": "38937:18:70" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "38933:3:70", + "nodeType": "YulIdentifier", + "src": "38933:3:70" + }, + "nativeSrc": "38933:23:70", + "nodeType": "YulFunctionCall", + "src": "38933:23:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38912:3:70", + "nodeType": "YulIdentifier", + "src": "38912:3:70" + }, + "nativeSrc": "38912:45:70", + "nodeType": "YulFunctionCall", + "src": "38912:45:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38891:6:70", + "nodeType": "YulIdentifier", + "src": "38891:6:70" + }, + "nativeSrc": "38891:67:70", + "nodeType": "YulFunctionCall", + "src": "38891:67:70" + }, + "nativeSrc": "38891:67:70", + "nodeType": "YulExpressionStatement", + "src": "38891:67:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38978:3:70", + "nodeType": "YulIdentifier", + "src": "38978:3:70" + }, + { + "kind": "number", + "nativeSrc": "38983:2:70", + "nodeType": "YulLiteral", + "src": "38983:2:70", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38974:3:70", + "nodeType": "YulIdentifier", + "src": "38974:3:70" + }, + "nativeSrc": "38974:12:70", + "nodeType": "YulFunctionCall", + "src": "38974:12:70" + }, + { + "name": "value2", + "nativeSrc": "38988:6:70", + "nodeType": "YulIdentifier", + "src": "38988:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38967:6:70", + "nodeType": "YulIdentifier", + "src": "38967:6:70" + }, + "nativeSrc": "38967:28:70", + "nodeType": "YulFunctionCall", + "src": "38967:28:70" + }, + "nativeSrc": "38967:28:70", + "nodeType": "YulExpressionStatement", + "src": "38967:28:70" + }, + { + "nativeSrc": "39004:19:70", + "nodeType": "YulAssignment", + "src": "39004:19:70", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39015:3:70", + "nodeType": "YulIdentifier", + "src": "39015:3:70" + }, + { + "kind": "number", + "nativeSrc": "39020:2:70", + "nodeType": "YulLiteral", + "src": "39020:2:70", + "type": "", + "value": "72" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39011:3:70", + "nodeType": "YulIdentifier", + "src": "39011:3:70" + }, + "nativeSrc": "39011:12:70", + "nodeType": "YulFunctionCall", + "src": "39011:12:70" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "39004:3:70", + "nodeType": "YulIdentifier", + "src": "39004:3:70" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "38639:390:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "38774:3:70", + "nodeType": "YulTypedName", + "src": "38774:3:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38779:6:70", + "nodeType": "YulTypedName", + "src": "38779:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38787:6:70", + "nodeType": "YulTypedName", + "src": "38787:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38795:6:70", + "nodeType": "YulTypedName", + "src": "38795:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "38806:3:70", + "nodeType": "YulTypedName", + "src": "38806:3:70", + "type": "" + } + ], + "src": "38639:390:70" + }, + { + "body": { + "nativeSrc": "39080:171:70", + "nodeType": "YulBlock", + "src": "39080:171:70", + "statements": [ + { + "body": { + "nativeSrc": "39111:111:70", + "nodeType": "YulBlock", + "src": "39111:111:70", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39132:1:70", + "nodeType": "YulLiteral", + "src": "39132:1:70", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39139:3:70", + "nodeType": "YulLiteral", + "src": "39139:3:70", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "39144:10:70", + "nodeType": "YulLiteral", + "src": "39144:10:70", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "39135:3:70", + "nodeType": "YulIdentifier", + "src": "39135:3:70" + }, + "nativeSrc": "39135:20:70", + "nodeType": "YulFunctionCall", + "src": "39135:20:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39125:6:70", + "nodeType": "YulIdentifier", + "src": "39125:6:70" + }, + "nativeSrc": "39125:31:70", + "nodeType": "YulFunctionCall", + "src": "39125:31:70" + }, + "nativeSrc": "39125:31:70", + "nodeType": "YulExpressionStatement", + "src": "39125:31:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39176:1:70", + "nodeType": "YulLiteral", + "src": "39176:1:70", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "39179:4:70", + "nodeType": "YulLiteral", + "src": "39179:4:70", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39169:6:70", + "nodeType": "YulIdentifier", + "src": "39169:6:70" + }, + "nativeSrc": "39169:15:70", + "nodeType": "YulFunctionCall", + "src": "39169:15:70" + }, + "nativeSrc": "39169:15:70", + "nodeType": "YulExpressionStatement", + "src": "39169:15:70" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39204:1:70", + "nodeType": "YulLiteral", + "src": "39204:1:70", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "39207:4:70", + "nodeType": "YulLiteral", + "src": "39207:4:70", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "39197:6:70", + "nodeType": "YulIdentifier", + "src": "39197:6:70" + }, + "nativeSrc": "39197:15:70", + "nodeType": "YulFunctionCall", + "src": "39197:15:70" + }, + "nativeSrc": "39197:15:70", + "nodeType": "YulExpressionStatement", + "src": "39197:15:70" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "39100:1:70", + "nodeType": "YulIdentifier", + "src": "39100:1:70" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "39093:6:70", + "nodeType": "YulIdentifier", + "src": "39093:6:70" + }, + "nativeSrc": "39093:9:70", + "nodeType": "YulFunctionCall", + "src": "39093:9:70" + }, + "nativeSrc": "39090:132:70", + "nodeType": "YulIf", + "src": "39090:132:70" + }, + { + "nativeSrc": "39231:14:70", + "nodeType": "YulAssignment", + "src": "39231:14:70", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "39240:1:70", + "nodeType": "YulIdentifier", + "src": "39240:1:70" + }, + { + "name": "y", + "nativeSrc": "39243:1:70", + "nodeType": "YulIdentifier", + "src": "39243:1:70" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "39236:3:70", + "nodeType": "YulIdentifier", + "src": "39236:3:70" + }, + "nativeSrc": "39236:9:70", + "nodeType": "YulFunctionCall", + "src": "39236:9:70" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "39231:1:70", + "nodeType": "YulIdentifier", + "src": "39231:1:70" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "39034:217:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "39065:1:70", + "nodeType": "YulTypedName", + "src": "39065:1:70", + "type": "" + }, + { + "name": "y", + "nativeSrc": "39068:1:70", + "nodeType": "YulTypedName", + "src": "39068:1:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "39074:1:70", + "nodeType": "YulTypedName", + "src": "39074:1:70", + "type": "" + } + ], + "src": "39034:217:70" + }, + { + "body": { + "nativeSrc": "39383:153:70", + "nodeType": "YulBlock", + "src": "39383:153:70", + "statements": [ + { + "nativeSrc": "39393:26:70", + "nodeType": "YulAssignment", + "src": "39393:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39405:9:70", + "nodeType": "YulIdentifier", + "src": "39405:9:70" + }, + { + "kind": "number", + "nativeSrc": "39416:2:70", + "nodeType": "YulLiteral", + "src": "39416:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39401:3:70", + "nodeType": "YulIdentifier", + "src": "39401:3:70" + }, + "nativeSrc": "39401:18:70", + "nodeType": "YulFunctionCall", + "src": "39401:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39393:4:70", + "nodeType": "YulIdentifier", + "src": "39393:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39435:9:70", + "nodeType": "YulIdentifier", + "src": "39435:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39450:6:70", + "nodeType": "YulIdentifier", + "src": "39450:6:70" + }, + { + "kind": "number", + "nativeSrc": "39458:10:70", + "nodeType": "YulLiteral", + "src": "39458:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39446:3:70", + "nodeType": "YulIdentifier", + "src": "39446:3:70" + }, + "nativeSrc": "39446:23:70", + "nodeType": "YulFunctionCall", + "src": "39446:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39428:6:70", + "nodeType": "YulIdentifier", + "src": "39428:6:70" + }, + "nativeSrc": "39428:42:70", + "nodeType": "YulFunctionCall", + "src": "39428:42:70" + }, + "nativeSrc": "39428:42:70", + "nodeType": "YulExpressionStatement", + "src": "39428:42:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39490:9:70", + "nodeType": "YulIdentifier", + "src": "39490:9:70" + }, + { + "kind": "number", + "nativeSrc": "39501:2:70", + "nodeType": "YulLiteral", + "src": "39501:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39486:3:70", + "nodeType": "YulIdentifier", + "src": "39486:3:70" + }, + "nativeSrc": "39486:18:70", + "nodeType": "YulFunctionCall", + "src": "39486:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39510:6:70", + "nodeType": "YulIdentifier", + "src": "39510:6:70" + }, + { + "kind": "number", + "nativeSrc": "39518:10:70", + "nodeType": "YulLiteral", + "src": "39518:10:70", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39506:3:70", + "nodeType": "YulIdentifier", + "src": "39506:3:70" + }, + "nativeSrc": "39506:23:70", + "nodeType": "YulFunctionCall", + "src": "39506:23:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39479:6:70", + "nodeType": "YulIdentifier", + "src": "39479:6:70" + }, + "nativeSrc": "39479:51:70", + "nodeType": "YulFunctionCall", + "src": "39479:51:70" + }, + "nativeSrc": "39479:51:70", + "nodeType": "YulExpressionStatement", + "src": "39479:51:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint32_t_uint32__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "39256:280:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39344:9:70", + "nodeType": "YulTypedName", + "src": "39344:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39355:6:70", + "nodeType": "YulTypedName", + "src": "39355:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39363:6:70", + "nodeType": "YulTypedName", + "src": "39363:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39374:4:70", + "nodeType": "YulTypedName", + "src": "39374:4:70", + "type": "" + } + ], + "src": "39256:280:70" + }, + { + "body": { + "nativeSrc": "39668:169:70", + "nodeType": "YulBlock", + "src": "39668:169:70", + "statements": [ + { + "nativeSrc": "39678:26:70", + "nodeType": "YulAssignment", + "src": "39678:26:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39690:9:70", + "nodeType": "YulIdentifier", + "src": "39690:9:70" + }, + { + "kind": "number", + "nativeSrc": "39701:2:70", + "nodeType": "YulLiteral", + "src": "39701:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39686:3:70", + "nodeType": "YulIdentifier", + "src": "39686:3:70" + }, + "nativeSrc": "39686:18:70", + "nodeType": "YulFunctionCall", + "src": "39686:18:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39678:4:70", + "nodeType": "YulIdentifier", + "src": "39678:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39720:9:70", + "nodeType": "YulIdentifier", + "src": "39720:9:70" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39735:6:70", + "nodeType": "YulIdentifier", + "src": "39735:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39751:2:70", + "nodeType": "YulLiteral", + "src": "39751:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "39755:1:70", + "nodeType": "YulLiteral", + "src": "39755:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "39747:3:70", + "nodeType": "YulIdentifier", + "src": "39747:3:70" + }, + "nativeSrc": "39747:10:70", + "nodeType": "YulFunctionCall", + "src": "39747:10:70" + }, + { + "kind": "number", + "nativeSrc": "39759:1:70", + "nodeType": "YulLiteral", + "src": "39759:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39743:3:70", + "nodeType": "YulIdentifier", + "src": "39743:3:70" + }, + "nativeSrc": "39743:18:70", + "nodeType": "YulFunctionCall", + "src": "39743:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39731:3:70", + "nodeType": "YulIdentifier", + "src": "39731:3:70" + }, + "nativeSrc": "39731:31:70", + "nodeType": "YulFunctionCall", + "src": "39731:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39713:6:70", + "nodeType": "YulIdentifier", + "src": "39713:6:70" + }, + "nativeSrc": "39713:50:70", + "nodeType": "YulFunctionCall", + "src": "39713:50:70" + }, + "nativeSrc": "39713:50:70", + "nodeType": "YulExpressionStatement", + "src": "39713:50:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39783:9:70", + "nodeType": "YulIdentifier", + "src": "39783:9:70" + }, + { + "kind": "number", + "nativeSrc": "39794:2:70", + "nodeType": "YulLiteral", + "src": "39794:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39779:3:70", + "nodeType": "YulIdentifier", + "src": "39779:3:70" + }, + "nativeSrc": "39779:18:70", + "nodeType": "YulFunctionCall", + "src": "39779:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39803:6:70", + "nodeType": "YulIdentifier", + "src": "39803:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39819:2:70", + "nodeType": "YulLiteral", + "src": "39819:2:70", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "39823:1:70", + "nodeType": "YulLiteral", + "src": "39823:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "39815:3:70", + "nodeType": "YulIdentifier", + "src": "39815:3:70" + }, + "nativeSrc": "39815:10:70", + "nodeType": "YulFunctionCall", + "src": "39815:10:70" + }, + { + "kind": "number", + "nativeSrc": "39827:1:70", + "nodeType": "YulLiteral", + "src": "39827:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39811:3:70", + "nodeType": "YulIdentifier", + "src": "39811:3:70" + }, + "nativeSrc": "39811:18:70", + "nodeType": "YulFunctionCall", + "src": "39811:18:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39799:3:70", + "nodeType": "YulIdentifier", + "src": "39799:3:70" + }, + "nativeSrc": "39799:31:70", + "nodeType": "YulFunctionCall", + "src": "39799:31:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39772:6:70", + "nodeType": "YulIdentifier", + "src": "39772:6:70" + }, + "nativeSrc": "39772:59:70", + "nodeType": "YulFunctionCall", + "src": "39772:59:70" + }, + "nativeSrc": "39772:59:70", + "nodeType": "YulExpressionStatement", + "src": "39772:59:70" + } + ] + }, + "name": "abi_encode_tuple_t_uint64_t_uint64__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "39541:296:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39629:9:70", + "nodeType": "YulTypedName", + "src": "39629:9:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39640:6:70", + "nodeType": "YulTypedName", + "src": "39640:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39648:6:70", + "nodeType": "YulTypedName", + "src": "39648:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39659:4:70", + "nodeType": "YulTypedName", + "src": "39659:4:70", + "type": "" + } + ], + "src": "39541:296:70" + }, + { + "body": { + "nativeSrc": "40055:276:70", + "nodeType": "YulBlock", + "src": "40055:276:70", + "statements": [ + { + "nativeSrc": "40065:27:70", + "nodeType": "YulAssignment", + "src": "40065:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40077:9:70", + "nodeType": "YulIdentifier", + "src": "40077:9:70" + }, + { + "kind": "number", + "nativeSrc": "40088:3:70", + "nodeType": "YulLiteral", + "src": "40088:3:70", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40073:3:70", + "nodeType": "YulIdentifier", + "src": "40073:3:70" + }, + "nativeSrc": "40073:19:70", + "nodeType": "YulFunctionCall", + "src": "40073:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40065:4:70", + "nodeType": "YulIdentifier", + "src": "40065:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40108:9:70", + "nodeType": "YulIdentifier", + "src": "40108:9:70" + }, + { + "name": "value0", + "nativeSrc": "40119:6:70", + "nodeType": "YulIdentifier", + "src": "40119:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40101:6:70", + "nodeType": "YulIdentifier", + "src": "40101:6:70" + }, + "nativeSrc": "40101:25:70", + "nodeType": "YulFunctionCall", + "src": "40101:25:70" + }, + "nativeSrc": "40101:25:70", + "nodeType": "YulExpressionStatement", + "src": "40101:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40146:9:70", + "nodeType": "YulIdentifier", + "src": "40146:9:70" + }, + { + "kind": "number", + "nativeSrc": "40157:2:70", + "nodeType": "YulLiteral", + "src": "40157:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40142:3:70", + "nodeType": "YulIdentifier", + "src": "40142:3:70" + }, + "nativeSrc": "40142:18:70", + "nodeType": "YulFunctionCall", + "src": "40142:18:70" + }, + { + "name": "value1", + "nativeSrc": "40162:6:70", + "nodeType": "YulIdentifier", + "src": "40162:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40135:6:70", + "nodeType": "YulIdentifier", + "src": "40135:6:70" + }, + "nativeSrc": "40135:34:70", + "nodeType": "YulFunctionCall", + "src": "40135:34:70" + }, + "nativeSrc": "40135:34:70", + "nodeType": "YulExpressionStatement", + "src": "40135:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40189:9:70", + "nodeType": "YulIdentifier", + "src": "40189:9:70" + }, + { + "kind": "number", + "nativeSrc": "40200:2:70", + "nodeType": "YulLiteral", + "src": "40200:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40185:3:70", + "nodeType": "YulIdentifier", + "src": "40185:3:70" + }, + "nativeSrc": "40185:18:70", + "nodeType": "YulFunctionCall", + "src": "40185:18:70" + }, + { + "name": "value2", + "nativeSrc": "40205:6:70", + "nodeType": "YulIdentifier", + "src": "40205:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40178:6:70", + "nodeType": "YulIdentifier", + "src": "40178:6:70" + }, + "nativeSrc": "40178:34:70", + "nodeType": "YulFunctionCall", + "src": "40178:34:70" + }, + "nativeSrc": "40178:34:70", + "nodeType": "YulExpressionStatement", + "src": "40178:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40232:9:70", + "nodeType": "YulIdentifier", + "src": "40232:9:70" + }, + { + "kind": "number", + "nativeSrc": "40243:2:70", + "nodeType": "YulLiteral", + "src": "40243:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40228:3:70", + "nodeType": "YulIdentifier", + "src": "40228:3:70" + }, + "nativeSrc": "40228:18:70", + "nodeType": "YulFunctionCall", + "src": "40228:18:70" + }, + { + "name": "value3", + "nativeSrc": "40248:6:70", + "nodeType": "YulIdentifier", + "src": "40248:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40221:6:70", + "nodeType": "YulIdentifier", + "src": "40221:6:70" + }, + "nativeSrc": "40221:34:70", + "nodeType": "YulFunctionCall", + "src": "40221:34:70" + }, + "nativeSrc": "40221:34:70", + "nodeType": "YulExpressionStatement", + "src": "40221:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40275:9:70", + "nodeType": "YulIdentifier", + "src": "40275:9:70" + }, + { + "kind": "number", + "nativeSrc": "40286:3:70", + "nodeType": "YulLiteral", + "src": "40286:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40271:3:70", + "nodeType": "YulIdentifier", + "src": "40271:3:70" + }, + "nativeSrc": "40271:19:70", + "nodeType": "YulFunctionCall", + "src": "40271:19:70" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "40296:6:70", + "nodeType": "YulIdentifier", + "src": "40296:6:70" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "40312:3:70", + "nodeType": "YulLiteral", + "src": "40312:3:70", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "40317:1:70", + "nodeType": "YulLiteral", + "src": "40317:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "40308:3:70", + "nodeType": "YulIdentifier", + "src": "40308:3:70" + }, + "nativeSrc": "40308:11:70", + "nodeType": "YulFunctionCall", + "src": "40308:11:70" + }, + { + "kind": "number", + "nativeSrc": "40321:1:70", + "nodeType": "YulLiteral", + "src": "40321:1:70", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "40304:3:70", + "nodeType": "YulIdentifier", + "src": "40304:3:70" + }, + "nativeSrc": "40304:19:70", + "nodeType": "YulFunctionCall", + "src": "40304:19:70" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "40292:3:70", + "nodeType": "YulIdentifier", + "src": "40292:3:70" + }, + "nativeSrc": "40292:32:70", + "nodeType": "YulFunctionCall", + "src": "40292:32:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40264:6:70", + "nodeType": "YulIdentifier", + "src": "40264:6:70" + }, + "nativeSrc": "40264:61:70", + "nodeType": "YulFunctionCall", + "src": "40264:61:70" + }, + "nativeSrc": "40264:61:70", + "nodeType": "YulExpressionStatement", + "src": "40264:61:70" + } + ] + }, + "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": "39842:489:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39992:9:70", + "nodeType": "YulTypedName", + "src": "39992:9:70", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "40003:6:70", + "nodeType": "YulTypedName", + "src": "40003:6:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40011:6:70", + "nodeType": "YulTypedName", + "src": "40011:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40019:6:70", + "nodeType": "YulTypedName", + "src": "40019:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40027:6:70", + "nodeType": "YulTypedName", + "src": "40027:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40035:6:70", + "nodeType": "YulTypedName", + "src": "40035:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40046:4:70", + "nodeType": "YulTypedName", + "src": "40046:4:70", + "type": "" + } + ], + "src": "39842:489:70" + }, + { + "body": { + "nativeSrc": "40517:217:70", + "nodeType": "YulBlock", + "src": "40517:217:70", + "statements": [ + { + "nativeSrc": "40527:27:70", + "nodeType": "YulAssignment", + "src": "40527:27:70", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40539:9:70", + "nodeType": "YulIdentifier", + "src": "40539:9:70" + }, + { + "kind": "number", + "nativeSrc": "40550:3:70", + "nodeType": "YulLiteral", + "src": "40550:3:70", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40535:3:70", + "nodeType": "YulIdentifier", + "src": "40535:3:70" + }, + "nativeSrc": "40535:19:70", + "nodeType": "YulFunctionCall", + "src": "40535:19:70" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40527:4:70", + "nodeType": "YulIdentifier", + "src": "40527:4:70" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40570:9:70", + "nodeType": "YulIdentifier", + "src": "40570:9:70" + }, + { + "name": "value0", + "nativeSrc": "40581:6:70", + "nodeType": "YulIdentifier", + "src": "40581:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40563:6:70", + "nodeType": "YulIdentifier", + "src": "40563:6:70" + }, + "nativeSrc": "40563:25:70", + "nodeType": "YulFunctionCall", + "src": "40563:25:70" + }, + "nativeSrc": "40563:25:70", + "nodeType": "YulExpressionStatement", + "src": "40563:25:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40608:9:70", + "nodeType": "YulIdentifier", + "src": "40608:9:70" + }, + { + "kind": "number", + "nativeSrc": "40619:2:70", + "nodeType": "YulLiteral", + "src": "40619:2:70", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40604:3:70", + "nodeType": "YulIdentifier", + "src": "40604:3:70" + }, + "nativeSrc": "40604:18:70", + "nodeType": "YulFunctionCall", + "src": "40604:18:70" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40628:6:70", + "nodeType": "YulIdentifier", + "src": "40628:6:70" + }, + { + "kind": "number", + "nativeSrc": "40636:4:70", + "nodeType": "YulLiteral", + "src": "40636:4:70", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "40624:3:70", + "nodeType": "YulIdentifier", + "src": "40624:3:70" + }, + "nativeSrc": "40624:17:70", + "nodeType": "YulFunctionCall", + "src": "40624:17:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40597:6:70", + "nodeType": "YulIdentifier", + "src": "40597:6:70" + }, + "nativeSrc": "40597:45:70", + "nodeType": "YulFunctionCall", + "src": "40597:45:70" + }, + "nativeSrc": "40597:45:70", + "nodeType": "YulExpressionStatement", + "src": "40597:45:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40662:9:70", + "nodeType": "YulIdentifier", + "src": "40662:9:70" + }, + { + "kind": "number", + "nativeSrc": "40673:2:70", + "nodeType": "YulLiteral", + "src": "40673:2:70", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40658:3:70", + "nodeType": "YulIdentifier", + "src": "40658:3:70" + }, + "nativeSrc": "40658:18:70", + "nodeType": "YulFunctionCall", + "src": "40658:18:70" + }, + { + "name": "value2", + "nativeSrc": "40678:6:70", + "nodeType": "YulIdentifier", + "src": "40678:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40651:6:70", + "nodeType": "YulIdentifier", + "src": "40651:6:70" + }, + "nativeSrc": "40651:34:70", + "nodeType": "YulFunctionCall", + "src": "40651:34:70" + }, + "nativeSrc": "40651:34:70", + "nodeType": "YulExpressionStatement", + "src": "40651:34:70" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40705:9:70", + "nodeType": "YulIdentifier", + "src": "40705:9:70" + }, + { + "kind": "number", + "nativeSrc": "40716:2:70", + "nodeType": "YulLiteral", + "src": "40716:2:70", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40701:3:70", + "nodeType": "YulIdentifier", + "src": "40701:3:70" + }, + "nativeSrc": "40701:18:70", + "nodeType": "YulFunctionCall", + "src": "40701:18:70" + }, + { + "name": "value3", + "nativeSrc": "40721:6:70", + "nodeType": "YulIdentifier", + "src": "40721:6:70" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40694:6:70", + "nodeType": "YulIdentifier", + "src": "40694:6:70" + }, + "nativeSrc": "40694:34:70", + "nodeType": "YulFunctionCall", + "src": "40694:34:70" + }, + "nativeSrc": "40694:34:70", + "nodeType": "YulExpressionStatement", + "src": "40694:34:70" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "40336:398:70", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40462:9:70", + "nodeType": "YulTypedName", + "src": "40462:9:70", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40473:6:70", + "nodeType": "YulTypedName", + "src": "40473:6:70", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40481:6:70", + "nodeType": "YulTypedName", + "src": "40481:6:70", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40489:6:70", + "nodeType": "YulTypedName", + "src": "40489:6:70", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40497:6:70", + "nodeType": "YulTypedName", + "src": "40497:6:70", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40508:4:70", + "nodeType": "YulTypedName", + "src": "40508:4:70", + "type": "" + } + ], + "src": "40336:398:70" + } + ] + }, + "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_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(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_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\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_encode_tuple_t_struct$_State_$15663_memory_ptr__to_t_struct$_State_$15663_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 288)\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 mstore(add(headStart, 0x0100), mload(add(value0, 0x0100)))\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_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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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_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_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bool_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, iszero(iszero(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 mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\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_encode_tuple_t_struct$_State_$16305_memory_ptr__to_t_struct$_State_$16305_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_uint64(value, pos)\n {\n mstore(pos, and(value, sub(shl(64, 1), 1)))\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, sub(shl(64, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(64, 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_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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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_$2433t_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, sub(shl(64, 1), 1)) { 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_uint256t_uint32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { 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 let value_2 := calldataload(add(headStart, 64))\n validator_revert_uint32(value_2)\n value2 := value_2\n let value_3 := 0\n value_3 := calldataload(add(headStart, 96))\n value3 := value_3\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_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_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_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_4297() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 320)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_4301() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0xe0)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)), 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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, sub(shl(64, 1), 1)) { 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 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_$2433__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_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, sub(shl(64, 1), 1)))\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, sub(shl(64, 1), 1)) { 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 validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, sub(shl(64, 1), 1)))) { revert(0, 0) }\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_$3962_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 320)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory_4297()\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 let value_5 := _1\n value_5 := mload(add(headStart, 288))\n mstore(add(value, 288), value_5)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__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), iszero(iszero(value1)))\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_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\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_uint64(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_uint64(value)\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(128, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_SignedRAV_$2525_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 64) { revert(0, 0) }\n let value := allocate_memory_4301()\n let offset_1 := calldataload(_1)\n if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n let _2 := add(_1, offset_1)\n if slt(sub(dataEnd, _2), 0xe0) { revert(0, 0) }\n let value_1 := allocate_memory()\n let value_2 := 0\n value_2 := calldataload(_2)\n mstore(value_1, value_2)\n mstore(add(value_1, 32), abi_decode_address(add(_2, 32)))\n mstore(add(value_1, 64), abi_decode_address(add(_2, 64)))\n mstore(add(value_1, 96), abi_decode_address(add(_2, 96)))\n mstore(add(value_1, 128), abi_decode_uint64(add(_2, 128)))\n mstore(add(value_1, 160), abi_decode_uint128(add(_2, 160)))\n let offset_2 := calldataload(add(_2, 192))\n if gt(offset_2, sub(shl(64, 1), 1)) { revert(0, 0) }\n mstore(add(value_1, 192), 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, sub(shl(64, 1), 1)) { revert(0, 0) }\n mstore(add(value, 32), abi_decode_string(add(_1, offset_3), dataEnd))\n value0 := value\n let value_3 := 0\n value_3 := calldataload(add(headStart, 32))\n value1 := value_3\n }\n function abi_encode_tuple_t_enum$_PaymentTypes_$2433_t_bytes_memory_ptr_t_uint256__to_t_uint8_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n abi_encode_enum_PaymentTypes(value0, headStart)\n mstore(add(headStart, 32), 96)\n tail := abi_encode_string(value1, add(headStart, 96))\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_bytes32_t_uint256_t_uint256__to_t_bytes32_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 abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr(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 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n value2 := abi_decode_string(add(headStart, offset), dataEnd)\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 abi_encode_uint128(value, pos)\n {\n mstore(pos, and(value, sub(shl(128, 1), 1)))\n }\n function abi_encode_tuple_t_struct$_SignedRAV_$2525_memory_ptr_t_uint256_t_address__to_t_struct$_SignedRAV_$2525_memory_ptr_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 96), 0x40)\n mstore(add(headStart, 160), mload(memberValue0))\n mstore(add(headStart, 192), and(mload(add(memberValue0, 0x20)), sub(shl(160, 1), 1)))\n mstore(add(headStart, 0xe0), and(mload(add(memberValue0, 0x40)), sub(shl(160, 1), 1)))\n mstore(add(headStart, 256), and(mload(add(memberValue0, 96)), sub(shl(160, 1), 1)))\n let memberValue0_1 := mload(add(memberValue0, 0x80))\n abi_encode_uint64(memberValue0_1, add(headStart, 288))\n let memberValue0_2 := mload(add(memberValue0, 160))\n abi_encode_uint128(memberValue0_2, add(headStart, 320))\n let memberValue0_3 := mload(add(memberValue0, 192))\n mstore(add(headStart, 352), 0xe0)\n let end := abi_encode_string(memberValue0_3, add(headStart, 384))\n let memberValue0_4 := mload(add(value0, 0x20))\n mstore(add(headStart, 0x80), add(sub(end, headStart), not(95)))\n tail := abi_encode_string(memberValue0_4, end)\n mstore(add(headStart, 0x20), value1)\n abi_encode_address(value2, add(headStart, 0x40))\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_address_t_address_t_enum$_PaymentTypes_$2433__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_$3992_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, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\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_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_bytes_memory_ptr_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\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), 192)\n tail := abi_encode_string(value4, add(headStart, 192))\n mstore(add(headStart, 160), value5)\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 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_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, sub(shl(64, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(64, 1), 1)))\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": 70, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "4591": [ + { + "length": 32, + "start": 14948 + } + ], + "4595": [ + { + "length": 32, + "start": 7019 + } + ], + "4611": [ + { + "length": 32, + "start": 17788 + } + ], + "4615": [ + { + "length": 32, + "start": 14088 + } + ], + "17586": [ + { + "length": 32, + "start": 5691 + }, + { + "length": 32, + "start": 12257 + } + ], + "17590": [ + { + "length": 32, + "start": 13022 + } + ], + "17594": [ + { + "length": 32, + "start": 12002 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x23B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7E736D8 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xE022923 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0x138DEA08 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x13C474C9 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x1DD42F60 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1EBB7C30 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x35577962 EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x45F54485 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x482468B7 EQ PUSH2 0x3F0 JUMPI DUP1 PUSH4 0x4F793CDC EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x55C85269 EQ PUSH2 0x428 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x472 JUMPI DUP1 PUSH4 0x6234E216 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0x6CCEC5B8 EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0x6D9A3951 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0x71CE020A EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0x7AA31BCE EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0x7DFE6D28 EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0x7E89BAC3 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x8180083B EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x819BA366 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x81E777A7 EQ PUSH2 0x5B8 JUMPI DUP1 PUSH4 0x832BC923 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x85E82BAF EQ PUSH2 0x601 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60A JUMPI DUP1 PUSH4 0x9384E078 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xB15D2A2C EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0xBA38F67D EQ PUSH2 0x668 JUMPI DUP1 PUSH4 0xC0F47497 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xC84A5EF3 EQ PUSH2 0x683 JUMPI DUP1 PUSH4 0xCB8347FE EQ PUSH2 0x696 JUMPI DUP1 PUSH4 0xCBE5F3F2 EQ PUSH2 0x6A9 JUMPI DUP1 PUSH4 0xCE0FC0CC EQ PUSH2 0x6C9 JUMPI DUP1 PUSH4 0xCE56C98B EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xD07A7A84 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0xDB9BEE46 EQ PUSH2 0x6F9 JUMPI DUP1 PUSH4 0xDEDF6726 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xE2E1E8E9 EQ PUSH2 0x714 JUMPI DUP1 PUSH4 0xE6F50054 EQ PUSH2 0x734 JUMPI DUP1 PUSH4 0xEBF6DDAF EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0xEC9C218D EQ PUSH2 0x74F JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x797 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x109 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 0x277 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x293 PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x7AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x312 PUSH2 0x108 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x355 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x9C 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 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x506E JUMP JUMPDEST PUSH2 0x837 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3BD CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x850 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x512E JUMP JUMPDEST PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x388 PUSH2 0xA93 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xACF JUMP JUMPDEST PUSH2 0x3F8 PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x5180 JUMP JUMPDEST PUSH2 0x419 PUSH2 0x414 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x51E7 JUMP JUMPDEST PUSH2 0x43B PUSH2 0x436 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP7 ISZERO ISZERO DUP8 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x20 DUP8 ADD MSTORE SWAP4 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x47A PUSH2 0xCDC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x498 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0xD1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x4B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x514 PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x502B 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 0xD0 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 0x277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0xCFB JUMP JUMPDEST PUSH2 0x548 PUSH2 0xD0D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x521C JUMP JUMPDEST PUSH2 0x388 PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xD18 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x577 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0xD29 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0xDB6 JUMP JUMPDEST PUSH2 0x5AA PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x5C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0xF54 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0x10C4 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x10D8 JUMP JUMPDEST PUSH2 0x5EE PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5285 JUMP JUMPDEST PUSH2 0x312 PUSH1 0xD2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x11BB JUMP JUMPDEST PUSH2 0x47A PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x648 PUSH2 0x643 CALLDATASIZE PUSH1 0x4 PUSH2 0x531D JUMP JUMPDEST PUSH2 0x11D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x5392 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x53F7 JUMP JUMPDEST PUSH2 0x12BE JUMP JUMPDEST PUSH2 0x47A PUSH2 0x676 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1492 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x14B0 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x691 CALLDATASIZE PUSH1 0x4 PUSH2 0x545F JUMP JUMPDEST PUSH2 0x14BA JUMP JUMPDEST PUSH2 0x388 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x1638 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x6B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x6D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x6EA CALLDATASIZE PUSH1 0x4 PUSH2 0x54A7 JUMP JUMPDEST PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x312 PUSH2 0x107 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x1873 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x70F CALLDATASIZE PUSH1 0x4 PUSH2 0x50CC JUMP JUMPDEST PUSH2 0x187D JUMP JUMPDEST PUSH2 0x312 PUSH2 0x722 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x388 PUSH2 0x742 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH2 0x1A0B JUMP JUMPDEST PUSH2 0x26A PUSH2 0x1A1C JUMP JUMPDEST PUSH2 0x388 PUSH2 0x75D CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1A26 JUMP JUMPDEST PUSH2 0x355 PUSH2 0x770 CALLDATASIZE PUSH1 0x4 PUSH2 0x5167 JUMP JUMPDEST PUSH1 0x9B 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 0x388 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x502B JUMP JUMPDEST PUSH2 0x1AA8 JUMP JUMPDEST PUSH2 0x7B2 PUSH2 0x4FAE JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x120 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 DUP2 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x83F PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x1B15 JUMP JUMPDEST POP JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x859 PUSH2 0x1B69 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 0x888 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8A5 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 0x8C9 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x903 DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x90E DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x919 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0x921 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x931 DUP8 DUP10 ADD DUP10 PUSH2 0x5646 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 MLOAD GT PUSH2 0x959 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 0x97B 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 PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x9B3 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 PUSH2 0x106 SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x9FE SWAP1 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0xA13 SWAP1 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xA2F JUMPI PUSH2 0xA2F DUP10 DUP3 PUSH2 0x1DDE JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x159567BEA25499A91F60E1FBB349FF2A1F8C1B2883198F25C1E12C99EDDB44FA DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xA6A SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA85 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xA8F DUP3 DUP3 PUSH2 0x1E35 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xAC4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xACD PUSH2 0x1EEB JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x848 CALLER DUP3 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH2 0x1FDD JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0xB0F SWAP1 PUSH2 0x56C1 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 0xB3B SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB88 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 0xB6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xB9D SWAP1 PUSH2 0x56C1 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 0xBC9 SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC16 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBEB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC16 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 0xBF9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x120 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 PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP4 ADD MSTORE SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH2 0xCB1 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 SWAP1 SWAP6 ADD MLOAD SWAP4 SWAP13 SWAP3 SWAP12 POP SWAP1 SWAP10 POP SWAP8 POP SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE7 PUSH2 0x2073 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x848 CALLER DUP3 PUSH2 0x1DDE JUMP JUMPDEST PUSH2 0xD03 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xACD PUSH1 0x0 PUSH2 0x2097 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH2 0x20F3 JUMP JUMPDEST PUSH2 0xD20 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x216A JUMP JUMPDEST PUSH2 0xD31 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xD3C DUP4 DUP4 DUP4 PUSH2 0x219F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0xD56 DUP2 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xD78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C9C717B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH2 0x108 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 0xDBF PUSH2 0x1B69 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 0xDEE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE0B 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 0xE2F SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0xE90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xE99 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEA7 DUP5 DUP7 ADD DUP7 PUSH2 0x502B JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0xEBE PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP8 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEEC JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0xEF9 DUP2 PUSH1 0x0 PUSH2 0x2277 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x73330C218A680717E9EEE625C262DF66EDDFDF99ECB388D25F6B32D66B9A318A DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF34 SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAE4 PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP1 SWAP2 JUMP JUMPDEST DUP3 PUSH2 0xF5D PUSH2 0x1B69 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 0xF8C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA9 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 0xFCD SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0xFFE DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1009 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x1014 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1050 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1059 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x106E PUSH1 0xCF DUP9 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x109C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0x10BB DUP7 DUP7 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x23D9 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10CC PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xACD PUSH2 0x2746 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x1128 PUSH2 0x278D JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x113C JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x1180 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 0x8EC JUMP JUMPDEST PUSH2 0x1188 PUSH2 0x27B1 JUMP JUMPDEST PUSH2 0x1190 PUSH2 0x2852 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 0x11C6 PUSH2 0x286F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 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 0x1200 JUMPI PUSH2 0x1200 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1233 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x121E JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12B5 JUMPI PUSH2 0x1290 ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1257 JUMPI PUSH2 0x1257 PUSH2 0x5858 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1269 SWAP2 SWAP1 PUSH2 0x586E JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x127C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2893 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12A2 JUMPI PUSH2 0x12A2 PUSH2 0x5858 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1239 JUMP JUMPDEST POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x12C9 PUSH2 0x1B69 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 0x12F8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1315 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 0x1339 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x135C JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP6 PUSH1 0x0 PUSH2 0x136A DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1375 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x1380 DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP9 SWAP1 DUP2 SWAP1 PUSH2 0x13BC JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x13C5 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13DA JUMPI PUSH2 0x13DA PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x13F1 JUMPI PUSH2 0x13EA DUP11 DUP10 DUP10 PUSH2 0x2909 JUMP JUMPDEST SWAP1 POP PUSH2 0x1430 JUMP JUMPDEST PUSH1 0x2 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1405 JUMPI PUSH2 0x1405 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x1415 JUMPI PUSH2 0x13EA DUP11 DUP10 DUP10 PUSH2 0x2E1D JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH4 0x47031CF PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5913 JUMP JUMPDEST DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1442 JUMPI PUSH2 0x1442 PUSH2 0x58DB JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54FE682BFB66381A9382E13E4B95A3DD4F960EAFBAE063FDEA3539D144FF3FF5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x147D 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 0x12B8 DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2EC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C4 PUSH2 0x2F04 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 0x14EB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x1507 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x1515 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1533 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x155C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x1565 DUP10 PUSH2 0x2F2D JUMP JUMPDEST PUSH2 0x156D PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x1575 PUSH2 0x2F46 JUMP JUMPDEST PUSH2 0x157D PUSH2 0x2F5E JUMP JUMPDEST PUSH2 0x15C9 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 0x2F6E JUMP JUMPDEST PUSH2 0x15D5 DUP9 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x15DE DUP8 PUSH2 0x1B15 JUMP JUMPDEST PUSH2 0x15E7 DUP7 PUSH2 0x2F88 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x162D 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 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0x1685 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCDC0567F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x1697 DUP4 DUP6 ADD DUP6 PUSH2 0x5921 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x16A3 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE76FEDE6 DUP7 DUP5 DUP5 PUSH2 0x16BC PUSH2 0x2FDF 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 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 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 0x1768 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 0x1780 PUSH2 0x1B69 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 0x17AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17CC 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 0x17F0 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1813 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH2 0x181D PUSH2 0x1DB8 JUMP JUMPDEST PUSH2 0x1826 DUP5 PUSH2 0x3003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH32 0xF53CF6521A1B5FC0C04BFFA70374A4DC2E3474F2B2AC1643C3BCC54E2DB4A939 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x186C DUP4 DUP4 PUSH2 0x3076 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x2FDF JUMP JUMPDEST DUP3 PUSH2 0x1886 PUSH2 0x1B69 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 0x18B5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54D5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D2 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 0x18F6 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1919 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x1927 DUP3 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x1932 DUP2 PUSH2 0x1C90 JUMP JUMPDEST PUSH2 0x193D DUP2 PUSH1 0x0 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x106 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1979 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1982 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1993 DUP10 DUP12 ADD DUP12 PUSH2 0x5943 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH2 0x19BB DUP12 DUP4 DUP7 DUP7 DUP6 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x30E5 JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD3803EB82EF5B4CDFF8646734EBBAF5B37441E96314B27FFD3D0940F12A038E7 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH2 0x19F6 SWAP3 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A13 PUSH2 0x1AE3 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x2F88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x32DC JUMP JUMPDEST PUSH2 0x1A2E PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A3B PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A52 PUSH1 0xD2 SLOAD DUP3 PUSH2 0x3300 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x1A71 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3477B5 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0x1A7B DUP2 PUSH2 0x333D JUMP JUMPDEST ISZERO DUP3 SWAP1 PUSH2 0x1A9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x17C7B35D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH2 0xA8F DUP3 PUSH1 0x1 PUSH2 0x2277 JUMP JUMPDEST PUSH2 0x1AB0 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1ADA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x2097 JUMP JUMPDEST CALLER PUSH2 0x1AEC PUSH2 0x11BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xACD JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 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 0xDAB JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 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 PUSH2 0x120 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 PUSH2 0x1BE6 PUSH2 0x1B69 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 0x1C13 SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST PUSH2 0x140 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C31 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 0x1C55 SWAP2 SWAP1 PUSH2 0x59D0 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 0x1C89 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7B3C09BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x848 SWAP2 PUSH2 0x1CA4 SWAP2 PUSH2 0x5845 JUMP JUMPDEST 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 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1CD9 PUSH2 0x20F3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP4 PUSH2 0x1CEE JUMPI DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x1CF4 JUMP JUMPDEST DUP5 PUSH1 0xE0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x1D42 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 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4D PUSH2 0x1FDD JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP7 PUSH2 0x1D62 JUMPI DUP8 PUSH1 0x60 ADD MLOAD PUSH2 0x1D68 JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x1DAE 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 0x335C JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1DC0 PUSH2 0xCDC JUMP JUMPDEST ISZERO PUSH2 0xACD 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 PUSH2 0x109 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 PUSH31 0x3215DC05A2FC4E6A1E2C2776311D207C730EE51085AAE221ACC5CBE6FB55C1 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH1 0xFF AND ISZERO ISZERO DUP2 ISZERO EQ PUSH2 0x1E8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x5E67E54B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x8EC JUMP JUMPDEST POP POP 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 0x1EF3 PUSH2 0x3390 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EFD PUSH2 0x2073 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDAB SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C 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 0x1F8B SWAP1 DUP5 SWAP1 PUSH2 0x33B5 SWAP1 PUSH2 0x33CA SWAP1 PUSH2 0x34C5 SWAP1 DUP10 PUSH2 0x34EA 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 0x1FCF SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1768 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1FE8 PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBB2A2B47 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 0x2025 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 0x2049 SWAP2 SWAP1 PUSH2 0x5A96 JUMP JUMPDEST SWAP3 PUSH3 0xF4240 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2063 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI POP POP PUSH1 0x80 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH32 0xCD5ED15C6E187E77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A1 PUSH2 0x286F 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 PUSH1 0x0 PUSH2 0x2100 PUSH2 0x2FDF 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 0x213D 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 0x2161 SWAP2 SWAP1 PUSH2 0x5AB3 JUMP JUMPDEST SWAP4 DUP5 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xD2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x21774046E2611DDB52C8C46E1AD97524EEB2E3FDA7DCD9428867868B4C4D06BA SWAP1 PUSH1 0x20 ADD PUSH2 0xDAB JUMP JUMPDEST PUSH2 0x21AC PUSH1 0xD0 DUP5 DUP5 DUP5 PUSH2 0x35A4 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 PUSH2 0x21FA PUSH2 0x4FAE JUMP JUMPDEST PUSH2 0x2204 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 SWAP1 SWAP2 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2284 PUSH1 0xCF DUP5 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x230F DUP4 PUSH2 0x2292 PUSH2 0x3706 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 0x22C3 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 0x22E2 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 0x2306 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0xCF SWAP2 SWAP1 PUSH2 0x372A JUMP JUMPDEST PUSH2 0x231A PUSH1 0xCF DUP5 PUSH2 0x37DD JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x232D SWAP2 PUSH1 0xD1 SWAP2 PUSH2 0x3893 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xD3 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2354 SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8F2F865E0FB62D722A51E4D9873199BF6BF52E7D8EE5A2EE2896C9EF719F545 DUP5 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x40 MLOAD PUSH2 0x23CC SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E6 PUSH1 0xCF DUP6 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x23F1 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP5 SWAP1 PUSH2 0x2411 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP DUP1 PUSH1 0x40 ADD MLOAD DUP4 EQ ISZERO DUP5 DUP5 SWAP1 SWAP2 PUSH2 0x243D JUMPI PUSH1 0x40 MLOAD PUSH4 0xF32518CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x40 DUP2 ADD MLOAD DUP1 DUP5 GT ISZERO PUSH2 0x2473 JUMPI PUSH2 0x246E PUSH2 0x2457 PUSH2 0x1B69 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x2463 DUP5 DUP9 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD1 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x3911 JUMP JUMPDEST PUSH2 0x248C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x248C SWAP1 PUSH2 0x2483 DUP7 DUP5 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD1 SWAP2 SWAP1 PUSH2 0x3893 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2496 PUSH2 0x3706 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 0x24C7 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 0x24E6 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 0x250A SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2517 DUP5 PUSH2 0x333D JUMP JUMPDEST ISZERO PUSH2 0x2523 JUMPI PUSH1 0x0 PUSH2 0x2532 JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MLOAD PUSH2 0x2532 SWAP1 DUP4 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x6 ADD DUP4 SWAP1 SSTORE SWAP1 POP PUSH2 0x2561 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC8A5F81E DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x258E SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25AB 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 0x25CF SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCF PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x7 ADD DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x25FA SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP3 DUP7 GT ISZERO PUSH2 0x2642 JUMPI PUSH2 0x2611 DUP4 DUP8 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 0x2637 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2678 SWAP1 POP JUMP JUMPDEST PUSH2 0x264C DUP7 DUP5 PUSH2 0x5845 JUMP JUMPDEST PUSH1 0xD3 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 0x2672 SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP8 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 DUP10 DUP8 PUSH1 0x40 MLOAD PUSH2 0x26C6 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 DUP1 DUP3 GT ISZERO PUSH2 0x26FC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP POP PUSH1 0x0 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x90699B8B4BF48918FEA1129C85F9BC7B51285DF7ECC982910813C7805F568849 SWAP1 PUSH2 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x274E PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2758 PUSH2 0x2073 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE SWAP1 POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1F2A CALLER SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D100 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x27BD PUSH2 0x278D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x27CE SWAP1 PUSH2 0x56C1 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 0x27FA SWAP1 PUSH2 0x56C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2847 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x281C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2847 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 0x282A 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 0x285E PUSH2 0x278D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 ADD DUP1 SLOAD PUSH2 0x27CE SWAP1 PUSH2 0x56C1 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x28B0 SWAP2 SWAP1 PUSH2 0x5AFC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x28EB 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 0x28F0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2900 DUP6 DUP4 DUP4 PUSH2 0x3A0F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x2919 DUP5 DUP7 ADD DUP7 PUSH2 0x5B3A JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 ADD MLOAD SWAP2 SWAP4 POP SWAP2 POP DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A071D07 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP DUP2 MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 GT ISZERO PUSH2 0x2983 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFA4AC7A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP DUP2 MLOAD MLOAD PUSH1 0x0 PUSH2 0x2994 PUSH1 0xCF DUP4 PUSH2 0x21F2 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x29C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4508FBF7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x29DB DUP10 PUSH1 0x0 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x29E8 PUSH2 0x3A62 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 0x2A13 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A30 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 0x2A54 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH2 0x2A5E PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x692209CE PUSH1 0x0 PUSH2 0x2AFC DUP12 PUSH2 0x2A7A PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4C4EA0ED DUP11 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AA7 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 0x2AC4 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 0x2AE8 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST PUSH2 0x2AF3 JUMPI PUSH1 0x0 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x108 SLOAD PUSH2 0x3A86 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B1B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5C71 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B3A 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 0x2B5E SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 PUSH2 0x2B6A PUSH2 0x3A62 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 0x2B95 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BB2 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 0x2BD6 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP2 DUP2 LT ISZERO PUSH2 0x2BFD JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DB8BC95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP PUSH2 0x2C0A SWAP1 POP DUP3 DUP3 PUSH2 0x5845 JUMP JUMPDEST SWAP3 POP POP DUP3 ISZERO SWAP1 POP PUSH2 0x2DB4 JUMPI PUSH2 0x2CA9 DUP12 PUSH2 0x107 SLOAD DUP5 PUSH2 0x2C28 SWAP2 SWAP1 PUSH2 0x5CA1 JUMP JUMPDEST PUSH2 0x2C30 PUSH2 0x2FDF 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 0x2C6D 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 0x2C91 SWAP2 SWAP1 PUSH2 0x5AB3 JUMP JUMPDEST PUSH2 0x2CA4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x5AE9 JUMP JUMPDEST PUSH2 0x3ADA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2DB4 JUMPI PUSH2 0x2CB7 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1D1C2FEC DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CE4 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 0x2D03 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 0x2D27 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST POP PUSH2 0x2D4C PUSH2 0x2D33 PUSH2 0x2EE0 JUMP JUMPDEST DUP3 PUSH2 0x2D3C PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x3C4A JUMP JUMPDEST PUSH2 0x2D54 PUSH2 0x2EE0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x81573288 DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D81 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP7 MLOAD PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE SWAP3 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND SWAP3 SWAP2 DUP2 AND SWAP2 SWAP1 DUP15 AND SWAP1 PUSH32 0x184C452047299395D4F7F147EB8E823458A450798539BE54AEED978F13D87BA2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x2E2E DUP6 DUP8 ADD DUP8 PUSH2 0x5CB8 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x2E4A PUSH1 0xCF DUP6 PUSH2 0x21F2 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP6 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2E78 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x109 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EB6 SWAP3 DUP7 SWAP3 DUP7 SWAP3 DUP7 SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP2 AND PUSH2 0x3CF9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ED8 PUSH2 0x2ECE PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD1 SWAP1 DUP6 DUP6 PUSH2 0x42D6 JUMP JUMPDEST ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x12B8 JUMP JUMPDEST PUSH2 0x2F35 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x848 DUP2 PUSH2 0x4395 JUMP JUMPDEST PUSH2 0xACD PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F4E PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F56 PUSH2 0x439D JUMP JUMPDEST PUSH2 0xACD PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x2F66 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F56 PUSH2 0x2F3E JUMP JUMPDEST PUSH2 0x2F76 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x2F80 DUP3 DUP3 PUSH2 0x43DF JUMP JUMPDEST PUSH2 0xA8F PUSH2 0x2F3E JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FA9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC71A043 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x107 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x2AAAF20B08565EEBC0C962CD7C568E54C3C0C2B85A1F942B82CD1BD730FDCD23 SWAP1 PUSH1 0x20 ADD PUSH2 0xDAB JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x300E DUP2 PUSH1 0x1 PUSH2 0x43F1 JUMP JUMPDEST PUSH2 0x3016 PUSH2 0x1B69 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 0x3041 SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x305B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x306F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x186C PUSH32 0x4BDEE85C4B4A268F4895D1096D553C3E57BB2433C380E7B7EC8CB56CC4F74673 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x30CA 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 0x4408 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x310C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FFDF5EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3117 DUP7 DUP7 DUP5 PUSH2 0x4435 JUMP JUMPDEST PUSH2 0x312B PUSH2 0x3122 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD0 SWAP1 DUP8 PUSH2 0x4484 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3135 PUSH2 0x457A JUMP JUMPDEST 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 0x3172 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 0x3196 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3226 DUP9 DUP9 DUP9 DUP9 PUSH2 0x31A9 PUSH2 0x3706 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 0x31D6 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 0x31F5 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 0x3219 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0xCF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 DUP9 PUSH2 0x459E JUMP JUMPDEST SWAP1 POP PUSH2 0x323E PUSH2 0x3233 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0xD1 SWAP1 DUP11 DUP9 DUP8 PUSH2 0x3911 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xD3 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3265 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST PUSH1 0xD3 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 0xE5E185FAB2B992C4727FF702A867D78B15FB176DBAA20C9C312A1C351D3F7F83 DUP5 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x40 MLOAD PUSH2 0x32CA SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3315 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0x4706 JUMP JUMPDEST PUSH2 0x331F SWAP1 TIMESTAMP PUSH2 0x5845 JUMP JUMPDEST SWAP1 POP PUSH2 0x332A DUP5 PUSH2 0x2054 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3335 JUMPI POP DUP3 DUP2 GT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334C DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI POP POP PUSH1 0x40 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x3367 DUP5 DUP5 DUP5 PUSH2 0x4716 JUMP JUMPDEST DUP2 DUP6 DUP6 DUP6 SWAP1 SWAP2 SWAP3 SWAP4 PUSH2 0x1DAE JUMPI PUSH1 0x40 MLOAD PUSH4 0x871E13D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D10 JUMP JUMPDEST PUSH2 0x3398 PUSH2 0xCDC JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x33D9 DUP6 PUSH2 0x472D JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3401 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x34BE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3418 SWAP2 SWAP1 PUSH2 0x5D3F JUMP JUMPDEST DUP5 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH2 0x342D SWAP1 PUSH1 0x9A SWAP1 DUP4 SWAP1 PUSH2 0x3893 JUMP JUMPDEST DUP7 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4C06B68820628A39C787D2DB1FAA0EEACD7B9474847B198B1E871FE6E5B93F44 DUP6 PUSH1 0x0 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x3471 SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 MLOAD PUSH2 0x3485 SWAP1 DUP4 PUSH2 0x5AE9 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 0x9B 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 0x3513 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 0x3521 JUMPI DUP4 PUSH2 0x3527 JUMP JUMPDEST DUP9 PUSH1 0x3 ADD SLOAD JUMPDEST DUP10 SLOAD SWAP1 SWAP5 POP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x353C JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO PUSH2 0x3595 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3552 DUP4 DUP10 DUP13 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3563 JUMPI POP POP PUSH2 0x3595 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3571 DUP13 DUP13 DUP12 PUSH2 0x47BB JUMP JUMPDEST SWAP3 POP DUP7 PUSH2 0x357D DUP2 PUSH2 0x5D65 JUMP JUMPDEST SWAP8 POP POP DUP4 DUP1 PUSH2 0x358B SWAP1 PUSH2 0x5D7C JUMP JUMPDEST SWAP5 POP POP POP POP PUSH2 0x352D 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 DUP1 DUP4 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 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x35E4 SWAP1 PUSH2 0x4842 JUMP JUMPDEST ISZERO DUP3 SWAP1 PUSH2 0x3605 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 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 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 0x120 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 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH2 0x36DE SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP4 SWAP1 PUSH2 0x36FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x42DAADAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3736 DUP5 DUP5 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x37AD SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP5 SWAP2 PUSH2 0x37D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x6 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E9 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x3860 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x3886 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x38A0 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 0x38DD JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 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 0x3907 SWAP1 DUP5 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x306F 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 0x393B SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 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 0x396F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D95 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x398C 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 0x39B0 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 DUP2 GT ISZERO PUSH2 0x39D7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 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 0x3A01 SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x3A24 JUMPI PUSH2 0x3A1F DUP3 PUSH2 0x4851 JUMP JUMPDEST PUSH2 0x186C JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x3A3B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x3A5B JUMPI DUP4 PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP DUP1 PUSH2 0x186C JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x109 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 SLOAD SWAP3 MLOAD PUSH1 0x60 SWAP4 PUSH2 0x3AC3 SWAP4 DUP8 SWAP4 DUP8 SWAP4 SWAP3 SWAP1 SWAP2 AND SWAP2 ADD PUSH2 0x5DBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x3AFB JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4C63D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3B27 PUSH2 0x3B06 PUSH2 0x1B69 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x9A SWAP2 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x3911 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9C 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 0x9B 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 0x3BF5 JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x3BFF DUP3 DUP3 PUSH2 0x487A JUMP JUMPDEST DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5D9E2C5278E41138269F5F980CFBEA016D8C59816754502ABC4D2F87AAEA987F DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x3C3B SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3C 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 0x3C7E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3C9D 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 0x3CC1 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST PUSH2 0xD3C 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 0x8EC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3D07 PUSH1 0xCF DUP9 PUSH2 0x21F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D12 DUP2 PUSH2 0x2054 JUMP JUMPDEST DUP8 SWAP1 PUSH2 0x3D32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x3D4A PUSH1 0xD2 SLOAD DUP4 PUSH2 0x3300 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x3D5D JUMPI POP PUSH2 0x3D5B DUP3 PUSH2 0x333D JUMP JUMPDEST ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3D68 JUMPI POP DUP7 ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3DE0 JUMPI POP DUP2 PUSH2 0x100 ADD MLOAD PUSH2 0x3D7D PUSH2 0x457A JUMP JUMPDEST 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 0x3DBA 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 0x3DDE SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST GT JUMPDEST PUSH2 0x3DEB JUMPI PUSH1 0x0 PUSH2 0x3E61 JUMP JUMPDEST PUSH2 0x3DF3 PUSH2 0x3706 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB750926 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E1E SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E3D 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 0x3E61 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH2 0x3EA0 DUP9 PUSH2 0x3E6F PUSH2 0x3706 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 0x22C3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3EAB PUSH1 0xCF DUP10 PUSH2 0x490D JUMP JUMPDEST PUSH2 0x3EB6 PUSH1 0xCF DUP10 PUSH2 0x49C3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 ISZERO PUSH2 0x41EF JUMPI PUSH1 0x0 PUSH2 0x3EC9 PUSH2 0x1B69 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 0x3EFC SWAP2 ADDRESS SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x4 ADD PUSH2 0x5E87 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F19 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 0x3F3D SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3F49 PUSH2 0x1B69 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 0x3F79 SWAP2 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x5515 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F96 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 0x3FBA SWAP2 SWAP1 PUSH2 0x5EAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x3FCF JUMPI PUSH1 0x0 PUSH2 0x3FD9 JUMP JUMPDEST PUSH2 0x3FD9 DUP6 DUP4 PUSH2 0x4A7A JUMP JUMPDEST SWAP3 POP DUP3 ISZERO PUSH2 0x40CE JUMPI PUSH2 0x3FE9 PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x3FFF PUSH2 0x1B69 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401D SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x403C 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 0x4060 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST POP PUSH2 0x4069 PUSH2 0x1B69 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 0x409B SWAP2 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x40D8 DUP4 DUP7 PUSH2 0x5845 JUMP JUMPDEST SWAP4 POP DUP4 ISZERO PUSH2 0x41EC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH2 0x41DF JUMPI PUSH2 0x40F6 PUSH2 0x3A62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x410C PUSH2 0x1B69 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x412A SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4149 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 0x416D SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST POP PUSH2 0x4176 PUSH2 0x1B69 JUMP JUMPDEST DUP7 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 0x41A8 SWAP2 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x41EC JUMP JUMPDEST PUSH2 0x41EC DUP9 DUP6 PUSH2 0x2D3C PUSH2 0x3A62 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP2 AND PUSH32 0x443F56BD2098D273B8C8120398789A41DA5925DB4BA2F656813FC5299AC57B1F DUP7 DUP7 DUP7 DUP16 DUP16 PUSH2 0x4231 PUSH2 0x457A JUMP JUMPDEST 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 0x426E 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 0x4292 SWAP2 SWAP1 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42A4 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F43 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP4 MLOAD PUSH2 0x42B8 SWAP1 DUP9 PUSH2 0x2EC1 JUMP JUMPDEST ISZERO PUSH2 0x42C8 JUMPI PUSH2 0x42C8 DUP11 PUSH1 0x1 PUSH2 0x2277 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 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 0x4309 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5D95 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4326 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 0x434A SWAP2 SWAP1 PUSH2 0x5A7D 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 PUSH2 0x4378 PUSH2 0x4ADA JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AB0 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x43A5 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0x43B2 PUSH1 0x0 PUSH1 0x0 NOT PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x43C0 PUSH1 0x0 PUSH3 0xF4240 PUSH2 0x4AF4 JUMP JUMPDEST PUSH2 0x43D2 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x4BC5 JUMP JUMPDEST PUSH2 0xACD PUSH4 0xFFFFFFFF PUSH2 0x1B15 JUMP JUMPDEST PUSH2 0x43E7 PUSH2 0x4370 JUMP JUMPDEST PUSH2 0xA8F DUP3 DUP3 PUSH2 0x4C52 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43FC DUP4 PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP PUSH2 0xD3C DUP2 DUP4 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B8 PUSH2 0x4415 PUSH2 0x4C93 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 0x444A PUSH2 0x4444 DUP6 DUP6 PUSH2 0x3076 JUMP JUMPDEST DUP4 PUSH2 0x4C9D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP1 DUP3 AND EQ PUSH2 0x447C JUMPI PUSH1 0x40 MLOAD PUSH4 0x8C5B935D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5515 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 MSTORE PUSH1 0x40 SWAP2 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 PUSH2 0x44C4 SWAP1 PUSH2 0x4842 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x44E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x78EB06B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xF1D60D66 SWAP1 PUSH2 0x4512 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x5048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x452F 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 0x4553 SWAP2 SWAP1 PUSH2 0x54F8 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x4574 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D7D25F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x45A6 PUSH2 0x4FAE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP11 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x120 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 DUP2 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x8 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x4632 SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO DUP7 SWAP1 PUSH2 0x4653 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC4DEF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 SWAP1 PUSH2 0x5048 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP7 DUP8 MSTORE DUP2 DUP4 ADD SWAP6 DUP7 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 SWAP9 DUP10 MSTORE PUSH1 0xE0 DUP7 ADD DUP4 DUP2 MSTORE PUSH2 0x100 DUP8 ADD SWAP9 DUP10 MSTORE SWAP12 DUP14 AND DUP4 MSTORE SWAP13 SWAP1 SWAP4 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP11 AND SWAP10 SWAP1 SWAP10 OR DUP10 SSTORE SWAP6 MLOAD PUSH1 0x1 DUP10 ADD SSTORE SWAP4 MLOAD PUSH1 0x2 DUP9 ADD SSTORE MLOAD PUSH1 0x3 DUP8 ADD SSTORE SWAP3 MLOAD PUSH1 0x4 DUP7 ADD SSTORE SWAP5 MLOAD PUSH1 0x5 DUP6 ADD SSTORE SWAP4 MLOAD PUSH1 0x6 DUP5 ADD SSTORE SWAP1 MLOAD PUSH1 0x7 DUP4 ADD SSTORE MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 XOR DUP3 DUP5 GT MUL DUP3 XOR PUSH2 0x186C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x3335 JUMPI POP POP SWAP1 SWAP2 GT ISZERO SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x475B 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 0x9B 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 0x1C89 JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x3 ADD SLOAD GT PUSH2 0x47E1 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 0x47F4 DUP6 PUSH1 0x0 ADD SLOAD DUP6 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4807 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x481C SWAP2 SWAP1 PUSH2 0x5845 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 DUP6 SSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4838 JUMPI PUSH1 0x0 PUSH1 0x1 DUP7 ADD SSTORE JUMPDEST POP POP SWAP2 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x4861 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD6BDA275 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x3 ADD SLOAD LT PUSH2 0x48A0 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 0x48BE 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 0x48DA SWAP1 DUP5 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x48EF JUMPI DUP1 DUP3 SSTORE JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4904 SWAP2 SWAP1 PUSH2 0x5AE9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4919 DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4990 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x49B6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x5 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49CF DUP4 DUP4 PUSH2 0x3653 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 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 PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4A46 SWAP1 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x4A6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5AD0 JUMP JUMPDEST POP POP PUSH1 0x0 PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A89 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x4A9C JUMPI POP PUSH2 0x4A9C DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x4ABF JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5277 JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x4AD0 DUP4 DUP6 PUSH2 0x5CA1 JUMP JUMPDEST PUSH2 0x186C SWAP2 SWAP1 PUSH2 0x5F81 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AE4 PUSH2 0x2F04 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 0x4B22 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5180 JUMP JUMPDEST POP DUP3 SWAP1 POP DUP2 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x4B53 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x5180 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 PUSH1 0x1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2FE5A7039987697813605CC0B9D6DB7AAB575408E3FC59E8A457BEF8D7BC0A36 SWAP1 PUSH2 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5180 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4BF6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x521C 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 0x273A SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x521C JUMP JUMPDEST PUSH2 0x4C5A PUSH2 0x4370 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C64 PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 ADD PUSH2 0x4C74 DUP5 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x4C83 DUP4 DUP3 PUSH2 0x5742 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x84B PUSH2 0x4CC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4CAD DUP7 DUP7 PUSH2 0x4D3B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x4CBD DUP3 DUP3 PUSH2 0x4D88 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x4CF2 PUSH2 0x4E41 JUMP JUMPDEST PUSH2 0x4CFA PUSH2 0x4EA8 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 0x4D75 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x4D67 DUP9 DUP3 DUP6 DUP6 PUSH2 0x4EE9 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x4D81 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 0x4D9C JUMPI PUSH2 0x4D9C PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4DA5 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4DB9 JUMPI PUSH2 0x4DB9 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4DD7 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 0x4DEB JUMPI PUSH2 0x4DEB PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0x4E0C JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8EC JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4E20 JUMPI PUSH2 0x4E20 PUSH2 0x58DB JUMP JUMPDEST SUB PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8EC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4E4C PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4E58 PUSH2 0x27B1 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4E70 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x4E7F JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4EB3 PUSH2 0x278D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4EBF PUSH2 0x2852 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4ED7 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x4E7F JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x4F1A JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x4FA4 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 0x4F6E 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 0x4F9A JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x4FA4 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 0x120 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 PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x5026 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x503D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x186C DUP2 PUSH2 0x5006 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x186C DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x509D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x50B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x34BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x50E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x50EC DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5113 DUP7 DUP3 DUP8 ADD PUSH2 0x508B JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x514C DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x515C DUP2 PUSH2 0x5120 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5179 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 0x51B2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x519A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x51D3 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5197 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 0x5200 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x5212 DUP2 DUP6 PUSH2 0x51BB 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 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x524B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5256 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5266 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x52A4 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x51BB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x52B6 DUP2 DUP10 PUSH2 0x51BB 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 0x530C JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x52EE JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x5357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x536D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x5382 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 0x53EB JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x53D6 DUP6 DUP4 MLOAD PUSH2 0x51BB JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x53BA 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 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5418 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x542C 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 0x5447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5453 DUP8 DUP3 DUP9 ADD PUSH2 0x508B JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5480 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5497 DUP2 PUSH2 0x505C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x54BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x54C5 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x515C DUP2 PUSH2 0x5006 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 0x550A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x5120 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 MLOAD PUSH2 0x140 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5568 JUMPI PUSH2 0x5568 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55C3 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 0x55E3 JUMPI PUSH2 0x55E3 PUSH2 0x552F 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 0x5611 JUMPI PUSH2 0x5611 PUSH2 0x552F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x5629 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 0x565B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x567D DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5699 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56A5 DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x56B6 DUP2 PUSH2 0x5006 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x56D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x56F5 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 0xD3C 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 0x5722 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x306F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x572E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x575B JUMPI PUSH2 0x575B PUSH2 0x552F JUMP JUMPDEST PUSH2 0x576F DUP2 PUSH2 0x5769 DUP5 SLOAD PUSH2 0x56C1 JUMP JUMPDEST DUP5 PUSH2 0x56FB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x57A3 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x578B 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 0x306F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x57D3 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x57B3 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x57F1 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 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F 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 0x5885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x589F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x34BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x58D1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x5197 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 0x3 DUP2 LT PUSH2 0x590F 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 0x12B8 DUP3 DUP5 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5934 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 0x5959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5972 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x598D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5999 DUP8 DUP3 DUP9 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5026 DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5026 DUP2 PUSH2 0x59B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x59E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x59EF PUSH2 0x5545 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 0x5A13 PUSH1 0x60 DUP6 ADD PUSH2 0x59A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5A24 PUSH1 0x80 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5A35 PUSH1 0xA0 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x5A46 PUSH1 0xC0 DUP6 ADD PUSH2 0x59A5 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x5A57 PUSH1 0xE0 DUP6 ADD PUSH2 0x59C5 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 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 0x5A8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x505C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x186C DUP2 PUSH2 0x59B0 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x5B0E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5197 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x5026 DUP2 PUSH2 0x59B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x5B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B7D PUSH2 0x556E JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xE0 DUP2 DUP9 SUB SLT ISZERO PUSH2 0x5BA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5BAD PUSH2 0x5590 JUMP JUMPDEST DUP2 CALLDATALOAD DUP2 MSTORE PUSH2 0x5BBD PUSH1 0x20 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x5BCE PUSH1 0x40 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x5BDF PUSH1 0x60 DUP4 ADD PUSH2 0x501B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5BF0 PUSH1 0x80 DUP4 ADD PUSH2 0x5B18 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5C01 PUSH1 0xA0 DUP4 ADD PUSH2 0x5B23 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C2B DUP10 DUP3 DUP6 ADD PUSH2 0x55B2 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C59 DUP8 DUP3 DUP6 ADD PUSH2 0x55B2 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP8 SWAP6 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5C7B DUP2 DUP6 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5C91 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x12B8 JUMPI PUSH2 0x12B8 PUSH2 0x582F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5CCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5CD8 DUP2 PUSH2 0x5006 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5D06 DUP7 DUP3 DUP8 ADD PUSH2 0x55B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5D23 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x51BB 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 0x5D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x515C DUP2 PUSH2 0x5006 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x5D74 JUMPI PUSH2 0x5D74 PUSH2 0x582F JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x5D8E JUMPI PUSH2 0x5D8E PUSH2 0x582F 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 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD PUSH1 0x40 DUP4 DUP4 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0xC0 DUP7 ADD MSTORE SWAP1 DUP3 ADD MLOAD DUP2 AND PUSH1 0xE0 DUP6 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 SWAP2 AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 POP PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x140 DUP6 ADD MSTORE POP PUSH1 0xC0 ADD MLOAD PUSH1 0xE0 PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x5E4B PUSH2 0x180 DUP5 ADD DUP3 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x5F NOT DUP5 DUP4 SUB ADD PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x5E68 DUP3 DUP3 PUSH2 0x51BB JUMP JUMPDEST SWAP3 POP POP POP DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3335 PUSH1 0x40 DUP4 ADD DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE 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 0x3335 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5EBF 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 0x5EE5 JUMPI PUSH2 0x5EE5 PUSH2 0x552F JUMP 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 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 DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5F6E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x51BB JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0xA0 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5F9E 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 0xB8 TSTORE 0xE9 SELFBALANCE LOG2 0xAD CALL MSTORE8 0xB4 0xD5 0xD6 PUSH4 0x60454C8D MOD 0x24 0xBC 0xA9 SWAP9 0xD3 0xFC DUP16 SLT 0xBD OR 0xE3 SAR PUSH21 0x127864736F6C634300081B00330000000000000000 ", + "sourceMap": "1972:23938:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:74:58;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;877:74:58;;;;;;;;;;:::i;:::-;;;;;;;;15734:152:57;;;;;;:::i;:::-;;:::i;:::-;;;;;;998:4:70;1040:3;1029:9;1025:19;1017:27;;1107:1;1103;1098:3;1094:11;1090:19;1081:6;1075:13;1071:39;1060:9;1053:58;1167:4;1159:6;1155:17;1149:24;1142:4;1131:9;1127:20;1120:54;1230:4;1222:6;1218:17;1212:24;1205:4;1194:9;1190:20;1183:54;1293:4;1285:6;1281:17;1275:24;1268:4;1257:9;1253:20;1246:54;1356:4;1348:6;1344:17;1338:24;1331:4;1320:9;1316:20;1309:54;1419:4;1411:6;1407:17;1401:24;1394:4;1383:9;1379:20;1372:54;1482:4;1474:6;1470:17;1464:24;1457:4;1446:9;1442:20;1435:54;1545:4;1537:6;1533:17;1527:24;1520:4;1509:9;1505:20;1498:54;1610:6;1602;1598:19;1592:26;1583:6;1572:9;1568:22;1561:58;858:767;;;;;792:30:58;;;;;;;;;1776:25:70;;;1764:2;1749:18;792:30:58;1630:177:70;874:75:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:25:70;;;2099:2;2084:18;;2077:34;;;;2127:18;;;2120:34;2185:2;2170:18;;2163:34;2030:3;2015:19;874:75:15;1812:391:70;14894:133:57;;;;;;:::i;:::-;;:::i;:::-;;2718:106:12;11107:16:21;;-1:-1:-1;;;11107:16:21;;;;2718:106:12;;2758:10:70;2746:23;;;2728:42;;2716:2;2701:18;2718:106:12;2584:192:70;4805:900:57;;;;;;:::i;:::-;;:::i;14272:149::-;;;;;;:::i;:::-;;:::i;1504:82:16:-;;;:::i;1176:138:14:-;;;;;;:::i;:::-;;:::i;2398:116:12:-;;;:::i;:::-;;;;;;;;:::i;528:76:58:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15927:446:57:-;;;;;;:::i;:::-;;:::i;:::-;;;;6002:14:70;;5995:22;5977:41;;-1:-1:-1;;;;;6054:32:70;;;6049:2;6034:18;;6027:60;6103:18;;;6096:34;;;;6161:2;6146:18;;6139:34;6204:3;6189:19;;6182:35;6074:3;6233:19;;6226:35;5964:3;5949:19;15927:446:57;5696:571:70;2496:145:42;;;:::i;:::-;;;6437:14:70;;6430:22;6412:41;;6400:2;6385:18;2496:145:42;6272:187:70;846:76:66;;;;;;:::i;:::-;;;;;;;;;;;;;;14464:154:57;;;;;;:::i;:::-;;:::i;16634:170::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;16765:32:57;;;;;:18;:32;;;;;16758:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;16634:170;;;;;6680:13:70;;-1:-1:-1;;;;;6676:39:70;6658:58;;6772:4;6760:17;;;6754:24;6732:20;;;6725:54;;;;6631:18;16634:170:57;6464:321:70;3155:101:38;;;:::i;2239:120:12:-;;;:::i;:::-;;;;;;;;:::i;15253:136:57:-;;;;;;:::i;:::-;;:::i;13983:246::-;;;;;;:::i;:::-;;:::i;15432:259::-;;;;;;:::i;:::-;;:::i;9484:503::-;;;;;;:::i;:::-;;:::i;2553:126:12:-;;;:::i;:::-;;;;;;;;:::i;13428:512:57:-;;;;;;:::i;:::-;;:::i;14661:190::-;;;;;;:::i;:::-;;:::i;1379:78:16:-;;;:::i;5172:903:43:-;;;:::i;:::-;;;;;;;;;;;;;:::i;1045:30:66:-;;;;;;2441:144:38;;;:::i;949:68:16:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1518:484:41;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11495:867:57:-;;;;;;:::i;:::-;;:::i;17557:147::-;;;;;;:::i;:::-;;:::i;17183:108::-;;;:::i;3503:558::-;;;;;;:::i;:::-;;:::i;12603:316::-;;;;;;:::i;:::-;;:::i;558:78:15:-;;;;;;:::i;:::-;;;;;;;;;;;;;;6325:275:57;;;;;;:::i;:::-;;:::i;17334:180::-;;;;;;:::i;:::-;;:::i;683:31:58:-;;;;;;16847:120:57;;;:::i;7797:616::-;;;;;;:::i;:::-;;:::i;16414:177::-;;;;;;:::i;:::-;16512:7;16538:46;;;:24;:46;;;;;;;16414:177;15070:140;;;;;;:::i;:::-;;:::i;17010:130::-;;;:::i;12962:423::-;;;;;;:::i;:::-;;:::i;727:75:15:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3405:215:38;;;;;;:::i;:::-;;:::i;15734:152:57:-;15811:23;;:::i;:::-;-1:-1:-1;;;;;;15853:26:57;;;;;;;:12;:26;;;;;;;;;15846:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15734:152::o;14894:133::-;2334:13:38;:11;:13::i;:::-;14984:36:57::1;15004:15;14984:19;:36::i;:::-;14894:133:::0;:::o;2796:21:12:-;2789:28;;2718:106;:::o;4805:900:57:-;4928:7;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;;;;;;;;;;;4956:7:57::1;5161:42:21;5206:30;5220:15;5206:13;:30::i;:::-;5161:75;;5246:32;5268:9;5246:21;:32::i;:::-;5288:43;5314:9;5325:5;5288:25;:43::i;:::-;1979:19:42::2;:17;:19::i;:::-;4990:17:57::3;::::0;;5064:77:::3;::::0;;::::3;5088:4:::0;5064:77:::3;:::i;:::-;4989:152;;;;;;5180:1;5166:3;5160:17;:21;5152:57;;;;-1:-1:-1::0;;;5152:57:57::3;;;;;;;;;;;;5251:1;5233:7;5227:21;:25;5219:65;;;;-1:-1:-1::0;;;5219:65:57::3;;;;;;;;;;;;-1:-1:-1::0;;;;;5302:17:57;::::3;;::::0;;;:8:::3;:17;::::0;;;;:30;:35;5294:87:::3;;;;-1:-1:-1::0;;;5294:87:57::3;;;;;;;;;;;;5444:70;::::0;;::::3;::::0;::::3;::::0;;5468:15:::3;5444:70:::0;;::::3;::::0;;::::3;::::0;;;;;;;;;-1:-1:-1;;;;;5424:17:57;::::3;-1:-1:-1::0;5424:17:57;;;:8:::3;:17:::0;;;;;;:90;;;;;;5444:70;;5424:17;:90:::3;::::0;::::3;::::0;::::3;::::0;;::::3;:::i;:::-;-1:-1:-1::0;5424:90:57::3;::::0;::::3;::::0;::::3;::::0;::::3;::::0;::::3;::::0;;::::3;:::i;:::-;-1:-1:-1::0;;;;;;;;5528:34:57;::::3;::::0;5524:119:::3;;5578:54;5602:7;5611:20;5578:23;:54::i;:::-;5684:7;-1:-1:-1::0;;;;;5658:40:57::3;;5693:4;;5658:40;;;;;;;:::i;:::-;;;;;;;;4979:726;;;5151:198:21::1;4871:1;4805:900:57::0;;;;:::o;14272:149::-;2334:13:38;:11;:13::i;:::-;14373:41:57::1;14391:13;14406:7;14373:17;:41::i;:::-;14272:149:::0;;:::o;1504:82:16:-;1253:10;1238:26;;;;:14;:26;;;;;;;;1230:84;;;;-1:-1:-1;;;1230:84:16;;;;;;;;:::i;:::-;;1569:10:::1;:8;:10::i;:::-;1504:82::o:0;1176:138:14:-;1262:45;1276:10;1288:18;1262:13;:45::i;2398:116:12:-;2452:6;2460;2485:22;:20;:22::i;:::-;2478:29;;;;2398:116;;:::o;528:76:58:-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15927:446:57:-;-1:-1:-1;;;;;16114:26:57;;;16022:4;16114:26;;;:12;:26;;;;;;;;16083:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16022:4;;;;;;;;;;;16171:13;16083:57;16171:11;:13::i;:::-;16198:12;;16224:25;;;;16263:11;;;;16288:32;;;;16334:22;;;;;16150:216;;16198:12;;-1:-1:-1;16224:25:57;;-1:-1:-1;16263:11:57;-1:-1:-1;16288:32:57;;-1:-1:-1;16334:22:57;-1:-1:-1;15927:446:57;-1:-1:-1;;15927:446:57:o;2496:145:42:-;2543:4;2559:25;2587:21;:19;:21::i;:::-;2625:9;;;;2496:145;-1:-1:-1;;2496:145:42:o;14464:154:57:-;14554:57;14578:10;14590:20;14554:23;:57::i;3155:101:38:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;2239:120:12:-:0;2295:6;2303;2328:24;:22;:24::i;15253:136:57:-;2334:13:38;:11;:13::i;:::-;15345:37:57::1;15365:16;15345:19;:37::i;13983:246::-:0;2334:13:38;:11;:13::i;:::-;14153:69:57::1;14178:7;14187:12;14201:20;14153:24;:69::i;:::-;13983:246:::0;;;:::o;15432:259::-;2334:13:38;:11;:13::i;:::-;15523:31:57::1;15542:11;452:9:35::0;-1:-1:-1;2073:16:35;;1992:104;15523:31:57::1;15590:11;15515:88;;;;;-1:-1:-1::0;;;15515:88:57::1;;;;;;1776:25:70::0;;1764:2;1749:18;;1630:177;15515:88:57::1;-1:-1:-1::0;15613:15:57::1;:29:::0;;;15657:27:::1;::::0;1776:25:70;;;15657:27:57::1;::::0;1764:2:70;1749:18;15657:27:57::1;;;;;;;;15432:259:::0;:::o;9484:503::-;9610:7;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;2617:17:57;::::1;;::::0;;;:8:::1;:17;::::0;;;;:30;9641:7;;;;2609:90:::1;;;;-1:-1:-1::0;;;2609:90:57::1;;;;;;;;:::i;:::-;;1979:19:42::2;:17;:19::i;:::-;9674:20:57::3;9697:27;::::0;;::::3;9708:4:::0;9697:27:::3;:::i;:::-;9674:50:::0;-1:-1:-1;;;;;;9755:49:57;::::3;:30;:12;9674:50:::0;9755:16:::3;:30::i;:::-;:38:::0;9857:7;;9866:12;;-1:-1:-1;;;;;9755:49:57::3;;9734:155;;;;-1:-1:-1::0;;;9734:155:57::3;;;;;;;;;:::i;:::-;;;9899:37;9916:12;9930:5;9899:16;:37::i;:::-;9966:7;-1:-1:-1::0;;;;;9951:29:57::3;;9975:4;;9951:29;;;;;;;:::i;:::-;;;;;;;;9664:323;4871:1:21::1;9484:503:57::0;;;;:::o;2553:126:12:-;2611:7;2620;2646:26;11409:7:21;11445:23;11470;;11445;;11342:159;13428:512:57;13591:7;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;;;13627:7:57::1;5161:42:21;5206:30;5220:15;5206:13;:30::i;:::-;5161:75;;5246:32;5268:9;5246:21;:32::i;:::-;5288:43;5314:9;5325:5;5288:25;:43::i;:::-;-1:-1:-1::0;;;;;2617:17:57;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;13666:7;;;;2609:90:::2;;;;-1:-1:-1::0;;;2609:90:57::2;;;;;;;;:::i;:::-;;1979:19:42::3;:17;:19::i;:::-;-1:-1:-1::0;;;;;13732:49:57;::::4;:30;:12;13749::::0;13732:16:::4;:30::i;:::-;:38:::0;13834:7;;13843:12;;-1:-1:-1;;;;;13732:49:57::4;;13711:155;;;;-1:-1:-1::0;;;13711:155:57::4;;;;;;;;;:::i;:::-;;;13876:57;13894:12;13908:6;13916:16;;;;;;;;;;;13876:17;:57::i;:::-;5341:1:21::2;5151:198:::1;4871:1;13428:512:57::0;;;;:::o;14661:190::-;2334:13:38;:11;:13::i;:::-;14766:78:57::1;14791:22;-1:-1:-1::0;;14766:24:57::1;:78::i;1379::16:-:0;1253:10;1238:26;;;;:14;:26;;;;;;;;1230:84;;;;-1:-1:-1;;;1230:84:16;;;;;;;;:::i;:::-;;1442:8:::1;:6;:8::i;5172:903:43:-:0;5270:13;5297:18;5329:21;5364:15;5393:25;5432:12;5458:27;5510:23;5536:19;:17;:19::i;:::-;5776:13;;5510:45;;-1:-1:-1;5776:18:43;:43;;;;-1:-1:-1;5798:16:43;;;;:21;5776:43;5768:77;;;;-1:-1:-1;;;5768:77:43;;20478:2:70;5768:77:43;;;20460:21:70;20517:2;20497:18;;;20490:30;-1:-1:-1;;;20536:18:70;;;20529:51;20597:18;;5768:77:43;20276:345:70;5768:77:43;5907:13;:11;:13::i;:::-;5934:16;:14;:16::i;:::-;6042;;;6026:1;6042:16;;;;;;;;;-1:-1:-1;;;5856:212:43;;;-1:-1:-1;5856:212:43;;-1:-1:-1;5964:13:43;;-1:-1:-1;5999:4:43;;-1:-1:-1;6026:1:43;-1:-1:-1;6042:16:43;-1:-1:-1;5856:212:43;-1:-1:-1;;5172:903:43:o;2441:144:38:-;2487:7;2506:24;2533:20;:18;:20::i;:::-;2570:8;-1:-1:-1;;;;;2570:8:38;;2441:144;-1:-1:-1;;2441:144:38:o;1518:484:41:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:34;;1822:9;1817:155;1837:15;;;1817:155;;;1886:75;1923:4;1943;;1948:1;1943:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1952;1930:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1886:28;:75::i;:::-;1873:7;1881:1;1873:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1854:3;;1817:155;;;;1981:14;1518:484;;;;;:::o;11495:867:57:-;11813:7;11690;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;;;11726:7:57::1;5161:42:21;5206:30;5220:15;5206:13;:30::i;:::-;5161:75;;5246:32;5268:9;5246:21;:32::i;:::-;5288:43;5314:9;5325:5;5288:25;:43::i;:::-;-1:-1:-1::0;;;;;2617:17:57;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;11765:7;;;;2609:90:::2;;;;-1:-1:-1::0;;;2609:90:57::2;;;;;;;;:::i;:::-;;1979:19:42::3;:17;:19::i;:::-;11836:24:57::4;::::0;11879:11:::4;:51;;;;;;;;:::i;:::-;::::0;11875:369:::4;;11965:32;11983:7;11992:4;;11965:17;:32::i;:::-;11946:51;;11875:369;;;12033:43;12018:11;:58;;;;;;;;:::i;:::-;::::0;12014:230:::4;;12111:38;12135:7;12144:4;;12111:23;:38::i;12014:230::-;12221:11;12187:46;;-1:-1:-1::0;;;12187:46:57::4;;;;;;;;:::i;12014:230::-;12292:11;12259:63;;;;;;;;:::i;:::-;12283:7;-1:-1:-1::0;;;;;12259:63:57::4;;12305:16;12259:63;;;;1776:25:70::0;;1764:2;1749:18;;1630:177;12259:63:57::4;;;;;;;;12339:16:::0;11495:867;-1:-1:-1;;;;;;;;;11495:867:57:o;17557:147::-;17631:4;17654:43;17671:7;17680:16;;;;;;;;;;;17654;:43::i;17183:108::-;17238:7;17272:11;:9;:11::i;3503:558::-;4158:30:39;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:39;-1:-1:-1;;;4302:15:39;;;4301:16;;-1:-1:-1;;;;;4348:14:39;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:39;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:39;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:39;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;;;;;4949:18:39;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:39;-1:-1:-1;;;5011:22:39;;;4977:67;3697:21:57::1;3712:5;3697:14;:21::i;:::-;3728:18;:16;:18::i;:::-;3756:20;:18;:20::i;:::-;3786:28;:26;:28::i;:::-;3824:50;;;;;;;;;;;;;;-1:-1:-1::0;;;3824:50:57::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;3824:50:57::1;;::::0;:24:::1;:50::i;:::-;3885:67;3910:22;-1:-1:-1::0;;3885:24:57::1;:67::i;:::-;3962:43;3982:22;3962:19;:43::i;:::-;4015:39;4036:17;4015:20;:39::i;:::-;5068:14:39::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:39;;;5140:14;;-1:-1:-1;23079:50:70;;5140:14:39;;23067:2:70;23052:18;5140:14:39;;;;;;;5064:101;4092:1079;;;;;3503:558:57;;;;:::o;12603:316::-;2311:10:69;2333:15;-1:-1:-1;;;;;2311:38:69;;;;2290:147;;;;-1:-1:-1;;;2290:147:69;;;;;;;;;:::i;:::-;-1:-1:-1;12704:14:57::1;::::0;-1:-1:-1;12704:14:57;12738:36:::1;::::0;;::::1;12749:4:::0;12738:36:::1;:::i;:::-;12703:71;;;;12784:15;:13;:15::i;:::-;-1:-1:-1::0;;;;;12784:21:57::1;;12806:7;12815:6;12823;12839:17;:15;:17::i;:::-;12784:74;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12784:74:57;;;-1:-1:-1;;;;;23740:32:70;;;12784:74:57::1;::::0;::::1;23722:51:70::0;23789:18;;;23782:34;;;;23832:18;;;23825:34;;;;23895:32;;;23875:18;;;23868:60;23694:19;;12784:74:57::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12896:7;-1:-1:-1::0;;;;;12873:39:57::1;;12905:6;12873:39;;;;1776:25:70::0;;1764:2;1749:18;;1630:177;12873:39:57::1;;;;;;;;12693:226;;12603:316:::0;;;:::o;6325:275::-;6467:7;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;;;1979:19:42::1;:17;:19::i;:::-;6500:35:57::2;6527:7;6500:26;:35::i;:::-;6550:43;::::0;-1:-1:-1;;;;;6550:43:57;::::2;::::0;::::2;::::0;;;::::2;6325:275:::0;;;;:::o;17334:180::-;17436:7;17462:45;17485:7;17494:12;17462:22;:45::i;:::-;17455:52;17334:180;-1:-1:-1;;;17334:180:57:o;16847:120::-;16908:7;16942:17;:15;:17::i;7797:616::-;7948:7;4707:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;4707:28:21;;4736:15;4761:4;4768:10;4707:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4823:15;4840:10;4686:175;;;;;;-1:-1:-1;;;4686:175:21;;;;;;;;;:::i;:::-;;;7984:7:57::1;5161:42:21;5206:30;5220:15;5206:13;:30::i;:::-;5161:75;;5246:32;5268:9;5246:21;:32::i;:::-;5288:43;5314:9;5325:5;5288:25;:43::i;:::-;-1:-1:-1::0;;;;;2617:17:57;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;8023:7;;;;2609:90:::2;;;;-1:-1:-1::0;;;2609:90:57::2;;;;;;;;:::i;:::-;;1979:19:42::3;:17;:19::i;:::-;8069:28:57::4;::::0;;;8169:86:::4;::::0;;::::4;8193:4:::0;8169:86:::4;:::i;:::-;8068:187;;;;;;;;8265:97;8275:7;8284:12;8298:20;8320:6;8328:15;8345:16;;;;;;;;;;;8265:9;:97::i;:::-;8392:7;-1:-1:-1::0;;;;;8377:29:57::4;;8401:4;;8377:29;;;;;;;:::i;:::-;;;;;;;;8058:355;;;;5341:1:21::2;5151:198:::1;4871:1;7797:616:57::0;;;;:::o;15070:140::-;2334:13:38;:11;:13::i;:::-;15164:39:57::1;15185:17;15164:20;:39::i;17010:130::-:0;17076:7;17110:22;:20;:22::i;12962:423::-;1979:19:42;:17;:19::i;:::-;13056:34:57::1;13093:30;:12;13110::::0;13093:16:::1;:30::i;:::-;13056:67;;13141:35;13160:15;;13141:10;:18;;:35;;;;:::i;:::-;13220:12;13133:101;;;;;-1:-1:-1::0;;;13133:101:57::1;;;;;;;;:::i;:::-;;13253:25;:10;:23;:25::i;:::-;13252:26;13318:12;13244:88;;;;;-1:-1:-1::0;;;13244:88:57::1;;;;;;;;:::i;:::-;;13342:36;13359:12;13373:4;13342:16;:36::i;3405:215:38:-:0;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:38;::::1;3485:91;;3562:1;3534:31;;-1:-1:-1::0;;;3534:31:38::1;;;;;;;;:::i;3485:91::-;3585:28;3604:8;3585:18;:28::i;2658:162::-:0;966:10:40;2717:7:38;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:38;;2713:101;;966:10:40;2763:40:38;;-1:-1:-1;;;2763:40:38;;;;;;;;:::i;6712:136:21:-;6775:16;:25;;-1:-1:-1;;;;6775:25:21;-1:-1:-1;;;6775:25:21;;;;;;;;;;;;;6815:26;;2728:42:70;;;6815:26:21;;2716:2:70;2701:18;6815:26:21;2584:192:70;6033:102:37;6115:13;;6033:102::o;12461:351:21:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12622:15:21;:13;:15::i;:::-;-1:-1:-1;;;;;12622:28:21;;12651:16;12677:4;12622:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12577:106;;12701:9;:19;;;-1:-1:-1;;;;;12701:24:21;12724:1;12701:24;;12761:16;12693:86;;;;;-1:-1:-1;;;12693:86:21;;;;;;;;:::i;:::-;-1:-1:-1;12796:9:21;12461:351;-1:-1:-1;;12461:351:21:o;9052:297::-;9212:24;;;;9192:17;;9160:182;;9192:44;;;:::i;:::-;9250:23;;9287;;9160:182;;;;;;;;;;;;;-1:-1:-1;;;9160:182:21;;;:18;:182::i;10151:755::-;10306:23;10331;10358:24;:22;:24::i;:::-;10305:77;;;;10392:27;10422:13;:74;;10472:10;:24;;;10422:74;;;10438:10;:31;;;10422:74;10392:104;;10506:93;10525:20;-1:-1:-1;;;;;10506:93:21;10547:16;-1:-1:-1;;;;;10506:93:21;10565:16;-1:-1:-1;;;;;10506:93:21;;;;;;;;;;;;;;-1:-1:-1;;;10506:93:21;;;:18;:93::i;:::-;10611:21;10634;10659:22;:20;:22::i;:::-;10610:71;;;;10691:28;10722:13;:76;;10773:10;:25;;;10722:76;;;10738:10;:32;;;10722:76;10691:107;;10808:91;10827:21;10808:91;;10850:14;10808:91;;10866:14;10808:91;;;;;;;;;;;;;;;-1:-1:-1;;;10808:91:21;;;:18;:91::i;:::-;10295:611;;;;;;10151:755;;:::o;2709:128:42:-;2774:8;:6;:8::i;:::-;2770:61;;;2805:15;;-1:-1:-1;;;2805:15:42;;;;;;;;;;;24755:228:57;-1:-1:-1;;;;;24855:29:57;;;;;;;:19;:29;;;;;;:52;;-1:-1:-1;;;;;;24855:52:57;;;;;;;;;24922:54;;;24855:29;24922:54;24755:228;;:::o;2294:354:16:-;-1:-1:-1;;;;;2400:30:16;;;;;;:14;:30;;;;;;2415:14;;2435:8;;2400:30;;:43;;2434:9;;2400:43;2379:154;;;;-1:-1:-1;;;2379:154:16;;-1:-1:-1;;;;;26492:32:70;;;2379:154:16;;;26474:51:70;26568:14;26561:22;26541:18;;;26534:50;26447:18;;2379:154:16;26306:284:70;2379:154:16;-1:-1:-1;;;;;;;2543:30:16;;;;;;:14;:30;;;;;;;;;:41;;-1:-1:-1;;2543:41:16;;;;;;;;;;2599:42;;6412:41:70;;;2599:42:16;;6385:18:70;2599:42:16;;;;;;;2294:354;;:::o;3478:178:42:-;2226:16;:14;:16::i;:::-;3536:25:::1;3564:21;:19;:21::i;:::-;3595:17:::0;;-1:-1:-1;;3595:17:42::1;::::0;;;-1:-1:-1;3627:22:42::1;966:10:40::0;3636:12:42::1;3627:22;;;;;;:::i;3459:526:14:-:0;-1:-1:-1;;;;;3593:29:14;;3556:34;3593:29;;;:11;:29;;;;;;;;3806:31;;;;;26775:36:70;;;26827:18;;;26820:60;;;;3806:31:14;;;;;;;;;26748:18:70;;;;3806:31:14;;3556:34;;3678:202;;3593:29;;3711:18;;3743;;3775:17;;3851:19;3678;:202::i;:::-;3632:248;;;;3916:16;-1:-1:-1;;;;;3896:82:14;;3934:14;3961:4;3950:27;;;;;;;;;;;;:::i;:::-;3896:82;;;;;;;:::i;18638:173:57:-;18702:6;18710;18736:17;:15;:17::i;:::-;-1:-1:-1;;;;;18736:39:57;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18728:76;452:9:35;;-1:-1:-1;18638:173:57;-1:-1:-1;18638:173:57:o;7267:123:61:-;7325:4;7348:13;:4;7092:14;;;:19;;;7011:107;7348:13;:35;;;;-1:-1:-1;;7365:13:61;;;:18;;7267:123::o;1147:162:42:-;1270:23;;1147:162::o;3774:248:38:-;3847:24;3874:20;:18;:20::i;:::-;3923:8;;-1:-1:-1;;;;;3941:19:38;;;-1:-1:-1;;;;;;3941:19:38;;;;;;3975:40;;3847:47;;-1:-1:-1;3923:8:38;;;;;3975:40;;3904:16;;3975:40;3837:185;;3774:248;:::o;18172:205:57:-;18238:6;18246;18264:20;18287:17;:15;:17::i;:::-;-1:-1:-1;;;;;18287:34:57;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18264:59;;;-1:-1:-1;18172:205:57;-1:-1:-1;;18172:205:57:o;19915:166:65:-;19989:15;:34;;;20038:36;;1776:25:70;;;20038:36:65;;1764:2:70;1749:18;20038:36:65;1630:177:70;7528:293:65;7653:74;:18;7680:8;7690:13;7705:21;7653:26;:74::i;:::-;7792:21;7777:13;-1:-1:-1;;;;;7742:72:65;7767:8;-1:-1:-1;;;;;7742:72:65;;;;;;;;;;;7528:293;;;:::o;6206:160:61:-;6304:12;;:::i;:::-;6335:24;6340:4;6346:12;6335:4;:24::i;:::-;6328:31;;;;;;;;;;-1:-1:-1;;;;;6328:31:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6206:160;-1:-1:-1;;;6206:160:61:o;18661:997:65:-;18748:34;18785:31;:12;18802:13;18785:16;:31::i;:::-;18748:68;;18919:161;18961:13;18988:22;:20;:22::i;:::-;-1:-1:-1;;;;;18988:49:65;;19038:10;:31;;;18988:82;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;18988:82:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18919:12;;:161;:28;:161::i;:::-;19091:33;:12;19110:13;19091:18;:33::i;:::-;19169:18;;19189:17;;;;19134:73;;:26;;:34;:73::i;:::-;19431:10;:17;;;19359:24;:57;19384:10;:31;;;19359:57;;;;;;;;;;;;:89;;;;:::i;:::-;19287:24;:57;19312:10;:31;;;19287:57;;;;;;;;;;;:161;;;;19553:10;:31;;;19526:13;-1:-1:-1;;;;;19464:187:65;19494:10;:18;;;-1:-1:-1;;;;;19464:187:65;;19598:10;:17;;;19629:12;19464:187;;;;;;27802:25:70;;;27870:14;27863:22;27858:2;27843:18;;27836:50;27790:2;27775:18;;27634:258;19464:187:65;;;;;;;;18738:920;18661:997;;:::o;16041:1968::-;16152:34;16189:31;:12;16206:13;16189:16;:31::i;:::-;16152:68;;16238:19;:10;:17;:19::i;:::-;16293:13;16230:78;;;;;-1:-1:-1;;;16230:78:65;;;;;;;;:::i;:::-;;16337:10;:17;;;16326:7;:28;;16392:13;16407:7;16318:98;;;;;;-1:-1:-1;;;16318:98:65;;;;;;;;;:::i;:::-;-1:-1:-1;;16483:17:65;;;;16514:19;;;16510:263;;;16549:107;16581:15;:13;:15::i;:::-;16598:18;;16618:19;16628:9;16618:7;:19;:::i;:::-;16549:26;;:107;;16639:16;16549:31;:107::i;:::-;16510:263;;;16722:18;;16687:75;;16742:19;16754:7;16742:9;:19;:::i;:::-;16687:26;;:75;:34;:75::i;:::-;16878:35;16916:22;:20;:22::i;:::-;-1:-1:-1;;;;;16916:49:65;;16979:10;:31;;;16916:104;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;16916:104:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16878:142;;17030:42;17076:25;:10;:23;:25::i;:::-;17075:26;:125;;17199:1;17075:125;;;17146:38;;;;17116:68;;:27;:68;:::i;:::-;-1:-1:-1;;;;;17244:27:65;;;;;;:12;:27;;;;;:34;;;:44;;;17298:55;;:85;;;17030:170;-1:-1:-1;17442:22:65;:20;:22::i;:::-;-1:-1:-1;;;;;17442:34:65;;17490:9;17513:34;17442:115;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17393:27:65;;;;;;:12;:27;;;;;:45;;:164;;:45;;:27;:164;;;;;:::i;:::-;;;;-1:-1:-1;;17641:19:65;;;17637:245;;;17738:19;17748:9;17738:7;:19;:::i;:::-;17676:24;:57;17701:10;:31;;;17676:57;;;;;;;;;;;;:82;;;;;;;:::i;:::-;;;;-1:-1:-1;17637:245:65;;-1:-1:-1;17637:245:65;;17851:19;17863:7;17851:9;:19;:::i;:::-;17789:24;:57;17814:10;:31;;;17789:57;;;;;;;;;;;;:82;;;;;;;:::i;:::-;;;;-1:-1:-1;;17637:245:65;17950:10;:31;;;17935:13;-1:-1:-1;;;;;17897:105:65;17915:10;:18;;;-1:-1:-1;;;;;17897:105:65;;17983:7;17992:9;17897:105;;;;;;;:::i;:::-;;;;;;;;16142:1867;;;;16041:1968;;;:::o;7068:281:21:-;7157:4;7165;7157:12;;;;7149:63;;;;-1:-1:-1;;;7149:63:21;;;;;;;;;:::i;:::-;-1:-1:-1;;7222:23:21;:30;;;7262:23;:30;;;7307:35;;;;;;7248:4;;7288;;7307:35;:::i;:::-;;;;;;;;7068:281;;:::o;3170:176:42:-;1979:19;:17;:19::i;:::-;3229:25:::1;3257:21;:19;:21::i;:::-;3288:16:::0;;-1:-1:-1;;3288:16:42::1;3300:4;3288:16;::::0;;3229:49;-1:-1:-1;3319:20:42::1;3326:12;966:10:40::0;;887:96;2720:156:43;2839:21;;2720:156::o;6299:155::-;6353:13;6378:23;6404:19;:17;:19::i;:::-;6378:45;;6440:1;:7;;6433:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6299:155;:::o;6681:161::-;6738:13;6763:23;6789:19;:17;:19::i;:::-;6763:45;;6825:1;:10;;6818:17;;;;;:::i;1192:159:38:-;1313:22;;1192:159::o;3916:253:46:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:46;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;:::-;4100:62;3916:253;-1:-1:-1;;;;;3916:253:46:o;20474:3066:57:-;20556:7;;;20652:93;;;;20676:4;20652:93;:::i;:::-;20776:13;;:29;;;20575:170;;-1:-1:-1;20575:170:57;-1:-1:-1;20809:7:57;-1:-1:-1;;;;;20776:40:57;;;;;;;20755:155;;;;-1:-1:-1;;;20755:155:57;;;;;;;;;:::i;:::-;-1:-1:-1;;21122:13:57;;:26;-1:-1:-1;;;;;21114:56:57;;;21093:163;;;;-1:-1:-1;;;21093:163:57;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;21093:163:57;-1:-1:-1;21313:13:57;;:26;21266:20;21389:30;:12;21313:26;21389:16;:30::i;:::-;21523:18;;21352:67;;-1:-1:-1;21545:7:57;;-1:-1:-1;;;;;21523:29:57;;;;;;;21515:94;;;;-1:-1:-1;;;21515:94:57;;;;;;;;;:::i;:::-;-1:-1:-1;;21650:31:57;;;;21732:25;21746:7;21619:28;21732:13;:25::i;:::-;21863:23;21896:22;21942:21;21966:13;:11;:13::i;:::-;-1:-1:-1;;;;;21966:23:57;;21998:4;21966:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21942:62;;22037:22;:20;:22::i;:::-;-1:-1:-1;;;;;22037:30:57;;22085:36;22139:99;22161:9;22172:11;:9;:11::i;:::-;-1:-1:-1;;;;;22172:21:57;;22194:20;22172:43;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;22172:43:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;22236:1;22139:21;:99::i;22172:65::-;22218:15;;22139:21;:99::i;:::-;22256:15;22037:248;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22019:266;;22300:20;22323:13;:11;:13::i;:::-;-1:-1:-1;;;;;22323:23:57;;22355:4;22323:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22300:61;-1:-1:-1;22399:13:57;22300:61;22383:29;;;;22375:106;;;;-1:-1:-1;;;22375:106:57;;;;;;;;;:::i;:::-;-1:-1:-1;22512:28:57;;-1:-1:-1;22527:13:57;22512:12;:28;:::i;:::-;22495:45;-1:-1:-1;;22565:19:57;;;-1:-1:-1;22561:726:57;;22656:173;22684:7;22727:16;;22709:15;:34;;;;:::i;:::-;22779:17;:15;:17::i;:::-;-1:-1:-1;;;;;22779:34:57;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22761:54;;-1:-1:-1;;;;;22761:54:57;:15;:54;:::i;:::-;22656:10;:173::i;:::-;22848:18;;22844:433;;22977:22;:20;:22::i;:::-;-1:-1:-1;;;;;22977:45:57;;23023:20;22977:67;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;22977:67:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23125:62;23158:11;:9;:11::i;:::-;23172:14;23125:13;:11;:13::i;:::-;-1:-1:-1;;;;;23125:24:57;;:62;:24;:62::i;:::-;23205:11;:9;:11::i;:::-;-1:-1:-1;;;;;23205:19:57;;23225:20;23247:14;23205:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22844:433;23355:13;;:19;;;;;23302:199;;;31576:25:70;;;31617:18;;;31610:34;;;31660:18;;31653:34;;;-1:-1:-1;;;;;23302:199:57;;;;;;;;;;;;;;31564:2:70;31549:18;23302:199:57;;;;;;;-1:-1:-1;23518:15:57;20474:3066;-1:-1:-1;;;;;;;;;20474:3066:57:o;23977:498::-;24065:7;;;;24150:43;;;;24161:4;24150:43;:::i;:::-;24084:109;;-1:-1:-1;24084:109:57;-1:-1:-1;24084:109:57;-1:-1:-1;;;;;;24224:49:57;;:30;:12;24084:109;24224:16;:30::i;:::-;:38;24326:7;;24335:12;;-1:-1:-1;;;;;24224:49:57;;24203:155;;;;-1:-1:-1;;;24203:155:57;;;;;;;;;:::i;:::-;-1:-1:-1;;24421:16:57;;-1:-1:-1;;;;;24439:28:57;;;;;;;:19;:28;;;;;;24375:93;;24387:12;;24401:4;;24407:12;;-1:-1:-1;;;24421:16:57;;;;;24439:28;24375:11;:93::i;:::-;24368:100;23977:498;-1:-1:-1;;;;;;;23977:498:57:o;20829:200:65:-;20921:4;20945:77;20978:15;:13;:15::i;:::-;20945:26;;20995:8;21005:16;20945:32;:77::i;:::-;20944:78;;20829:200;-1:-1:-1;;;20829:200:65:o;4102:87:69:-;4174:8;;4102:87::o;9071:205:39:-;9129:30;;3147:66;9186:27;8819:122;1847:127:38;6929:20:39;:18;:20::i;:::-;1929:38:38::1;1954:12;1929:24;:38::i;1218:61:41:-:0;6929:20:39;:18;:20::i;2912:148:12:-;6929:20:39;:18;:20::i;:::-;2978:35:12::1;:33;:35::i;:::-;3023:30;:28;:30::i;1669:156:16:-:0;6929:20:39;:18;:20::i;:::-;1743:27:16::1;:25;:27::i;6685:198:65:-:0;6929:20:39;:18;:20::i;:::-;6800:30:65::1;6814:5;6821:8;6800:13;:30::i;:::-;6840:36;:34;:36::i;25105:258:57:-:0;25188:17;25209:1;25188:22;25180:77;;;;-1:-1:-1;;;25180:77:57;;;;;;;;;;;;25267:16;:36;;;25318:38;;1776:25:70;;;25318:38:57;;1764:2:70;1749:18;25318:38:57;1630:177:70;3624:106:69;3708:15;;3624:106::o;6369:206:21:-;6450:49;6476:16;6494:4;6450:25;:49::i;:::-;6509:15;:13;:15::i;:::-;-1:-1:-1;;;;;6509:41:21;;6551:16;6509:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6369:206;:::o;20313:230:65:-;20409:7;20435:101;2088:68;20510:8;20520:13;20462:72;;;;;;;;;32489:25:70;;;-1:-1:-1;;;;;32550:32:70;;;32545:2;32530:18;;32523:60;32619:32;32614:2;32599:18;;32592:60;32477:2;32462:18;;32287:371;20462:72:65;;;;;;;;;;;;;20452:83;;;;;;20435:16;:101::i;8531:1573::-;-1:-1:-1;;;;;8776:27:65;;8768:80;;;;-1:-1:-1;;;8768:80:65;;;;;;;;;;;;8859:65;8882:8;8892:13;8907:16;8859:22;:65::i;:::-;9077;9111:15;:13;:15::i;:::-;9077:18;;9128:13;9077:33;:65::i;:::-;9153:20;9176;:18;:20::i;:::-;-1:-1:-1;;;;;9176:33:65;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9153:58;;9221:34;9258:246;9291:8;9313:13;9340:21;9375:7;9396:22;:20;:22::i;:::-;-1:-1:-1;;;;;9396:49:65;;9446:21;9396:72;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;9396:72:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9258:12;;:246;;;;9482:12;9258:19;:246::i;:::-;9221:283;;9657:85;9689:15;:13;:15::i;:::-;9657:26;;9706:8;9716:7;9725:16;9657:31;:85::i;:::-;9966:10;:17;;;9894:24;:57;9919:10;:31;;;9894:57;;;;;;;;;;;;:89;;;;:::i;:::-;9822:24;:57;9847:10;:31;;;9822:57;;;;;;;;;;;:161;;;;10042:21;10027:13;-1:-1:-1;;;;;9999:98:65;10017:8;-1:-1:-1;;;;;9999:98:65;;10065:10;:17;;;10084:12;9999:98;;;;;;;:::i;:::-;;;;;;;;8758:1346;;8531:1573;;;;;;:::o;3868:122:69:-;3962:21;;3868:122::o;6597:267:61:-;6680:4;6696:24;6741:49;6750:4;:14;;;6766:4;:23;;;6741:8;:49::i;:::-;6723:67;;:15;:67;:::i;:::-;6696:94;;6807:13;:4;:11;:13::i;:::-;:50;;;;;6843:14;6824:16;:33;6807:50;6800:57;6597:267;-1:-1:-1;;;;6597:267:61:o;7551:127::-;7615:4;7638:13;:4;7092:14;;;:19;;;7011:107;7638:13;:33;;;;-1:-1:-1;;7655:11:61;;;:16;;7551:127::o;13114:234:21:-;13246:28;:6;13263:4;13269;13246:16;:28::i;:::-;13305:14;13321:6;13329:4;13335;13238:103;;;;;;;;-1:-1:-1;;;13238:103:21;;;;;;;;;;;:::i;2909:126:42:-;2972:8;:6;:8::i;:::-;2967:62;;3003:15;;-1:-1:-1;;;3003:15:42;;;;;;;;;;;6153:127:14;6221:7;6247:16;;;:6;:16;;;;;:26;;;;6153:127::o;4461:726::-;4543:4;4549:12;4573:23;4599:24;4614:8;4599:14;:24::i;:::-;4573:50;;4681:15;4660:5;:18;;;:36;4656:103;;;-1:-1:-1;;1301:9:33;;;;;;;;;-1:-1:-1;1301:9:33;;4720:4:14;;-1:-1:-1;4712:36:14;;4656:103;4788:21;4811:23;4849:4;4838:36;;;;;;;;;;;;:::i;:::-;4950:12;;4787:87;;-1:-1:-1;4787:87:14;-1:-1:-1;4904:59:14;;:20;;4787:87;;4904:28;:59::i;:::-;5014:8;4997:15;-1:-1:-1;;;;;4978:79:14;;5024:5;:12;;;5038:5;:18;;;4978:79;;;;;;;:::i;:::-;;;;;;;;5120:12;;5104:28;;:13;:28;:::i;:::-;5093:57;;;;;;33652:25:70;;;;-1:-1:-1;;;;;33713:32:70;;33693:18;;;33686:60;33625:18;;5093:57:14;;;;;;;;;;;;5086:64;;5168:5;5175:4;5160:20;;;;;;;4461:726;;;;;;:::o;5397:93::-;5467:16;;;;:6;:16;;;;;5460:23;;;;;;;;;;;;;;;;;;5397:93::o;4803:945:33:-;5119:7;5128:12;5174:4;:10;;;5160;:24;;5152:64;;;;-1:-1:-1;;;5152:64:33;;;;;;;;;;;;5227:17;5272:15;;5271:43;;5304:10;5271:43;;;5291:4;:10;;;5271:43;5342:9;;5258:56;;-1:-1:-1;5362:335:33;5369:20;;;;;:38;;;5406:1;5393:10;:14;5369:38;5362:335;;;5424:16;5442:17;5463:35;5475:6;5483:14;5463:11;:35;;:::i;:::-;5423:75;;;;5517:11;5513:22;;;5530:5;;;;5513:22;5567:4;-1:-1:-1;5567:4:33;5594:40;:4;5610:11;5623:10;5594:15;:40::i;:::-;5585:49;-1:-1:-1;5649:12:33;;;;:::i;:::-;;;;5675:11;;;;;:::i;:::-;;;;5409:288;;5362:335;;;-1:-1:-1;5715:9:33;5726:14;;-1:-1:-1;4803:945:33;;-1:-1:-1;;;;;;4803:945:33:o;1904:375:63:-;-1:-1:-1;;;;;2096:18:63;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;:25;:27::i;:::-;2095:28;2155:12;2087:82;;;;;-1:-1:-1;;;2087:82:63;;;;;;;;:::i;:::-;-1:-1:-1;2201:71:63;;;;;;;;-1:-1:-1;;;;;2201:71:63;;;;;;;;;;;;2180:18;;;-1:-1:-1;2180:18:63;;;;;;;;;;:92;;;;-1:-1:-1;;;;;;2180:92:63;;;;;;;;;;;-1:-1:-1;2180:92:63;;;;1904:375::o;7930:278:61:-;-1:-1:-1;;;;;8080:18:61;;;8028:13;8080:18;;;;;;;;;;;8116:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8028:13;;8116:19;;7092:14;;;:19;;;7011:107;8116:19;8160:12;8108:66;;;;;-1:-1:-1;;;8108:66:61;;;;;;;;:::i;:::-;-1:-1:-1;8191:10:61;7930:278;-1:-1:-1;;;7930:278:61:o;7144:117:37:-;7233:21;;7144:117::o;4561:400:61:-;4734:24;4761;4766:4;4772:12;4761:4;:24::i;:::-;4803:17;;;;;;;;;;-1:-1:-1;;;;;4803:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4734:51;;-1:-1:-1;4803:19:61;;:17;:19::i;:::-;4855;;;;4841:12;;4795:81;;;;-1:-1:-1;;;4795:81:61;;;;;;;;;:::i;:::-;-1:-1:-1;;4886:38:61;;:68;-1:-1:-1;;4561:400:61:o;5737:292::-;5833:24;5860;5865:4;5871:12;5860:4;:24::i;:::-;5902:17;;;;;;;;;;-1:-1:-1;;;;;5902:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5833:51;;-1:-1:-1;5902:19:61;;:17;:19::i;:::-;5954;;;;5940:12;;5894:81;;;;-1:-1:-1;;;5894:81:61;;;;;;;;;:::i;:::-;-1:-1:-1;;6007:15:61;5985:19;;;;:37;-1:-1:-1;;5737:292:61:o;2591:307:20:-;2714:6;2724:1;2714:11;2710:24;;2591:307;;;:::o;2710:24::-;-1:-1:-1;;;;;2751:21:20;;;;;;;;;;;;;;2776:6;2751:31;;;;2743:107;;;;-1:-1:-1;;;2743:107:20;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;2860:21:20;;;;;;;;;;;;;:31;;2885:6;;2860:21;:31;;2885:6;;2860:31;:::i;:::-;;;;-1:-1:-1;;;;;2591:307:20:o;1637:590::-;1853:24;;1870:7;1853:24;-1:-1:-1;;;;;1912:21:20;;1887:22;1912:21;;;;;;;;;;;:30;;1936:6;;1912:30;:::i;:::-;1887:55;;1952:23;1978:12;-1:-1:-1;;;;;1978:31:20;;2010:15;2035:4;2042:15;1978:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1952:106;-1:-1:-1;1952:106:20;2076:14;:33;;;;2068:111;;;;-1:-1:-1;;;2068:111:20;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;2189:21:20;;;;;;;;;;;;;:31;;2214:6;;2189:21;:31;;2214:6;;2189:31;:::i;:::-;;;;-1:-1:-1;;;;1637:590:20;;;;;:::o;4437:582:46:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:46;;;:23;4857:49;4853:119;;;4950:6;4933:24;;-1:-1:-1;;;4933:24:46;;;;;;;;:::i;4853:119::-;-1:-1:-1;4992:10:46;4985:17;;5825:94:37;5901:11;;5825:94::o;25639:269:57:-;25870:13;;:29;;;;;-1:-1:-1;;;;;25850:50:57;;;;;;;:19;:50;;;;;;;;;25815:86;;25784:12;;25815:86;;25826:9;;25837:11;;25850:50;;;;;25815:86;;:::i;:::-;;;;;;;;;;;;;25808:93;;25639:269;;;;:::o;1865:860:14:-;1981:7;1992:1;1981:12;1973:50;;;;-1:-1:-1;;;1973:50:14;;;;;;;;;;;;2033:87;2059:15;:13;:15::i;:::-;2103:16;;2033:20;;:87;2076:16;;2094:7;;2103:16;-1:-1:-1;;;2103:16:14;;;;;;2033:25;:87;:::i;:::-;-1:-1:-1;;;;;2168:29:14;;2131:34;2168:29;;;:11;:29;;;;;;;;2300:16;;;;;6618:57;;-1:-1:-1;;;;;;6643:4:14;38869:2:70;38840:15;;;38836:45;;6618:57:14;;;38824:58:70;38916:15;;;38912:45;38898:12;;;38891:67;38974:12;;;;38967:28;;;;6618:57:14;;;;;;;;;;39011:12:70;;;6618:57:14;;;6608:68;;;;;;;;;2345:170;;;;;;;;2410:15;2345:170;;;;;;;;;;;;;;;;;;;2327:15;;;:6;:15;;;;;;;:188;;;;;;;;;;;;;;;;;;;;;;;2529:16;;;2168:29;;6608:68;2529:21;2525:70;;2559:15;;;;2552:23;;;;:6;:23;;;;;:33;;:43;;;2525:70;2605:27;:10;2624:7;2605:18;:27::i;:::-;2683:7;2665:16;-1:-1:-1;;;;;2648:70:14;;2692:7;2701:16;2648:70;;;;;;;:::i;:::-;;;;;;;;1963:762;;1865:860;;;:::o;1050:198:11:-;1148:11;;1144:98;;1183:34;;-1:-1:-1;;;1183:34:11;;-1:-1:-1;;;;;1183:20:11;;;;;:34;;1204:3;;1209:7;;1183:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1175:56;;;;-1:-1:-1;;;1175:56:11;;36122:2:70;1175:56:11;;;36104:21:70;36161:1;36141:18;;;36134:29;-1:-1:-1;;;36179:18:70;;;36172:39;36228:18;;1175:56:11;35920:332:70;11846:3420:65;12050:7;;12106:31;:12;12123:13;12106:16;:31::i;:::-;12069:68;;12155:19;:10;:17;:19::i;:::-;12210:13;12147:78;;;;;-1:-1:-1;;;12147:78:65;;;;;;;;:::i;:::-;;12295:21;12321:35;12340:15;;12321:10;:18;;:35;;;;:::i;:::-;12320:36;:78;;;;;12373:25;:10;:23;:25::i;:::-;12372:26;12320:78;:112;;;;-1:-1:-1;12414:18:65;;;12320:112;12319:181;;;;;12475:10;:25;;;12437:20;:18;:20::i;:::-;-1:-1:-1;;;;;12437:33:65;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;12319:181;:261;;12579:1;12319:261;;;12515:22;:20;:22::i;:::-;-1:-1:-1;;;;;12515:34:65;;12550:13;12515:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12295:285;;12700:161;12742:13;12769:22;:20;:22::i;:::-;-1:-1:-1;;;;;12769:49:65;;12819:10;:31;;;12769:82;;;;;;;;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;12700:161:65;12871:38;:12;12895:13;12871:23;:38::i;:::-;12982:47;:12;13015:13;12982:32;:47::i;:::-;13040:28;;13131:18;;13127:1531;;13213:20;13236:15;:13;:15::i;:::-;13289:18;;13236:177;;-1:-1:-1;;;13236:177:65;;-1:-1:-1;;;;;13236:35:65;;;;;;;:177;;13333:4;;13356:43;;13236:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13213:200;;13427:57;13487:15;:13;:15::i;:::-;13538:18;;13487:114;;-1:-1:-1;;;13487:114:65;;-1:-1:-1;;;;;13487:33:65;;;;;;;:114;;13582:4;;13487:114;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13427:174;;13768:1;13744:14;:21;;;:25;:66;;13809:1;13744:66;;;13772:34;:13;13793:12;13772:20;:34::i;:::-;13718:92;-1:-1:-1;13828:27:65;;13824:251;;13875:13;:11;:13::i;:::-;-1:-1:-1;;;;;13875:21:65;;13905:15;:13;:15::i;:::-;13923:23;13875:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13965:15;:13;:15::i;:::-;14001:18;;13965:95;;-1:-1:-1;;;13965:95:65;;-1:-1:-1;;;;;13965:35:65;;;;;;;:95;;14029:4;;14036:23;;13965:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13824:251;14157:39;14173:23;14157:13;:39;:::i;:::-;14134:62;-1:-1:-1;14214:24:65;;14210:438;;-1:-1:-1;;;;;14262:34:65;;14258:376;;14320:13;:11;:13::i;:::-;-1:-1:-1;;;;;14320:21:65;;14350:15;:13;:15::i;:::-;14368:20;14320:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14411:15;:13;:15::i;:::-;14444:18;;14411:89;;-1:-1:-1;;;14411:89:65;;-1:-1:-1;;;;;14411:32:65;;;;;;;:89;;14472:4;;14479:20;;14411:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14258:376;;;14547:68;14572:20;14594;14547:13;:11;:13::i;:68::-;13151:1507;;13127:1531;14770:31;;;;14711:18;;-1:-1:-1;;;;;14673:329:65;;;;;;14815:13;14842:20;14876:23;14913:4;14931:12;14957:20;:18;:20::i;:::-;-1:-1:-1;;;;;14957:33:65;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14673:329;;;;;;;;;;;:::i;:::-;;;;;;;;15128:18;;15111:54;;15148:16;15111;:54::i;:::-;15107:122;;;15181:37;15198:13;15213:4;15181:16;:37::i;:::-;-1:-1:-1;15246:13:65;;11846:3420;-1:-1:-1;;;;;;;;11846:3420:65:o;3357:383:20:-;3554:4;3570:23;3596:12;-1:-1:-1;;;;;3596:31:20;;3628:15;3653:4;3660:15;3596:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3693:21:20;;;;;;;;;;;;;;:40;;;-1:-1:-1;;3357:383:20;;;;;;:::o;7082:141:39:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:39;;;;;;;;;;;1980:235:38;6929:20:39;:18;:20::i;5676:397:21:-;6929:20:39;:18;:20::i;:::-;5757:84:21::1;2047:17;-1:-1:-1::0;;5757:24:21::1;:84::i;:::-;5851:72;1523:16;452:9:35;5851:20:21;:72::i;:::-;5933:78;1784:16;-1:-1:-1::0;;;;;5933:22:21::1;:78::i;:::-;6021:45;2304:16;6021:19;:45::i;3446:147:43:-:0;6929:20:39;:18;:20::i;:::-;3548:38:43::1;3572:4;3578:7;3548:23;:38::i;9617:257:21:-:0;9730:42;9775:31;9789:16;9775:13;:31::i;:::-;9730:76;;9816:51;9842:9;9853:13;9816:25;:51::i;4946:176:43:-;5023:7;5049:66;5082:20;:18;:20::i;:::-;5104:10;4049:4:51;4043:11;-1:-1:-1;;;4067:23:51;;4119:4;4110:14;;4103:39;;;;4171:4;4162:14;;4155:34;4227:4;4212:20;;;3874:374;21414:317:65;21531:14;21548:70;21562:47;21585:8;21595:13;21562:22;:47::i;:::-;21611:6;21548:13;:70::i;:::-;21531:87;-1:-1:-1;21531:87:65;21646:13;-1:-1:-1;;;;;21636:23:65;;;;;;;21628:96;;;;-1:-1:-1;;;21628:96:65;;;;;;;;;:::i;:::-;;;21521:210;21414:317;;;:::o;3104:363:63:-;-1:-1:-1;;;;;3283:18:63;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;:25;:27::i;:::-;3282:28;3342:12;3274:82;;;;;-1:-1:-1;;;3274:82:63;;;;;;;;:::i;:::-;-1:-1:-1;3375:39:63;;-1:-1:-1;;;3375:39:63;;-1:-1:-1;;;;;3375:25:63;;;;;:39;;3401:12;;3375:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3374:40;3446:12;3366:94;;;;;-1:-1:-1;;;3366:94:63;;;;;;;;:::i;:::-;;3104:363;;;:::o;6911:111:37:-;6996:19;;6911:111::o;2747:875:61:-;3029:12;;:::i;:::-;-1:-1:-1;;;;;3062:18:61;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;7092:14;;;:19;;;7011:107;3062:27;3061:28;3115:12;3053:76;;;;;-1:-1:-1;;;3053:76:61;;;;;;;;:::i;:::-;-1:-1:-1;;3166:379:61;;;;;;;;-1:-1:-1;;;;;3166:379:61;;;;;;;;;;;;;;;;;;3311:15;3166:379;;;;;;-1:-1:-1;3166:379:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3556:18;;;;;;;;;;;;;:31;;;;-1:-1:-1;;;;;;3556:31:61;;;;;;;;;;;-1:-1:-1;3556:31:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:379;2747:875::o;5435:111:52:-;5493:7;5312:5;;;5527;;;5311:36;5306:42;;5519:20;5071:294;624:141:36;707:4;739:3;730:5;:12;;:28;;;;-1:-1:-1;;746:12:36;;;;;723:35;-1:-1:-1;624:141:36:o;5649:243:14:-;5713:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5713:17:14;5742:23;5768:16;;;:6;:16;;;;;;;;;5742:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5775:8;;5794:69;;;;-1:-1:-1;;;5794:69:14;;;;;;1776:25:70;;1764:2;1749:18;;1630:177;3288:459:33;3459:7;3499:1;3486:4;:10;;;:14;3478:46;;;;-1:-1:-1;;;3478:46:33;;;;;;;;;;;;3534:16;3553:22;3565:4;:9;;;3553:11;:22;;:::i;:::-;3534:41;;3585:21;3596:4;:9;;;3585:10;:21;;:::i;:::-;3630:1;3616:4;:10;;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;3641:20:33;;;3675:10;;;;3641:9;3675:15;3671:43;;3712:1;3692:9;;;:22;3671:43;-1:-1:-1;;3731:9:33;;;3288:459;-1:-1:-1;;3288:459:33:o;3626:114:63:-;3707:12;-1:-1:-1;;;;;3707:26:63;;;;3626:114::o;5559:487:46:-;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:46;;;;;;;;;;;2446:319:33;1415:6;2521:4;:10;;;:22;2513:64;;;;-1:-1:-1;;;2513:64:33;;;;;;;;;;;;2595:2;2587:52;;;;-1:-1:-1;;;2587:52:33;;;;;;;;;;;;2649:9;;;;:14;;;2673:10;;;:15;;:10;;:15;;2649:9;;2673:15;:::i;:::-;;;;-1:-1:-1;;2702:10:33;;;;2716:1;2702:15;2698:35;;2719:14;;;2698:35;2757:1;2743:4;:10;;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;2446:319:33:o;3903:307:61:-;4004:24;4031;4036:4;4042:12;4031:4;:24::i;:::-;4073:17;;;;;;;;;;-1:-1:-1;;;;;4073:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4004:51;;-1:-1:-1;4073:19:61;;:17;:19::i;:::-;4125;;;;4111:12;;4065:81;;;;-1:-1:-1;;;4065:81:61;;;;;;;;;:::i;:::-;-1:-1:-1;;4188:15:61;4156:29;;;;:47;-1:-1:-1;;3903:307:61:o;5224:301::-;5334:24;5361;5366:4;5372:12;5361:4;:24::i;:::-;5403:17;;;;;;;;;;-1:-1:-1;;;;;5403:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:51;;-1:-1:-1;5403:19:61;;:17;:19::i;:::-;5455;;;;5441:12;;5395:81;;;;-1:-1:-1;;;5395:81:61;;;;;;;;;:::i;:::-;-1:-1:-1;;5517:1:61;5486:28;;;;:32;-1:-1:-1;;5224:301:61:o;1099:188:35:-;1160:7;1187:13;1198:1;452:9;-1:-1:-1;2073:16:35;;1992:104;1187:13;:30;;;;1204:13;1215:1;452:9;-1:-1:-1;2073:16:35;;1992:104;1204:13;1240:1;1243;1179:67;;;;;;-1:-1:-1;;;1179:67:35;;;;;;;;;:::i;:::-;-1:-1:-1;452:9:35;;-1:-1:-1;1264:5:35;1268:1;1264;:5;:::i;:::-;1263:17;;;;:::i;8485:120:39:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:39;;;;;;-1:-1:-1;8485:120:39:o;7565:348:21:-;7648:4;7656;7648:12;;;;;;;;;7640:63;;;;-1:-1:-1;;;7640:63:21;;;;;;;;;:::i;:::-;-1:-1:-1;7776:4:21;;-1:-1:-1;7721:24:21;;;;452:9:35;-1:-1:-1;2073:16:35;7713:75:21;;;;-1:-1:-1;;;7713:75:21;;;;;;;;;:::i;:::-;-1:-1:-1;;7798:19:21;:26;;;7834;;;-1:-1:-1;;;7834:26:21;-1:-1:-1;;;;7798:26:21;;;-1:-1:-1;;;7798:26:21;7834;;;;-1:-1:-1;;;;;;;;7834:26:21;;;;;;;;;;7875:31;;;;;;7820:4;;7856;;7875:31;:::i;8127:271::-;8212:4;8220;-1:-1:-1;;;;;8212:12:21;;;;;;;;8204:63;;;;-1:-1:-1;;;8204:63:21;;;;;;;;;:::i;:::-;-1:-1:-1;;8277:21:21;:28;;-1:-1:-1;;;;;8315:28:21;;;-1:-1:-1;;;8315:28:21;-1:-1:-1;;;;;;8315:28:21;;;8277;;;8315;;;;8358:33;;;;;;8301:4;;8339;;8358:33;:::i;3599:330:43:-;6929:20:39;:18;:20::i;:::-;3711:23:43::1;3737:19;:17;:19::i;:::-;3711:45:::0;-1:-1:-1;3766:7:43::1;::::0;::::1;:14;3776:4:::0;3766:7;:14:::1;:::i;:::-;-1:-1:-1::0;3790:10:43::1;::::0;::::1;:20;3803:7:::0;3790:10;:20:::1;:::i;:::-;-1:-1:-1::0;3891:1:43::1;3875:17:::0;;;3902:16:::1;::::0;;::::1;:20:::0;-1:-1:-1;;3599:330:43:o;4015:109::-;4068:7;4094:23;:21;:23::i;3714:255:50:-;3792:7;3812:17;3831:18;3851:16;3871:27;3882:4;3888:9;3871:10;:27::i;:::-;3811:87;;;;;;3908:28;3920:5;3927:8;3908:11;:28::i;:::-;-1:-1:-1;3953:9:50;;3714:255;-1:-1:-1;;;;3714:255:50:o;4130:191:43:-;4185:7;2073:95;4243:17;:15;:17::i;:::-;4262:20;:18;:20::i;:::-;4221:92;;;;;;40101:25:70;;;;40142:18;;40135:34;;;;40185:18;;;40178:34;4284:13:43;40228:18:70;;;40221:34;4307:4:43;40271:19:70;;;40264:61;40073:19;;4221:92:43;;;;;;;;;;;;4211:103;;;;;;4204:110;;4130:191;:::o;2129:778:50:-;2232:17;2251:16;2269:14;2299:9;:16;2319:2;2299:22;2295:606;;2604:4;2589:20;;2583:27;2653:4;2638:20;;2632:27;2710:4;2695:20;;2689:27;2337:9;2681:36;2751:25;2762:4;2681:36;2583:27;2632;2751:10;:25::i;:::-;2744:32;;;;;;;;;;;2295:606;-1:-1:-1;;2872:16:50;;2823:1;;-1:-1:-1;2827:35:50;;2295:606;2129:778;;;;;:::o;7280:532::-;7375:20;7366:5;:29;;;;;;;;:::i;:::-;;7362:444;;7280:532;;:::o;7362:444::-;7471:29;7462:5;:38;;;;;;;;:::i;:::-;;7458:348;;7523:23;;-1:-1:-1;;;7523:23:50;;;;;;;;;;;7458:348;7576:35;7567:5;:44;;;;;;;;:::i;:::-;;7563:243;;7634:46;;-1:-1:-1;;;7634:46:50;;;;;1776:25:70;;;1749:18;;7634:46:50;1630:177:70;7563:243:50;7710:30;7701:5;:39;;;;;;;;:::i;:::-;;7697:109;;7763:32;;-1:-1:-1;;;7763:32:50;;;;;1776:25:70;;;1749:18;;7763:32:50;1630:177:70;7057:687:43;7107:7;7126:23;7152:19;:17;:19::i;:::-;7126:45;;7181:18;7202:13;:11;:13::i;:::-;7229:18;;7181:34;;-1:-1:-1;7229:22:43;7225:513;;7274:22;;;;;;;;7057:687;-1:-1:-1;;7057:687:43:o;7225:513::-;7571:13;;7602:15;;7598:130;;7644:10;7057:687;-1:-1:-1;;;7057:687:43:o;7598:130::-;7700:13;7693:20;;;;;7057:687;:::o;7965:723::-;8018:7;8037:23;8063:19;:17;:19::i;:::-;8037:45;;8092:21;8116:16;:14;:16::i;:::-;8146:21;;8092:40;;-1:-1:-1;8146:25:43;8142:540;;8194:25;;;;;;;;7965:723;-1:-1:-1;;7965:723:43:o;8142:540::-;8506:16;;;;8540:18;;8536:136;;8585:13;7965:723;-1:-1:-1;;;7965:723:43:o;5203:1551:50:-;5329:17;;;-1:-1:-1;;;;;6270:79:50;;6266:164;;;-1:-1:-1;6381:1:50;;-1:-1:-1;6385:30:50;;-1:-1:-1;6417:1:50;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;40563:25:70;;;40636:4;40624:17;;40604:18;;;40597:45;;;;40658:18;;;40651:34;;;40701:18;;;40694:34;;;6541:24:50;;40535:19:70;;6541:24:50;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:50;;-1:-1:-1;;6541:24:50;;;-1:-1:-1;;;;;;;6579:20:50;;6575:113;;-1:-1:-1;6631:1:50;;-1:-1:-1;6635:29:50;;-1:-1:-1;6631:1:50;;-1:-1:-1;6615:62:50;;6575:113;6706:6;-1:-1:-1;6714:20:50;;-1:-1:-1;6714:20:50;;-1:-1:-1;5203:1551:50;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:70:-;-1:-1:-1;;;;;89:31:70;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:247::-;348:6;401:2;389:9;380:7;376:23;372:32;369:52;;;417:1;414;407:12;369:52;456:9;443:23;475:31;500:5;475:31;:::i;650:203::-;-1:-1:-1;;;;;814:32:70;;;;796:51;;784:2;769:18;;650:203::o;2208:121::-;2293:10;2286:5;2282:22;2275:5;2272:33;2262:61;;2319:1;2316;2309:12;2334:245;2392:6;2445:2;2433:9;2424:7;2420:23;2416:32;2413:52;;;2461:1;2458;2451:12;2413:52;2500:9;2487:23;2519:30;2543:5;2519:30;:::i;2781:347::-;2832:8;2842:6;2896:3;2889:4;2881:6;2877:17;2873:27;2863:55;;2914:1;2911;2904:12;2863:55;-1:-1:-1;2937:20:70;;-1:-1:-1;;;;;2969:30:70;;2966:50;;;3012:1;3009;3002:12;2966:50;3049:4;3041:6;3037:17;3025:29;;3101:3;3094:4;3085:6;3077;3073:19;3069:30;3066:39;3063:59;;;3118:1;3115;3108:12;3133:544;3212:6;3220;3228;3281:2;3269:9;3260:7;3256:23;3252:32;3249:52;;;3297:1;3294;3287:12;3249:52;3336:9;3323:23;3355:31;3380:5;3355:31;:::i;:::-;3405:5;-1:-1:-1;3461:2:70;3446:18;;3433:32;-1:-1:-1;;;;;3477:30:70;;3474:50;;;3520:1;3517;3510:12;3474:50;3559:58;3609:7;3600:6;3589:9;3585:22;3559:58;:::i;:::-;3133:544;;3636:8;;-1:-1:-1;3533:84:70;;-1:-1:-1;;;;3133:544:70:o;3682:118::-;3768:5;3761:13;3754:21;3747:5;3744:32;3734:60;;3790:1;3787;3780:12;3805:382;3870:6;3878;3931:2;3919:9;3910:7;3906:23;3902:32;3899:52;;;3947:1;3944;3937:12;3899:52;3986:9;3973:23;4005:31;4030:5;4005:31;:::i;:::-;4055:5;-1:-1:-1;4112:2:70;4097:18;;4084:32;4125:30;4084:32;4125:30;:::i;:::-;4174:7;4164:17;;;3805:382;;;;;:::o;4192:226::-;4251:6;4304:2;4292:9;4283:7;4279:23;4275:32;4272:52;;;4320:1;4317;4310:12;4272:52;-1:-1:-1;4365:23:70;;4192:226;-1:-1:-1;4192:226:70:o;4423:278::-;4623:10;4611:23;;;4593:42;;4671:23;;4666:2;4651:18;;4644:51;4581:2;4566:18;;4423:278::o;4706:250::-;4791:1;4801:113;4815:6;4812:1;4809:13;4801:113;;;4891:11;;;4885:18;4872:11;;;4865:39;4837:2;4830:10;4801:113;;;-1:-1:-1;;4948:1:70;4930:16;;4923:27;4706:250::o;4961:271::-;5003:3;5041:5;5035:12;5068:6;5063:3;5056:19;5084:76;5153:6;5146:4;5141:3;5137:14;5130:4;5123:5;5119:16;5084:76;:::i;:::-;5214:2;5193:15;-1:-1:-1;;5189:29:70;5180:39;;;;5221:4;5176:50;;4961:271;-1:-1:-1;;4961:271:70:o;5237:454::-;5462:6;5451:9;5444:25;5505:2;5500;5489:9;5485:18;5478:30;5425:4;5531:45;5572:2;5561:9;5557:18;5549:6;5531:45;:::i;:::-;5624:9;5616:6;5612:22;5607:2;5596:9;5592:18;5585:50;5652:33;5678:6;5670;5652:33;:::i;:::-;5644:41;5237:454;-1:-1:-1;;;;;;5237:454:70:o;6897:294::-;-1:-1:-1;;;;;7085:31:70;;;7067:50;;7153:31;;7148:2;7133:18;;7126:59;7055:2;7040:18;;6897:294::o;7196:508::-;7273:6;7281;7289;7342:2;7330:9;7321:7;7317:23;7313:32;7310:52;;;7358:1;7355;7348:12;7310:52;7397:9;7384:23;7416:31;7441:5;7416:31;:::i;:::-;7466:5;-1:-1:-1;7523:2:70;7508:18;;7495:32;7536:33;7495:32;7536:33;:::i;:::-;7196:508;;7588:7;;-1:-1:-1;;;7668:2:70;7653:18;;;;7640:32;;7196:508::o;7709:248::-;7883:25;;;7939:2;7924:18;;7917:34;7871:2;7856:18;;7709:248::o;8475:1238::-;8881:3;8876;8872:13;8864:6;8860:26;8849:9;8842:45;8923:3;8918:2;8907:9;8903:18;8896:31;8823:4;8950:46;8991:3;8980:9;8976:19;8968:6;8950:46;:::i;:::-;9044:9;9036:6;9032:22;9027:2;9016:9;9012:18;9005:50;9078:33;9104:6;9096;9078:33;:::i;:::-;9142:2;9127:18;;9120:34;;;-1:-1:-1;;;;;9191:32:70;;9185:3;9170:19;;9163:61;9211:3;9240:19;;9233:35;;;9305:22;;;9299:3;9284:19;;9277:51;9377:13;;9399:22;;;9449:2;9475:15;;;;-1:-1:-1;9437:15:70;;;;-1:-1:-1;9518:169:70;9532:6;9529:1;9526:13;9518:169;;;9593:13;;9581:26;;9636:2;9662:15;;;;9627:12;;;;9554:1;9547:9;9518:169;;;-1:-1:-1;9704:3:70;;8475:1238;-1:-1:-1;;;;;;;;;;;8475:1238:70:o;9718:621::-;9815:6;9823;9876:2;9864:9;9855:7;9851:23;9847:32;9844:52;;;9892:1;9889;9882:12;9844:52;9919:23;;-1:-1:-1;;;;;9954:30:70;;9951:50;;;9997:1;9994;9987:12;9951:50;10020:22;;10073:4;10065:13;;10061:27;-1:-1:-1;10051:55:70;;10102:1;10099;10092:12;10051:55;10129:16;;-1:-1:-1;;;;;10157:30:70;;10154:50;;;10200:1;10197;10190:12;10154:50;10253:7;10248:2;10238:6;10235:1;10231:14;10227:2;10223:23;10219:32;10216:45;10213:65;;;10274:1;10271;10264:12;10213:65;10305:2;10297:11;;;;;10327:6;;-1:-1:-1;9718:621:70;-1:-1:-1;;;9718:621:70:o;10344:780::-;10504:4;10552:2;10541:9;10537:18;10582:2;10571:9;10564:21;10605:6;10640;10634:13;10671:6;10663;10656:22;10709:2;10698:9;10694:18;10687:25;;10771:2;10761:6;10758:1;10754:14;10743:9;10739:30;10735:39;10721:53;;10809:2;10801:6;10797:15;10830:1;10840:255;10854:6;10851:1;10848:13;10840:255;;;10947:2;10943:7;10931:9;10923:6;10919:22;10915:36;10910:3;10903:49;10975:40;11008:6;10999;10993:13;10975:40;:::i;:::-;10965:50;-1:-1:-1;11050:2:70;11073:12;;;;11038:15;;;;;10876:1;10869:9;10840:255;;;-1:-1:-1;11112:6:70;;10344:780;-1:-1:-1;;;;;;10344:780:70:o;11129:711::-;11234:6;11242;11250;11258;11311:2;11299:9;11290:7;11286:23;11282:32;11279:52;;;11327:1;11324;11317:12;11279:52;11366:9;11353:23;11385:31;11410:5;11385:31;:::i;:::-;11435:5;-1:-1:-1;11492:2:70;11477:18;;11464:32;11527:1;11515:14;;11505:42;;11543:1;11540;11533:12;11505:42;11566:7;-1:-1:-1;11624:2:70;11609:18;;11596:32;-1:-1:-1;;;;;11640:30:70;;11637:50;;;11683:1;11680;11673:12;11637:50;11722:58;11772:7;11763:6;11752:9;11748:22;11722:58;:::i;:::-;11129:711;;;;-1:-1:-1;11799:8:70;-1:-1:-1;;;;11129:711:70:o;11845:627::-;11930:6;11938;11946;11954;12007:3;11995:9;11986:7;11982:23;11978:33;11975:53;;;12024:1;12021;12014:12;11975:53;12063:9;12050:23;12082:31;12107:5;12082:31;:::i;:::-;12132:5;-1:-1:-1;12210:2:70;12195:18;;12182:32;;-1:-1:-1;12292:2:70;12277:18;;12264:32;12305;12264;12305;:::i;:::-;11845:627;;;;-1:-1:-1;12356:7:70;;12436:2;12421:18;12408:32;;-1:-1:-1;;11845:627:70:o;12477:388::-;12545:6;12553;12606:2;12594:9;12585:7;12581:23;12577:32;12574:52;;;12622:1;12619;12612:12;12574:52;12661:9;12648:23;12680:31;12705:5;12680:31;:::i;:::-;12730:5;-1:-1:-1;12787:2:70;12772:18;;12759:32;12800:33;12759:32;12800:33;:::i;13679:397::-;-1:-1:-1;;;;;13899:32:70;;;13881:51;;13968:32;;;13963:2;13948:18;;13941:60;14037:32;;;14032:2;14017:18;;14010:60;13869:2;13854:18;;13679:397::o;14081:245::-;14148:6;14201:2;14189:9;14180:7;14176:23;14172:32;14169:52;;;14217:1;14214;14207:12;14169:52;14249:9;14243:16;14268:28;14290:5;14268:28;:::i;14331:300::-;-1:-1:-1;;;;;14523:32:70;;;14505:51;;14592:32;;14587:2;14572:18;;14565:60;14493:2;14478:18;;14331:300::o;14636:127::-;14697:10;14692:3;14688:20;14685:1;14678:31;14728:4;14725:1;14718:15;14752:4;14749:1;14742:15;14768:252;14840:2;14834:9;14882:3;14870:16;;-1:-1:-1;;;;;14901:34:70;;14937:22;;;14898:62;14895:88;;;14963:18;;:::i;:::-;14999:2;14992:22;14768:252;:::o;15025:251::-;15097:2;15091:9;;;15127:15;;-1:-1:-1;;;;;15157:34:70;;15193:22;;;15154:62;15151:88;;;15219:18;;:::i;15281:248::-;15348:2;15342:9;15390:4;15378:17;;-1:-1:-1;;;;;15410:34:70;;15446:22;;;15407:62;15404:88;;;15472:18;;:::i;15534:889::-;15577:5;15630:3;15623:4;15615:6;15611:17;15607:27;15597:55;;15648:1;15645;15638:12;15597:55;15675:20;;15727:4;15715:17;;15756:1;;-1:-1:-1;;;;;15791:30:70;;15788:56;;;15824:18;;:::i;:::-;-1:-1:-1;15979:2:70;15973:9;-1:-1:-1;;15892:2:70;15871:15;;15867:29;;16037:2;16025:15;16021:29;16009:42;;16102:22;;;-1:-1:-1;;;;;16066:34:70;;16063:62;16060:88;;;16128:18;;:::i;:::-;16164:2;16157:22;16214;;;16199:6;-1:-1:-1;16199:6:70;16251:16;;;16248:25;-1:-1:-1;16245:45:70;;;16286:1;16283;16276:12;16245:45;16336:6;16331:3;16324:4;16316:6;16312:17;16299:44;16391:1;16384:4;16375:6;16367;16363:19;16359:30;16352:41;16411:6;16402:15;;;;;;15534:889;;;;:::o;16428:681::-;16533:6;16541;16549;16602:2;16590:9;16581:7;16577:23;16573:32;16570:52;;;16618:1;16615;16608:12;16570:52;16645:23;;-1:-1:-1;;;;;16680:30:70;;16677:50;;;16723:1;16720;16713:12;16677:50;16746;16788:7;16779:6;16768:9;16764:22;16746:50;:::i;:::-;16736:60;-1:-1:-1;;16849:2:70;16834:18;;16821:32;-1:-1:-1;;;;;16865:32:70;;16862:52;;;16910:1;16907;16900:12;16862:52;16933;16977:7;16966:8;16955:9;16951:24;16933:52;:::i;:::-;16923:62;;;17035:2;17024:9;17020:18;17007:32;17048:31;17073:5;17048:31;:::i;:::-;17098:5;17088:15;;;16428:681;;;;;:::o;17114:380::-;17193:1;17189:12;;;;17236;;;17257:61;;17311:4;17303:6;17299:17;17289:27;;17257:61;17364:2;17356:6;17353:14;17333:18;17330:38;17327:161;;17410:10;17405:3;17401:20;17398:1;17391:31;17445:4;17442:1;17435:15;17473:4;17470:1;17463:15;17327:161;;17114:380;;;:::o;17625:518::-;17727:2;17722:3;17719:11;17716:421;;;17763:5;17760:1;17753:16;17807:4;17804:1;17794:18;17877:2;17865:10;17861:19;17858:1;17854:27;17848:4;17844:38;17913:4;17901:10;17898:20;17895:47;;;-1:-1:-1;17936:4:70;17895:47;17991:2;17986:3;17982:12;17979:1;17975:20;17969:4;17965:31;17955:41;;18046:81;18064:2;18057:5;18054:13;18046:81;;;18123:1;18109:16;;18090:1;18079:13;18046:81;;18319:1299;18439:10;;-1:-1:-1;;;;;18461:30:70;;18458:56;;;18494:18;;:::i;:::-;18523:97;18613:6;18573:38;18605:4;18599:11;18573:38;:::i;:::-;18567:4;18523:97;:::i;:::-;18669:4;18700:2;18689:14;;18717:1;18712:649;;;;19405:1;19422:6;19419:89;;;-1:-1:-1;19474:19:70;;;19468:26;19419:89;-1:-1:-1;;18276:1:70;18272:11;;;18268:24;18264:29;18254:40;18300:1;18296:11;;;18251:57;19521:81;;18682:930;;18712:649;17572:1;17565:14;;;17609:4;17596:18;;-1:-1:-1;;18748:20:70;;;18866:222;18880:7;18877:1;18874:14;18866:222;;;18962:19;;;18956:26;18941:42;;19069:4;19054:20;;;;19022:1;19010:14;;;;18896:12;18866:222;;;18870:3;19116:6;19107:7;19104:19;19101:201;;;19177:19;;;19171:26;-1:-1:-1;;19260:1:70;19256:14;;;19272:3;19252:24;19248:37;19244:42;19229:58;19214:74;;19101:201;-1:-1:-1;;;;19348:1:70;19332:14;;;19328:22;19315:36;;-1:-1:-1;18319:1299:70:o;19623:388::-;19780:2;19769:9;19762:21;19819:6;19814:2;19803:9;19799:18;19792:34;19876:6;19868;19863:2;19852:9;19848:18;19835:48;19932:1;19903:22;;;19927:2;19899:31;;;19892:42;;;;19995:2;19974:15;;;-1:-1:-1;;19970:29:70;19955:45;19951:54;;19623:388;-1:-1:-1;19623:388:70:o;20626:127::-;20687:10;20682:3;20678:20;20675:1;20668:31;20718:4;20715:1;20708:15;20742:4;20739:1;20732:15;20758:128;20825:9;;;20846:11;;;20843:37;;;20860:18;;:::i;21227:127::-;21288:10;21283:3;21279:20;21276:1;21269:31;21319:4;21316:1;21309:15;21343:4;21340:1;21333:15;21359:521;21436:4;21442:6;21502:11;21489:25;21596:2;21592:7;21581:8;21565:14;21561:29;21557:43;21537:18;21533:68;21523:96;;21615:1;21612;21605:12;21523:96;21642:33;;21694:20;;;-1:-1:-1;;;;;;21726:30:70;;21723:50;;;21769:1;21766;21759:12;21723:50;21802:4;21790:17;;-1:-1:-1;21833:14:70;21829:27;;;21819:38;;21816:58;;;21870:1;21867;21860:12;21885:440;22114:6;22106;22101:3;22088:33;22070:3;22149:6;22144:3;22140:16;22176:1;22172:2;22165:13;22207:6;22201:13;22223:65;22281:6;22277:2;22270:4;22262:6;22258:17;22223:65;:::i;:::-;22304:15;;21885:440;-1:-1:-1;;;;;21885:440:70:o;22330:127::-;22391:10;22386:3;22382:20;22379:1;22372:31;22422:4;22419:1;22412:15;22446:4;22443:1;22436:15;22462:240;22546:1;22539:5;22536:12;22526:143;;22591:10;22586:3;22582:20;22579:1;22572:31;22626:4;22623:1;22616:15;22654:4;22651:1;22644:15;22526:143;22678:18;;22462:240::o;22707:214::-;22856:2;22841:18;;22868:47;22845:9;22897:6;22868:47;:::i;23140:346::-;23208:6;23216;23269:2;23257:9;23248:7;23244:23;23240:32;23237:52;;;23285:1;23282;23275:12;23237:52;-1:-1:-1;;23330:23:70;;;23450:2;23435:18;;;23422:32;;-1:-1:-1;23140:346:70:o;23939:705::-;24042:6;24050;24058;24066;24119:3;24107:9;24098:7;24094:23;24090:33;24087:53;;;24136:1;24133;24126:12;24087:53;24181:23;;;-1:-1:-1;24301:2:70;24286:18;;24273:32;;-1:-1:-1;24383:2:70;24368:18;;24355:32;24396:33;24355:32;24396:33;:::i;:::-;24448:7;-1:-1:-1;24506:2:70;24491:18;;24478:32;-1:-1:-1;;;;;24522:30:70;;24519:50;;;24565:1;24562;24555:12;24519:50;24588;24630:7;24621:6;24610:9;24606:22;24588:50;:::i;:::-;24578:60;;;23939:705;;;;;;;:::o;24649:136::-;24727:13;;24749:30;24727:13;24749:30;:::i;24790:129::-;-1:-1:-1;;;;;24864:30:70;;24854:41;;24844:69;;24909:1;24906;24899:12;24924:136;25002:13;;25024:30;25002:13;25024:30;:::i;25065:1236::-;25162:6;25222:3;25210:9;25201:7;25197:23;25193:33;25238:2;25235:22;;;25253:1;25250;25243:12;25235:22;-1:-1:-1;25272:1:70;25295:22;;:::i;:::-;25363:16;;25388:22;;25477:2;25462:18;;;25456:25;25497:14;;;25490:31;25588:2;25573:18;;;25567:25;25608:14;;;25601:31;25664:48;25708:2;25693:18;;25664:48;:::i;:::-;25659:2;25652:5;25648:14;25641:72;25746:49;25790:3;25779:9;25775:19;25746:49;:::i;:::-;25740:3;25733:5;25729:15;25722:74;25829:49;25873:3;25862:9;25858:19;25829:49;:::i;:::-;25823:3;25816:5;25812:15;25805:74;25912:49;25956:3;25945:9;25941:19;25912:49;:::i;:::-;25906:3;25899:5;25895:15;25888:74;25995:49;26039:3;26028:9;26024:19;25995:49;:::i;:::-;25989:3;25978:15;;25971:74;26112:3;26097:19;;;26091:26;26133:15;;;26126:32;26225:3;26210:19;;;26204:26;26246:15;;;26239:32;;;;-1:-1:-1;25982:5:70;;25065:1236;-1:-1:-1;;25065:1236:70:o;26891:230::-;26961:6;27014:2;27002:9;26993:7;26989:23;26985:32;26982:52;;;27030:1;27027;27020:12;26982:52;-1:-1:-1;27075:16:70;;26891:230;-1:-1:-1;26891:230:70:o;27126:249::-;27195:6;27248:2;27236:9;27227:7;27223:23;27219:32;27216:52;;;27264:1;27261;27254:12;27216:52;27296:9;27290:16;27315:30;27339:5;27315:30;:::i;27380:249::-;27449:6;27502:2;27490:9;27481:7;27477:23;27473:32;27470:52;;;27518:1;27515;27508:12;27470:52;27550:9;27544:16;27569:30;27593:5;27569:30;:::i;27897:274::-;-1:-1:-1;;;;;28089:32:70;;;;28071:51;;28153:2;28138:18;;28131:34;28059:2;28044:18;;27897:274::o;28176:125::-;28241:9;;;28262:10;;;28259:36;;;28275:18;;:::i;28306:287::-;28435:3;28473:6;28467:13;28489:66;28548:6;28543:3;28536:4;28528:6;28524:17;28489:66;:::i;:::-;28571:16;;;;;28306:287;-1:-1:-1;;28306:287:70:o;28598:132::-;28665:20;;28694:30;28665:20;28694:30;:::i;28735:173::-;28803:20;;-1:-1:-1;;;;;28852:31:70;;28842:42;;28832:70;;28898:1;28895;28888:12;28913:1628;29008:6;29016;29069:2;29057:9;29048:7;29044:23;29040:32;29037:52;;;29085:1;29082;29075:12;29037:52;29112:23;;-1:-1:-1;;;;;29147:30:70;;29144:50;;;29190:1;29187;29180:12;29144:50;29213:22;;29269:2;29251:16;;;29247:25;29244:45;;;29285:1;29282;29275:12;29244:45;29311:22;;:::i;:::-;29358:16;;-1:-1:-1;;;;;29386:32:70;;29383:52;;;29431:1;29428;29421:12;29383:52;29454:17;;29505:4;29487:16;;;29483:27;29480:47;;;29523:1;29520;29513:12;29480:47;29551:17;;:::i;:::-;29613:16;;29638:24;;29696:31;29723:2;29715:11;;29696:31;:::i;:::-;29691:2;29682:7;29678:16;29671:57;29762:31;29789:2;29785;29781:11;29762:31;:::i;:::-;29757:2;29748:7;29744:16;29737:57;29828:31;29855:2;29851;29847:11;29828:31;:::i;:::-;29823:2;29814:7;29810:16;29803:57;29895:31;29921:3;29917:2;29913:12;29895:31;:::i;:::-;29889:3;29880:7;29876:17;29869:58;29962:32;29989:3;29985:2;29981:12;29962:32;:::i;:::-;29956:3;29943:17;;29936:59;30041:3;30033:12;;30020:26;-1:-1:-1;;;;;30058:32:70;;30055:52;;;30103:1;30100;30093:12;30055:52;30142:45;30179:7;30168:8;30164:2;30160:17;30142:45;:::i;:::-;30136:3;30123:17;;30116:72;-1:-1:-1;30197:22:70;;-1:-1:-1;30265:2:70;30257:11;;30244:25;-1:-1:-1;;;;;30281:32:70;;30278:52;;;30326:1;30323;30316:12;30278:52;30362:45;30399:7;30388:8;30384:2;30380:17;30362:45;:::i;:::-;30357:2;30346:14;;;30339:69;;;;30350:5;;30490:18;;;;30477:32;;-1:-1:-1;;;;;28913:1628:70:o;30546:397::-;30746:47;30783:9;30775:6;30746:47;:::i;:::-;30829:2;30824;30813:9;30809:18;30802:30;30727:4;30849:45;30890:2;30879:9;30875:18;30867:6;30849:45;:::i;:::-;30841:53;;30930:6;30925:2;30914:9;30910:18;30903:34;30546:397;;;;;;:::o;30948:168::-;31021:9;;;31052;;31069:15;;;31063:22;;31049:37;31039:71;;31090:18;;:::i;31698:584::-;31792:6;31800;31808;31861:2;31849:9;31840:7;31836:23;31832:32;31829:52;;;31877:1;31874;31867:12;31829:52;31916:9;31903:23;31935:31;31960:5;31935:31;:::i;:::-;31985:5;-1:-1:-1;32063:2:70;32048:18;;32035:32;;-1:-1:-1;32144:2:70;32129:18;;32116:32;-1:-1:-1;;;;;32160:30:70;;32157:50;;;32203:1;32200;32193:12;32157:50;32226;32268:7;32259:6;32248:9;32244:22;32226:50;:::i;:::-;32216:60;;;31698:584;;;;;:::o;32663:433::-;32894:3;32883:9;32876:22;32857:4;32915:46;32956:3;32945:9;32941:19;32933:6;32915:46;:::i;:::-;32992:2;32977:18;;32970:34;;;;-1:-1:-1;33035:2:70;33020:18;;33013:34;;;;33078:2;33063:18;;;33056:34;32907:54;32663:433;-1:-1:-1;32663:433:70:o;33101:372::-;33188:6;33196;33249:2;33237:9;33228:7;33224:23;33220:32;33217:52;;;33265:1;33262;33255:12;33217:52;33310:16;;33395:2;33380:18;;33374:25;33310:16;;-1:-1:-1;33408:33:70;33374:25;33408:33;:::i;33757:136::-;33796:3;33824:5;33814:39;;33833:18;;:::i;:::-;-1:-1:-1;;;33869:18:70;;33757:136::o;33898:135::-;33937:3;33958:17;;;33955:43;;33978:18;;:::i;:::-;-1:-1:-1;34025:1:70;34014:13;;33898:135::o;34038:386::-;-1:-1:-1;;;;;34256:32:70;;;34238:51;;34325:32;;;;34320:2;34305:18;;34298:60;34406:10;34394:23;;;34389:2;34374:18;;34367:51;34226:2;34211:18;;34038:386::o;34538:1377::-;34777:2;34759:21;;;34809:13;;34858:4;34838:18;;;34831:32;;;34900:19;;34894:3;34879:19;;34872:48;34985:4;34967:23;;34961:30;-1:-1:-1;;;;;34957:56:70;;;34951:3;34936:19;;34929:85;35062:23;;;35056:30;35052:56;;35045:4;35030:20;;35023:86;35156:21;;;35150:28;35146:54;;;35140:3;35125:19;;35118:83;35256:4;35238:23;;35232:30;-1:-1:-1;;;;;6855:30:70;;35320:3;35305:19;;6843:43;-1:-1:-1;;34809:13:70;-1:-1:-1;35380:3:70;35362:22;;35356:29;-1:-1:-1;;;;;34495:31:70;;35444:3;35429:19;;34483:44;-1:-1:-1;35504:3:70;35486:22;35480:29;35546:4;35540:3;35525:19;;35518:33;35571:54;35620:3;35605:19;;35480:29;35571:54;:::i;:::-;35560:65;;35674:4;35666:6;35662:17;35656:24;35747:2;35743:7;35731:9;35726:3;35722:19;35718:33;35711:4;35700:9;35696:20;35689:63;35769:38;35803:3;35787:14;35769:38;:::i;:::-;35761:46;;;;35845:6;35838:4;35827:9;35823:20;35816:36;35861:48;35903:4;35892:9;35888:20;35880:6;-1:-1:-1;;;;;607:31:70;595:44;;541:104;36257:408;-1:-1:-1;;;;;36492:32:70;;;36474:51;;36561:32;;36556:2;36541:18;;36534:60;36462:2;36447:18;;36603:56;36655:2;36640:18;;36632:6;36603:56;:::i;36670:1006::-;36772:6;36832:3;36820:9;36811:7;36807:23;36803:33;36848:2;36845:22;;;36863:1;36860;36853:12;36845:22;-1:-1:-1;36933:2:70;36927:9;36882:1;;36975:3;36963:16;;-1:-1:-1;;;;;36994:34:70;;37030:22;;;36991:62;36988:88;;;37056:18;;:::i;:::-;37092:2;37085:22;;;37149:16;;37174:21;;37262:2;37247:18;;;37241:25;37282:15;;;37275:32;37359:18;;;37353:25;37394:15;;;37387:32;37486:2;37471:18;;;37465:25;37506:15;;;37499:32;37598:3;37583:19;;;37577:26;37619:16;;;37612:33;;;;-1:-1:-1;37181:6:70;;36670:1006;-1:-1:-1;;36670:1006:70:o;37681:371::-;-1:-1:-1;;;;;37901:32:70;;;37883:51;;37970:32;;;;37965:2;37950:18;;37943:60;38034:2;38019:18;;38012:34;;;;37871:2;37856:18;;37681:371::o;38057:577::-;38344:6;38333:9;38326:25;38387:6;38382:2;38371:9;38367:18;38360:34;38430:6;38425:2;38414:9;38410:18;38403:34;38473:6;38468:2;38457:9;38453:18;38446:34;38517:3;38511;38500:9;38496:19;38489:32;38307:4;38538:46;38579:3;38568:9;38564:19;38556:6;38538:46;:::i;:::-;38530:54;;38621:6;38615:3;38604:9;38600:19;38593:35;38057:577;;;;;;;;;:::o;39034:217::-;39074:1;39100;39090:132;;39144:10;39139:3;39135:20;39132:1;39125:31;39179:4;39176:1;39169:15;39207:4;39204:1;39197:15;39090:132;-1:-1:-1;39236:9:70;;39034:217::o" + }, + "methodIdentifiers": { + "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", + "allocationProvisionTracker(address)": "6234e216", + "claims(bytes32)": "eff0f592", + "claimsLists(address)": "13c474c9", + "closeStaleAllocation(address)": "ec9c218d", + "collect(address,uint8,bytes)": "b15d2a2c", + "curationFeesCut()": "138dea08", + "eip712Domain()": "84b0196e", + "encodeAllocationProof(address,address)": "ce56c98b", + "feesProvisionTracker(address)": "cbe5f3f2", + "getAllocation(address)": "0e022923", + "getAllocationData(address)": "55c85269", + "getCuration()": "c0f47497", + "getDelegationRatio()": "1ebb7c30", + "getDisputeManager()": "db9bee46", + "getGraphTallyCollector()": "ebf6ddaf", + "getLegacyAllocation(address)": "6d9a3951", + "getProvisionTokensRange()": "819ba366", + "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", + "getThawingPeriodRange()": "71ce020a", + "getVerifierCutRange()": "482468b7", + "indexers(address)": "4f793cdc", + "initialize(address,uint256,uint32,uint256)": "c84a5ef3", + "isOverAllocated(address)": "ba38f67d", + "maxPOIStaleness()": "85e82baf", + "migrateLegacyAllocation(address,address,bytes32)": "7dfe6d28", + "multicall(bytes[])": "ac9650d8", + "owner()": "8da5cb5b", + "pause()": "8456cb59", + "pauseGuardians(address)": "9384e078", + "paused()": "5c975abb", + "paymentsDestination(address)": "07e736d8", + "register(address,bytes)": "24b8fbf6", + "releaseStake(uint256)": "45f54485", + "renounceOwnership()": "715018a6", + "resizeAllocation(address,address,uint256)": "81e777a7", + "setCurationCut(uint256)": "7e89bac3", + "setDelegationRatio(uint32)": "1dd42f60", + "setMaxPOIStaleness(uint256)": "7aa31bce", + "setMinimumProvisionTokens(uint256)": "832bc923", + "setPauseGuardian(address,bool)": "35577962", + "setPaymentsDestination(address)": "6ccec5b8", + "setStakeToFeesRatio(uint256)": "e6f50054", + "slash(address,bytes)": "cb8347fe", + "stakeToFeesRatio()": "d07a7a84", + "startService(address,bytes)": "dedf6726", + "stopService(address,bytes)": "8180083b", + "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\":\"graphTallyCollector\",\"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\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"DataServicePausablePauseGuardianNoChange\",\"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\":\"FailedCall\",\"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\":\"LegacyAllocationAlreadyExists\",\"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\"}],\"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\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"}],\"name\":\"SubgraphServiceInvalidCollectionId\",\"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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"forceClosed\",\"type\":\"bool\"}],\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentEpoch\",\"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\":\"bytes\",\"name\":\"poiMetadata\",\"type\":\"bytes\"},{\"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\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymentsDestination\",\"type\":\"address\"}],\"name\":\"PaymentsDestinationSet\",\"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\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTallyCollector\",\"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\":\"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\":\"allocationId\",\"type\":\"address\"}],\"name\":\"closeStaleAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"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\":\"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\":\"uint256\",\"name\":\"createdAtEpoch\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"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\":\"getCuration\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDisputeManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGraphTallyCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"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\":\"indexer\",\"type\":\"address\"}],\"name\":\"isOverAllocated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"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\"}],\"name\":\"paymentsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"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\":\"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\":\"paymentsDestination_\",\"type\":\"address\"}],\"name\":\"setPaymentsDestination\",\"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\":\"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\"}}],\"DataServiceFeesClaimNotFound(bytes32)\":[{\"params\":{\"claimId\":\"The id of the stake claim\"}}],\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status 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.\"}],\"FailedCall()\":[{\"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.\"}],\"LegacyAllocationAlreadyExists(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.\"}}],\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"params\":{\"tokensAvailable\":\"The amount of tokens available\",\"tokensRequired\":\"The amount of tokens required\"}}],\"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)\":[{\"params\":{\"balanceAfter\":\"The contract GRT balance after the collection\",\"balanceBefore\":\"The contract GRT balance before the collection\"}}],\"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\"}}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"params\":{\"collectionId\":\"The collectionId\"}}],\"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,bool)\":{\"details\":\"Emitted when an indexer closes an allocation\",\"params\":{\"allocationId\":\"The id of the allocation\",\"forceClosed\":\"Whether the allocation was force closed\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationCreated(address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"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,bytes,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"indexer\":\"The address of the indexer\",\"poi\":\"The POI presented\",\"poiMetadata\":\"The metadata associated with the POI\",\"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`.\"},\"PaymentsDestinationSet(address,address)\":{\"params\":{\"indexer\":\"The address of the indexer\",\"paymentsDestination\":\"The address where payments should be sent\"}},\"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,address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"payer\":\"The address paying for the query fees\",\"serviceProvider\":\"The address of the service provider\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"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\"}},\"SubgraphServiceDirectoryInitialized(address,address,address,address)\":{\"params\":{\"curation\":\"The Curation contract address\",\"disputeManager\":\"The Dispute Manager contract address\",\"graphTallyCollector\":\"The Graph Tally Collector contract address\",\"subgraphService\":\"The Subgraph Service 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\":\"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.\"}},\"closeStaleAllocation(address)\":{\"details\":\"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 - Allocation cannot be altruistic Emits a {AllocationClosed} event.\",\"params\":{\"allocationId\":\"The id of the allocation\"}},\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\":\"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\",\"graphTallyCollector\":\"The address of the GraphTallyCollector contract\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"encodeAllocationProof(address,address)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\"},\"returns\":{\"_0\":\"The encoded allocation proof\"}},\"getAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The allocation details\"}},\"getAllocationData(address)\":{\"details\":\"Get allocation data to calculate rewards issuance \",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"_0\":\"Whether the allocation is active or not\",\"_1\":\"The indexer address\",\"_2\":\"Subgraph deployment id for the allocation\",\"_3\":\"Amount of allocated tokens\",\"_4\":\"Rewards snapshot\",\"_5\":\"Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed\"}},\"getCuration()\":{\"returns\":{\"_0\":\"The address of the curation contract\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getDisputeManager()\":{\"returns\":{\"_0\":\"The address of the dispute manager\"}},\"getGraphTallyCollector()\":{\"returns\":{\"_0\":\"The address of the graph tally collector\"}},\"getLegacyAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The legacy allocation details\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"initialize(address,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\",\"owner\":\"The owner of the contract\",\"stakeToFeesRatio\":\"The ratio of stake to fees to lock when collecting query fees\"}},\"isOverAllocated(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"True if the indexer is over-allocated, 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\"}},\"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.\"},\"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\"},\"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.\"}},\"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.\"}},\"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.\"},\"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\"}},\"setPaymentsDestination(address)\":{\"details\":\"Emits a {PaymentsDestinationSet} event\",\"params\":{\"paymentsDestination\":\"The address where payments 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.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"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\":\"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\"}],\"DataServicePausablePauseGuardianNoChange(address,bool)\":[{\"notice\":\"Emitted when a pause guardian is set to the same allowed status\"}],\"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\"}],\"LegacyAllocationAlreadyExists(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)\":[{\"notice\":\"Thrown when the contract GRT balance is inconsistent after collecting 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\"}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"notice\":\"Thrown when collectionId is not a valid address\"}],\"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,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,bytes,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.\"},\"PaymentsDestinationSet(address,address)\":{\"notice\":\"Emitted when an indexer sets a new payments destination\"},\"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,address,address,bytes32,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.\"},\"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\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"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\"},\"closeStaleAllocation(address)\":{\"notice\":\"Force close a stale allocation\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"constructor\":{\"notice\":\"Constructor for the SubgraphService contract\"},\"curationFeesCut()\":{\"notice\":\"The cut curators take from query fee payments. In PPM.\"},\"encodeAllocationProof(address,address)\":{\"notice\":\"Encodes the allocation proof for EIP712 signing\"},\"feesProvisionTracker(address)\":{\"notice\":\"The amount of tokens locked in stake claims for each service provider\"},\"getAllocation(address)\":{\"notice\":\"Gets the details of an allocation For legacy allocations use {getLegacyAllocation}\"},\"getCuration()\":{\"notice\":\"Gets the address of the curation contract\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getDisputeManager()\":{\"notice\":\"Gets the address of the dispute manager\"},\"getGraphTallyCollector()\":{\"notice\":\"Gets the address of the graph tally collector\"},\"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\"},\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"indexers(address)\":{\"notice\":\"Service providers registered in the data service\"},\"initialize(address,uint256,uint32,uint256)\":{\"notice\":\"Initialize the contract\"},\"isOverAllocated(address)\":{\"notice\":\"Checks if an indexer is over-allocated\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"},\"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.\"},\"pause()\":{\"notice\":\"Pauses the data service.\"},\"pauseGuardians(address)\":{\"notice\":\"List of pause guardians and their allowed status\"},\"paymentsDestination(address)\":{\"notice\":\"Destination of indexer payments\"},\"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\"},\"setPaymentsDestination(address)\":{\"notice\":\"Sets the payments destination for an indexer to receive payments\"},\"setStakeToFeesRatio(uint256)\":{\"notice\":\"Sets the stake to fees ratio\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"stakeToFeesRatio()\":{\"notice\":\"Multiplier for how many tokens back collected query fees\"},\"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.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SubgraphService.sol\":\"SubgraphService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xa57fda8ea4c94a2cda061a6c8f29ae215241b0af03a43df3bc622051d8b2493c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7fc433ef0eb71c264224e9058de7e9aea3b2dbfab68dbdf0df8a13de82e90ef6\",\"dweb:/ipfs/QmVrp6kv8Ef1AP38C4soa1cnnRqqmKFnHer2VrXms52Asy\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0x615aac9d5c9cd04216fa9ee21c770f3877a2971a1c023052143c95c08b87610f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd4eb031e9ab86e3a17df29fcb297621e88850c3c5db123925d24b77c802b037\",\"dweb:/ipfs/QmSCNfQqMzui9gaN3Rf8nTNJBPWSFNqFgexbK2k6GBN381\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\":{\"keccak256\":\"0xa9e95b7ca9af3987697c06b252fdb12e1d01e5c62c123c17f39f03d96d38876f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d86b520570fb3dd76b60fc64eabe6a7104b41a96a9c92e9031c91a799287d749\",\"dweb:/ipfs/QmZGaiEZVfycnQu4EkPWGM7Jg3jo4jdEuLeuZxAMPMg5s6\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0x9068f639ea7aad02d842eb0054cadc3a5f05044d8d0176dc4c9ff60693775bc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e22fd5157ea02064104b02952c327ab58b0a5c70c7356d94017f3e03da298d4\",\"dweb:/ipfs/QmdTZAFaZWSpVUvWTnUgednbRNLMbFvUMKZ5FHkjhRk4Qf\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":{\"keccak256\":\"0x57790344249a2d9fac827173389665a678619103d3baba0df0f9ec72f514cba7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://964b818fdefcaf55cfd1c8f7066c44032e8dc82f1569f35d875e86c147b94e23\",\"dweb:/ipfs/QmcsjNPCFbYPdLiTjmykgVSLXbZxA2pJ1N7JXaWtxJzZet\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0x6e65df59821dce2e4c9c221e1381eac69534464b8c69c83c2f18bff188e120f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bd7f1d4d7b1d9de204580678f24fbe453235bbc1fbb15f65f022619a419b11a8\",\"dweb:/ipfs/QmP7JnK6Buor5bvRFcb427ACJKTwX6mnJb31TJzKL4EnSD\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0xc0f433a20f91fb2c2c588d5accfd311535314d71f7adc4e2b84fa4193ed1a739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a920d9446c3e76783921d2f2d980a058f41700de1d59470c9b3892a49ebcaf48\",\"dweb:/ipfs/QmcwmqNkxS1BpJQ7kgf4V9F98w2MKcVvg2N7P3i8KtDSF4\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0x63e7f1df10586beb7f8683065719fbff045437508539a9358c25a13fcf989f91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b32f9a7be91ae6d9c9a6edbe2404efbcf9fa99c1d503f4a688054be468494a8e\",\"dweb:/ipfs/QmQ5AQXsBPxtJSW24LqRZAaYYaz1518FpUCHfDEdsMfF8F\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0xe44f72a63c472a6de42e08a2d732044fe1ac9245c4203d4e1eb941b1a2fa2159\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://412708a4f94b5757e46676c5702e47d37fdbdacbe53f70e2ee93d37c5938e028\",\"dweb:/ipfs/Qmdw4uagDdKeCzyS319BKyPzfnWCvM3KCtNYosFBd3xGco\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol\":{\"keccak256\":\"0x762c26300d098fb1bdc5e6b52e0ffd0b497634e9bcfc9a9cd409df65d8d54590\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f5c68742e96c1483449c882b082631a9bfafebb27152b87427e1234d34e604f3\",\"dweb:/ipfs/QmYqtSeQpCbKEaKKDXwmeK5DrYFiwSHYVzM3dzanh7MQ3D\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x0871e02129e1fabdb39024f9ac3368b4c747e6b374fdf4fc200d3c225ed82860\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a5fdf2dbedc15f739e6010a3ce3478ea7ad23bd643a8af3f39ccf631c06ebd52\",\"dweb:/ipfs/QmNusbPTqzzUwGomXBzsWHwbZMJ2HuTkxvgviLJZ6hr9i4\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x70d69069b2c122becd29ec4ea9a79f2e26cf7cbe7b1918ffced691ee00cdbd82\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bddc7d257c3df1fd4940dd3c554e5a1efbc1b23d50f7878415389b75380628c\",\"dweb:/ipfs/QmTQBCsL4pHoXMixVvDwGMdmJnGfEeeDZfHdJkcpKamu58\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd45a5b1d0e451376b08e1bc7e332426c24382053300acf0ac667be1b8abb6cc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://824eb0b8c71db8b95b707218d8540c2046a2fefc642e74b343ae90e5c72e2b52\",\"dweb:/ipfs/QmdQTZTomqxRrySDNdv1FEyh3ZWibxwC9FRdcV3DCuASpx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/SubgraphService.sol\":{\"keccak256\":\"0x8b0db301d539c6186ba5024c6658386c3b7ce81022f4a5b6a34dfd04021b3e2d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e892e736172dbfe02d3413b70c979d103d133f416b5a9ffa5c6e1a409639c0ec\",\"dweb:/ipfs/QmUfEU6JV5b1fncAzSqv76VhBTTY46pwoF4NhtGeteAgDf\"]},\"contracts/SubgraphServiceStorage.sol\":{\"keccak256\":\"0xe7b9b6fb8f101f99dff6cb27d55089a60e158629e8b67366a009b2a22d0565e8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a686dcf3fdce62bff8f41e7e018b54ecc5b3451f4b761b63c0c0f2165a5416c8\",\"dweb:/ipfs/QmNjngfvNkxtP2NeF8ZwAmFWnw4Wz9pwvwFu9DvtF1c6Sw\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x9db8ffdf7fe30954824ed706a1a5e7c2d6323b745bddba16b7166a639344f9f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e5d810bf6188c38a028dab511c5653fde7b7feca0a173f03974402a83cb234f9\",\"dweb:/ipfs/QmYGtytqHeDFK91FmSNL5iavD8sHUFcA47WBU9BuHG3i75\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]},\"contracts/utilities/AllocationManager.sol\":{\"keccak256\":\"0xe48e4486cb11da8e2f24afe998ae1f8ab7e2eed0edeff2ff8eb47e120ed32c91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0f7336a767d5b959f8cbeb9453834d887c28c9e9e4217d3bacf7faf01aaff33f\",\"dweb:/ipfs/QmQ6twAz4MfREzPbDttCMJqCuo2YNr8ks6R8ZzrJBR3daV\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x45317fa3daef1ebca670b1d3ba19579d7a46b8b19daff7e534a89a122b0fe178\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecca9d9581e489225014f8879df4bdd69945f2f686fddeff41e31377670f6866\",\"dweb:/ipfs/QmURUHNSv8i9dtkmdaAJxXqDXfg6hbJXLwUqhHronA8Fwr\"]},\"contracts/utilities/Directory.sol\":{\"keccak256\":\"0x8f8b8d8dd7cd1acee659a21c81782fd9955f364c5b37669c11c135c66371bd3a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c50bdf51e6d19d6413920c200b5ddbf07eaa3860b35822633cecf636fd96d29d\",\"dweb:/ipfs/QmTQfCXiKzqpZVJDd3NeLtQvwBTVDXfznVJjEASh4aso4k\"]}},\"version\":1}" + } + }, + "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": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "paymentsDestination", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "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", + "paymentsDestination(address)": "07e736d8", + "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\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"paymentsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToFeesRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SubgraphServiceStorage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"curationFeesCut()\":{\"notice\":\"The cut curators take from query fee payments. In PPM.\"},\"indexers(address)\":{\"notice\":\"Service providers registered in the data service\"},\"paymentsDestination(address)\":{\"notice\":\"Destination of indexer payments\"},\"stakeToFeesRatio()\":{\"notice\":\"Multiplier for how many tokens back collected query fees\"}},\"notice\":\"This contract holds all the storage variables for the Subgraph Service contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SubgraphServiceStorage.sol\":\"SubgraphServiceV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/SubgraphServiceStorage.sol\":{\"keccak256\":\"0xe7b9b6fb8f101f99dff6cb27d55089a60e158629e8b67366a009b2a22d0565e8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a686dcf3fdce62bff8f41e7e018b54ecc5b3451f4b761b63c0c0f2165a5416c8\",\"dweb:/ipfs/QmNjngfvNkxtP2NeF8ZwAmFWnw4Wz9pwvwFu9DvtF1c6Sw\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDisputeManager.sol": { + "IDisputeManager": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeAlreadyCreated", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeInConflict", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + } + ], + "name": "DisputeManagerDisputeNotInConflict", + "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": "DisputeManagerSubgraphServiceNotSet", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "type": "uint256" + } + ], + "name": "IndexingDisputeCreated", + "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": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "LegacyDisputeCreated", + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancellableAt", + "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": [ + { + "internalType": "bytes32", + "name": "disputeId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "acceptDisputeInConflict", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "tokensSlashRelated", + "type": "uint256" + } + ], + "name": "acceptDisputeConflict", + "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": "address", + "name": "fisherman", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokensSlash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokensRewards", + "type": "uint256" + } + ], + "name": "createAndAcceptLegacyDispute", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": [], + "name": "getFishermanRewardCut", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "getStakeSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "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": [ + { + "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": "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptDispute(bytes32,uint256)": "050b17ad", + "acceptDisputeConflict(bytes32,uint256,bool,uint256)": "b0e2f7e9", + "areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "d36fc9d4", + "cancelDispute(bytes32)": "1792f194", + "createAndAcceptLegacyDispute(address,address,uint256,uint256)": "8d4e9008", + "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", + "getFishermanRewardCut()": "bb2a2b47", + "getStakeSnapshot(address)": "c133b429", + "initialize(address,address,uint64,uint256,uint32,uint32)": "0bc7344b", + "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\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeInConflict\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeNotInConflict\",\"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\":\"DisputeManagerSubgraphServiceNotSet\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancellableAt\",\"type\":\"uint256\"}],\"name\":\"IndexingDisputeCreated\",\"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\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"}],\"name\":\"LegacyDisputeCreated\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancellableAt\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"acceptDisputeInConflict\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlashRelated\",\"type\":\"uint256\"}],\"name\":\"acceptDisputeConflict\",\"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\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"}],\"name\":\"createAndAcceptLegacyDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[],\"name\":\"getFishermanRewardCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getStakeSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"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\":[{\"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\":\"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\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"DisputeManagerDisputeAlreadyCreated(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeInConflict(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeNotInConflict(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerDisputeNotPending(uint8)\":[{\"params\":{\"status\":\"The status of the dispute\"}}],\"DisputeManagerIndexerNotFound(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"DisputeManagerInvalidDispute(bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\"}}],\"DisputeManagerInvalidDisputeDeposit(uint256)\":[{\"params\":{\"disputeDeposit\":\"The dispute deposit\"}}],\"DisputeManagerInvalidFishermanReward(uint32)\":[{\"params\":{\"cut\":\"The fisherman reward cut\"}}],\"DisputeManagerInvalidMaxSlashingCut(uint32)\":[{\"params\":{\"maxSlashingCut\":\"The max slashing cut\"}}],\"DisputeManagerInvalidTokensSlash(uint256,uint256)\":[{\"params\":{\"maxTokensSlash\":\"The max tokens slash\",\"tokensSlash\":\"The tokens slash\"}}],\"DisputeManagerMustAcceptRelatedDispute(bytes32,bytes32)\":[{\"params\":{\"disputeId\":\"The dispute id\",\"relatedDisputeId\":\"The related dispute id\"}}],\"DisputeManagerNonConflictingAttestations(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)\":[{\"params\":{\"requestCID1\":\"The request CID of the first attestation\",\"requestCID2\":\"The request CID of the second attestation\",\"responseCID1\":\"The response CID of the first attestation\",\"responseCID2\":\"The response CID of the second attestation\",\"subgraphDeploymentId1\":\"The subgraph deployment id of the first attestation\",\"subgraphDeploymentId2\":\"The subgraph deployment id of the second attestation\"}}],\"DisputeManagerNonMatchingSubgraphDeployment(bytes32,bytes32)\":[{\"params\":{\"subgraphDeploymentId1\":\"The subgraph deployment id of the first attestation\",\"subgraphDeploymentId2\":\"The subgraph deployment id of the second attestation\"}}]},\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of 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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of tokens returned to the fisherman - the deposit\"}},\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of tokens returned to the fisherman - the deposit\"}},\"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.\",\"params\":{\"disputeId1\":\"The first dispute id\",\"disputeId2\":\"The second dispute id\"}},\"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.\",\"params\":{\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"tokens\":\"The amount of tokens burned from the fisherman deposit\"}},\"FishermanRewardCutSet(uint32)\":{\"params\":{\"fishermanRewardCut\":\"The fisherman reward cut.\"}},\"IndexingDisputeCreated(bytes32,address,address,uint256,address,bytes32,uint256,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.\",\"params\":{\"allocationId\":\"The allocation id\",\"cancellableAt\":\"The timestamp when the dispute can be cancelled\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"poi\":\"The POI\",\"stakeSnapshot\":\"The stake snapshot of the indexer at the time of the dispute\",\"tokens\":\"The amount of tokens deposited by the fisherman\"}},\"LegacyDisputeCreated(bytes32,address,address,address,uint256,uint256)\":{\"details\":\"Emitted when a legacy dispute is created for `allocationId` and `fisherman`. The event emits the amount of `tokensSlash` to slash and `tokensRewards` to reward the fisherman.\",\"params\":{\"allocationId\":\"The allocation id\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address to be credited with the rewards\",\"indexer\":\"The indexer address\",\"tokensRewards\":\"The amount of tokens to reward the fisherman\",\"tokensSlash\":\"The amount of tokens to slash\"}},\"MaxSlashingCutSet(uint32)\":{\"params\":{\"maxSlashingCut\":\"The maximum slashing cut that can be set.\"}},\"QueryDisputeCreated(bytes32,address,address,uint256,bytes32,bytes,uint256,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.\",\"params\":{\"attestation\":\"The attestation\",\"cancellableAt\":\"The timestamp when the dispute can be cancelled\",\"disputeId\":\"The dispute id\",\"fisherman\":\"The fisherman address\",\"indexer\":\"The indexer address\",\"stakeSnapshot\":\"The stake snapshot of the indexer at the time of the dispute\",\"subgraphDeploymentId\":\"The subgraph deployment id\",\"tokens\":\"The amount of tokens deposited by the fisherman\"}},\"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\"}},\"acceptDisputeConflict(bytes32,uint256,bool,uint256)\":{\"params\":{\"acceptDisputeInConflict\":\"Accept the conflicting dispute. Otherwise it will be drawn automatically\",\"disputeId\":\"Id of the dispute to be accepted\",\"tokensSlash\":\"Amount of tokens to slash from the indexer for the first dispute\",\"tokensSlashRelated\":\"Amount of tokens to slash from the indexer for the related dispute in case acceptDisputeInConflict is true, otherwise it will be ignored\"}},\"areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"params\":{\"attestation1\":\"The first attestation\",\"attestation2\":\"The second attestation\"},\"returns\":{\"_0\":\"Whether the attestations are conflicting\"}},\"cancelDispute(bytes32)\":{\"details\":\"Cancel a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be cancelled\"}},\"createAndAcceptLegacyDispute(address,address,uint256,uint256)\":{\"params\":{\"allocationId\":\"The allocation to dispute\",\"fisherman\":\"The fisherman address to be credited with the rewards\",\"tokensRewards\":\"The amount of tokens to reward the fisherman\",\"tokensSlash\":\"The amount of tokens to slash\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createIndexingDispute(address,bytes32)\":{\"params\":{\"allocationId\":\"The allocation to dispute\",\"poi\":\"The Proof of Indexing (POI) being disputed\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createQueryDispute(bytes)\":{\"params\":{\"attestationData\":\"Attestation bytes submitted by the fisherman\"},\"returns\":{\"_0\":\"The dispute id\"}},\"createQueryDisputeConflict(bytes,bytes)\":{\"params\":{\"attestationData1\":\"First attestation data submitted\",\"attestationData2\":\"Second attestation data submitted\"},\"returns\":{\"_0\":\"The first dispute id\",\"_1\":\"The second dispute id\"}},\"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\"}},\"getFishermanRewardCut()\":{\"returns\":{\"_0\":\"Fisherman reward cut in percentage (ppm)\"}},\"getStakeSnapshot(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The stake snapshot\"}},\"initialize(address,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)\",\"owner\":\"The owner of the contract\"}},\"isDisputeCreated(bytes32)\":{\"details\":\"Return if dispute with Id `disputeId` exists\",\"params\":{\"disputeId\":\"True if dispute already exists\"},\"returns\":{\"_0\":\"True if dispute already exists\"}},\"rejectDispute(bytes32)\":{\"details\":\"Reject a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be rejected\"}},\"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\"}}},\"title\":\"IDisputeManager\",\"version\":1},\"userdoc\":{\"errors\":{\"DisputeManagerDisputeAlreadyCreated(bytes32)\":[{\"notice\":\"Thrown when the dispute is already created\"}],\"DisputeManagerDisputeInConflict(bytes32)\":[{\"notice\":\"Thrown when the dispute is in conflict\"}],\"DisputeManagerDisputeNotInConflict(bytes32)\":[{\"notice\":\"Thrown when the dispute is not in conflict\"}],\"DisputeManagerDisputeNotPending(uint8)\":[{\"notice\":\"Thrown when the dispute is not pending\"}],\"DisputeManagerDisputePeriodNotFinished()\":[{\"notice\":\"Thrown when the dispute period is not finished\"}],\"DisputeManagerDisputePeriodZero()\":[{\"notice\":\"Thrown when the dispute period is zero\"}],\"DisputeManagerIndexerNotFound(address)\":[{\"notice\":\"Thrown when the indexer is not found\"}],\"DisputeManagerInvalidDispute(bytes32)\":[{\"notice\":\"Thrown when the dispute id is invalid\"}],\"DisputeManagerInvalidDisputeDeposit(uint256)\":[{\"notice\":\"Thrown when the dispute deposit is invalid - less than the minimum dispute deposit\"}],\"DisputeManagerInvalidFishermanReward(uint32)\":[{\"notice\":\"Thrown when the fisherman reward cut is invalid\"}],\"DisputeManagerInvalidMaxSlashingCut(uint32)\":[{\"notice\":\"Thrown when the max slashing cut is invalid\"}],\"DisputeManagerInvalidTokensSlash(uint256,uint256)\":[{\"notice\":\"Thrown when the tokens slash is invalid\"}],\"DisputeManagerInvalidZeroAddress()\":[{\"notice\":\"Thrown when the address is the zero address\"}],\"DisputeManagerMustAcceptRelatedDispute(bytes32,bytes32)\":[{\"notice\":\"Thrown when the dispute must be accepted\"}],\"DisputeManagerNonConflictingAttestations(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)\":[{\"notice\":\"Thrown when the attestations are not conflicting\"}],\"DisputeManagerNonMatchingSubgraphDeployment(bytes32,bytes32)\":[{\"notice\":\"Thrown when the subgraph deployment is not matching\"}],\"DisputeManagerNotArbitrator()\":[{\"notice\":\"Thrown when the caller is not the arbitrator\"}],\"DisputeManagerNotFisherman()\":[{\"notice\":\"Thrown when the caller is not the fisherman\"}],\"DisputeManagerSubgraphServiceNotSet()\":[{\"notice\":\"Thrown when attempting to get the subgraph service before it is set\"}],\"DisputeManagerZeroTokens()\":[{\"notice\":\"Thrown when the indexer being disputed has no provisioned tokens\"}]},\"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\":{\"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. This function will also revert if the dispute is in conflict, to accept a conflicting dispute use acceptDisputeConflict.\"},\"acceptDisputeConflict(bytes32,uint256,bool,uint256)\":{\"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.\"},\"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. Note that cancelling a conflicting query dispute will also cancel the related dispute.\"},\"createAndAcceptLegacyDispute(address,address,uint256,uint256)\":{\"notice\":\"Creates and auto-accepts a legacy dispute. This disputes can be created to settle outstanding slashing amounts with an indexer that has been \\\"legacy slashed\\\" during or shortly after the transition period. See {HorizonStakingExtension.legacySlash} for more details. Note that this type of dispute: - can only be created by the arbitrator - does not require a bond - is automatically accepted when created Additionally, note that this type of disputes allow the arbitrator to directly set the slash and rewards amounts, bypassing the usual mechanisms that impose restrictions on those. This is done to give arbitrators maximum flexibility to ensure outstanding slashing amounts are settled fairly. This function needs to be removed after the transition period. Requirements: - Indexer must have been legacy slashed during or shortly after the transition period - Indexer must have provisioned funds to the Subgraph Service\"},\"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. Two linked disputes will be created and if the arbitrator resolve one, the other 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.\"},\"drawDispute(bytes32)\":{\"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.\"},\"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.\"},\"getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"notice\":\"Returns the indexer that signed an attestation.\"},\"getDisputePeriod()\":{\"notice\":\"Get the dispute period.\"},\"getFishermanRewardCut()\":{\"notice\":\"Get the fisherman reward cut.\"},\"getStakeSnapshot(address)\":{\"notice\":\"Get the stake snapshot for an indexer.\"},\"initialize(address,address,uint64,uint256,uint32,uint32)\":{\"notice\":\"Initialize this contract.\"},\"isDisputeCreated(bytes32)\":{\"notice\":\"Return whether a dispute exists or not.\"},\"rejectDispute(bytes32)\":{\"notice\":\"The arbitrator rejects a dispute as being invalid. Note that conflicting query disputes cannot be rejected.\"},\"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.\"}},\"notice\":\"Interface for the {Dispute Manager} contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDisputeManager.sol\":\"IDisputeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x9db8ffdf7fe30954824ed706a1a5e7c2d6323b745bddba16b7166a639344f9f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e5d810bf6188c38a028dab511c5653fde7b7feca0a173f03974402a83cb234f9\",\"dweb:/ipfs/QmYGtytqHeDFK91FmSNL5iavD8sHUFcA47WBU9BuHG3i75\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]}},\"version\":1}" + } + }, + "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" + } + ], + "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": "bytes32", + "name": "collectionId", + "type": "bytes32" + } + ], + "name": "SubgraphServiceInvalidCollectionId", + "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": "indexer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "paymentsDestination", + "type": "address" + } + ], + "name": "PaymentsDestinationSet", + "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": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "allocationId", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "subgraphDeploymentId", + "type": "bytes32" + }, + { + "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": "allocationId", + "type": "address" + } + ], + "name": "closeStaleAllocation", + "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": "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": "uint256", + "name": "createdAtEpoch", + "type": "uint256" + } + ], + "internalType": "struct Allocation.State", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCuration", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDelegationRatio", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDisputeManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGraphTallyCollector", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "owner", + "type": "address" + }, + { + "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": "isOverAllocated", + "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": "paymentsDestination", + "type": "address" + } + ], + "name": "setPaymentsDestination", + "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", + "closeStaleAllocation(address)": "ec9c218d", + "collect(address,uint8,bytes)": "b15d2a2c", + "encodeAllocationProof(address,address)": "ce56c98b", + "getAllocation(address)": "0e022923", + "getCuration()": "c0f47497", + "getDelegationRatio()": "1ebb7c30", + "getDisputeManager()": "db9bee46", + "getGraphTallyCollector()": "ebf6ddaf", + "getLegacyAllocation(address)": "6d9a3951", + "getProvisionTokensRange()": "819ba366", + "getThawingPeriodRange()": "71ce020a", + "getVerifierCutRange()": "482468b7", + "initialize(address,uint256,uint32,uint256)": "c84a5ef3", + "isOverAllocated(address)": "ba38f67d", + "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", + "setPaymentsDestination(address)": "6ccec5b8", + "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\"}],\"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\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"}],\"name\":\"SubgraphServiceInvalidCollectionId\",\"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\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymentsDestination\",\"type\":\"address\"}],\"name\":\"PaymentsDestinationSet\",\"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\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"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\":\"allocationId\",\"type\":\"address\"}],\"name\":\"closeStaleAllocation\",\"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\":\"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\":\"uint256\",\"name\":\"createdAtEpoch\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCuration\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDisputeManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGraphTallyCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"owner\",\"type\":\"address\"},{\"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\":\"isOverAllocated\",\"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\":\"paymentsDestination\",\"type\":\"address\"}],\"name\":\"setPaymentsDestination\",\"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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"This interface extends {IDataServiceFees} and {IDataService}.\",\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"params\":{\"claimId\":\"The id of the stake claim\"}}],\"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)\":[{\"params\":{\"balanceAfter\":\"The contract GRT balance after the collection\",\"balanceBefore\":\"The contract GRT balance before the collection\"}}],\"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\"}}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"params\":{\"collectionId\":\"The collectionId\"}}],\"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\"}},\"PaymentsDestinationSet(address,address)\":{\"params\":{\"indexer\":\"The address of the indexer\",\"paymentsDestination\":\"The address where payments should be sent\"}},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"QueryFeesCollected(address,address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"payer\":\"The address paying for the query fees\",\"serviceProvider\":\"The address of the service provider\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"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.\"}},\"closeStaleAllocation(address)\":{\"details\":\"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 - Allocation cannot be altruistic Emits a {AllocationClosed} event.\",\"params\":{\"allocationId\":\"The id of the allocation\"}},\"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}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"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\"},\"returns\":{\"_0\":\"The encoded allocation proof\"}},\"getAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The allocation details\"}},\"getCuration()\":{\"returns\":{\"_0\":\"The address of the curation contract\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getDisputeManager()\":{\"returns\":{\"_0\":\"The address of the dispute manager\"}},\"getGraphTallyCollector()\":{\"returns\":{\"_0\":\"The address of the graph tally collector\"}},\"getLegacyAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The legacy allocation details\"}},\"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\"}},\"initialize(address,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\",\"owner\":\"The owner of the contract\",\"stakeToFeesRatio\":\"The ratio of stake to fees to lock when collecting query fees\"}},\"isOverAllocated(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"True if the indexer is over-allocated, 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\"}},\"setPaymentsDestination(address)\":{\"details\":\"Emits a {PaymentsDestinationSet} event\",\"params\":{\"paymentsDestination\":\"The address where payments 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)\":[{\"notice\":\"Thrown when the contract GRT balance is inconsistent after collecting 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\"}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"notice\":\"Thrown when collectionId is not a valid address\"}],\"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\"},\"PaymentsDestinationSet(address,address)\":{\"notice\":\"Emitted when an indexer sets a new payments destination\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"QueryFeesCollected(address,address,address,bytes32,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}.\"},\"closeStaleAllocation(address)\":{\"notice\":\"Force close a stale allocation\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"encodeAllocationProof(address,address)\":{\"notice\":\"Encodes the allocation proof for EIP712 signing\"},\"getAllocation(address)\":{\"notice\":\"Gets the details of an allocation For legacy allocations use {getLegacyAllocation}\"},\"getCuration()\":{\"notice\":\"Gets the address of the curation contract\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getDisputeManager()\":{\"notice\":\"Gets the address of the dispute manager\"},\"getGraphTallyCollector()\":{\"notice\":\"Gets the address of the graph tally collector\"},\"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\"},\"initialize(address,uint256,uint32,uint256)\":{\"notice\":\"Initialize the contract\"},\"isOverAllocated(address)\":{\"notice\":\"Checks if an indexer is over-allocated\"},\"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\"},\"setPaymentsDestination(address)\":{\"notice\":\"Sets the payments destination for an indexer to receive payments\"},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]}},\"version\":1}" + } + }, + "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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf7be374d96e4dfebf669b5e5761d8c0ce765860edf79096b2e17cccafbc1df664736f6c634300081b0033", + "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 0xBF PUSH28 0xE374D96E4DFEBF669B5E5761D8C0CE765860EDF79096B2E17CCCAFBC SAR 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "360:7850:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;360:7850:61;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf7be374d96e4dfebf669b5e5761d8c0ce765860edf79096b2e17cccafbc1df664736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH28 0xE374D96E4DFEBF669B5E5761D8C0CE765860EDF79096B2E17CCCAFBC SAR 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "360:7850:61:-: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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]}},\"version\":1}" + } + }, + "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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e1f75b59a03e53b2d3d0f698d9538dc889ffa06993a219fcb5e82cbe0789c59d64736f6c634300081b0033", + "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 0xE1 0xF7 JUMPDEST MSIZE LOG0 RETURNDATACOPY MSTORE8 0xB2 0xD3 0xD0 0xF6 SWAP9 0xD9 MSTORE8 DUP14 0xC8 DUP10 SELFDESTRUCT LOG0 PUSH10 0x93A219FCB5E82CBE0789 0xC5 SWAP14 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "292:5790:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;292:5790:62;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e1f75b59a03e53b2d3d0f698d9538dc889ffa06993a219fcb5e82cbe0789c59d64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 0xF7 JUMPDEST MSIZE LOG0 RETURNDATACOPY MSTORE8 0xB2 0xD3 0xD0 0xF6 SWAP9 0xD9 MSTORE8 DUP14 0xC8 DUP10 SELFDESTRUCT LOG0 PUSH10 0x93A219FCB5E82CBE0789 0xC5 SWAP14 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "292:5790:62:-: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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"AttestationInvalidBytesLength(uint256,uint256)\":[{\"params\":{\"expectedLength\":\"The expected length of the attestation data\",\"length\":\"The length of the attestation data\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Attestation library\",\"version\":1},\"userdoc\":{\"errors\":{\"AttestationInvalidBytesLength(uint256,uint256)\":[{\"notice\":\"The error thrown when the attestation data length is invalid\"}]},\"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\":10},\"remappings\":[]},\"sources\":{\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]}},\"version\":1}" + } + }, + "contracts/libraries/LegacyAllocation.sol": { + "LegacyAllocation": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "LegacyAllocationAlreadyExists", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocationId", + "type": "address" + } + ], + "name": "LegacyAllocationDoesNotExist", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071104b32b9956ccf0efa57d5b6b7c7963e628cf468ea4f5532c7e2755bca113864736f6c634300081b0033", + "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 PUSH18 0x104B32B9956CCF0EFA57D5B6B7C7963E628C DELEGATECALL PUSH9 0xEA4F5532C7E2755BCA GT CODESIZE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "404:3827:63:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;404:3827:63;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122071104b32b9956ccf0efa57d5b6b7c7963e628cf468ea4f5532c7e2755bca113864736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0x104B32B9956CCF0EFA57D5B6B7C7963E628C DELEGATECALL PUSH9 0xEA4F5532C7E2755BCA GT CODESIZE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "404:3827:63:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationDoesNotExist\",\"type\":\"error\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"LegacyAllocationAlreadyExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"LegacyAllocationDoesNotExist(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"LegacyAllocation library\",\"version\":1},\"userdoc\":{\"errors\":{\"LegacyAllocationAlreadyExists(address)\":[{\"notice\":\"Thrown when attempting to migrate an allocation with an existing id\"}],\"LegacyAllocationDoesNotExist(address)\":[{\"notice\":\"Thrown when trying to get a non-existent allocation\"}]},\"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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]}},\"version\":1}" + } + }, + "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" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forceClosed", + "type": "bool" + } + ], + "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" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentEpoch", + "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": "bytes", + "name": "poiMetadata", + "type": "bytes" + }, + { + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "indexer", + "type": "address" + } + ], + "name": "allocationProvisionTracker", + "outputs": [ + { + "internalType": "uint256", + "name": "tokens", + "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": [], + "name": "maxPOIStaleness", + "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": { + "allocationProvisionTracker(address)": "6234e216", + "eip712Domain()": "84b0196e", + "maxPOIStaleness()": "85e82baf" + } + }, + "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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"forceClosed\",\"type\":\"bool\"}],\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentEpoch\",\"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\":\"bytes\",\"name\":\"poiMetadata\",\"type\":\"bytes\"},{\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"allocationProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"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\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":{\"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,bool)\":{\"details\":\"Emitted when an indexer closes an allocation\",\"params\":{\"allocationId\":\"The id of the allocation\",\"forceClosed\":\"Whether the allocation was force closed\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationCreated(address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"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,bytes,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"indexer\":\"The address of the indexer\",\"poi\":\"The POI presented\",\"poiMetadata\":\"The metadata associated with the POI\",\"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\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"stateVariables\":{\"EIP712_ALLOCATION_ID_PROOF_TYPEHASH\":{\"details\":\"EIP712 typehash for allocation id 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,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,bytes,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\"}},\"kind\":\"user\",\"methods\":{\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"}},\"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\":10},\"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\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0xee4b213950c2e46481658b9b04f2d5dae0a96c4cce0ee346188b1f1272718d54\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b26dd767bd6887666a18beef79c322d27a693a3a4f7a61dc6bded7f35796acf5\",\"dweb:/ipfs/QmXDeqmRSeAWUWQTknNLUPBDBnDr8ySYW4h6CBPRGMJoPp\"]},\"@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\":\"0xc0f433a20f91fb2c2c588d5accfd311535314d71f7adc4e2b84fa4193ed1a739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a920d9446c3e76783921d2f2d980a058f41700de1d59470c9b3892a49ebcaf48\",\"dweb:/ipfs/QmcwmqNkxS1BpJQ7kgf4V9F98w2MKcVvg2N7P3i8KtDSF4\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0x4410253d7de56d2cdff50ee141c52fd77fd23f3984440211c3cc90ad560f4f9d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da4425a908816c40ffc3c833504843c3732bcb47e745dc544f650e5bc2c23f25\",\"dweb:/ipfs/QmZYDS4cSKBqRXEU3qyjE6sxGModSeNgzQmdZmZCGHuaKt\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x99e2a676b539e7b6c223a551f8cb9770c07435a25c8b22f0044a8ce4949edadc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f702a3cea214d8328d89a0ef16495c709e30fe13eb86fc29940159c9cb8c7bd5\",\"dweb:/ipfs/QmS25Zgcw85kDZcicApLzRmDcoYNQafpFdMyBEWX8eLWSX\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0xe7fcfd44d2919944b79a11a39da7d4539d49c4bcf510071a59f6b41c37ee8ef2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a21b1ff7ca81fa07f153b60aeca136bd1ee57d9d01a2c76635e4a5602e8959fc\",\"dweb:/ipfs/QmQ5C7mUjt4sv1NBt1FH5XVHN3aBsHnvDsdJKWywhLjso8\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1d09be2f7454873ab80f86ed5d590b9e796fe5146977c4c4a5b1f7ead17eb522\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1c7539d26f069c2acabd404601e7811f8878f66976e8b5d4f5438195de793c2\",\"dweb:/ipfs/QmUAybvtDZ275kAnU6r81aQy1FCp7zLscSV87oe9nbwjyU\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd45a5b1d0e451376b08e1bc7e332426c24382053300acf0ac667be1b8abb6cc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://824eb0b8c71db8b95b707218d8540c2046a2fefc642e74b343ae90e5c72e2b52\",\"dweb:/ipfs/QmdQTZTomqxRrySDNdv1FEyh3ZWibxwC9FRdcV3DCuASpx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]},\"contracts/utilities/AllocationManager.sol\":{\"keccak256\":\"0xe48e4486cb11da8e2f24afe998ae1f8ab7e2eed0edeff2ff8eb47e120ed32c91\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0f7336a767d5b959f8cbeb9453834d887c28c9e9e4217d3bacf7faf01aaff33f\",\"dweb:/ipfs/QmQ6twAz4MfREzPbDttCMJqCuo2YNr8ks6R8ZzrJBR3daV\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x45317fa3daef1ebca670b1d3ba19579d7a46b8b19daff7e534a89a122b0fe178\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecca9d9581e489225014f8879df4bdd69945f2f686fddeff41e31377670f6866\",\"dweb:/ipfs/QmURUHNSv8i9dtkmdaAJxXqDXfg6hbJXLwUqhHronA8Fwr\"]}},\"version\":1}" + } + }, + "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": [], + "name": "maxPOIStaleness", + "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": { + "allocationProvisionTracker(address)": "6234e216", + "maxPOIStaleness()": "85e82baf" + } + }, + "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\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"},\"_subgraphAllocatedTokens\":{\"details\":\"Used to calculate indexing rewards\"}},\"title\":\"AllocationManagerStorage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"}},\"notice\":\"This contract holds all the storage variables for the Allocation Manager contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AllocationManagerStorage.sol\":\"AllocationManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x45317fa3daef1ebca670b1d3ba19579d7a46b8b19daff7e534a89a122b0fe178\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ecca9d9581e489225014f8879df4bdd69945f2f686fddeff41e31377670f6866\",\"dweb:/ipfs/QmURUHNSv8i9dtkmdaAJxXqDXfg6hbJXLwUqhHronA8Fwr\"]}},\"version\":1}" + } + }, + "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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\":10},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]},\"contracts/utilities/AttestationManager.sol\":{\"keccak256\":\"0x44218c9dd0d618b0e383cad19efd5846ec85d1a11270aa7c04b75e2fa7ddc3a4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ee8ca0b9b9746636ff1ad549081fbc176d959544bc7798d0bfb10e3ec61af8b7\",\"dweb:/ipfs/QmcE9RJqj32uoTsWLV2ffwuEPWnBh7Vn8ZpzorXBjgosGd\"]},\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0x3ae176c9166fac5bfb08e875ad132fe9d1559ce67df28b906683d4f168e1afdc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2b40d4be47cc74387e3c390e081bdadc84f84062e9708a7a84d73f02e0a3853a\",\"dweb:/ipfs/QmQL8DUzrtgQABb1CvcuSeuapXntXEh5aKi4ZjE3MssBgZ\"]}},\"version\":1}" + } + }, + "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\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"},\"_domainSeparator\":{\"details\":\"EIP712 domain separator\"}},\"title\":\"AttestationManagerStorage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract holds all the storage variables for the Attestation Manager contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AttestationManagerStorage.sol\":\"AttestationManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0x3ae176c9166fac5bfb08e875ad132fe9d1559ce67df28b906683d4f168e1afdc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2b40d4be47cc74387e3c390e081bdadc84f84062e9708a7a84d73f02e0a3853a\",\"dweb:/ipfs/QmQL8DUzrtgQABb1CvcuSeuapXntXEh5aKi4ZjE3MssBgZ\"]}},\"version\":1}" + } + }, + "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": "graphTallyCollector", + "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\":\"graphTallyCollector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"curation\",\"type\":\"address\"}],\"name\":\"SubgraphServiceDirectoryInitialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"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\",\"graphTallyCollector\":\"The Graph Tally Collector contract address\",\"subgraphService\":\"The Subgraph Service contract address\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"curation\":\"The Curation contract address\",\"disputeManager\":\"The Dispute Manager contract address\",\"graphTallyCollector\":\"The Graph Tally Collector contract address\",\"subgraphService\":\"The Subgraph Service contract address\"}}},\"stateVariables\":{\"CURATION\":{\"details\":\"Required for curation fees distribution\"},\"GRAPH_TALLY_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\":10},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0xe049090c38a64d80b284ba2a7b440bcedba9804d96f2bb8da525e69ac452e03a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8b7d1186bd0698bed02d3504ac80c20e605087fba036d5ff392b39a9a3c818e5\",\"dweb:/ipfs/QmRgAfY1dD5rc7fLuuGVyu2mh9Z8qz1AVvuXAcRGnB3dSv\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0x2208814f64eeca9409eafc1a1fa425c67ff38cffdffc3af0bafbe1c1b338ed32\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://925b32efbd9fe85a98f8f1f51e865e0b7b65d933196cf6c098bd670da7138e0c\",\"dweb:/ipfs/Qmdrp7BGJ4fEKzDgZpVY1FULXKsHAdGXkx4nqRrWvMaumr\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x1b82ae2785502fe62d3ca6f55a3ed836b8b038a3b929cced92e1c6b4733f4074\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5556b2ce53b604427a995fb50f7169acb3fe30f60ef19c7cb5c22bd5ec53177c\",\"dweb:/ipfs/QmXx7dmTeAYAMPbbrGrcsKT31dqEqbcFgXWaPS6LQrANru\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xa22dcc47676073113e4ebe30045065662cee5531f9c5f75776c00e70a1929c81\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8908f30b3c7536798b14dc62fb5ccffc05570d568dbd1bade7c79c1fd2a4b5fe\",\"dweb:/ipfs/QmexZgb5mhDmXVZnYX1Z37cwM7EG2prYyBEVjUSVdKshVr\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol\":{\"keccak256\":\"0x762c26300d098fb1bdc5e6b52e0ffd0b497634e9bcfc9a9cd409df65d8d54590\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f5c68742e96c1483449c882b082631a9bfafebb27152b87427e1234d34e604f3\",\"dweb:/ipfs/QmYqtSeQpCbKEaKKDXwmeK5DrYFiwSHYVzM3dzanh7MQ3D\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0x4b146f30ee66c4224cb5a82bafc8299f8596d8fe302e793757520f67bba8a166\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://30666c737d72a850223c1966d3b5d02b84f3f808f3c8dae8d0748731646b60c5\",\"dweb:/ipfs/QmQschyZQtU8tTnQ9hNiG5nobuXBx6KeiKdfxvZ4zvQ7ty\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x0871e02129e1fabdb39024f9ac3368b4c747e6b374fdf4fc200d3c225ed82860\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a5fdf2dbedc15f739e6010a3ce3478ea7ad23bd643a8af3f39ccf631c06ebd52\",\"dweb:/ipfs/QmNusbPTqzzUwGomXBzsWHwbZMJ2HuTkxvgviLJZ6hr9i4\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x9bdab6cb595eabd7d321d7beae03ad3607995c14ef40f0c2f349fb72084766c5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6cac2ca3580bd770b98b07b11ebb007e8a922a90cde920e6ec472df7e66fb512\",\"dweb:/ipfs/QmRw1rjT8D8gNp2GRTuwDETwHNHMpHKoHZq4pYBAn9i65F\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0x7923f39746198b5672f0e4d65b7bf14903ae5f7775d74b210effb957eea36c71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c29531aff69c71e649fb347d7117ea8c42fc8de09860a1c389ed9b8f097a34e0\",\"dweb:/ipfs/QmS89fww584HiyE1BdPe8Xaqbf5v7FEvL38GTxeHEAsLFm\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd04bb1f6a427e858e8a625b4b9835c69c8891a324d22beba20293ab2a77e5de7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://05c9e425eee0b6c109a8dad2edcf9e1c845c64fccf321edf804921394ee048be\",\"dweb:/ipfs/QmbwLWNof534oG5ohzNAWrjdQ5kqJs7M5d5kCRd68XUogB\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xaaeb9770f8aaae6b395e87bb1876a10fe7c14384d16d97dd33a671c3ea53aa7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8f5c019fdb2df73bafe464fb6e9da792f7833a0c1858734bcd6a6b8d6ae924c7\",\"dweb:/ipfs/QmcubeYTHCYBqQsRncBFpPFtk7JzRz4nFh27LUW1m4hx2K\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x99058b4da0428b8d9c22d3d112acbaa59900f1fd0a434038b1a4fccfe3c678d6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://568e03231c6081eacbcb6585a05c0b1bb976b640b611f7bf6155f9b58d887239\",\"dweb:/ipfs/QmdPZQWhkhjf5TUwz487Dwm4ycjX323iNdwb1sQnAiA1Qu\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x9db8ffdf7fe30954824ed706a1a5e7c2d6323b745bddba16b7166a639344f9f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e5d810bf6188c38a028dab511c5653fde7b7feca0a173f03974402a83cb234f9\",\"dweb:/ipfs/QmYGtytqHeDFK91FmSNL5iavD8sHUFcA47WBU9BuHG3i75\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0x7516f80b0a8b2e3edeedf06c9b917f2a24e557f8c00632e6150fbb41ef8da3ce\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad4f813111541f5ef9ea6236f42822a3a66364d24189e4568450b20e09972a5e\",\"dweb:/ipfs/QmVYQA9rT7T8YnQgAB6fokNYDJeDrgQqrjfJ8sGjySNFBo\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xeabed16693ebd22165d4421bb62b91de64553f94d86d6fd03e3d25a62d651000\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5beecbf35f8dc63fc9fcd5fe844ff29cb4874c1ac73a96ec7170729efd096b74\",\"dweb:/ipfs/QmPFQyxQYuwae8ARxuLxingd8fQ7GBw1cfTQuUvfo6CWhM\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x0976f586d532d479823ac9e049371742a7a876f0faf3ed722b3b7f78a4586f33\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://34baba14bd7d3dcb1e1111ee09f3c809d6876732bbc889c1486cc329465e711e\",\"dweb:/ipfs/QmPRgYduW85aCjVk4ih35jB2FhoLjBvgmjZtMGeqXaLhTW\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x32fd54a2823bf3fa4090bf94968b4d8a5988fee8f75d1b805591a744f5766c60\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2571faaa157c207853cd52e730aaab019384d84618b6dce976b9d794a9634a54\",\"dweb:/ipfs/QmSinKJ1WguxvZte5C3eVfGBo8gsvzTbPQh7uVREWT49uL\"]},\"contracts/utilities/Directory.sol\":{\"keccak256\":\"0x8f8b8d8dd7cd1acee659a21c81782fd9955f364c5b37669c11c135c66371bd3a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c50bdf51e6d19d6413920c200b5ddbf07eaa3860b35822633cecf636fd96d29d\",\"dweb:/ipfs/QmTQfCXiKzqpZVJDd3NeLtQvwBTVDXfznVJjEASh4aso4k\"]}},\"version\":1}" + } + } + } + } +} \ 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 new file mode 100644 index 000000000..e8c9f57aa --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/deployed_addresses.json @@ -0,0 +1,56 @@ +{ + "SubgraphServiceProxies#OZProxyDummy_DisputeManager": "0x6b4F986A7a7E97E233Cb30172aAc5d1f68C1869a", + "SubgraphServiceProxies#OZProxyDummy_SubgraphService": "0x3E0C10883B120D3Cd2Ae5d78265204eDb68c434f", + "SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + "SubgraphServiceProxies#DisputeManager_ProxyWithABI": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "SubgraphServiceProxies#SubgraphService_ProxyWithABI": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + "SubgraphServiceProxies#ProxyAdmin_DisputeManager": "0x9a8C3B6D649108bd11670de0B9b981ae3C167707", + "SubgraphServiceProxies#ProxyAdmin_SubgraphService": "0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6", + "Controller#Controller": "0x0750EdA3185C758247E97819074bCD217a815FaE", + "EpochManager#EpochManager": "0x450906A976dc21450A7CcD1989D26E137E605B91", + "GraphProxyAdmin#GraphProxyAdmin": "0x1CEBe1C314Cc454baf4bd553409d957C833623c0", + "HorizonProxies#OZProxyDummy_GraphPayments": "0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d", + "HorizonProxies#OZProxyDummy_PaymentsEscrow": "0xBaBe8F24fFB27fb01C5b66999Db6929E5d500C70", + "HorizonStaking#ExponentialRebates": "0xF2DB533658a1728f3ce04A49Df4b545f4A53b620", + "L2Curation#GraphCurationToken": "0xb85d6e91EeAdDc35927AF34e5E28428282e4bcF2", + "L2Curation#L2Curation": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210", + "L2GraphToken#L2GraphToken": "0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726", + "L2GraphTokenGateway#L2GraphTokenGateway": "0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4", + "RewardsManager#RewardsManager": "0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3", + "HorizonProxies#TransparentUpgradeableProxy_GraphPayments": "0xAFd60629034fBdC3ef58518B817bBDB4EC861c93", + "HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow": "0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85", + "HorizonProxies#GraphPayments_ProxyWithABI": "0xAFd60629034fBdC3ef58518B817bBDB4EC861c93", + "HorizonProxies#PaymentsEscrow_ProxyWithABI": "0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85", + "EpochManager#GraphProxy": "0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2", + "HorizonProxies#GraphProxy": "0xF5D432192dAF7e8B045349693577ccF0B5165A12", + "L2Curation#GraphProxy": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "L2GraphToken#GraphProxy": "0xBBcb9a575176039C06F94d4d8337818318A26828", + "L2GraphTokenGateway#GraphProxy": "0x7284213d1cDa80C892a4388f38dA431F06343144", + "RewardsManager#GraphProxy": "0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f", + "EpochManager#EpochManager_ProxyWithABI": "0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2", + "HorizonProxies#ProxyAdmin_GraphPayments": "0xAcA3dd622e863E425Cdb15E8734a5CB318448db7", + "HorizonProxies#ProxyAdmin_PaymentsEscrow": "0xbB643167f03EfF532c537e3d72E56b9992CaD985", + "L2Curation#L2Curation_ProxyWithABI": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "L2GraphToken#L2GraphToken_ProxyWithABI": "0xBBcb9a575176039C06F94d4d8337818318A26828", + "L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI": "0x7284213d1cDa80C892a4388f38dA431F06343144", + "RewardsManager#RewardsManager_ProxyWithABI": "0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f", + "GraphPayments#GraphPayments": "0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866", + "GraphTallyCollector#GraphTallyCollector": "0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE", + "HorizonStaking#HorizonStakingExtension": "0x37F125cF456CD8d24277033A3b583491E9003689", + "PaymentsEscrow#PaymentsEscrow": "0xeED33B904efF05BbdcC9008F5174088DF77dD183", + "HorizonStaking#HorizonStaking": "0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244", + "GraphPayments#GraphPayments_ProxyWithABI": "0xAFd60629034fBdC3ef58518B817bBDB4EC861c93", + "PaymentsEscrow#PaymentsEscrow_ProxyWithABI": "0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85", + "HorizonStaking#HorizonStaking_ProxyWithABI": "0xF5D432192dAF7e8B045349693577ccF0B5165A12", + "DisputeManager#DisputeManagerProxy": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "DisputeManager#ProxyAdmin": "0x9a8C3B6D649108bd11670de0B9b981ae3C167707", + "L2Curation#L2CurationAddressBook": "0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4", + "L2Curation#L2CurationImplementationAddressBook": "0x9CCD9B656f8A558879974ef2505496eEd7Ef7210", + "SubgraphService#ProxyAdmin": "0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6", + "SubgraphService#SubgraphServiceProxy": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0", + "DisputeManager#DisputeManager": "0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8", + "SubgraphService#SubgraphService": "0x30b34eAaF354cAdd64836Bc0846F4414254271ea", + "DisputeManager#DisputeManager_ProxyWithABI": "0x1A7Fb71014d4395903eC56662f32dD02344D361C", + "SubgraphService#SubgraphService_ProxyWithABI": "0x00fe8F95407AB61863d27c07F584A0930ee5F3b0" +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl b/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl new file mode 100644 index 000000000..d6f3d98ea --- /dev/null +++ b/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl @@ -0,0 +1,513 @@ + +{"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":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","networkInteractionId":1,"nonce":1582,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","networkInteractionId":1,"nonce":1582,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x4a914684ac2dae92b72d40b48120d482cd26967c0e3c4a042e3d593e2adcccc8"},"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":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","networkInteractionId":1,"nonce":1583,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","networkInteractionId":1,"nonce":1583,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xb1224fe72f112a7c484049e570aa9b924d289c4898da9ce21e25cdd51551175e"},"type":"TRANSACTION_SEND"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","hash":"0x4a914684ac2dae92b72d40b48120d482cd26967c0e3c4a042e3d593e2adcccc8","networkInteractionId":1,"receipt":{"blockHash":"0x97f4dcd56e8c444a56a123f11486e8b48e361620c6628b80c83ea5d721e469c2","blockNumber":152512294,"contractAddress":"0x6b4F986A7a7E97E233Cb30172aAc5d1f68C1869a","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","result":{"address":"0x6b4F986A7a7E97E233Cb30172aAc5d1f68C1869a","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","hash":"0xb1224fe72f112a7c484049e570aa9b924d289c4898da9ce21e25cdd51551175e","networkInteractionId":1,"receipt":{"blockHash":"0xc1bc099664d1d40c84e2535598a0a178d1f3f4e996d2b1c7b66c82d6eb5ea541","blockNumber":152512306,"contractAddress":"0x3E0C10883B120D3Cd2Ae5d78265204eDb68c434f","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","result":{"address":"0x3E0C10883B120D3Cd2Ae5d78265204eDb68c434f","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","constructorArgs":["0x6b4F986A7a7E97E233Cb30172aAc5d1f68C1869a","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":"0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000006b4f986a7a7e97e233cb30172aac5d1f68c1869a000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","networkInteractionId":1,"nonce":1584,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","networkInteractionId":1,"nonce":1584,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x28d358116c2778e03dca58dd69a8369e1308788ae7fd6822cb32108505814f0a"},"type":"TRANSACTION_SEND"} +{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","constructorArgs":["0x3E0C10883B120D3Cd2Ae5d78265204eDb68c434f","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":"0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000003e0c10883b120d3cd2ae5d78265204edb68c434f000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","networkInteractionId":1,"nonce":1585,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","networkInteractionId":1,"nonce":1585,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xbcdc17c76bb47fa76b91a8be12fe55694918ddeb0c25d48dbf9e843c0e687939"},"type":"TRANSACTION_SEND"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","hash":"0x28d358116c2778e03dca58dd69a8369e1308788ae7fd6822cb32108505814f0a","networkInteractionId":1,"receipt":{"blockHash":"0xd334b83726dd4651794fd9580f0a42a0f11f59c4b452d24c01264a5ff4f407d2","blockNumber":152512329,"contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","logs":[{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000006b4f986a7a7e97e233cb30172aac5d1f68c1869a"]},{"address":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009a8c3b6d649108bd11670de0b9b981ae3c167707","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","result":{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","hash":"0xbcdc17c76bb47fa76b91a8be12fe55694918ddeb0c25d48dbf9e843c0e687939","networkInteractionId":1,"receipt":{"blockHash":"0x0ac8db5789fd95ef34d31a53ff9ed732628f3f25908473e804f58b56d09a22d8","blockNumber":152512341,"contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000003e0c10883b120d3cd2ae5d78265204edb68c434f"]},{"address":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d23a972f47b7d45e729ab9b8399d628c87b6c0d6","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","result":{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"SubgraphServiceProxies#DisputeManager_ProxyWithABI","contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","contractName":"DisputeManager_ProxyWithABI","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager"],"futureId":"SubgraphServiceProxies#DisputeManager_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphServiceProxies#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","contractName":"SubgraphService_ProxyWithABI","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService"],"futureId":"SubgraphServiceProxies#SubgraphService_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager"],"emitterAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","eventIndex":0,"eventName":"AdminChanged","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager_AdminChanged","nameOrIndex":"newAdmin","result":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x28d358116c2778e03dca58dd69a8369e1308788ae7fd6822cb32108505814f0a","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService"],"emitterAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","eventIndex":0,"eventName":"AdminChanged","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService_AdminChanged","nameOrIndex":"newAdmin","result":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","strategy":"basic","strategyConfig":{},"txToReadFrom":"0xbcdc17c76bb47fa76b91a8be12fe55694918ddeb0c25d48dbf9e843c0e687939","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphServiceProxies#ProxyAdmin_DisputeManager","contractAddress":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","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":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","contractName":"ProxyAdmin","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService_AdminChanged"],"futureId":"SubgraphServiceProxies#ProxyAdmin_SubgraphService","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"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":1586,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"Controller#Controller","networkInteractionId":1,"nonce":1586,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x38745c8ad22d3cd61a943a23dcc475e54d0c8b751122259723fd2c6966632add"},"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":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EpochManager#EpochManager","networkInteractionId":1,"nonce":1587,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"EpochManager#EpochManager","networkInteractionId":1,"nonce":1587,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x859e4f54c6a35fd4ab34cdc50a1bc74fc3e6c51fa1e23dd27c5faffb29768ed0"},"type":"TRANSACTION_SEND"} +{"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":1588,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin","networkInteractionId":1,"nonce":1588,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xd76e5fc20076c7d417d14c71770190aabda128d246a16dfcc29f77fb7f270365"},"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":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","networkInteractionId":1,"nonce":1589,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","networkInteractionId":1,"nonce":1589,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9983dbeee2627390f14712118876eae5f0cef7a85aa0486c834aa1c51be61e9d"},"type":"TRANSACTION_SEND"} +{"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":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","networkInteractionId":1,"nonce":1590,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","networkInteractionId":1,"nonce":1590,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8e31fc40c140b6f04f8bde3abd3c53acd237a7e5654c53970b92f35080dd91cf"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonStaking#ExponentialRebates","constructorArgs":[],"contractName":"ExponentialRebates","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonStaking#ExponentialRebates","futureType":"LIBRARY_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"HorizonStaking#ExponentialRebates","networkInteraction":{"data":"0x610c2d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201ef3beb7da88d73c1ec2e008b9308e699e4621df52e1b4b35ff71522e3621d6464736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#ExponentialRebates","networkInteractionId":1,"nonce":1591,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#ExponentialRebates","networkInteractionId":1,"nonce":1591,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa1983cc6775d37b981f072909799a74c3ec9b62ab36904736b703f798399cd86"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2Curation#GraphCurationToken","constructorArgs":[],"contractName":"GraphCurationToken","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2Curation#GraphCurationToken","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2Curation#GraphCurationToken","networkInteraction":{"data":"0x608060405234801561001057600080fd5b506114ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806379ba5097116100a2578063a9059cbb11610071578063a9059cbb14610352578063c4d66de81461037e578063dd62ed3e146103a4578063e3056a34146103d2578063f2fde38b146103da57610116565b806379ba5097146102ea57806379cc6790146102f257806395d89b411461031e578063a457c2d71461032657610116565b806323b872dd116100e957806323b872dd14610216578063313ce5671461024c578063395093511461026a57806340c10f191461029657806370a08231146102c457610116565b806306fdde031461011b578063095ea7b3146101985780630c340a24146101d857806318160ddd146101fc575b600080fd5b610123610400565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610496565b604080519115158252519081900360200190f35b6101e06104b3565b604080516001600160a01b039092168252519081900360200190f35b6102046104c2565b60408051918252519081900360200190f35b6101c46004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c8565b61025461054f565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561028057600080fd5b506001600160a01b038135169060200135610558565b6102c2600480360360408110156102ac57600080fd5b506001600160a01b0381351690602001356105a6565b005b610204600480360360208110156102da57600080fd5b50356001600160a01b031661060c565b6102c2610627565b6102c26004803603604081101561030857600080fd5b506001600160a01b038135169060200135610737565b610123610799565b6101c46004803603604081101561033c57600080fd5b506001600160a01b0381351690602001356107fa565b6101c46004803603604081101561036857600080fd5b506001600160a01b038135169060200135610862565b6102c26004803603602081101561039457600080fd5b50356001600160a01b0316610876565b610204600480360360408110156103ba57600080fd5b506001600160a01b0381358116916020013516610972565b6101e061099d565b6102c2600480360360208110156103f057600080fd5b50356001600160a01b03166109ac565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610aaa565b8484610aae565b50600192915050565b6065546001600160a01b031681565b60355490565b60006104d5848484610b9a565b610545846104e1610aaa565b61054085604051806060016040528060288152602001611400602891396001600160a01b038a1660009081526034602052604081209061051f610aaa565b6001600160a01b031681526020810191909152604001600020549190610cf7565b610aae565b5060019392505050565b60385460ff1690565b60006104aa610565610aaa565b846105408560346000610576610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d8e565b6065546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610def565b5050565b6001600160a01b031660009081526033602052604090205490565b6066546001600160a01b0316801580159061064a5750336001600160a01b038216145b61069b576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b606580546001600160a01b038381166001600160a01b0319808416919091179384905560668054909116905560405191811692169082907f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f90600090a36066546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6065546001600160a01b0316331461078f576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610ee1565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b60006104aa610807610aaa565b84610540856040518060600160405280602581526020016114926025913960346000610831610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610cf7565b60006104aa61086f610aaa565b8484610b9a565b600054610100900460ff168061088f575061088f610fdd565b8061089d575060005460ff16155b6108d85760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015610903576000805460ff1961ff0019909116610100171660011790555b61090c82610fee565b61095d604051806040016040528060148152602001734772617068204375726174696f6e20536861726560601b8152506040518060400160405280600381526020016247435360e81b815250611010565b8015610608576000805461ff00191690555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6066546001600160a01b031681565b6065546001600160a01b03163314610a04576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610a56576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b606680546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b038316610af35760405162461bcd60e51b815260040180806020018281038252602481526020018061146e6024913960400191505060405180910390fd5b6001600160a01b038216610b385760405162461bcd60e51b815260040180806020018281038252602281526020018061138a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b81526004018080602001828103825260258152602001806114496025913960400191505060405180910390fd5b6001600160a01b038216610c245760405162461bcd60e51b81526004018080602001828103825260238152602001806113456023913960400191505060405180910390fd5b610c2f8383836110c1565b610c6c816040518060600160405280602681526020016113ac602691396001600160a01b0386166000908152603360205260409020549190610cf7565b6001600160a01b038085166000908152603360205260408082209390935590841681522054610c9b9082610d8e565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d4b578181015183820152602001610d33565b50505050905090810190601f168015610d785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610de8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e4a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610e56600083836110c1565b603554610e639082610d8e565b6035556001600160a01b038216600090815260336020526040902054610e899082610d8e565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610f265760405162461bcd60e51b81526004018080602001828103825260218152602001806114286021913960400191505060405180910390fd5b610f32826000836110c1565b610f6f81604051806060016040528060228152602001611368602291396001600160a01b0385166000908152603360205260409020549190610cf7565b6001600160a01b038316600090815260336020526040902055603554610f9590826110c6565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fe830611123565b15905090565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110295750611029610fdd565b80611037575060005460ff16155b6110725760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561109d576000805460ff1961ff0019909116610100171660011790555b6110a5611129565b6110af83836111cb565b80156110c1576000805461ff00191690555b505050565b60008282111561111d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806111425750611142610fdd565b80611150575060005460ff16155b61118b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff161580156111b6576000805460ff1961ff0019909116610100171660011790555b80156111c8576000805461ff00191690555b50565b600054610100900460ff16806111e457506111e4610fdd565b806111f2575060005460ff16155b61122d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015611258576000805460ff1961ff0019909116610100171660011790555b825161126b9060369060208601906112a3565b50815161127f9060379060208501906112a3565b506038805460ff1916601217905580156110c1576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826112d9576000855561131f565b82601f106112f257805160ff191683800117855561131f565b8280016001018555821561131f579182015b8281111561131f578251825591602001919060010190611304565b5061132b92915061132f565b5090565b5b8082111561132b576000815560010161133056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b687fddcd01dbad6e1d5fbd49cb041f69ed61684a12a4c26c6e37e0f5ad7c2a64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2Curation#GraphCurationToken","networkInteractionId":1,"nonce":1592,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2Curation#GraphCurationToken","networkInteractionId":1,"nonce":1592,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x68f850e03de53f05ada2c9dda84d68477c01208665a4f6128a709f7234db967e"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2Curation#L2Curation","constructorArgs":[],"contractName":"L2Curation","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2Curation#L2Curation","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2Curation#L2Curation","networkInteraction":{"data":"0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2Curation#L2Curation","networkInteractionId":1,"nonce":1593,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2Curation#L2Curation","networkInteractionId":1,"nonce":1593,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xfd0caf2dcfb174f3acde1c794d754bb83104bf1b77c83a218a67b1cfcfdd4843"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2GraphToken#L2GraphToken","constructorArgs":[],"contractName":"L2GraphToken","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2GraphToken#L2GraphToken","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#L2GraphToken","networkInteraction":{"data":"0x6101206040527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726080527fefcec85968da792893fa503eb21730083fc6c50ed5461e56163b28335b2a5f9660a0527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60c0527fe33842a7acd1d5a1d28f25a931703e5605152dc48d64dc4716efdae1f565959160e0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610100523480156100c657600080fd5b5060805160a05160c05160e0516101005161261e61010660003980611547525080611eae525080611e5e525080611e3d525080611e1c525061261e6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#L2GraphToken","networkInteractionId":1,"nonce":1594,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#L2GraphToken","networkInteractionId":1,"nonce":1594,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x6730a19b4ae0823f98e12f2af100906334a11b2fdd6b1494c9f7ad68d8f0053b"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2GraphTokenGateway#L2GraphTokenGateway","constructorArgs":[],"contractName":"L2GraphTokenGateway","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2GraphTokenGateway#L2GraphTokenGateway","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway","networkInteraction":{"data":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway","networkInteractionId":1,"nonce":1595,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway","networkInteractionId":1,"nonce":1595,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa89cbe9c8ef67afcf2f99d782b4ebd4644f8c98569332051804b66ec6587df1a"},"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":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611ca761017360003980610e60525080610e37525080610e0e52806117d9525080610de5528061155c525080610dbc525080610d93525080610d6a52806113a05250611ca76000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#RewardsManager","networkInteractionId":1,"nonce":1596,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#RewardsManager","networkInteractionId":1,"nonce":1596,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x95e8cf51aec76b9a1fd51587f573824526b89309d153e475e14f6d368af0bceb"},"type":"TRANSACTION_SEND"} +{"futureId":"Controller#Controller","hash":"0x38745c8ad22d3cd61a943a23dcc475e54d0c8b751122259723fd2c6966632add","networkInteractionId":1,"receipt":{"blockHash":"0x2ce959aa2db22ac6d786a560143b59b68bcd40830dff3ec57102141c52d985d4","blockNumber":152512382,"contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":3,"topics":["0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"Controller#Controller","result":{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"EpochManager#EpochManager","hash":"0x859e4f54c6a35fd4ab34cdc50a1bc74fc3e6c51fa1e23dd27c5faffb29768ed0","networkInteractionId":1,"receipt":{"blockHash":"0xb263d18d04d02399b1d354d3fafaa51ae3b83bc972f08bff4d88c2865996a4db","blockNumber":152512394,"contractAddress":"0x450906A976dc21450A7CcD1989D26E137E605B91","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"EpochManager#EpochManager","result":{"address":"0x450906A976dc21450A7CcD1989D26E137E605B91","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin","hash":"0xd76e5fc20076c7d417d14c71770190aabda128d246a16dfcc29f77fb7f270365","networkInteractionId":1,"receipt":{"blockHash":"0xd1de76490ec9034658085496fe8bd413fd4aa1c8f8a9feb622c1ceda0409a192","blockNumber":152512405,"contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin","result":{"address":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","hash":"0x9983dbeee2627390f14712118876eae5f0cef7a85aa0486c834aa1c51be61e9d","networkInteractionId":1,"receipt":{"blockHash":"0xc3f67663761469c57b16b4c6dc05f26a2a9c4620b6087207910a34515a8a932a","blockNumber":152512417,"contractAddress":"0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","result":{"address":"0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","hash":"0x8e31fc40c140b6f04f8bde3abd3c53acd237a7e5654c53970b92f35080dd91cf","networkInteractionId":1,"receipt":{"blockHash":"0x5cf2307fc9c5f8e302aafd81e97edaa47d9d858f71b213430bc5bde655474f60","blockNumber":152512428,"contractAddress":"0xBaBe8F24fFB27fb01C5b66999Db6929E5d500C70","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","result":{"address":"0xBaBe8F24fFB27fb01C5b66999Db6929E5d500C70","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonStaking#ExponentialRebates","hash":"0xa1983cc6775d37b981f072909799a74c3ec9b62ab36904736b703f798399cd86","networkInteractionId":1,"receipt":{"blockHash":"0x3f3c03d9e439ae0202ab1cb7918cbc4d68385f97e9ff5f019ba18825278e9c3c","blockNumber":152512440,"contractAddress":"0xF2DB533658a1728f3ce04A49Df4b545f4A53b620","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonStaking#ExponentialRebates","result":{"address":"0xF2DB533658a1728f3ce04A49Df4b545f4A53b620","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2Curation#GraphCurationToken","hash":"0x68f850e03de53f05ada2c9dda84d68477c01208665a4f6128a709f7234db967e","networkInteractionId":1,"receipt":{"blockHash":"0x0bfd0605c4599b2521cdbaf5660b350f795eca816825a5f2ab605c0d161fe824","blockNumber":152512453,"contractAddress":"0xb85d6e91EeAdDc35927AF34e5E28428282e4bcF2","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2Curation#GraphCurationToken","result":{"address":"0xb85d6e91EeAdDc35927AF34e5E28428282e4bcF2","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2Curation#L2Curation","hash":"0xfd0caf2dcfb174f3acde1c794d754bb83104bf1b77c83a218a67b1cfcfdd4843","networkInteractionId":1,"receipt":{"blockHash":"0x3339a2f960f327759725e7d2f663d30aee90f640c36e89d38c4ef6517b384e54","blockNumber":152512467,"contractAddress":"0x9CCD9B656f8A558879974ef2505496eEd7Ef7210","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2Curation#L2Curation","result":{"address":"0x9CCD9B656f8A558879974ef2505496eEd7Ef7210","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#L2GraphToken","hash":"0x6730a19b4ae0823f98e12f2af100906334a11b2fdd6b1494c9f7ad68d8f0053b","networkInteractionId":1,"receipt":{"blockHash":"0x861402612f36718cb21edc0147c54643011e157dcfa4f33638c79261081fa22a","blockNumber":152512480,"contractAddress":"0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#L2GraphToken","result":{"address":"0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway","hash":"0xa89cbe9c8ef67afcf2f99d782b4ebd4644f8c98569332051804b66ec6587df1a","networkInteractionId":1,"receipt":{"blockHash":"0xa872700710f71849da9bdf9a2355bfa124fc46203bcc3313b09c5b880a842829","blockNumber":152512493,"contractAddress":"0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway","result":{"address":"0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#RewardsManager","hash":"0x95e8cf51aec76b9a1fd51587f573824526b89309d153e475e14f6d368af0bceb","networkInteractionId":1,"receipt":{"blockHash":"0x9ebc83aeb193601733890302b58cdcead45968a2f97216b6c7f07c5fc30b7970","blockNumber":152512506,"contractAddress":"0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#RewardsManager","result":{"address":"0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":["0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","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":"0x48bde20c000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"Controller#Controller.setPauseGuardian","networkInteractionId":1,"nonce":1597,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"Controller#Controller.setPauseGuardian","networkInteractionId":1,"nonce":1597,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa0f981c56c58202d66ee938772201794bc9cead7302705b8b64fb2b3153ed92c"},"type":"TRANSACTION_SEND"} +{"args":[false],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","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":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"Controller#Controller.setPaused","networkInteractionId":1,"nonce":1598,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"Controller#Controller.setPaused","networkInteractionId":1,"nonce":1598,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x482d45da2008336e8f038ca3ec57367f318c169dd254bf5c54bc7134e417d718"},"type":"TRANSACTION_SEND"} +{"args":["0xad834c286a9b590f8264c8d9574fafcbbbe90b3b"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","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":"0xf2fde38b000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"Controller#Controller.transferOwnership","networkInteractionId":1,"nonce":1599,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"Controller#Controller.transferOwnership","networkInteractionId":1,"nonce":1599,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xee3d1c7f7fc367161dcb08e7afa2f8f0f533e19cef58d76775a5bd41cfbc8d2f"},"type":"TRANSACTION_SEND"} +{"args":["0xad834c286a9b590f8264c8d9574fafcbbbe90b3b"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","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":"0xf2fde38b000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1600,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1600,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xbb631fdffdc4dffde9350410329d3d575649ced974c5af87732384102f33a502"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","constructorArgs":["0x8A44C49eD477e7130249d4B8d5248d08B469Bf0d","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":"0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000008a44c49ed477e7130249d4b8d5248d08b469bf0d000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","networkInteractionId":1,"nonce":1601,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","networkInteractionId":1,"nonce":1601,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9ce59770403f06943081072734b4edb820bc9f669e6ed25fafb503f50581005a"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","constructorArgs":["0xBaBe8F24fFB27fb01C5b66999Db6929E5d500C70","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":"0x60a0604052604051610eae380380610eae8339810160408190526100229161039d565b828161002e828261008f565b50508160405161003d9061033a565b6001600160a01b039091168152602001604051809103906000f080158015610069573d6000803e3d6000fd5b506001600160a01b031660805261008761008260805190565b6100ee565b50505061048f565b6100988261015c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100e2576100dd82826101db565b505050565b6100ea610252565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012e600080516020610e8e833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a161015981610273565b50565b806001600160a01b03163b60000361019757604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101f89190610473565b600060405180830381855af49150503d8060008114610233576040519150601f19603f3d011682016040523d82523d6000602084013e610238565b606091505b5090925090506102498583836102b2565b95945050505050565b34156102715760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661029d57604051633173bdd160e11b81526000600482015260240161018e565b80600080516020610e8e8339815191526101ba565b6060826102c7576102c282610311565b61030a565b81511580156102de57506001600160a01b0384163b155b1561030757604051639996b31560e01b81526001600160a01b038516600482015260240161018e565b50805b9392505050565b8051156103215780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6105538061093b83390190565b80516001600160a01b038116811461035e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561039457818101518382015260200161037c565b50506000910152565b6000806000606084860312156103b257600080fd5b6103bb84610347565b92506103c960208501610347565b60408501519092506001600160401b038111156103e557600080fd5b8401601f810186136103f657600080fd5b80516001600160401b0381111561040f5761040f610363565b604051601f8201601f19908116603f011681016001600160401b038111828210171561043d5761043d610363565b60405281815282820160200188101561045557600080fd5b610466826020830160208601610379565b8093505050509250925092565b60008251610485818460208701610379565b9190910192915050565b6080516104926104a96000396000601001526104926000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033608060405234801561001057600080fd5b5060405161055338038061055383398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610456806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000babe8f24ffb27fb01c5b66999db6929e5d500c70000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","networkInteractionId":1,"nonce":1602,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","networkInteractionId":1,"nonce":1602,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x65688faa5ebf1a43b5e2cee223942fb644975d2293a75645e354610e5e0b805c"},"type":"TRANSACTION_SEND"} +{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f"],"artifactId":"L2GraphToken#L2GraphToken","dependencies":["L2GraphToken#L2GraphToken"],"functionName":"initialize","futureId":"L2GraphToken#encodeFunctionCall(L2GraphToken#L2GraphToken.initialize)","result":"0xc4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"futureId":"Controller#Controller.setPauseGuardian","hash":"0xa0f981c56c58202d66ee938772201794bc9cead7302705b8b64fb2b3153ed92c","networkInteractionId":1,"receipt":{"blockHash":"0x95fb26676c55f51542aec84c7b1618603c42688d87d9637762133469cbeb585b","blockNumber":152512550,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x","logIndex":1,"topics":["0x0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"Controller#Controller.setPauseGuardian","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"Controller#Controller.setPaused","hash":"0x482d45da2008336e8f038ca3ec57367f318c169dd254bf5c54bc7134e417d718","networkInteractionId":1,"receipt":{"blockHash":"0x1e1531745b8690e56f7a8bc344e3e48cdd216cb9c502415207195813cb0fec50","blockNumber":152512561,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x0000000000000000000000000000000000000000000000000000000000000000","logIndex":0,"topics":["0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"Controller#Controller.setPaused","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"Controller#Controller.transferOwnership","hash":"0xee3d1c7f7fc367161dcb08e7afa2f8f0f533e19cef58d76775a5bd41cfbc8d2f","networkInteractionId":1,"receipt":{"blockHash":"0xc9cd96f208faaa08277ac3eae62bd854e78c6d1b7b69bbd6c7d5d03a22bfdade","blockNumber":152512573,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x","logIndex":0,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"Controller#Controller.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","hash":"0xbb631fdffdc4dffde9350410329d3d575649ced974c5af87732384102f33a502","networkInteractionId":1,"receipt":{"blockHash":"0x640776de7ea3e4103d7aa10ef710bfeba8a4ceebbb856e903592710e3721a9ed","blockNumber":152512584,"logs":[{"address":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","data":"0x","logIndex":1,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","hash":"0x9ce59770403f06943081072734b4edb820bc9f669e6ed25fafb503f50581005a","networkInteractionId":1,"receipt":{"blockHash":"0xe9feee7816b51afc5bfad81886badefde61e329e936e94eaac21dc26c3986b89","blockNumber":152512596,"contractAddress":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","logs":[{"address":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008a44c49ed477e7130249d4b8d5248d08b469bf0d"]},{"address":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aca3dd622e863e425cdb15e8734a5cb318448db7","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","result":{"address":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","hash":"0x65688faa5ebf1a43b5e2cee223942fb644975d2293a75645e354610e5e0b805c","networkInteractionId":1,"receipt":{"blockHash":"0xdf79392f74fe07517e2289ad17067475bb723b52b58bc278290a29de32092954","blockNumber":152512603,"contractAddress":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","logs":[{"address":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000babe8f24ffb27fb01c5b66999db6929e5d500c70"]},{"address":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb643167f03eff532c537e3d72e56b9992cad985","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","result":{"address":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"EpochManager#GraphProxy","constructorArgs":["0x450906A976dc21450A7CcD1989D26E137E605B91","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"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":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c000000000000000000000000450906a976dc21450a7ccd1989d26e137e605b910000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EpochManager#GraphProxy","networkInteractionId":1,"nonce":1603,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"EpochManager#GraphProxy","networkInteractionId":1,"nonce":1603,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x70673b1942420700c6029089aa17d2010a7f6925a8faffa8a2c56a19af19129f"},"type":"TRANSACTION_SEND"} +{"args":["0x0750EdA3185C758247E97819074bCD217a815FaE",60],"artifactId":"EpochManager#EpochManager","dependencies":["EpochManager#EpochManager","Controller#Controller"],"functionName":"initialize","futureId":"EpochManager#encodeFunctionCall(EpochManager#EpochManager.initialize)","result":"0xcd6dc6870000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000000000000000000000000000000000000000003c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"args":["0xed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","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":"0xe0e99292ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","networkInteractionId":1,"nonce":1604,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","networkInteractionId":1,"nonce":1604,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x17fc13472b9e6884333a28ba14936405b039e0e172885c8c60504af946a4e50b"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonProxies#GraphPayments_ProxyWithABI","contractAddress":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","contractName":"GraphPayments_ProxyWithABI","dependencies":["HorizonProxies#TransparentUpgradeableProxy_GraphPayments"],"futureId":"HorizonProxies#GraphPayments_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"HorizonProxies#GraphProxy","constructorArgs":["0x0000000000000000000000000000000000000000","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"contractName":"GraphProxy","dependencies":["GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"HorizonProxies#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#GraphProxy","networkInteractionId":1,"nonce":1605,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#GraphProxy","networkInteractionId":1,"nonce":1605,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x12046ff040bcb03bb9d7764120995666dcfc62ebb1c93f9c25305fb90c4126c4"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonProxies#PaymentsEscrow_ProxyWithABI","contractAddress":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","contractName":"PaymentsEscrow_ProxyWithABI","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow"],"futureId":"HorizonProxies#PaymentsEscrow_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","dependencies":["HorizonProxies#TransparentUpgradeableProxy_GraphPayments"],"emitterAddress":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","eventIndex":0,"eventName":"AdminChanged","futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments_AdminChanged","nameOrIndex":"newAdmin","result":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x9ce59770403f06943081072734b4edb820bc9f669e6ed25fafb503f50581005a","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow"],"emitterAddress":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","eventIndex":0,"eventName":"AdminChanged","futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow_AdminChanged","nameOrIndex":"newAdmin","result":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x65688faa5ebf1a43b5e2cee223942fb644975d2293a75645e354610e5e0b805c","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2Curation#GraphProxy","constructorArgs":["0x9CCD9B656f8A558879974ef2505496eEd7Ef7210","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"contractName":"GraphProxy","dependencies":["L2Curation#L2Curation","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2Curation#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2Curation#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000009ccd9b656f8a558879974ef2505496eed7ef72100000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2Curation#GraphProxy","networkInteractionId":1,"nonce":1606,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2Curation#GraphProxy","networkInteractionId":1,"nonce":1606,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x5c128bbee1cb7cf9f52ef8e56417dd4f49b4b92622f49c1e34a6a5b490d261f0"},"type":"TRANSACTION_SEND"} +{"args":["0x0750EdA3185C758247E97819074bCD217a815FaE","0xb85d6e91EeAdDc35927AF34e5E28428282e4bcF2",10000,1],"artifactId":"L2Curation#L2Curation","dependencies":["L2Curation#L2Curation","Controller#Controller","L2Curation#GraphCurationToken"],"functionName":"initialize","futureId":"L2Curation#encodeFunctionCall(L2Curation#L2Curation.initialize)","result":"0x4c8c7a440000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000b85d6e91eeaddc35927af34e5e28428282e4bcf200000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000001","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2GraphToken#GraphProxy","constructorArgs":["0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"contractName":"GraphProxy","dependencies":["L2GraphToken#L2GraphToken","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2GraphToken#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c00000000000000000000000071927f8ff0ce294882e2a161a54f62f3b0f3c7260000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#GraphProxy","networkInteractionId":1,"nonce":1607,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#GraphProxy","networkInteractionId":1,"nonce":1607,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0885250dc8c71655552807f0e94dd25995ab2aa5ee93f6a576c3cd27e72e11d1"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2GraphTokenGateway#GraphProxy","constructorArgs":["0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"contractName":"GraphProxy","dependencies":["L2GraphTokenGateway#L2GraphTokenGateway","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"L2GraphTokenGateway#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphTokenGateway#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000004dea2d1be05909b71f539fd32601f7bd736c28d40000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphTokenGateway#GraphProxy","networkInteractionId":1,"nonce":1608,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphTokenGateway#GraphProxy","networkInteractionId":1,"nonce":1608,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xbb9f3c0e4f560b942e332a9bc29e76c1847232ba2854fd31834b94ffb797adc4"},"type":"TRANSACTION_SEND"} +{"args":["0x0750EdA3185C758247E97819074bCD217a815FaE"],"artifactId":"L2GraphTokenGateway#L2GraphTokenGateway","dependencies":["L2GraphTokenGateway#L2GraphTokenGateway","Controller#Controller"],"functionName":"initialize","futureId":"L2GraphTokenGateway#encodeFunctionCall(L2GraphTokenGateway#L2GraphTokenGateway.initialize)","result":"0xc4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"RewardsManager#GraphProxy","constructorArgs":["0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3","0x1CEBe1C314Cc454baf4bd553409d957C833623c0"],"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":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c00000000000000000000000005ca4d407ec53ac17ce6bb414f42663f415dc5c30000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#GraphProxy","networkInteractionId":1,"nonce":1609,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#GraphProxy","networkInteractionId":1,"nonce":1609,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x13e7b34e0caacb89e827bb29d875e724cb0101bcba19917093c4482cf04301ea"},"type":"TRANSACTION_SEND"} +{"args":["0x0750EdA3185C758247E97819074bCD217a815FaE"],"artifactId":"RewardsManager#RewardsManager","dependencies":["RewardsManager#RewardsManager","Controller#Controller"],"functionName":"initialize","futureId":"RewardsManager#encodeFunctionCall(RewardsManager#RewardsManager.initialize)","result":"0xc4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"futureId":"EpochManager#GraphProxy","hash":"0x70673b1942420700c6029089aa17d2010a7f6925a8faffa8a2c56a19af19129f","networkInteractionId":1,"receipt":{"blockHash":"0x7e4a36277c0a5b61eef4d7f83af4db3f1728a644212b7f1549c893bd6fa54257","blockNumber":152512628,"contractAddress":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","logs":[{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000450906a976dc21450a7ccd1989d26e137e605b91"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"EpochManager#GraphProxy","result":{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","hash":"0x17fc13472b9e6884333a28ba14936405b039e0e172885c8c60504af946a4e50b","networkInteractionId":1,"receipt":{"blockHash":"0xee458f5c77fc2e6a1449b1d913975f5575e7406972bc7df06e535630329550b6","blockNumber":152512640,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#GraphProxy","hash":"0x12046ff040bcb03bb9d7764120995666dcfc62ebb1c93f9c25305fb90c4126c4","networkInteractionId":1,"receipt":{"blockHash":"0x867e89efbefeab2af219ee8ede1266ab529ed953f62a7ac5571120ea6b93da48","blockNumber":152512652,"contractAddress":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","logs":[{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#GraphProxy","result":{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2Curation#GraphProxy","hash":"0x5c128bbee1cb7cf9f52ef8e56417dd4f49b4b92622f49c1e34a6a5b490d261f0","networkInteractionId":1,"receipt":{"blockHash":"0x27ac46c5bc665253767219597e73a5972bc0c0edcdd34d5addbccd329911b452","blockNumber":152512664,"contractAddress":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","logs":[{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009ccd9b656f8a558879974ef2505496eed7ef7210"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2Curation#GraphProxy","result":{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#GraphProxy","hash":"0x0885250dc8c71655552807f0e94dd25995ab2aa5ee93f6a576c3cd27e72e11d1","networkInteractionId":1,"receipt":{"blockHash":"0xef1e1f7d4ea7a92bbbe58f2ce36203a01b520234767dd6b151c34006ce310a5c","blockNumber":152512675,"contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000071927f8ff0ce294882e2a161a54f62f3b0f3c726"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#GraphProxy","result":{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphTokenGateway#GraphProxy","hash":"0xbb9f3c0e4f560b942e332a9bc29e76c1847232ba2854fd31834b94ffb797adc4","networkInteractionId":1,"receipt":{"blockHash":"0x8ee6c1f288acd3825dd522507d0117b79f388b6d14f2bcef0f743e46b6f98cfd","blockNumber":152512688,"contractAddress":"0x7284213d1cDa80C892a4388f38dA431F06343144","logs":[{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004dea2d1be05909b71f539fd32601f7bd736c28d4"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphTokenGateway#GraphProxy","result":{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#GraphProxy","hash":"0x13e7b34e0caacb89e827bb29d875e724cb0101bcba19917093c4482cf04301ea","networkInteractionId":1,"receipt":{"blockHash":"0xbfa99db971cab1d5e5a0d1bced6e796148e016697f2f0b6cdcb68362d5d40b19","blockNumber":152512700,"contractAddress":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","logs":[{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0"]},{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000005ca4d407ec53ac17ce6bb414f42663f415dc5c3"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#GraphProxy","result":{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"EpochManager#EpochManager_ProxyWithABI","contractAddress":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","contractName":"EpochManager_ProxyWithABI","dependencies":["EpochManager#GraphProxy"],"futureId":"EpochManager#EpochManager_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"HorizonProxies#ProxyAdmin_GraphPayments","contractAddress":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","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":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","contractName":"ProxyAdmin","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow_AdminChanged"],"futureId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"args":["0x88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f","0xAFd60629034fBdC3ef58518B817bBDB4EC861c93"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","HorizonProxies#GraphPayments_ProxyWithABI"],"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":"0xe0e9929288cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c93","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#setContractProxy_GraphPayments","networkInteractionId":1,"nonce":1610,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#setContractProxy_GraphPayments","networkInteractionId":1,"nonce":1610,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x25f48d2fe4d06a15878189becf6a23b2b102c984162b277dce40769d5d41d718"},"type":"TRANSACTION_SEND"} +{"args":["0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034","0xF5D432192dAF7e8B045349693577ccF0B5165A12"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","HorizonProxies#GraphProxy"],"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":"0xe0e992921df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","networkInteractionId":1,"nonce":1611,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","networkInteractionId":1,"nonce":1611,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf25b004bb1859edb4b8779387abf23d9e06c32d7431c18fcb56c334a38917ed5"},"type":"TRANSACTION_SEND"} +{"args":["0x628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9","0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","HorizonProxies#PaymentsEscrow_ProxyWithABI"],"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":"0xe0e99292628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc900000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","networkInteractionId":1,"nonce":1612,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","networkInteractionId":1,"nonce":1612,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa097925819a0b2bc01f7bf4475ffb5f7eb80ff681aecbe64dd5500e4e9ef582f"},"type":"TRANSACTION_SEND"} +{"artifactId":"L2Curation#L2Curation_ProxyWithABI","contractAddress":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","contractName":"L2Curation_ProxyWithABI","dependencies":["L2Curation#GraphProxy"],"futureId":"L2Curation#L2Curation_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","contractName":"L2GraphToken_ProxyWithABI","dependencies":["L2GraphToken#GraphProxy"],"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI","contractAddress":"0x7284213d1cDa80C892a4388f38dA431F06343144","contractName":"L2GraphTokenGateway_ProxyWithABI","dependencies":["L2GraphTokenGateway#GraphProxy"],"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"RewardsManager#RewardsManager_ProxyWithABI","contractAddress":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","contractName":"RewardsManager_ProxyWithABI","dependencies":["RewardsManager#GraphProxy"],"futureId":"RewardsManager#RewardsManager_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"futureId":"HorizonProxies#setContractProxy_GraphPayments","hash":"0x25f48d2fe4d06a15878189becf6a23b2b102c984162b277dce40769d5d41d718","networkInteractionId":1,"receipt":{"blockHash":"0xfdbf86aca83fe33e3e03aaf51d80b09bdd6622da5d10749da766ee25625d6ea3","blockNumber":152512736,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c93","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_HorizonStaking","hash":"0xf25b004bb1859edb4b8779387abf23d9e06c32d7431c18fcb56c334a38917ed5","networkInteractionId":1,"receipt":{"blockHash":"0x5f5506fb47a81d0ee98092f5f27d08579f35f3af69b47e0952cc38a3df819ddb","blockNumber":152512748,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","hash":"0xa097925819a0b2bc01f7bf4475ffb5f7eb80ff681aecbe64dd5500e4e9ef582f","networkInteractionId":1,"receipt":{"blockHash":"0x99aef79c47f60d97ca4655d41bd026db401c743376a677f22fe9193da6e5b9f2","blockNumber":152512759,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x00000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0x450906A976dc21450A7CcD1989D26E137E605B91","0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","0xcd6dc6870000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000000000000000000000000000000000000000003c"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","EpochManager#EpochManager","EpochManager#EpochManager_ProxyWithABI","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":"0x07ebde0e000000000000000000000000450906a976dc21450a7ccd1989d26e137e605b91000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044cd6dc6870000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1613,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1613,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xdd58762ff54633fe86f5210e47a5cc15701159f3202a40a3ba834536b4b3b4b5"},"type":"TRANSACTION_SEND"} +{"args":["0x9CCD9B656f8A558879974ef2505496eEd7Ef7210","0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","0x4c8c7a440000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000b85d6e91eeaddc35927af34e5e28428282e4bcf200000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000001"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","L2Curation#L2Curation","L2Curation#L2Curation_ProxyWithABI","L2Curation#encodeFunctionCall(L2Curation#L2Curation.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000009ccd9b656f8a558879974ef2505496eed7ef7210000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000844c8c7a440000000000000000000000000750eda3185c758247e97819074bcd217a815fae000000000000000000000000b85d6e91eeaddc35927af34e5e28428282e4bcf20000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1614,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1614,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x975d40cc8ca44f658c2821c7ff94d37d52e882de6b758dbb001c2fe1519fe52d"},"type":"TRANSACTION_SEND"} +{"args":["0x00fe8F95407AB61863d27c07F584A0930ee5F3b0"],"artifactId":"L2Curation#L2Curation_ProxyWithABI","contractAddress":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","dependencies":["L2Curation#L2Curation_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphService","futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","networkInteraction":{"data":"0x93a90a1e00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0","id":1,"to":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1615,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1615,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x548f87f1f68b83a44cf7c444d85cbc75d47e44f243571b030729c3adb38abd10"},"type":"TRANSACTION_SEND"} +{"args":["0x71927f8Ff0ce294882e2A161A54F62f3b0f3c726","0xBBcb9a575176039C06F94d4d8337818318A26828","0xc4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","L2GraphToken#L2GraphToken","L2GraphToken#L2GraphToken_ProxyWithABI","L2GraphToken#encodeFunctionCall(L2GraphToken#L2GraphToken.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e00000000000000000000000071927f8ff0ce294882e2a161a54f62f3b0f3c726000000000000000000000000bbcb9a575176039c06f94d4d8337818318a2682800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1616,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1616,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x902db41fc904c0f0f9eb9e36352f8ea85c4e2ddb65e7405338e64070c3493688"},"type":"TRANSACTION_SEND"} +{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f","10000000000000000000000000000"],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"mint","futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","networkInteraction":{"data":"0x40c10f19000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f0000000000000000000000000000000000000000204fce5e3e25026110000000","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","networkInteractionId":1,"nonce":1617,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","networkInteractionId":1,"nonce":1617,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x3c633de8f787b1719a228c23fdb3b831d962d490976a4f0b723720b8803e289f"},"type":"TRANSACTION_SEND"} +{"args":[],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"renounceMinter","futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","networkInteraction":{"data":"0x98650275","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","networkInteractionId":1,"nonce":1618,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","networkInteractionId":1,"nonce":1618,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc18bd9f8b47eb70b0c33a9d94b52b1bfc1cc9da4d3d6a091cb338f7f316da0e3"},"type":"TRANSACTION_SEND"} +{"args":["0x4dEA2d1Be05909B71F539FD32601F7bd736c28D4","0x7284213d1cDa80C892a4388f38dA431F06343144","0xc4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","L2GraphTokenGateway#L2GraphTokenGateway","L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI","L2GraphTokenGateway#encodeFunctionCall(L2GraphTokenGateway#L2GraphTokenGateway.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000004dea2d1be05909b71f539fd32601f7bd736c28d40000000000000000000000007284213d1cda80c892a4388f38da431f0634314400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae00000000000000000000000000000000000000000000000000000000","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1619,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1619,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x77b214ca044f9be44682eeddfcceabe534bc358d9e844ad66e1501558ec7721c"},"type":"TRANSACTION_SEND"} +{"args":["0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d"],"artifactId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI","contractAddress":"0x7284213d1cDa80C892a4388f38dA431F06343144","dependencies":["L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPauseGuardian","futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","networkInteraction":{"data":"0x48bde20c000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d","id":1,"to":"0x7284213d1cDa80C892a4388f38dA431F06343144","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","networkInteractionId":1,"nonce":1620,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","networkInteractionId":1,"nonce":1620,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x279ae0ee68fd04dca18f4b103f48bac3298efb89f133da5ee5e3abd2a4d3146e"},"type":"TRANSACTION_SEND"} +{"args":["0x05Ca4d407ec53Ac17ce6Bb414f42663f415Dc5C3","0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","0xc4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","RewardsManager#RewardsManager","RewardsManager#RewardsManager_ProxyWithABI","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":"0x07ebde0e00000000000000000000000005ca4d407ec53ac17ce6bb414f42663f415dc5c30000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000000750eda3185c758247e97819074bcd217a815fae00000000000000000000000000000000000000000000000000000000","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1621,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":1621,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x379b4eeb90b8c19389f2500b96afc20cc69075879a9bbf7f072c6e3dbdc3cd3d"},"type":"TRANSACTION_SEND"} +{"args":["114155251141552511415"],"artifactId":"RewardsManager#RewardsManager_ProxyWithABI","contractAddress":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","dependencies":["RewardsManager#RewardsManager_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setIssuancePerBlock","futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","networkInteraction":{"data":"0x1156bdc10000000000000000000000000000000000000000000000063038ec17c1be19b7","id":1,"to":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","networkInteractionId":1,"nonce":1622,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","networkInteractionId":1,"nonce":1622,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa861fd40ed78bb34d955b6dbf0d94f765c62c7cd0337fb6a9c307f472df296e5"},"type":"TRANSACTION_SEND"} +{"args":["0xd03ea8624C8C5987235048901fB614fDcA89b117"],"artifactId":"RewardsManager#RewardsManager_ProxyWithABI","contractAddress":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","dependencies":["RewardsManager#RewardsManager_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphAvailabilityOracle","futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","networkInteraction":{"data":"0x0903c094000000000000000000000000d03ea8624c8c5987235048901fb614fdca89b117","id":1,"to":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","networkInteractionId":1,"nonce":1623,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","networkInteractionId":1,"nonce":1623,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x7d2ae808e2e2f733315f6663b7fd6871976151a929c590ceda72bf8729d58fa6"},"type":"TRANSACTION_SEND"} +{"args":["0x00fe8F95407AB61863d27c07F584A0930ee5F3b0"],"artifactId":"RewardsManager#RewardsManager_ProxyWithABI","contractAddress":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","dependencies":["RewardsManager#RewardsManager_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphService","futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","networkInteraction":{"data":"0x93a90a1e00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0","id":1,"to":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1624,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1624,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x73e4b291e4205e0f1919f33f38afcddbc46bda0729fc78948220a98d1fe40a3d"},"type":"TRANSACTION_SEND"} +{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0xdd58762ff54633fe86f5210e47a5cc15701159f3202a40a3ba834536b4b3b4b5","networkInteractionId":1,"receipt":{"blockHash":"0xd7d621b43c81dd507d75cdcd95ebd60780cd8d4f8207d16366ecbbd0042d23fc","blockNumber":152512784,"logs":[{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000450906a976dc21450a7ccd1989d26e137e605b91"]},{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x000000000000000000000000450906a976dc21450a7ccd1989d26e137e605b91","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","data":"0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]},{"address":"0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2","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":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x975d40cc8ca44f658c2821c7ff94d37d52e882de6b758dbb001c2fe1519fe52d","networkInteractionId":1,"receipt":{"blockHash":"0xcda6eca2b9e900a75db4b68b985b093b505234acd100a6a8a4e48a2b51571c78","blockNumber":152512796,"logs":[{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009ccd9b656f8a558879974ef2505496eed7ef7210"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000009ccd9b656f8a558879974ef2505496eed7ef7210","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001364656661756c7452657365727665526174696f00000000000000000000000000","logIndex":3,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000156375726174696f6e54617850657263656e746167650000000000000000000000","logIndex":4,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000166d696e696d756d4375726174696f6e4465706f73697400000000000000000000","logIndex":5,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000136375726174696f6e546f6b656e4d617374657200000000000000000000000000","logIndex":6,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","hash":"0x548f87f1f68b83a44cf7c444d85cbc75d47e44f243571b030729c3adb38abd10","networkInteractionId":1,"receipt":{"blockHash":"0xe42326a81201499c7888c38cf1eb816e7c0be8ab7f7de1bc1d062145100f82fb","blockNumber":152512808,"logs":[{"address":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","data":"0x","logIndex":0,"topics":["0x81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c7","0x00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2Curation#L2Curation_ProxyWithABI.setSubgraphService","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x902db41fc904c0f0f9eb9e36352f8ea85c4e2ddb65e7405338e64070c3493688","networkInteractionId":1,"receipt":{"blockHash":"0x1459912e63cef3db779d451b4818fc24fbd8727943bc9ae94950afc027345fc0","blockNumber":152512823,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000071927f8ff0ce294882e2a161a54f62f3b0f3c726"]},{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x00000000000000000000000071927f8ff0ce294882e2a161a54f62f3b0f3c726","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x0000000000000000000000000000000000000000000000000000000000000000","logIndex":2,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":3,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","hash":"0x3c633de8f787b1719a228c23fdb3b831d962d490976a4f0b723720b8803e289f","networkInteractionId":1,"receipt":{"blockHash":"0xf339d4e764a193b69123096f1f2e3205d278225f18e88b7499e9fe656006ea26","blockNumber":152512834,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x0000000000000000000000000000000000000000204fce5e3e25026110000000","logIndex":0,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.mint","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","hash":"0xc18bd9f8b47eb70b0c33a9d94b52b1bfc1cc9da4d3d6a091cb338f7f316da0e3","networkInteractionId":1,"receipt":{"blockHash":"0x6e64dd677d1d1abe493ef0bd67630772b160318df8649ce18dc5ca7f4ba869a9","blockNumber":152512845,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":3,"topics":["0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x77b214ca044f9be44682eeddfcceabe534bc358d9e844ad66e1501558ec7721c","networkInteractionId":1,"receipt":{"blockHash":"0x7192dec2029a3e6681419f3058d3e49cb42646f81987986783f68109de5938ba","blockNumber":152512856,"logs":[{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004dea2d1be05909b71f539fd32601f7bd736c28d4"]},{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000004dea2d1be05909b71f539fd32601f7bd736c28d4","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","hash":"0x279ae0ee68fd04dca18f4b103f48bac3298efb89f133da5ee5e3abd2a4d3146e","networkInteractionId":1,"receipt":{"blockHash":"0x9bc544feb180827e82dd9be55d05d9dd0dc3187be996089ee44d34572b8608b7","blockNumber":152512866,"logs":[{"address":"0x7284213d1cDa80C892a4388f38dA431F06343144","data":"0x","logIndex":2,"topics":["0x0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.setPauseGuardian","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x379b4eeb90b8c19389f2500b96afc20cc69075879a9bbf7f072c6e3dbdc3cd3d","networkInteractionId":1,"receipt":{"blockHash":"0x73297d07c33ef096410dc362cc7ba59e2d6130642c66ddd7bcc1b61751786785","blockNumber":152512878,"logs":[{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000005ca4d407ec53ac17ce6bb414f42663f415dc5c3"]},{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x00000000000000000000000005ca4d407ec53ac17ce6bb414f42663f415dc5c3","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","hash":"0xa861fd40ed78bb34d955b6dbf0d94f765c62c7cd0337fb6a9c307f472df296e5","networkInteractionId":1,"receipt":{"blockHash":"0xa7f6f97630c1cc670ed892e835646cb0087431cfd670bfad40515c98d8a903cc","blockNumber":152512890,"logs":[{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001069737375616e6365506572426c6f636b00000000000000000000000000000000","logIndex":0,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setIssuancePerBlock","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","hash":"0x7d2ae808e2e2f733315f6663b7fd6871976151a929c590ceda72bf8729d58fa6","networkInteractionId":1,"receipt":{"blockHash":"0xb7ac1df06a063c3ea5cfc4d110c1e1901744e1dad9c3c3ee8f239bd2b609916d","blockNumber":152512901,"logs":[{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a7375626772617068417661696c6162696c6974794f7261636c65000000000000","logIndex":0,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphAvailabilityOracle","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","hash":"0x73e4b291e4205e0f1919f33f38afcddbc46bda0729fc78948220a98d1fe40a3d","networkInteractionId":1,"receipt":{"blockHash":"0x04457f9baf9992df6be674a1708b6e739ab252003e8f71f661511d3842d82c65","blockNumber":152512912,"logs":[{"address":"0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f","data":"0x","logIndex":1,"topics":["0x97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"RewardsManager#RewardsManager_ProxyWithABI.setSubgraphService","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063","0xAA1DeBfb7A7c0Ba85cef858B6E70cFad943Fd4A2"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","EpochManager#EpochManager_ProxyWithABI"],"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":"0xe0e99292c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a2","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","networkInteractionId":1,"nonce":1625,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","networkInteractionId":1,"nonce":1625,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xcceaf7a13959231dd82800493ff9e55448d5dcfc80a6910b157ec6ef3bd74252"},"type":"TRANSACTION_SEND"} +{"args":["0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0","0x7284213d1cDa80C892a4388f38dA431F06343144"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI"],"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":"0xe0e99292d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf00000000000000000000000007284213d1cda80c892a4388f38da431f06343144","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","networkInteractionId":1,"nonce":1626,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","networkInteractionId":1,"nonce":1626,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xe2278b46402583ab47879f8e6ce4792d1870875f1e7e1763bb6daa084686d5b6"},"type":"TRANSACTION_SEND"} +{"args":["0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f","0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","L2Curation#L2Curation_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","networkInteraction":{"data":"0xe0e99292e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","networkInteractionId":1,"nonce":1627,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","networkInteractionId":1,"nonce":1627,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x7c2633e202405c8ead9767e864d0a3c1ad681f2f31bcb742baddc8fd07c63576"},"type":"TRANSACTION_SEND"} +{"args":["0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761","0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","RewardsManager#RewardsManager_ProxyWithABI"],"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":"0xe0e99292966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c531807610000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","networkInteractionId":1,"nonce":1628,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","networkInteractionId":1,"nonce":1628,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x594c062c3709f602c12b0675783415c1fa1329a2f6a9465b0a3959f320556e4a"},"type":"TRANSACTION_SEND"} +{"args":["0x7284213d1cDa80C892a4388f38dA431F06343144"],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI","L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"addMinter","futureId":"L2GraphToken#addMinterGateway","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#addMinterGateway","networkInteraction":{"data":"0x983b2d560000000000000000000000007284213d1cda80c892a4388f38da431f06343144","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#addMinterGateway","networkInteractionId":1,"nonce":1629,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#addMinterGateway","networkInteractionId":1,"nonce":1629,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x3c3a015c769fc058b03e59e926cb8277bde3e20cecc17750e784cdcdfdaeee34"},"type":"TRANSACTION_SEND"} +{"args":["0x1AB05a65fa6D5F6a90A23693D5d40A4D927a815f"],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI","RewardsManager#RewardsManager_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"addMinter","futureId":"L2GraphToken#addMinterRewardsManager","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#addMinterRewardsManager","networkInteraction":{"data":"0x983b2d560000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#addMinterRewardsManager","networkInteractionId":1,"nonce":1630,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#addMinterRewardsManager","networkInteractionId":1,"nonce":1630,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x411b24d17504062d4467f4ae9668f2dfd779d15e74c8db0c19ce7818ca3c0a57"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","hash":"0xcceaf7a13959231dd82800493ff9e55448d5dcfc80a6910b157ec6ef3bd74252","networkInteractionId":1,"receipt":{"blockHash":"0x90c2d165807a178540aad5ba743d420014779a3fa5e310db871fb1e7db759f13","blockNumber":152512959,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a2","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","hash":"0xe2278b46402583ab47879f8e6ce4792d1870875f1e7e1763bb6daa084686d5b6","networkInteractionId":1,"receipt":{"blockHash":"0x7a5e50263d3b2f3ca0d031ecccb762e14ef7aca0c3e9967d8ec824c41594cff1","blockNumber":152512972,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x0000000000000000000000007284213d1cda80c892a4388f38da431f06343144","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","hash":"0x7c2633e202405c8ead9767e864d0a3c1ad681f2f31bcb742baddc8fd07c63576","networkInteractionId":1,"receipt":{"blockHash":"0x88eca31bf2f7abda8d7e2e4b697885d2758deee895f6ca80b4a77d6d91d15320","blockNumber":152512983,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_L2Curation","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","hash":"0x594c062c3709f602c12b0675783415c1fa1329a2f6a9465b0a3959f320556e4a","networkInteractionId":1,"receipt":{"blockHash":"0x1791408fc0bfb9e8ee6fd5acd8fe50524348be504e606122e356610f25a7b95c","blockNumber":152512994,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x0000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#addMinterGateway","hash":"0x3c3a015c769fc058b03e59e926cb8277bde3e20cecc17750e784cdcdfdaeee34","networkInteractionId":1,"receipt":{"blockHash":"0x9703201f7fcc397f97e2be4c2f154319b2054c49221e9517c0c6dc1d243229d1","blockNumber":152513005,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":0,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x0000000000000000000000007284213d1cda80c892a4388f38da431f06343144"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#addMinterGateway","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"L2GraphToken#addMinterRewardsManager","hash":"0x411b24d17504062d4467f4ae9668f2dfd779d15e74c8db0c19ce7818ca3c0a57","networkInteractionId":1,"receipt":{"blockHash":"0x03819e257131ef6d3bfca369b9d2905c5663d063486ce54fde12afd28e943807","blockNumber":152513016,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":4,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x0000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#addMinterRewardsManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0xad834c286a9b590f8264c8d9574fafcbbbe90b3b"],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI","L2GraphToken#L2GraphToken_ProxyWithABI.mint","L2GraphToken#L2GraphToken_ProxyWithABI.renounceMinter","L2GraphToken#addMinterRewardsManager","L2GraphToken#addMinterGateway"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1631,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1631,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xd486ca6c48e7390de0c0ab47f4c0dbcc1913258b3e35707a1c92952a870f7d2c"},"type":"TRANSACTION_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","hash":"0xd486ca6c48e7390de0c0ab47f4c0dbcc1913258b3e35707a1c92952a870f7d2c","networkInteractionId":1,"receipt":{"blockHash":"0xcd6257c94b366b8d66ed63ce066215e73946366388689eecb53b7f3d0339c2ac","blockNumber":152513049,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":0,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":[],"artifactId":"L2GraphToken#L2GraphToken_ProxyWithABI","contractAddress":"0xBBcb9a575176039C06F94d4d8337818318A26828","dependencies":["L2GraphToken#L2GraphToken_ProxyWithABI","L2GraphToken#L2GraphToken_ProxyWithABI.transferOwnership"],"from":"0xad834c286a9b590f8264c8d9574fafcbbbe90b3b","functionName":"acceptOwnership","futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","networkInteraction":{"data":"0x79ba5097","id":1,"to":"0xBBcb9a575176039C06F94d4d8337818318A26828","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","networkInteractionId":1,"nonce":15,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","networkInteractionId":1,"nonce":15,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x36aef871e6580d62bc8004c43b97fb5ce6a38c42289c90804727369e1743aaaa"},"type":"TRANSACTION_SEND"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","hash":"0x36aef871e6580d62bc8004c43b97fb5ce6a38c42289c90804727369e1743aaaa","networkInteractionId":1,"receipt":{"blockHash":"0xbff0647b4e6cce2ce39a5970aa86cd36b72bb99997db208f80363ee13ba8b06c","blockNumber":152513069,"logs":[{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":3,"topics":["0x0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]},{"address":"0xBBcb9a575176039C06F94d4d8337818318A26828","data":"0x","logIndex":4,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"L2GraphToken#L2GraphToken_ProxyWithABI.acceptOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247","0xBBcb9a575176039C06F94d4d8337818318A26828"],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","L2GraphToken#L2GraphToken_ProxyWithABI"],"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":"0xe0e9929245fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","networkInteractionId":1,"nonce":1632,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","networkInteractionId":1,"nonce":1632,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x44bbdc20ffb8be014f38b5ee30273e609e1a7ae991253bc16ccf7d43447a5363"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","hash":"0x44bbdc20ffb8be014f38b5ee30273e609e1a7ae991253bc16ccf7d43447a5363","networkInteractionId":1,"receipt":{"blockHash":"0x952e76d13857ba426cc7d9a9877a2a35900339743e55fe8f14dad9c3c9651ff3","blockNumber":152513090,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"GraphPayments#GraphPayments","constructorArgs":["0x0750EdA3185C758247E97819074bCD217a815FaE",10000],"contractName":"GraphPayments","dependencies":["Controller#Controller","GraphHorizon_Periphery","HorizonProxies"],"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":"0x6101e060405234801561001157600080fd5b50604051611552380380611552833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c576040516339b762e560e21b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610f546105fe600039600081816056015261021f0152600050506000505060005050600050506000505060005050600050506000505060006108b20152600061077f0152610f546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae0000000000000000000000000000000000000000000000000000000000002710","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphPayments#GraphPayments","networkInteractionId":1,"nonce":1633,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphPayments#GraphPayments","networkInteractionId":1,"nonce":1633,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc54d915f9d9de3516d7f8da7284b32a11ea95d988a1d316f57ac8cad01fc99d1"},"type":"TRANSACTION_SEND"} +{"artifactId":"GraphTallyCollector#GraphTallyCollector","constructorArgs":["GraphTallyCollector","1","0x0750EdA3185C758247E97819074bCD217a815FaE",10000],"contractName":"GraphTallyCollector","dependencies":["Controller#Controller","GraphHorizon_Periphery","HorizonProxies"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphTallyCollector#GraphTallyCollector","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"GraphTallyCollector#GraphTallyCollector","networkInteraction":{"data":"0x6102c060405234801561001157600080fd5b506040516122bf3803806122bf833981016040819052610030916105e0565b8082858561003f8260006103e2565b6101205261004e8160016103e2565b61014052815160208084019190912060e052815190820120610100524660a0526100db60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661012d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101e05260408051808201909152600a81526923b930b8342a37b5b2b760b11b602082015261016590610415565b6001600160a01b0316610160526040805180820190915260078152665374616b696e6760c81b602082015261019990610415565b6001600160a01b03166101805260408051808201909152600d81526c47726170685061796d656e747360981b60208201526101d390610415565b6001600160a01b03166101a05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261020e90610415565b6001600160a01b03166101c05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261024790610415565b6001600160a01b03166102005260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b602082015261028290610415565b6001600160a01b0316610220526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102c090610415565b6001600160a01b03166102405260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102fc90610415565b6001600160a01b03166102605260408051808201909152600881526721bab930ba34b7b760c11b602082015261033190610415565b6001600160a01b039081166102808190526101e05161018051610160516101a0516101c0516102005161022051610240516102605160408051968c168752948b166020870152928a1685850152908916606085015288166080840152871660a083015260c0820195909552935192851694918216939116917fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a439181900360e00190a4506102a0525061082d92505050565b60006020835110156103fe576103f7836104c3565b905061040f565b8161040984826106ea565b5060ff90505b92915050565b6000806101e0516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161045091815260200190565b602060405180830381865afa15801561046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049191906107a8565b9050826001600160a01b0382166104bc5760405163218f5add60e11b815260040161012491906107f6565b5092915050565b600080829050601f815111156104ee578260405163305a27a960e01b815260040161012491906107f6565b80516104f982610809565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561053257818101518382015260200161051a565b50506000910152565b600082601f83011261054c57600080fd5b81516001600160401b0381111561056557610565610501565b604051601f8201601f19908116603f011681016001600160401b038111828210171561059357610593610501565b6040528181528382016020018510156105ab57600080fd5b6105bc826020830160208701610517565b949350505050565b80516001600160a01b03811681146105db57600080fd5b919050565b600080600080608085870312156105f657600080fd5b84516001600160401b0381111561060c57600080fd5b6106188782880161053b565b602087015190955090506001600160401b0381111561063657600080fd5b6106428782880161053b565b935050610651604086016105c4565b6060959095015193969295505050565b600181811c9082168061067557607f821691505b60208210810361069557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106e557806000526020600020601f840160051c810160208510156106c25750805b601f840160051c820191505b818110156106e257600081556001016106ce565b50505b505050565b81516001600160401b0381111561070357610703610501565b610717816107118454610661565b8461069b565b6020601f82116001811461074b57600083156107335750848201515b600019600385901b1c1916600184901b1784556106e2565b600084815260208120601f198516915b8281101561077b578785015182556020948501946001909201910161075b565b50848210156107995786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000602082840312156107ba57600080fd5b6107c3826105c4565b9392505050565b600081518084526107e2816020860160208601610517565b601f01601f19169290920160200192915050565b6020815260006107c360208301846107ca565b805160208083015191908110156106955760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516119d06108ef60003960008181610247015261036501526000505060005050600050506000505060005050600050506000610a19015260005050600061083e0152600050506000610bb401526000610b8201526000610f2b01526000610f0301526000610e5e01526000610e8801526000610eb201526119d06000f3fe608060405234801561001057600080fd5b50600436106100ba5760003560e01c8063015cdd80146100bf5780631354f019146100d4578063181250ff146100e757806326969c4c1461013457806339aa7416146101475780633a13e1af1461015a57806363648817146101be57806365e4ad9e146101de578063692209ce146102015780637f07d2831461021457806384b0196e146102275780639b95288114610242578063bea5d2ab14610269578063fee9f01f14610295575b600080fd5b6100d26100cd3660046111d7565b6102a8565b005b6100d26100e23660046111d7565b610355565b6101216100f53660046111f4565b600360209081526000948552604080862082529385528385208152918452828420909152825290205481565b6040519081526020015b60405180910390f35b610121610142366004611247565b6103ea565b6100d26101553660046111d7565b610403565b6101976101683660046111d7565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169160ff1683565b604080516001600160a01b039094168452602084019290925215159082015260600161012b565b6101d16101cc366004611281565b6104cd565b60405161012b91906112bb565b6101f16101ec3660046112cf565b6104e0565b604051901515815260200161012b565b61012161020f36600461135f565b6104f3565b6101216102223660046113b8565b61050a565b61022f610521565b60405161012b9796959493929190611450565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6101216102773660046111d7565b6001600160a01b031660009081526002602052604090206001015490565b6100d26102a33660046114e8565b610567565b806102b33382610633565b6001600160a01b03821660009081526002602052604090206001015482906102f85760405163cd3cd55d60e01b81526004016102ef91906112bb565b60405180910390fd5b506001600160a01b038216600081815260026020908152604080832060010180549390555182815291929133917f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb910160405180910390a3505050565b806103603382610633565b61038a7f000000000000000000000000000000000000000000000000000000000000000042611559565b6001600160a01b0383166000818152600260205260409081902060010183905551909133917fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf916103de9190815260200190565b60405180910390a35050565b60006103fd6103f88361170b565b610666565b92915050565b8061040e3382610633565b6001600160a01b038216600090815260026020526040902060010154828161044a5760405163cd3cd55d60e01b81526004016102ef91906112bb565b504281818111156104775760405163bd76307f60e01b8152600481019290925260248201526044016102ef565b50506001600160a01b0383166000818152600260208190526040808320909101805460ff191660011790555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a3505050565b60006103fd6104db836117a8565b610738565b60006104ec8383610758565b9392505050565b6000610501858585856107bb565b95945050505050565b600061051984848460006107bb565b949350505050565b600060608060008060006060610535610b7b565b61053d610bad565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6001600160a01b0384811660009081526002602081905260409091208054910154911690859060ff1682156105cb57604051630c83a00f60e01b81526001600160a01b039384166004820152929091166024830152151560448201526064016102ef565b5050506105da82828587610bda565b6001600160a01b03841660008181526002602052604080822080546001600160a01b03191633908117909155905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b61063d8282610758565b8282909161066057604051631e58ab1f60e01b81526004016102ef9291906117b4565b50505050565b60006103fd7f2f8962be843489018f0fe44aa06adfead655e3c10d7347a020040f9524f392d3836000015184602001518560400151866060015187608001518860a001518960c001518051906020012060405160200161071d98979695949392919097885260208801969096526001600160a01b0394851660408801529284166060870152921660808501526001600160401b039190911660a08401526001600160801b031660c083015260e08201526101000190565b60405160208183030381529060405280519060200120610d17565b6000806107488360000151610666565b90506104ec818460200151610d44565b60006001600160a01b0383161580159061078e57506001600160a01b038281166000908152600260205260409020548116908416145b80156104ec5750506001600160a01b03166000908152600260208190526040909120015460ff1615919050565b60008080806107cc868801886117ce565b825160600151929550909350915033906001600160a01b038116821461080757604051632b65e49760e11b81526004016102ef9291906117b4565b505061081283610d6e565b8251805160608201516040928301519251630119cbed60e31b8152919290916000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906308ce5f689061087590859087906004016117b4565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611828565b875160600151909150816108de5760405163037a2d1f60e61b81526004016102ef91906112bb565b5050855160a001516001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081205490916001600160801b031690818180821161095c57604051637007d4a160e01b8152600481019290925260248201526044016102ef565b50508a600003610977576109708183611841565b92506109bd565b6109818183611841565b8b11158b61098f8385611841565b90916109b75760405163c5602bb160e01b8152600481019290925260248201526044016102ef565b50508a92505b50508015610aac576001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081208054839290610a13908490611559565b909155507f000000000000000000000000000000000000000000000000000000000000000090506001600160a01b0316631230fa3e8d8960000151602001518585888c8c6040518863ffffffff1660e01b8152600401610a79979695949392919061188c565b600060405180830381600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050505b826001600160a01b03168760000151602001516001600160a01b0316857f481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb48f8686604051610afc939291906118d8565b60405180910390a48651602080820151608083015160a084015160c090940151928b01516040516001600160a01b03808a16969416948a947f3943fc3b19ec289c87b57de7a8bf1448d81ced03d1806144ecaca4ba9e97605694610b64948b94919391611900565b60405180910390a49b9a5050505050505050505050565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006000610da6565b905090565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006001610da6565b8142808211610c055760405163d7705a0160e01b8152600481019290925260248201526044016102ef565b505060408051466020808301919091526001600160601b031930606090811b8216848601527330baba3437b934bd32a9b4b3b732b9283937b7b360611b60548501526068840187905233901b1660888301528251808303607c018152609c90920190925280519101207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6000908152601c829052603c81209050826001600160a01b0316610ce88288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4492505050565b6001600160a01b031614610d0f57604051631c07ed3360e31b815260040160405180910390fd5b505050505050565b60006103fd610d24610e51565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d548686610f7c565b925092509250610d648282610fc9565b5090949350505050565b805160200151610d8690610d8183610738565b610758565b610da35760405163aa415c3360e01b815260040160405180910390fd5b50565b606060ff8314610dc057610db983611086565b90506103fd565b818054610dcc90611960565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611960565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505090506103fd565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610eaa57507f000000000000000000000000000000000000000000000000000000000000000046145b15610ed457507f000000000000000000000000000000000000000000000000000000000000000090565b610ba8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103610fb65760208401516040850151606086015160001a610fa8888285856110c5565b955095509550505050610fc2565b50508151600091506002905b9250925092565b6000826003811115610fdd57610fdd611854565b03610fe6575050565b6001826003811115610ffa57610ffa611854565b036110185760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561102c5761102c611854565b0361104d5760405163fce698f760e01b8152600481018290526024016102ef565b600382600381111561106157611061611854565b03611082576040516335e2f38360e21b8152600481018290526024016102ef565b5050565b606060006110938361118a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156110f65750600091506003905082611180565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561114a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661117657506000925060019150829050611180565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103fd57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0381168114610da357600080fd5b80356111d2816111b2565b919050565b6000602082840312156111e957600080fd5b81356104ec816111b2565b6000806000806080858703121561120a57600080fd5b8435611215816111b2565b935060208501359250604085013561122c816111b2565b9150606085013561123c816111b2565b939692955090935050565b60006020828403121561125957600080fd5b81356001600160401b0381111561126f57600080fd5b820160e081850312156104ec57600080fd5b60006020828403121561129357600080fd5b81356001600160401b038111156112a957600080fd5b8201604081850312156104ec57600080fd5b6001600160a01b0391909116815260200190565b600080604083850312156112e257600080fd5b82356112ed816111b2565b915060208301356112fd816111b2565b809150509250929050565b8035600381106111d257600080fd5b60008083601f84011261132957600080fd5b5081356001600160401b0381111561134057600080fd5b60208301915083602082850101111561135857600080fd5b9250929050565b6000806000806060858703121561137557600080fd5b61137e85611308565b935060208501356001600160401b0381111561139957600080fd5b6113a587828801611317565b9598909750949560400135949350505050565b6000806000604084860312156113cd57600080fd5b6113d684611308565b925060208401356001600160401b038111156113f157600080fd5b6113fd86828701611317565b9497909650939450505050565b6000815180845260005b8181101561143057602081850181015186830182015201611414565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e06020820152600061146f60e083018961140a565b8281036040840152611481818961140a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156114d75783518352602093840193909201916001016114b9565b50909b9a5050505050505050505050565b600080600080606085870312156114fe57600080fd5b8435611509816111b2565b93506020850135925060408501356001600160401b0381111561152b57600080fd5b61153787828801611317565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103fd576103fd611543565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156115a4576115a461156c565b60405290565b80356001600160401b03811681146111d257600080fd5b80356001600160801b03811681146111d257600080fd5b600082601f8301126115e957600080fd5b81356001600160401b038111156116025761160261156c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116305761163061156c565b60405281815283820160200185101561164857600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0828403121561167757600080fd5b61167f611582565b823581529050611691602083016111c7565b60208201526116a2604083016111c7565b60408201526116b3606083016111c7565b60608201526116c4608083016115aa565b60808201526116d560a083016115c1565b60a082015260c08201356001600160401b038111156116f357600080fd5b6116ff848285016115d8565b60c08301525092915050565b60006103fd3683611665565b60006040828403121561172957600080fd5b604080519081016001600160401b038111828210171561174b5761174b61156c565b60405290508082356001600160401b0381111561176757600080fd5b61177385828601611665565b82525060208301356001600160401b0381111561178f57600080fd5b61179b858286016115d8565b6020830152505092915050565b60006103fd3683611717565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156117e357600080fd5b83356001600160401b038111156117f957600080fd5b61180586828701611717565b93505060208401359150604084013561181d816111b2565b809150509250925092565b60006020828403121561183a57600080fd5b5051919050565b818103818111156103fd576103fd611543565b634e487b7160e01b600052602160045260246000fd5b6003811061188857634e487b7160e01b600052602160045260246000fd5b9052565b60e0810161189a828a61186a565b6001600160a01b03978816602083015295871660408201526060810194909452918516608084015260a083015290921660c090920191909152919050565b606081016118e6828661186a565b6001600160a01b0393909316602082015260400152919050565b6001600160a01b03861681526001600160401b03851660208201526001600160801b038416604082015260a0606082018190526000906119429083018561140a565b8281036080840152611954818561140a565b98975050505050505050565b600181811c9082168061197457607f821691505b60208210810361199457634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202168ccf8bac6984eef611a01a2e1c7b84ddb64fd4b819201ae6206ab6038e15764736f6c634300081b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000750eda3185c758247e97819074bcd217a815fae00000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000013477261706854616c6c79436f6c6c6563746f720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphTallyCollector#GraphTallyCollector","networkInteractionId":1,"nonce":1634,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphTallyCollector#GraphTallyCollector","networkInteractionId":1,"nonce":1634,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa8d55ccd6bc05af4e50ce1c6cf5ecd5c5a4cfc076b22aca3e7eb2b4c2f5ea8aa"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonStaking#HorizonStakingExtension","constructorArgs":["0x0750EdA3185C758247E97819074bCD217a815FaE","0x00fe8F95407AB61863d27c07F584A0930ee5F3b0"],"contractName":"HorizonStakingExtension","dependencies":["Controller#Controller","GraphHorizon_Periphery","HorizonProxies","HorizonStaking#ExponentialRebates"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonStaking#HorizonStakingExtension","futureType":"CONTRACT_DEPLOYMENT","libraries":{"ExponentialRebates":"0xF2DB533658a1728f3ce04A49Df4b545f4A53b620"},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"HorizonStaking#HorizonStakingExtension","networkInteraction":{"data":"0x6101e060405234801561001157600080fd5b506040516133a83803806133a883398101604081905261003091610411565b818181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610347565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610347565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610347565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610347565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610347565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610347565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610347565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610347565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610347565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b03166101c052506104b4915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038291815260200190565b602060405180830381865afa15801561039f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c39190610444565b9050826001600160a01b0382166103ee5760405163218f5add60e11b81526004016100749190610466565b5092915050565b80516001600160a01b038116811461040c57600080fd5b919050565b6000806040838503121561042457600080fd5b61042d836103f5565b915061043b602084016103f5565b90509250929050565b60006020828403121561045657600080fd5b61045f826103f5565b9392505050565b602081526000825180602084015260005b818110156104945760208186018101516040868401015201610477565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051612e76610532600039600081816104ec0152611e5901526000611f6c0152600050506000505060006124d70152600061222e01526000611966015260005050600050506000505060006119a10152612e766000f3fe608060405234801561001057600080fd5b50600436106101805760003560e01c806308ce5f68146101855780630e022923146101ab5780631787e69f1461023357806325d9897e1461025c5780632f7cc5011461038457806339514ad2146103975780634488a382146103bc57806344c32a61146103d157806355c85269146103e4578063561285e41461042e5780637573ef4f146104835780637a76646014610233578063872d0489146104965780638cc01c86146104a95780638d3c100a146104d75780639363c522146104ea57806398c657dc146105185780639ce7abe514610538578063a2594d821461054b578063a784d4981461055e578063ac9650d814610571578063ae4fe67a14610591578063b6363cf2146105cd578063c0641994146105e0578063ccebcabb146105ee578063d48de84514610610578063e2e1e8e91461065f578063e56f8a1d1461067f578063e73e14bf146106c5578063f1d60d66146106f0578063fb744cc014610703578063fc54fb2714610716575b600080fd5b610198610193366004612721565b610721565b6040519081526020015b60405180910390f35b6101be6101b936600461275a565b610736565b6040516101a2919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b61019861024136600461275a565b6001600160a01b03166000908152600e602052604090205490565b61037761026a366004612721565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516101a29190612777565b61019861039236600461284b565b610816565b601a546001600160401b03165b6040516001600160401b0390911681526020016101a2565b6103cf6103ca3660046128a5565b610918565b005b6103cf6103df3660046128e4565b610d04565b6103f76103f236600461275a565b610d99565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c0016101a2565b61044161043c366004612721565b610e6f565b6040516101a29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b610198610491366004612910565b610ec1565b6101986104a436600461295f565b610f25565b6104bc6104b736600461275a565b610f7a565b604080518251815260209283015192810192909252016101a2565b6103cf6104e53660046129a8565b610fb6565b7f00000000000000000000000000000000000000000000000000000000000000006040516101a291906129cd565b61052b61052636600461275a565b611405565b6040516101a291906129f7565b6103cf610546366004612a1f565b611410565b6103cf61055936600461275a565b61150b565b61019861056c36600461275a565b6115f7565b61058461057f366004612aa4565b611602565b6040516101a29190612b3d565b6105bd61059f36600461275a565b6001600160a01b031660009081526022602052604090205460ff1690565b60405190151581526020016101a2565b6105bd6105db366004612721565b6116e9565b600d5463ffffffff166103a4565b6106016105fc366004612bbd565b611718565b604051905181526020016101a2565b61062361061e366004612bfd565b61176a565b6040516101a29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61019861066d366004612c19565b60009081526010602052604090205490565b61069261068d36600461284b565b6117d7565b6040516101a291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b6105bd6106d336600461275a565b6001600160a01b03166000908152600e6020526040902054151590565b6105bd6106fe36600461275a565b61183f565b610198610711366004612721565b611864565b60205460ff166105bd565b600061072d8383611870565b90505b92915050565b61079160405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b600080610825868686866118a8565b9050806003015460000361083d576000915050610910565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b80156109075760006108838c83611914565b905084600501548160030154036108fc576001810154426001600160401b03909116116108f6576000838583600001546108bd9190612c48565b6108c79190612c5f565b90506108d38186612c81565b82549095506108e29085612c81565b93506108ee8188612c94565b9650506108fc565b50610907565b600201549050610871565b50929450505050505b949350505050565b3360009081526012602052604090205460ff166109675760405162461bcd60e51b815260206004820152600860248201526710b9b630b9b432b960c11b60448201526064015b60405180910390fd5b61096f611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190612ca7565b156109ee57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152600e6020526040902083610a3d5760405162461bcd60e51b815260206004820152600760248201526621746f6b656e7360c81b604482015260640161095e565b82841015610a7d5760405162461bcd60e51b815260206004820152600d60248201526c0e4caeec2e4c8e67ce6d8c2e6d609b1b604482015260640161095e565b8054610ab45760405162461bcd60e51b8152602060048201526006602482015265217374616b6560d01b604482015260640161095e565b8054841115610af35760405162461bcd60e51b815260206004820152600b60248201526a736c6173683e7374616b6560a81b604482015260640161095e565b6001600160a01b038216610b385760405162461bcd60e51b815260206004820152600c60248201526b2162656e656669636961727960a01b604482015260640161095e565b600081600201548260010154610b4e9190612c94565b9050600082600001548211610b6f578254610b6a908390612c81565b610b72565b60005b90508086118015610b87575060008360020154115b15610bd5576000610b988288612c81565b90506000610baa828660020154611988565b9050808560020154610bbc9190612c81565b60028601819055600003610bd257600060038601555b50505b60048301548354600091610be891612c81565b905080600003610c4157876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f360008088604051610c3093929190612cc9565b60405180910390a250505050610cfe565b80871115610c645786610c548288612c48565b610c5e9190612c5f565b95508096505b8354610c71908890612c81565b8455610c97610c808789612c81565b610c8861199f565b6001600160a01b0316906119c3565b610cb48587610ca461199f565b6001600160a01b03169190611a0b565b876001600160a01b03167ff2717be2f27d9d2d7d265e42dc556e40d2d9aeaba02f49c5286030f30c0571f3888888604051610cf193929190612cc9565b60405180910390a2505050505b50505050565b610d0c611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d9190612ca7565b15610d8b57604051632b37d9d160e21b815260040160405180910390fd5b610d958282611ac2565b5050565b6001600160a01b038082166000908152600f6020908152604080832081516101208101835281549095168552600180820154938601939093526002810154918501919091526003810154606085015260048101546080850152600581015460a0850152600681015460c0850152600781015460e0850152600801546101008401529091829182918291829182918290610e318a611dfc565b6002811115610e4257610e426129e1565b83516020850151604086015160e090960151939092149c909b509099509297509550600094509092505050565b610e776126c3565b610e7f6126c3565b6000610e8b8585611e55565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610efb57610efb6129e1565b6002811115610f0c57610f0c6129e1565b81526020019081526020016000205490505b9392505050565b600080610f328585611870565b90506000610f408686611ed9565b90506000610f5463ffffffff861684612c48565b90506000610f628383611988565b9050610f6e8185612c94565b98975050505050505050565b610f826126f2565b610f8a6126f2565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b610fbe611964565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190612ca7565b1561103d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b03811661107c5760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b604482015260640161095e565b600061108782611dfc565b9050600081600281111561109d5761109d6129e1565b036110d55760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b604482015260640161095e565b826000036110e257505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080611123338661111361199f565b6001600160a01b03169190611efc565b600d5461113e908690600160401b900463ffffffff16611f3d565b935061114a8486612c81565b600d5490955061116a9087908790600160201b900463ffffffff16611f58565b92506111768386612c81565b94508487600501546111889190612c94565b6005880155600287015460009015806111ae5750601954600160a01b900463ffffffff16155b6112795760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273F2DB533658a1728f3ce04A49Df4b545f4A53b620906349484d819060c401602060405180830381865af4158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612ce8565b61127c565b60005b905061128c81896008015461212e565b92506112988387611988565b92506112a7610c808488612c81565b821561130f578288600801546112bd9190612c94565b600889015587546112d7906001600160a01b031684612148565b91506112e38284612c81565b88546001600160a01b0390811660008181526017602052604090205492955061130f92869216156121da565b5086546001600160a01b03808b16918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b3361134b61222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ac9190612ce8565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b600061073082611dfc565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612d01565b6001600160a01b0316336001600160a01b0316146114a55760405162461bcd60e51b815260040161095e90612d1e565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114d39086908690600401612d55565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190612d01565b6001600160a01b0316336001600160a01b0316146115a05760405162461bcd60e51b815260040161095e90612d1e565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050505050565b600061073082612250565b604080516000815260208101909152606090826001600160401b0381111561162c5761162c612d84565b60405190808252806020026020018201604052801561165f57816020015b606081526020019060019003908161164a5790505b50915060005b838110156116e1576116bc3086868481811061168357611683612d9a565b90506020028101906116959190612db0565b856040516020016116a893929190612dfd565b6040516020818303038152906040526122c1565b8382815181106116ce576116ce612d9a565b6020908102919091010152600101611665565b505092915050565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b60408051602081019091526000815260408051602081019091526000815260006117428686611e55565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b6040805160808101825260008082526020820181905291810182905260608101919091526117988383611914565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b604080516080810182526000808252602082018190529181018290526060810191909152611807858585856118a8565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b60008061184b83611dfc565b600281111561185c5761185c6129e1565b141592915050565b600061072d8383611ed9565b6001600160a01b038281166000908152601b6020908152604080832093851683529290529081206001810154905461072d9190612c81565b6000601e60008660018111156118c0576118c06129e1565b60018111156118d1576118d16129e1565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d600084600181111561192c5761192c6129e1565b600181111561193d5761193d6129e1565b81526020019081526020016000206000838152602001908152602001600020905092915050565b7f000000000000000000000000000000000000000000000000000000000000000090565b600081831115611998578161072d565b5090919050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610d9557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156115db57600080fd5b8015611abd5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a859190612ca7565b611abd5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161095e565b505050565b6000611acd83611dfc565b90506001816002811115611ae357611ae36129e1565b14611b1a5760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b604482015260640161095e565b6001600160a01b038084166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260080154610100820152611ba361222c565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c049190612ce8565b608082018190526060820151600091611c1c9161212e565b9050600082600001516001600160a01b0316336001600160a01b03161480611c4d5750611c4d3384600001516116e9565b600d54909150600160801b900463ffffffff1682111580611c7057506040830151155b15611caa5780611caa5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015260640161095e565b604083015115611d6857808015611cc057508415155b15611cd857611cd3868460000151612337565b611ce5565b611ce5836020015161240b565b60408084015184516001600160a01b03166000908152600e6020529190912060010154611d129190612c81565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611d529190612c81565b6020808501516000908152601090915260409020555b608080840180516001600160a01b03808a166000818152600f6020908152604091829020600401949094558389015189519551828b01518351918252958101959095523391850191909152606084018b9052861595840195909552939216907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b6001600160a01b038082166000908152600f6020526040812080549192909116611e295750600092915050565b600381015415801590611e3e57506004810154155b15611e4c5750600192915050565b50600292915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611eae57506001600160a01b0382166000908152601460205260409020610730565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610730565b600080611ee68484611e55565b9050806005015481600201546109109190612c81565b8015611abd576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611a42565b600080611f4a8484612483565b905061072d81610c8861199f565b600082600003611f6a57506000610f1e565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611fa457506001600160a01b03821615155b90508080156120175750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120179190612ca7565b156121225760006120288686612483565b90508015612118576120386124d5565b6001600160a01b0316631d1c2fec886040518263ffffffff1660e01b815260040161206591815260200190565b6020604051808303816000875af1158015612084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a89190612ce8565b506120b68382610ca461199f565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b1580156120ff57600080fd5b505af1158015612113573d6000803e3d6000fd5b505050505b9250610f1e915050565b50600095945050505050565b600081831161213e57600061072d565b61072d8284612c81565b6001600160a01b038216600090815260146020526040812060028101548291901580159061218757508054600160401b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160401b90910481169087906124f916565b90506121b98186612c81565b92508282600201546121cb9190612c94565b6002830155505b509392505050565b826000036121e757505050565b80156121f757611abd8284612560565b6001600160a01b0380831660009081526017602052604090205416610cfe81156122215781612223565b835b85610ca461199f565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261228391612c94565b61228d9190612c94565b6001600160a01b0384166000908152600e60205260409020549091508181116122b7576000610910565b6109108282612c81565b6060600080846001600160a01b0316846040516122de9190612e24565b600060405180830381855af49150503d8060008114612319576040519150601f19603f3d011682016040523d82523d6000602084013e61231e565b606091505b509150915061232e8583836125df565b95945050505050565b60006123416124d5565b6001600160a01b031663db750926846040518263ffffffff1660e01b815260040161236c91906129cd565b6020604051808303816000875af115801561238b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123af9190612ce8565b9050806000036123be57505050565b60006123ca8383612632565b905060006123d88284612c81565b6001600160a01b03808616600090815260176020526040902054919250612404918391879116156121da565b5050505050565b6124136124d5565b6001600160a01b031663eeac3e0e826040518263ffffffff1660e01b815260040161244091815260200190565b6020604051808303816000875af115801561245f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190612ce8565b600061249282620f4240101590565b82906124b457604051633dc311df60e01b815260040161095e91815260200190565b506124cb836124c684620f4240612c81565b6124f9565b61072d9084612c81565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061250883620f4240101590565b8061251b575061251b82620f4240101590565b838390916125455760405163768bf0eb60e11b81526004810192909252602482015260440161095e565b50620f424090506125568385612c48565b61072d9190612c5f565b6001600160a01b0382166000908152600e6020526040902054612584908290612c94565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906125d39084815260200190565b60405180910390a25050565b6060826125f4576125ef82612697565b610f1e565b815115801561260b57506001600160a01b0384163b155b1561262b5783604051639996b31560e01b815260040161095e91906129cd565b5080610f1e565b6001600160a01b038216600090815260146020526040812060028101548291901580159061267157508054600160201b900463ffffffff16620f424010155b156121d25780546000906121ad9063ffffffff600160201b90910481169087906124f916565b8051156126a75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6001600160a01b03811681146126c057600080fd5b6000806040838503121561273457600080fd5b823561273f8161270c565b9150602083013561274f8161270c565b809150509250929050565b60006020828403121561276c57600080fd5b813561072d8161270c565b60006101408201905082518252602083015160208301526040830151604083015260608301516127af606084018263ffffffff169052565b5060808301516127ca60808401826001600160401b03169052565b5060a08301516127e560a08401826001600160401b03169052565b5060c08301516127fd60c084018263ffffffff169052565b5060e083015161281860e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b80356002811061284657600080fd5b919050565b6000806000806080858703121561286157600080fd5b61286a85612837565b9350602085013561287a8161270c565b9250604085013561288a8161270c565b9150606085013561289a8161270c565b939692955090935050565b600080600080608085870312156128bb57600080fd5b84356128c68161270c565b93506020850135925060408501359150606085013561289a8161270c565b600080604083850312156128f757600080fd5b82356129028161270c565b946020939093013593505050565b60008060006060848603121561292557600080fd5b83356129308161270c565b925060208401356129408161270c565b915060408401356003811061295457600080fd5b809150509250925092565b60008060006060848603121561297457600080fd5b833561297f8161270c565b9250602084013561298f8161270c565b9150604084013563ffffffff8116811461295457600080fd5b600080604083850312156129bb57600080fd5b82359150602083013561274f8161270c565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052602160045260246000fd5b6020810160038310612a1957634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060408486031215612a3457600080fd5b8335612a3f8161270c565b925060208401356001600160401b03811115612a5a57600080fd5b8401601f81018613612a6b57600080fd5b80356001600160401b03811115612a8157600080fd5b866020828401011115612a9357600080fd5b939660209190910195509293505050565b60008060208385031215612ab757600080fd5b82356001600160401b03811115612acd57600080fd5b8301601f81018513612ade57600080fd5b80356001600160401b03811115612af457600080fd5b8560208260051b8401011115612b0957600080fd5b6020919091019590945092505050565b60005b83811015612b34578181015183820152602001612b1c565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015612bb157603f1987860301845281518051808752612b8e816020890160208501612b19565b601f01601f19169590950160209081019550938401939190910190600101612b65565b50929695505050505050565b600080600060608486031215612bd257600080fd5b8335612bdd8161270c565b92506020840135612bed8161270c565b915060408401356129548161270c565b60008060408385031215612c1057600080fd5b61290283612837565b600060208284031215612c2b57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761073057610730612c32565b600082612c7c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561073057610730612c32565b8082018082111561073057610730612c32565b600060208284031215612cb957600080fd5b8151801515811461072d57600080fd5b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215612cfa57600080fd5b5051919050565b600060208284031215612d1357600080fd5b815161072d8161270c565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612dc757600080fd5b8301803591506001600160401b03821115612de157600080fd5b602001915036819003821315612df657600080fd5b9250929050565b828482376000838201600081528351612e1a818360208801612b19565b0195945050505050565b60008251612e36818460208701612b19565b919091019291505056fea2646970667358221220eee2ca3f28b971ad70ed8bb53d0d0f8eb32b9f33a12776bc83fb4b7d1b75ddfd64736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#HorizonStakingExtension","networkInteractionId":1,"nonce":1635,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#HorizonStakingExtension","networkInteractionId":1,"nonce":1635,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x213c2c4d2cce26f8854a9809172af0563c5a8aed80010a9e6ad43ce731e3a9fd"},"type":"TRANSACTION_SEND"} +{"artifactId":"PaymentsEscrow#PaymentsEscrow","constructorArgs":["0x0750EdA3185C758247E97819074bCD217a815FaE",10000],"contractName":"PaymentsEscrow","dependencies":["Controller#Controller","GraphHorizon_Periphery","HorizonProxies"],"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":"0x6101e060405234801561001157600080fd5b50604051611bb6380380611bb6833981016040819052610030916104ef565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610373565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610373565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610373565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610373565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610373565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610373565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610373565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610373565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610373565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450806276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c081905261036c610421565b505061058b565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ae91815260200190565b602060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef919061051b565b9050826001600160a01b03821661041a5760405163218f5add60e11b8152600401610071919061053d565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104ea57600080fd5b919050565b6000806040838503121561050257600080fd5b61050b836104d3565b9150602083015190509250929050565b60006020828403121561052d57600080fd5b610536826104d3565b9392505050565b602081526000825180602084015260005b8181101561056b576020818601810151604086840101520161054e565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516115b3610603600039600081816101350152610b4e015260005050600050506000505060005050600050506000610d910152600050506000610dd90152600050506000610db501526115b36000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae0000000000000000000000000000000000000000000000000000000000002710","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"PaymentsEscrow#PaymentsEscrow","networkInteractionId":1,"nonce":1636,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"PaymentsEscrow#PaymentsEscrow","networkInteractionId":1,"nonce":1636,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9f4dbfbc9f11f599b263432a593e0b3481c1d19c9770ad873646f382ab6211b5"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphPayments#GraphPayments","hash":"0xc54d915f9d9de3516d7f8da7284b32a11ea95d988a1d316f57ac8cad01fc99d1","networkInteractionId":1,"receipt":{"blockHash":"0xc67d1dae236ca96b7fdbecb80999775084cf055942f92d0331c41acb16986bf4","blockNumber":152513111,"contractAddress":"0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866","logs":[{"address":"0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]},{"address":"0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphPayments#GraphPayments","result":{"address":"0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphTallyCollector#GraphTallyCollector","hash":"0xa8d55ccd6bc05af4e50ce1c6cf5ecd5c5a4cfc076b22aca3e7eb2b4c2f5ea8aa","networkInteractionId":1,"receipt":{"blockHash":"0x4b9f570ba9ce50d91b932d1dce3ad0b963c991bdc294875911e8a4ebc22cf59a","blockNumber":152513124,"contractAddress":"0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE","logs":[{"address":"0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphTallyCollector#GraphTallyCollector","result":{"address":"0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"HorizonStaking#HorizonStakingExtension","hash":"0x213c2c4d2cce26f8854a9809172af0563c5a8aed80010a9e6ad43ce731e3a9fd","networkInteractionId":1,"receipt":{"blockHash":"0x073946eaafa3672c85dadb4fc254fb1b9a5e552fce5563417b2d2436fc590b7c","blockNumber":152513137,"contractAddress":"0x37F125cF456CD8d24277033A3b583491E9003689","logs":[{"address":"0x37F125cF456CD8d24277033A3b583491E9003689","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":1,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonStaking#HorizonStakingExtension","result":{"address":"0x37F125cF456CD8d24277033A3b583491E9003689","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"PaymentsEscrow#PaymentsEscrow","hash":"0x9f4dbfbc9f11f599b263432a593e0b3481c1d19c9770ad873646f382ab6211b5","networkInteractionId":1,"receipt":{"blockHash":"0xd8c258686edecc8506e66a437ed8ace4ccbeb6554a557bee328ac012180aa96b","blockNumber":152513149,"contractAddress":"0xeED33B904efF05BbdcC9008F5174088DF77dD183","logs":[{"address":"0xeED33B904efF05BbdcC9008F5174088DF77dD183","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]},{"address":"0xeED33B904efF05BbdcC9008F5174088DF77dD183","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"PaymentsEscrow#PaymentsEscrow","result":{"address":"0xeED33B904efF05BbdcC9008F5174088DF77dD183","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":["0x0750EdA3185C758247E97819074bCD217a815FaE","0x37F125cF456CD8d24277033A3b583491E9003689","0x00fe8F95407AB61863d27c07F584A0930ee5F3b0"],"contractName":"HorizonStaking","dependencies":["Controller#Controller","HorizonStaking#HorizonStakingExtension"],"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":"0x61020060405234801561001157600080fd5b506040516162a33803806162a38339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615d2861057b6000396000818161025b0152818161055e01526128a3015260008181610a450152818161140a015281816130de015281816131a001528181614130015261447401526000505060005050600050506000505060006114e901526000613097015260005050600050506000505060006135670152615d286000f3fe608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae00000000000000000000000037f125cf456cd8d24277033a3b583491e900368900000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#HorizonStaking","networkInteractionId":1,"nonce":1637,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#HorizonStaking","networkInteractionId":1,"nonce":1637,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2a5ffad459b93c91f5c424cfbeffebaacb562267c9ab73071d75dc33af9f9438"},"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":"0x2a5ffad459b93c91f5c424cfbeffebaacb562267c9ab73071d75dc33af9f9438","networkInteractionId":1,"receipt":{"blockHash":"0x0adf90fe6c00cde565ac95a23687261ccdb8b317ba79cb614e03a4d9dace35ae","blockNumber":152513180,"contractAddress":"0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244","logs":[{"address":"0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonStaking#HorizonStaking","result":{"address":"0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":["0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","0x4756cdF556A78BD28399E833Bc5bBFc7a5bca866","0x8129fc1c"],"artifactId":"HorizonProxies#ProxyAdmin_GraphPayments","contractAddress":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","dependencies":["HorizonProxies#ProxyAdmin_GraphPayments","HorizonProxies#GraphPayments_ProxyWithABI","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":"0x9623609d000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c930000000000000000000000004756cdf556a78bd28399e833bc5bbfc7a5bca866000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","networkInteractionId":1,"nonce":1638,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","networkInteractionId":1,"nonce":1638,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xb6458ef6f53df617eb6e698b0127d8a04e227ac5af0ea7b896af4ba5b6e5d5ae"},"type":"TRANSACTION_SEND"} +{"args":["0xF5D432192dAF7e8B045349693577ccF0B5165A12","0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","HorizonProxies#GraphProxy","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":"0x99a88ec4000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12000000000000000000000000a9b5cd0e94ebdf5a6dbb16a01635d432ab707244","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","networkInteractionId":1,"nonce":1639,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","networkInteractionId":1,"nonce":1639,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x4030ee34b16e126a67328280bfdb6bdabbf829de8fbe790b282a6bd332429cbf"},"type":"TRANSACTION_SEND"} +{"args":["0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","0xeED33B904efF05BbdcC9008F5174088DF77dD183","0x8129fc1c"],"artifactId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","contractAddress":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","dependencies":["HorizonProxies#ProxyAdmin_PaymentsEscrow","HorizonProxies#PaymentsEscrow_ProxyWithABI","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":"0x9623609d00000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000eed33b904eff05bbdcc9008f5174088df77dd183000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","networkInteractionId":1,"nonce":1640,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","networkInteractionId":1,"nonce":1640,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x83d3b50e1f7def264180b768dfd5ae7f7dea0d6a6249ea87bc10064980a5f36b"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","hash":"0xb6458ef6f53df617eb6e698b0127d8a04e227ac5af0ea7b896af4ba5b6e5d5ae","networkInteractionId":1,"receipt":{"blockHash":"0x4a9bb6a8f5323f117a03aca0654a6b582f8b4788ca70aeecbf348d911646a319","blockNumber":152513202,"logs":[{"address":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000004756cdf556a78bd28399e833bc5bbfc7a5bca866"]},{"address":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","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"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","hash":"0x4030ee34b16e126a67328280bfdb6bdabbf829de8fbe790b282a6bd332429cbf","networkInteractionId":1,"receipt":{"blockHash":"0x7fa141baa0db73416d8107f6492e6270402318676c4d343e426e3f07a292ae88","blockNumber":152513213,"logs":[{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x","logIndex":0,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a9b5cd0e94ebdf5a6dbb16a01635d432ab707244"]}],"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":"0x83d3b50e1f7def264180b768dfd5ae7f7dea0d6a6249ea87bc10064980a5f36b","networkInteractionId":1,"receipt":{"blockHash":"0x476810258dad7fbed9ce5be1da825d24292de55e2a892f7f4f986d3b51084261","blockNumber":152513224,"logs":[{"address":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","data":"0x","logIndex":2,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000eed33b904eff05bbdcc9008f5174088df77dd183"]},{"address":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":3,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"GraphPayments#GraphPayments_ProxyWithABI","contractAddress":"0xAFd60629034fBdC3ef58518B817bBDB4EC861c93","contractName":"GraphPayments_ProxyWithABI","dependencies":["GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","HorizonProxies#GraphPayments_ProxyWithABI"],"futureId":"GraphPayments#GraphPayments_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"args":["0xa9B5CD0E94eBDf5A6dBB16A01635D432AB707244","0xF5D432192dAF7e8B045349693577ccF0B5165A12"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","HorizonStaking#HorizonStaking","HorizonProxies#GraphProxy","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":"0xeb451a02000000000000000000000000a9b5cd0e94ebdf5a6dbb16a01635d432ab707244000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","networkInteractionId":1,"nonce":1641,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","networkInteractionId":1,"nonce":1641,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9072e5d7559c313a1003b7c64a954c6f15cd7f6a0e8582b92ee990ffd81fd2f2"},"type":"TRANSACTION_SEND"} +{"artifactId":"PaymentsEscrow#PaymentsEscrow_ProxyWithABI","contractAddress":"0x70d5AFAAaEF8f2F095E83D6E6151146c18A5Bb85","contractName":"PaymentsEscrow_ProxyWithABI","dependencies":["PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","HorizonProxies#PaymentsEscrow_ProxyWithABI"],"futureId":"PaymentsEscrow#PaymentsEscrow_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","hash":"0x9072e5d7559c313a1003b7c64a954c6f15cd7f6a0e8582b92ee990ffd81fd2f2","networkInteractionId":1,"receipt":{"blockHash":"0x0ad4df5f1d21c5ec99d4ce36d43af6d41a5f46d135d31067c06d91fb0973d129","blockNumber":152513248,"logs":[{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000a9b5cd0e94ebdf5a6dbb16a01635d432ab707244"]},{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x000000000000000000000000a9b5cd0e94ebdf5a6dbb16a01635d432ab707244","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0xad834c286a9b590f8264c8d9574fafcbbbe90b3b"],"artifactId":"HorizonProxies#ProxyAdmin_GraphPayments","contractAddress":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","dependencies":["HorizonProxies#ProxyAdmin_GraphPayments","GraphPayments#GraphPayments_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","id":1,"to":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","networkInteractionId":1,"nonce":1642,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","networkInteractionId":1,"nonce":1642,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x951c9730f5cc5288d4011f3475b4215c1c670d9bc488b76755abd0216ab0e587"},"type":"TRANSACTION_SEND"} +{"artifactId":"HorizonStaking#HorizonStaking_ProxyWithABI","contractAddress":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","contractName":"HorizonStaking_ProxyWithABI","dependencies":["HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","HorizonProxies#GraphProxy"],"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"args":["0xad834c286a9b590f8264c8d9574fafcbbbe90b3b"],"artifactId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","contractAddress":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","dependencies":["HorizonProxies#ProxyAdmin_PaymentsEscrow","PaymentsEscrow#PaymentsEscrow_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","id":1,"to":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","networkInteractionId":1,"nonce":1643,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","networkInteractionId":1,"nonce":1643,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8e755afef744094c0a740a5442d8fea9faa6d19351abacf8996405e96301d15b"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","hash":"0x951c9730f5cc5288d4011f3475b4215c1c670d9bc488b76755abd0216ab0e587","networkInteractionId":1,"receipt":{"blockHash":"0x357ebed91b7e2ab80c74d45f806812e24329206b047389ff2bd62b8a82f8f68e","blockNumber":152513268,"logs":[{"address":"0xAcA3dd622e863E425Cdb15E8734a5CB318448db7","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","hash":"0x8e755afef744094c0a740a5442d8fea9faa6d19351abacf8996405e96301d15b","networkInteractionId":1,"receipt":{"blockHash":"0xfb6f319118f21b5991a4ec05bee9011339ec9a80eb27afccfb221dd2b01bfdff","blockNumber":152513279,"logs":[{"address":"0xbB643167f03EfF532c537e3d72E56b9992CaD985","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":[2419200],"artifactId":"HorizonStaking#HorizonStaking_ProxyWithABI","contractAddress":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","dependencies":["HorizonStaking#HorizonStaking_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setMaxThawingPeriod","futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","networkInteraction":{"data":"0x259bc435000000000000000000000000000000000000000000000000000000000024ea00","id":1,"to":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","networkInteractionId":1,"nonce":1644,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","networkInteractionId":1,"nonce":1644,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x96825e69f8876b2c724d53846534f6af23b2c24de6ef0f547ac8ea0c7b4b2870"},"type":"TRANSACTION_SEND"} +{"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","hash":"0x96825e69f8876b2c724d53846534f6af23b2c24de6ef0f547ac8ea0c7b4b2870","networkInteractionId":1,"receipt":{"blockHash":"0xc522a6fdc4095efab4a2657834ff66219b13846a6ef17f6de4d1becde597fa78","blockNumber":152513301,"logs":[{"address":"0xF5D432192dAF7e8B045349693577ccF0B5165A12","data":"0x000000000000000000000000000000000000000000000000000000000024ea00","logIndex":3,"topics":["0xe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"HorizonStaking#HorizonStaking_ProxyWithABI.setMaxThawingPeriod","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":[],"artifactId":"Controller#Controller","contractAddress":"0x0750EdA3185C758247E97819074bCD217a815FaE","dependencies":["Controller#Controller","GraphHorizon_Periphery","GraphHorizon_Core","HorizonStaking#HorizonStaking_ProxyWithABI"],"from":"0xad834c286a9b590f8264c8d9574fafcbbbe90b3b","functionName":"acceptOwnership","futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","networkInteraction":{"data":"0x79ba5097","id":1,"to":"0x0750EdA3185C758247E97819074bCD217a815FaE","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","networkInteractionId":1,"nonce":16,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","networkInteractionId":1,"nonce":16,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2b9a28aeba3c4895daab3167d685c6d91bc7d7cb568b0a66e8dcde28c63f56d5"},"type":"TRANSACTION_SEND"} +{"args":[],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","dependencies":["GraphProxyAdmin#GraphProxyAdmin","GraphHorizon_Periphery","GraphHorizon_Core","HorizonStaking#HorizonStaking_ProxyWithABI"],"from":"0xad834c286a9b590f8264c8d9574fafcbbbe90b3b","functionName":"acceptOwnership","futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","networkInteraction":{"data":"0x79ba5097","id":1,"to":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","networkInteractionId":1,"nonce":17,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","networkInteractionId":1,"nonce":17,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x61e583fc208cf5ba2a8bed0f7d880dc2b2bed92efacea3f982ba79dc400de8c3"},"type":"TRANSACTION_SEND"} +{"futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","hash":"0x2b9a28aeba3c4895daab3167d685c6d91bc7d7cb568b0a66e8dcde28c63f56d5","networkInteractionId":1,"receipt":{"blockHash":"0x1d17c2ed5ddb1216939b2fe29f4ef2d220e064e579dfd6e788a8f8871e9414b4","blockNumber":152513320,"logs":[{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x","logIndex":0,"topics":["0x0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]},{"address":"0x0750EdA3185C758247E97819074bCD217a815FaE","data":"0x","logIndex":1,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Deploy#Controller~Controller.acceptOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","hash":"0x61e583fc208cf5ba2a8bed0f7d880dc2b2bed92efacea3f982ba79dc400de8c3","networkInteractionId":1,"receipt":{"blockHash":"0x203b25b47f27eda7aade88bef7d27b9bb9ea2d92ead03d12bacb3d1677844599","blockNumber":152513331,"logs":[{"address":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","data":"0x","logIndex":0,"topics":["0x0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b"]},{"address":"0x1CEBe1C314Cc454baf4bd553409d957C833623c0","data":"0x","logIndex":1,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x000000000000000000000000ad834c286a9b590f8264c8d9574fafcbbbe90b3b","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"GraphHorizon_Deploy#GraphProxyAdmin~GraphProxyAdmin.acceptOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DisputeManager#DisputeManager","constructorArgs":["0x0750EdA3185C758247E97819074bCD217a815FaE"],"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":"0x6101c060405234801561001157600080fd5b50604051613b6e380380613b6e8339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516135f261057c60003960005050600050506000505060005050600050506000505060005050600050506000611f23015260006119cc01526135f26000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DisputeManager#DisputeManager","networkInteractionId":1,"nonce":1645,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DisputeManager#DisputeManager","networkInteractionId":1,"nonce":1645,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x525564dabe54e35e863db1333ed6de28d8c426663bf174e23acb630760bd8274"},"type":"TRANSACTION_SEND"} +{"artifactId":"DisputeManager#DisputeManagerProxy","contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","contractName":"DisputeManagerProxy","dependencies":[],"futureId":"DisputeManager#DisputeManagerProxy","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"DisputeManager#ProxyAdmin","contractAddress":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","contractName":"ProxyAdmin","dependencies":[],"futureId":"DisputeManager#ProxyAdmin","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2Curation#L2CurationAddressBook","contractAddress":"0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4","contractName":"L2CurationAddressBook","dependencies":[],"futureId":"L2Curation#L2CurationAddressBook","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"L2Curation#L2CurationImplementationAddressBook","contractAddress":"0x9CCD9B656f8A558879974ef2505496eEd7Ef7210","contractName":"L2CurationImplementationAddressBook","dependencies":[],"futureId":"L2Curation#L2CurationImplementationAddressBook","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphService#ProxyAdmin","contractAddress":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","contractName":"ProxyAdmin","dependencies":[],"futureId":"SubgraphService#ProxyAdmin","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphService#SubgraphService","constructorArgs":["0x0750EdA3185C758247E97819074bCD217a815FaE","0x1A7Fb71014d4395903eC56662f32dD02344D361C","0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE","0xe135BFD9E51BbAfCeBb0141af85F0bc6DA1b3BA4"],"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":"0x61024060405234801561001157600080fd5b5060405161667738038061667783398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615fd961069e6000396000612ee2015260006132de01526000818161163b0152612fe101526000505060005050600050506000505060006137080152600061457c01526000505060005050600050506000611b6b01526000613a640152615fd96000f3fe608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b00330000000000000000000000000750eda3185c758247e97819074bcd217a815fae0000000000000000000000001a7fb71014d4395903ec56662f32dd02344d361c000000000000000000000000b63bc33d13f73efd14d32d2b9fc0b6116b6611ce000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#SubgraphService","networkInteractionId":1,"nonce":1646,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#SubgraphService","networkInteractionId":1,"nonce":1646,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x298eb5bad638cb45f1e0d1996bee1ba329fee71b79411f1336941d0ebbf54775"},"type":"TRANSACTION_SEND"} +{"artifactId":"SubgraphService#SubgraphServiceProxy","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","contractName":"SubgraphServiceProxy","dependencies":[],"futureId":"SubgraphService#SubgraphServiceProxy","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"futureId":"DisputeManager#DisputeManager","hash":"0x525564dabe54e35e863db1333ed6de28d8c426663bf174e23acb630760bd8274","networkInteractionId":1,"receipt":{"blockHash":"0x7ebfb3c9f0e8d272a89e6eea3d0b7798c779044c95c38df9a00484aa8e503b3b","blockNumber":152513364,"contractAddress":"0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8","logs":[{"address":"0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]},{"address":"0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DisputeManager#DisputeManager","result":{"address":"0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#SubgraphService","hash":"0x298eb5bad638cb45f1e0d1996bee1ba329fee71b79411f1336941d0ebbf54775","networkInteractionId":1,"receipt":{"blockHash":"0x3235e1189a927cc4c89b401cb09600fe66de79561b6ee1808b73637d41af4c0f","blockNumber":152513379,"contractAddress":"0x30b34eAaF354cAdd64836Bc0846F4414254271ea","logs":[{"address":"0x30b34eAaF354cAdd64836Bc0846F4414254271ea","data":"0x000000000000000000000000afd60629034fbdc3ef58518b817bbdb4ec861c9300000000000000000000000070d5afaaaef8f2f095e83d6e6151146c18a5bb85000000000000000000000000aa1debfb7a7c0ba85cef858b6e70cfad943fd4a20000000000000000000000001ab05a65fa6d5f6a90a23693d5d40a4d927a815f0000000000000000000000007284213d1cda80c892a4388f38da431f063431440000000000000000000000001cebe1c314cc454baf4bd553409d957c833623c0000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000bbcb9a575176039c06f94d4d8337818318a26828","0x000000000000000000000000f5d432192daf7e8b045349693577ccf0b5165a12","0x0000000000000000000000000750eda3185c758247e97819074bcd217a815fae"]},{"address":"0x30b34eAaF354cAdd64836Bc0846F4414254271ea","data":"0x00000000000000000000000030b34eaaf354cadd64836bc0846f4414254271ea0000000000000000000000001a7fb71014d4395903ec56662f32dd02344d361c000000000000000000000000b63bc33d13f73efd14d32d2b9fc0b6116b6611ce000000000000000000000000e135bfd9e51bbafcebb0141af85f0bc6da1b3ba4","logIndex":1,"topics":["0x4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda7"]},{"address":"0x30b34eAaF354cAdd64836Bc0846F4414254271ea","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":2,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#SubgraphService","result":{"address":"0x30b34eAaF354cAdd64836Bc0846F4414254271ea","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f","0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b",2419200,"10000000000000000000000",500000,1000000],"artifactId":"DisputeManager#DisputeManager","dependencies":["DisputeManager#DisputeManager"],"functionName":"initialize","futureId":"DisputeManager#encodeFunctionCall(DisputeManager#DisputeManager.initialize)","result":"0x0bc7344b000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000022d491bde2303f2f43325b2108d26f1eaba1e32b000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f4240","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f","100000000000000000000000",16,2],"artifactId":"SubgraphService#SubgraphService","dependencies":["SubgraphService#SubgraphService"],"functionName":"initialize","futureId":"SubgraphService#encodeFunctionCall(SubgraphService#SubgraphService.initialize)","result":"0xc84a5ef3000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} +{"args":["0x1A7Fb71014d4395903eC56662f32dD02344D361C","0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8","0x0bc7344b000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000022d491bde2303f2f43325b2108d26f1eaba1e32b000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f4240"],"artifactId":"DisputeManager#ProxyAdmin","contractAddress":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","dependencies":["DisputeManager#ProxyAdmin","DisputeManager#DisputeManagerProxy","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":"0x9623609d0000000000000000000000001a7fb71014d4395903ec56662f32dd02344d361c00000000000000000000000075f7bd9d2f0bca7ba7189bb582f5eb95afa051e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c40bc7344b000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000022d491bde2303f2f43325b2108d26f1eaba1e32b000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000","id":1,"to":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":1647,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":1647,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xde8309972e5cf0f3f2029f80a9dbf2589f7ecde04d82fe6cff88a21a0336eb00"},"type":"TRANSACTION_SEND"} +{"args":["0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","0x30b34eAaF354cAdd64836Bc0846F4414254271ea","0xc84a5ef3000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002"],"artifactId":"SubgraphService#ProxyAdmin","contractAddress":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","dependencies":["SubgraphService#ProxyAdmin","SubgraphService#SubgraphServiceProxy","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":"0x9623609d00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b000000000000000000000000030b34eaaf354cadd64836bc0846f4414254271ea00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084c84a5ef3000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000","id":1,"to":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":1648,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":1648,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x16944acdc1b3b5131f85dd8d3bc2c993c963afeed19a28b92d32c4b12e1487c4"},"type":"TRANSACTION_SEND"} +{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","hash":"0xde8309972e5cf0f3f2029f80a9dbf2589f7ecde04d82fe6cff88a21a0336eb00","networkInteractionId":1,"receipt":{"blockHash":"0x0006f844409e13aa0667c1302bba90a019db312f8d825174cdad2bb474830869","blockNumber":152513405,"logs":[{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000075f7bd9d2f0bca7ba7189bb582f5eb95afa051e8"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":2,"topics":["0x51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e","0x00000000000000000000000022d491bde2303f2f43325b2108d26f1eaba1e32b"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x000000000000000000000000000000000000000000000000000000000024ea00","logIndex":3,"topics":["0x310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000","logIndex":4,"topics":["0x97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x000000000000000000000000000000000000000000000000000000000007a120","logIndex":5,"topics":["0xc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x00000000000000000000000000000000000000000000000000000000000f4240","logIndex":6,"topics":["0x7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502"]},{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":7,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","hash":"0x16944acdc1b3b5131f85dd8d3bc2c993c963afeed19a28b92d32c4b12e1487c4","networkInteractionId":1,"receipt":{"blockHash":"0x03b5ceb0f513d3bb64054fe7b0511d0511294982ed470c31e79e14c491442a13","blockNumber":152513417,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000030b34eaaf354cadd64836bc0846f4414254271ea"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","logIndex":2,"topics":["0x90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f568849"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240","logIndex":3,"topics":["0x2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a36"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":4,"topics":["0x2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d1"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x00000000000000000000000000000000000000000000000000000000ffffffff","logIndex":5,"topics":["0x472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x00000000000000000000000000000000000000000000152d02c7e14af6800000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","logIndex":6,"topics":["0x90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f568849"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000010","logIndex":7,"topics":["0x472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000002","logIndex":8,"topics":["0x2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23"]},{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":9,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DisputeManager#DisputeManager_ProxyWithABI","contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","contractName":"DisputeManager_ProxyWithABI","dependencies":["DisputeManager#ProxyAdmin.upgradeAndCall","DisputeManager#DisputeManagerProxy"],"futureId":"DisputeManager#DisputeManager_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","contractName":"SubgraphService_ProxyWithABI","dependencies":["SubgraphService#ProxyAdmin.upgradeAndCall","SubgraphService#SubgraphServiceProxy"],"futureId":"SubgraphService#SubgraphService_ProxyWithABI","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"args":["0x00fe8F95407AB61863d27c07F584A0930ee5F3b0"],"artifactId":"DisputeManager#DisputeManager_ProxyWithABI","contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","dependencies":["DisputeManager#DisputeManager_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphService","futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","networkInteraction":{"data":"0x93a90a1e00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0","id":1,"to":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1649,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","networkInteractionId":1,"nonce":1649,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x23f016c9557b5342ee3d8c04995ccb8c675626cddfb9d86db98041da41f61ddc"},"type":"TRANSACTION_SEND"} +{"args":[100000],"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","dependencies":["SubgraphService#SubgraphService_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setCurationCut","futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","networkInteraction":{"data":"0x7e89bac300000000000000000000000000000000000000000000000000000000000186a0","id":1,"to":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","networkInteractionId":1,"nonce":1650,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","networkInteractionId":1,"nonce":1650,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf6f5bd22b0ed84883c23b65442dec22c7c47a967c398f229c3e1c58abdfa6298"},"type":"TRANSACTION_SEND"} +{"args":[2419200],"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","dependencies":["SubgraphService#SubgraphService_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setMaxPOIStaleness","futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","networkInteraction":{"data":"0x7aa31bce000000000000000000000000000000000000000000000000000000000024ea00","id":1,"to":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","networkInteractionId":1,"nonce":1651,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","networkInteractionId":1,"nonce":1651,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf4e9b9504d6133ea66e66ad9a4fb821459e3b1679bd401484dd4b9432fe9cbb6"},"type":"TRANSACTION_SEND"} +{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0",true],"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","dependencies":["SubgraphService#SubgraphService_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPauseGuardian","futureId":"SubgraphService#setPauseGuardianGovernor","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#setPauseGuardianGovernor","networkInteraction":{"data":"0x35577962000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f00000000000000000000000000000000000000000000000000000000000000001","id":1,"to":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#setPauseGuardianGovernor","networkInteractionId":1,"nonce":1652,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#setPauseGuardianGovernor","networkInteractionId":1,"nonce":1652,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0f0ef37e082d4587cd6ccae790d362e08bde486d687be254f884afe4af6e7e7f"},"type":"TRANSACTION_SEND"} +{"args":["0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d",true],"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","dependencies":["SubgraphService#SubgraphService_ProxyWithABI"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPauseGuardian","futureId":"SubgraphService#setPauseGuardianPauseGuardian","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#setPauseGuardianPauseGuardian","networkInteraction":{"data":"0x35577962000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d0000000000000000000000000000000000000000000000000000000000000001","id":1,"to":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#setPauseGuardianPauseGuardian","networkInteractionId":1,"nonce":1653,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#setPauseGuardianPauseGuardian","networkInteractionId":1,"nonce":1653,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x528afc4134ccaed020a6877b6583332c1593522653f0267fb9743df4f006e267"},"type":"TRANSACTION_SEND"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","hash":"0x23f016c9557b5342ee3d8c04995ccb8c675626cddfb9d86db98041da41f61ddc","networkInteractionId":1,"receipt":{"blockHash":"0xe2815fe234b5a8edf0592c1e2ffc354c1d78fdaab2a5e027a1c16e479d376052","blockNumber":152513443,"logs":[{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":0,"topics":["0x81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c7","0x00000000000000000000000000fe8f95407ab61863d27c07f584a0930ee5f3b0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","hash":"0xf6f5bd22b0ed84883c23b65442dec22c7c47a967c398f229c3e1c58abdfa6298","networkInteractionId":1,"receipt":{"blockHash":"0x05a793d76704c771a0fda53aa325471c30da29fb3f6c1a352c8095b6511e2b1b","blockNumber":152513454,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x00000000000000000000000000000000000000000000000000000000000186a0","logIndex":1,"topics":["0x6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setCurationCut","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","hash":"0xf4e9b9504d6133ea66e66ad9a4fb821459e3b1679bd401484dd4b9432fe9cbb6","networkInteractionId":1,"receipt":{"blockHash":"0xafed8778e9f6dfd02e2fa094f16848280734bd88175a72eb87169c5db404c3f8","blockNumber":152513466,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x000000000000000000000000000000000000000000000000000000000024ea00","logIndex":0,"topics":["0x21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#setPauseGuardianGovernor","hash":"0x0f0ef37e082d4587cd6ccae790d362e08bde486d687be254f884afe4af6e7e7f","networkInteractionId":1,"receipt":{"blockHash":"0x101ab5d1a9eab4c84829deed736272565b2110b12ed8beaa8c2aba2d374d0adc","blockNumber":152513477,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":0,"topics":["0xa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#setPauseGuardianGovernor","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#setPauseGuardianPauseGuardian","hash":"0x528afc4134ccaed020a6877b6583332c1593522653f0267fb9743df4f006e267","networkInteractionId":1,"receipt":{"blockHash":"0x0dd8089ebc15c3eba190422b8f0f0119e3591e718c27e14bf6c35497ae967f92","blockNumber":152513488,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":1,"topics":["0xa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789","0x000000000000000000000000e11ba2b4d45eaed5996cd0823791e0c93114882d"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#setPauseGuardianPauseGuardian","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"DisputeManager#DisputeManager_ProxyWithABI","contractAddress":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","dependencies":["DisputeManager#DisputeManager_ProxyWithABI","DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1654,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1654,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x48a98358cc9a3f8f5ee4cb34d5f2a0454e3d8e19c2c77e339602fcc0c0bc107d"},"type":"TRANSACTION_SEND"} +{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"DisputeManager#ProxyAdmin","contractAddress":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","dependencies":["DisputeManager#ProxyAdmin","DisputeManager#DisputeManager_ProxyWithABI.setSubgraphService"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"DisputeManager#ProxyAdmin.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DisputeManager#ProxyAdmin.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DisputeManager#ProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1655,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DisputeManager#ProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1655,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x280144792d0c058292da7c8aaef1d4a213d471bb21bef18b368cbd235feccfee"},"type":"TRANSACTION_SEND"} +{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"SubgraphService#ProxyAdmin","contractAddress":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","dependencies":["SubgraphService#ProxyAdmin","SubgraphService#setPauseGuardianGovernor","SubgraphService#setPauseGuardianPauseGuardian","SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","SubgraphService#SubgraphService_ProxyWithABI.setCurationCut"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"SubgraphService#ProxyAdmin.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#ProxyAdmin.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#ProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1656,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#ProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":1656,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2ce174ad9c196019cfb47182c94f0a0a63d55e884ef68f05b461373ac475c541"},"type":"TRANSACTION_SEND"} +{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"SubgraphService#SubgraphService_ProxyWithABI","contractAddress":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","dependencies":["SubgraphService#SubgraphService_ProxyWithABI","SubgraphService#setPauseGuardianGovernor","SubgraphService#setPauseGuardianPauseGuardian","SubgraphService#SubgraphService_ProxyWithABI.setMaxPOIStaleness","SubgraphService#SubgraphService_ProxyWithABI.setCurationCut"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1657,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","networkInteractionId":1,"nonce":1657,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8d7f207538113cda6a635addfe0d8ea47042678d031fe04c3609e06775e2ae90"},"type":"TRANSACTION_SEND"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","hash":"0x48a98358cc9a3f8f5ee4cb34d5f2a0454e3d8e19c2c77e339602fcc0c0bc107d","networkInteractionId":1,"receipt":{"blockHash":"0xb134015eb3b545982ab6cd614bcf9f469c672b4a4489ac9b1de357897d7b837c","blockNumber":152513519,"logs":[{"address":"0x1A7Fb71014d4395903eC56662f32dD02344D361C","data":"0x","logIndex":0,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DisputeManager#DisputeManager_ProxyWithABI.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"DisputeManager#ProxyAdmin.transferOwnership","hash":"0x280144792d0c058292da7c8aaef1d4a213d471bb21bef18b368cbd235feccfee","networkInteractionId":1,"receipt":{"blockHash":"0xa38649c33a3e9ad110bf356a6d9ad35cfba98fd2681307598704d66c620df06d","blockNumber":152513531,"logs":[{"address":"0x9a8C3B6D649108bd11670de0B9b981ae3C167707","data":"0x","logIndex":0,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DisputeManager#ProxyAdmin.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#ProxyAdmin.transferOwnership","hash":"0x2ce174ad9c196019cfb47182c94f0a0a63d55e884ef68f05b461373ac475c541","networkInteractionId":1,"receipt":{"blockHash":"0x4aac37dcaea3464087ce44664fb3779a295719901ecbabb2738b0dd576d8f945","blockNumber":152513543,"logs":[{"address":"0xD23a972f47B7D45E729AB9B8399D628c87b6C0d6","data":"0x","logIndex":0,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#ProxyAdmin.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","hash":"0x8d7f207538113cda6a635addfe0d8ea47042678d031fe04c3609e06775e2ae90","networkInteractionId":1,"receipt":{"blockHash":"0x879392e67ffd685f6cf06fdee99d588aba00d97b6f13957d98c9ae4e951f617d","blockNumber":152513554,"logs":[{"address":"0x00fe8F95407AB61863d27c07F584A0930ee5F3b0","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"SubgraphService#SubgraphService_ProxyWithABI.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/modules/Curation.ts b/packages/subgraph-service/ignition/modules/Curation.ts index 9851a86ed..c635cc835 100644 --- a/packages/subgraph-service/ignition/modules/Curation.ts +++ b/packages/subgraph-service/ignition/modules/Curation.ts @@ -7,10 +7,10 @@ import CurationArtifact from '@graphprotocol/contracts/build/contracts/contracts // due to tight coupling with HorizonStakingExtension contract it's easier to do it on the horizon package. // Once the transition period is over we can migrate it. export default buildModule('L2Curation', (m) => { - const curationAddress = m.getParameter('curationAddress') + const curationProxyAddress = m.getParameter('curationProxyAddress') const curationImplementationAddress = m.getParameter('curationImplementationAddress') - const L2Curation = m.contractAt('L2CurationAddressBook', CurationArtifact, curationAddress) + const L2Curation = m.contractAt('L2CurationAddressBook', CurationArtifact, curationProxyAddress) const L2CurationImplementation = m.contractAt('L2CurationImplementationAddressBook', CurationArtifact, curationImplementationAddress) return { L2Curation, L2CurationImplementation } diff --git a/packages/subgraph-service/ignition/modules/DisputeManager.ts b/packages/subgraph-service/ignition/modules/DisputeManager.ts index 00038e480..158140930 100644 --- a/packages/subgraph-service/ignition/modules/DisputeManager.ts +++ b/packages/subgraph-service/ignition/modules/DisputeManager.ts @@ -26,6 +26,7 @@ export default buildModule('DisputeManager', (m) => { const DisputeManagerImplementation = deployImplementation(m, { name: 'DisputeManager', constructorArgs: [controllerAddress], + artifact: DisputeManagerArtifact, }) // Upgrade implementation diff --git a/packages/subgraph-service/ignition/modules/SubgraphService.ts b/packages/subgraph-service/ignition/modules/SubgraphService.ts index b8ab37711..ba035b742 100644 --- a/packages/subgraph-service/ignition/modules/SubgraphService.ts +++ b/packages/subgraph-service/ignition/modules/SubgraphService.ts @@ -15,7 +15,7 @@ export default buildModule('SubgraphService', (m) => { const subgraphServiceProxyAdminAddress = m.getParameter('subgraphServiceProxyAdminAddress') const disputeManagerProxyAddress = m.getParameter('disputeManagerProxyAddress') const graphTallyCollectorAddress = m.getParameter('graphTallyCollectorAddress') - const curationAddress = m.getParameter('curationAddress') + const curationProxyAddress = m.getParameter('curationProxyAddress') const minimumProvisionTokens = m.getParameter('minimumProvisionTokens') const maximumDelegationRatio = m.getParameter('maximumDelegationRatio') const stakeToFeesRatio = m.getParameter('stakeToFeesRatio') @@ -28,7 +28,7 @@ export default buildModule('SubgraphService', (m) => { // Deploy implementation const SubgraphServiceImplementation = deployImplementation(m, { name: 'SubgraphService', - constructorArgs: [controllerAddress, disputeManagerProxyAddress, graphTallyCollectorAddress, curationAddress], + constructorArgs: [controllerAddress, disputeManagerProxyAddress, graphTallyCollectorAddress, curationProxyAddress], }) // Upgrade implementation @@ -46,12 +46,13 @@ export default buildModule('SubgraphService', (m) => { ], }) - const callSetPauseGuardian = m.call(SubgraphService, 'setPauseGuardian', [pauseGuardian, true]) + const callSetPauseGuardianGovernor = m.call(SubgraphService, 'setPauseGuardian', [governor, true], { id: 'setPauseGuardianGovernor' }) + const callSetPauseGuardianPauseGuardian = m.call(SubgraphService, 'setPauseGuardian', [pauseGuardian, true], { id: 'setPauseGuardianPauseGuardian' }) const callSetMaxPOIStaleness = m.call(SubgraphService, 'setMaxPOIStaleness', [maxPOIStaleness]) const callSetCurationCut = m.call(SubgraphService, 'setCurationCut', [curationCut]) - m.call(SubgraphService, 'transferOwnership', [governor], { after: [callSetPauseGuardian, callSetMaxPOIStaleness, callSetCurationCut] }) - m.call(SubgraphServiceProxyAdmin, 'transferOwnership', [governor], { after: [callSetPauseGuardian, callSetMaxPOIStaleness, callSetCurationCut] }) + m.call(SubgraphService, 'transferOwnership', [governor], { after: [callSetPauseGuardianGovernor, callSetPauseGuardianPauseGuardian, callSetMaxPOIStaleness, callSetCurationCut] }) + m.call(SubgraphServiceProxyAdmin, 'transferOwnership', [governor], { after: [callSetPauseGuardianGovernor, callSetPauseGuardianPauseGuardian, callSetMaxPOIStaleness, callSetCurationCut] }) return { SubgraphService, diff --git a/packages/subgraph-service/ignition/modules/deploy/deploy-2.ts b/packages/subgraph-service/ignition/modules/deploy/deploy-2.ts index 6f9ca65c5..6288c4041 100644 --- a/packages/subgraph-service/ignition/modules/deploy/deploy-2.ts +++ b/packages/subgraph-service/ignition/modules/deploy/deploy-2.ts @@ -8,6 +8,7 @@ export default buildModule('SubgraphService_Deploy_2', (m) => { const { DisputeManager, DisputeManagerImplementation } = m.useModule(DisputeManagerModule) const { SubgraphService, SubgraphServiceImplementation } = m.useModule(SubgraphServiceModule) const { L2Curation, L2CurationImplementation } = m.useModule(CurationModule) + return { Transparent_Proxy_DisputeManager: DisputeManager, Implementation_DisputeManager: DisputeManagerImplementation, diff --git a/packages/subgraph-service/ignition/modules/migrate/migrate-2.ts b/packages/subgraph-service/ignition/modules/migrate/migrate-2.ts index e50115193..363c7cc02 100644 --- a/packages/subgraph-service/ignition/modules/migrate/migrate-2.ts +++ b/packages/subgraph-service/ignition/modules/migrate/migrate-2.ts @@ -1,16 +1,20 @@ import { buildModule } from '@nomicfoundation/hardhat-ignition/modules' +import CurationModule from '../Curation' import DisputeManagerModule from '../DisputeManager' import SubgraphServiceModule from '../SubgraphService' export default buildModule('SubgraphService_Migrate_2', (m) => { const { DisputeManager, DisputeManagerImplementation } = m.useModule(DisputeManagerModule) const { SubgraphService, SubgraphServiceImplementation } = m.useModule(SubgraphServiceModule) + const { L2Curation, L2CurationImplementation } = m.useModule(CurationModule) return { Transparent_Proxy_DisputeManager: DisputeManager, - Transparent_ProxyAdmin_DisputeManager: DisputeManagerImplementation, + Implementation_DisputeManager: DisputeManagerImplementation, Transparent_Proxy_SubgraphService: SubgraphService, - Transparent_ProxyAdmin_SubgraphService: SubgraphServiceImplementation, + Implementation_SubgraphService: SubgraphServiceImplementation, + Graph_Proxy_L2Curation: L2Curation, + Implementation_L2Curation: L2CurationImplementation, } }) diff --git a/packages/subgraph-service/package.json b/packages/subgraph-service/package.json index fabb9cade..b7ee35f32 100644 --- a/packages/subgraph-service/package.json +++ b/packages/subgraph-service/package.json @@ -1,32 +1,39 @@ { "name": "@graphprotocol/subgraph-service", - "version": "0.0.1", + "version": "0.3.4", + "publishConfig": { + "access": "public" + }, "description": "", "author": "The Graph core devs", "license": "GPL-2.0-or-later", "types": "typechain-types/index.ts", "files": [ "build/contracts/**/*", + "typechain-types/**/*", "README.md", "addresses.json" ], "scripts": { - "lint": "yarn lint:ts && yarn lint:sol", - "lint:ts": "eslint '**/*.{js,ts}' --fix", - "lint:sol": "yarn lint:sol:prettier && yarn lint:sol:solhint", + "lint": "pnpm lint:ts && pnpm lint:sol", + "lint:ts": "eslint '**/*.{js,ts}' --fix --no-warn-ignored", + "lint:sol": "pnpm lint:sol:prettier && pnpm lint:sol:solhint", "lint:sol:prettier": "prettier --write contracts/**/*.sol test/**/*.sol", "lint:sol:solhint": "solhint --noPrompt --fix contracts/**/*.sol --config node_modules/solhint-graph-config/index.js", "lint:sol:natspec": "natspec-smells --config natspec-smells.config.js", "clean": "rm -rf build dist cache cache_forge typechain-types", - "build": "BUILD_RUN=true hardhat compile", - "test": "forge test && hardhat test" + "build": "hardhat compile", + "test": "forge test", + "test:deployment": "SECURE_ACCOUNTS_DISABLE_PROVIDER=true hardhat test test/deployment/*.ts", + "test:integration": "./scripts/integration" }, "devDependencies": { "@defi-wonderland/natspec-smells": "^1.1.6", - "@graphprotocol/contracts": "workspace:^7.0.0", - "@graphprotocol/horizon": "workspace:^0.0.1", + "@graphprotocol/contracts": "workspace:^7.1.2", + "@graphprotocol/horizon": "workspace:^0.3.2", + "@graphprotocol/toolshed": "workspace:^", "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ethers": "3.0.8", "@nomicfoundation/hardhat-foundry": "^1.1.1", "@nomicfoundation/hardhat-ignition": "^0.15.9", "@nomicfoundation/hardhat-ignition-ethers": "^0.15.9", @@ -44,13 +51,13 @@ "chai": "^4.2.0", "eslint": "^8.56.0", "eslint-graph-config": "workspace:^0.0.1", - "ethers": "^6.13.4", + "ethers": "6.13.7", + "glob": "^11.0.1", "hardhat": "^2.22.18", "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", - "hardhat-graph-protocol": "workspace:^0.0.1", + "hardhat-graph-protocol": "workspace:^0.1.12", "hardhat-secure-accounts": "^1.0.5", - "hardhat-storage-layout": "^0.1.7", "json5": "^2.2.3", "lint-staged": "^15.2.2", "prettier": "^3.2.5", @@ -66,16 +73,16 @@ }, "lint-staged": { "contracts/**/*.sol": [ - "yarn lint:sol" + "pnpm lint:sol" ], "**/*.ts": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.js": [ - "yarn lint:ts" + "pnpm lint:ts" ], "**/*.json": [ - "yarn lint:ts" + "pnpm lint:ts" ] } } diff --git a/packages/subgraph-service/scripts/integration b/packages/subgraph-service/scripts/integration new file mode 100755 index 000000000..d5d7f1c0d --- /dev/null +++ b/packages/subgraph-service/scripts/integration @@ -0,0 +1,140 @@ +#!/bin/bash + +set -eo pipefail + +NON_INTERACTIVE=${NON_INTERACTIVE:-false} + +# Set environment variables for this script +export SECURE_ACCOUNTS_DISABLE_PROVIDER=true +export FORK_FROM_CHAIN_ID=${FORK_FROM_CHAIN_ID:-421614} + +# Function to cleanup resources +cleanup() { + # Kill hardhat node only if we started it + if [ ! -z "$NODE_PID" ] && [ "$STARTED_NODE" = true ]; then + echo "Cleaning up Hardhat node (PID: $NODE_PID)..." + kill -TERM -- -$NODE_PID 2>/dev/null || true + fi +} + +# Set trap to call cleanup function on script exit (normal or error) +trap cleanup EXIT + +# Check if any deployment folders exist +SUBGRAPH_DEPLOYMENT_EXISTS=false +HORIZON_DEPLOYMENT_EXISTS=false + +if [ -d "ignition/deployments/subgraph-service-localhost" ]; then + SUBGRAPH_DEPLOYMENT_EXISTS=true +fi + +if [ -d "../horizon/ignition/deployments/horizon-localhost" ]; then + HORIZON_DEPLOYMENT_EXISTS=true +fi + +# If any deployment exists, ask once for confirmation +if [ "$SUBGRAPH_DEPLOYMENT_EXISTS" = true ] || [ "$HORIZON_DEPLOYMENT_EXISTS" = true ]; then + echo "The following deployment files already exist and must be removed for the tests to work properly:" + if [ "$SUBGRAPH_DEPLOYMENT_EXISTS" = true ]; then + echo "- Subgraph Service: ignition/deployments/subgraph-service-localhost" + fi + if [ "$HORIZON_DEPLOYMENT_EXISTS" = true ]; then + echo "- Horizon: ../horizon/ignition/deployments/horizon-localhost" + fi + + read -p "Remove these deployment files? (y/n) [y]: " confirm + confirm=${confirm:-y} + if [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]]; then + if [ "$SUBGRAPH_DEPLOYMENT_EXISTS" = true ]; then + echo "Removing Subgraph Service deployment files..." + rm -rf ignition/deployments/subgraph-service-localhost + fi + if [ "$HORIZON_DEPLOYMENT_EXISTS" = true ]; then + echo "Removing Horizon deployment files..." + rm -rf ../horizon/ignition/deployments/horizon-localhost + fi + else + echo "Cannot continue with existing deployment files. Exiting." + exit 1 + fi +fi + +# Check required env variables +BLOCKCHAIN_RPC=${BLOCKCHAIN_RPC:-$(npx hardhat vars get ARBITRUM_SEPOLIA_RPC)} +if [ -z "$BLOCKCHAIN_RPC" ]; then + echo "BLOCKCHAIN_RPC environment variable is required" + exit 1 +fi + +echo "Starting integration tests..." + +# Check if hardhat node is already running on port 8545 +STARTED_NODE=false +if lsof -i:8545 > /dev/null 2>&1; then + echo "Hardhat node already running on port 8545, using existing node" + # Get the PID of the process using port 8545 + NODE_PID=$(lsof -t -i:8545) +else + # Start local hardhat node forked from Arbitrum Sepolia + echo "Starting local hardhat node..." + npx hardhat node --fork $BLOCKCHAIN_RPC > node.log 2>&1 & + NODE_PID=$! + STARTED_NODE=true + + # Wait for node to start + sleep 10 +fi + +# Setup subgraph service address book +jq '{"31337": ."'"$FORK_FROM_CHAIN_ID"'"}' addresses-integration-tests.json > addresses-localhost.json + +# Run Horizon pre-upgrade steps +cd ../horizon + +# Setup horizon address book +jq '{"31337": ."'"$FORK_FROM_CHAIN_ID"'"}' addresses-integration-tests.json > addresses-localhost.json + +# Setup pre horizon migration state needed for the e2e tests +npx hardhat test:seed --network localhost + +# Transfer ownership of protocol to hardhat signer 1 +npx hardhat test:transfer-ownership --network localhost + +# Run Horizon steps 1 deployment +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 1 --patch-config + +# Run Subgraph Service steps 1 deployment +cd ../subgraph-service +npx hardhat deploy:migrate --network localhost --step 1 --subgraph-service-config integration --patch-config --hide-banner + +# Run Horizon deployment steps 2 and 3 +cd ../horizon +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 2 --patch-config --account-index 1 --hide-banner +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 3 --patch-config --hide-banner + +# Run Subgraph Service deployment step 2 +cd ../subgraph-service +npx hardhat deploy:migrate --network localhost --step 2 --subgraph-service-config integration --patch-config --hide-banner + +# Run Horizon deployment steps 4 +cd ../horizon +npx hardhat deploy:migrate --network localhost --horizon-config integration --step 4 --patch-config --account-index 1 --hide-banner + +# Run Subgraph Service seed steps +cd ../subgraph-service +npx hardhat test:seed --network localhost + +# Run integration tests - During transition period +npx hardhat test:integration --phase during-transition-period --network localhost + +# Clear thawing period +cd ../horizon +npx hardhat transition:clear-thawing --network localhost --governor-index 1 + +# Run integration tests - After transition period +cd ../subgraph-service +npx hardhat test:integration --phase after-transition-period --network localhost + +echo "" +echo "🎉 ✨ 🚀 ✅ E2E tests completed successfully! 🎉 ✨ 🚀 ✅" +echo "" diff --git a/packages/subgraph-service/scripts/ops/data.ts b/packages/subgraph-service/scripts/ops/data.ts new file mode 100644 index 000000000..408e4e24d --- /dev/null +++ b/packages/subgraph-service/scripts/ops/data.ts @@ -0,0 +1,101 @@ +// 5 private keys for 14 indexers +export const allocationKeys = [ + [ + '0xadc26f06df219d495e839e2bfbc3b7957cbd7ec2378402a71c348d5d14161508', + '0x3a4822389badea942368b5208e96f27e0f86d6218264b344b4aa4e9327126364', + '0xd2a01abc811463cc7a0024147bebde7060e65d51c7fa3192d9cde700a47c251f', + '0x3dfbdb0f34048b788940f120c0033aca8dcfd37e0dd5207a842dc61e1886e85a', + '0x920223c9235db8175356e159cc68d18ec02e262be45277e36b77454cd807bf86', + ], + [ + '0xfc4de5954b21216f20bf330b531d337f26b596e9848ad6d42abeaeedc94f0b13', + '0xab337fe78fad371dbf49ff168f34482023b0c9ab82b3f43a828a4fde9750ec51', + '0x14415a4a8e175cfd6c0c4bf25e3f6ca2e31bd8dd6d1515572ecd2dcf38cb89c8', + '0xae323d19100fb157370d4e32ae0f2927a2ee08a9d17b00aec4a0d353b62cbc7d', + '0xce42812cc29b6c4d5b06b95434f62265a232fa0902b1d0adefb974a7b3e20d78', + ], + [ + '0x10b4a9f0631aada6b4bf71c34778c0658bab59edf0aba8e4521f82b06039b8b6', + '0x927141f4ca7037c19f25b940f5acd4b3640057e28852ca211fcf18dda529859b', + '0x224356ab7c35241fafdbefbaf65e1595bcea90d494067add2af084836fb04a85', + '0xbf188a0f2bcefaa0018e6055914f740a4e9531530029a03d883c932cb5532dc0', + '0x21ab7915972caa6d80a9c1aa0087efa36fca354880452d85bd041aaab55f78ca', + ], + [ + '0x518f5077f9496fc8f9ced68ee3ceb373c83499ced9555d23dd3db15662bbb9fc', + '0x198a89d12b724e588e02b5bc76e1fdf5f73f44ee1188b9025d086a958b856e96', + '0xd5187002b0e67ed351f0a0e60b22f7521657b2be37ceb9796f877549cd9ce222', + '0x2d9e9d37f31854cc383e49f9e63a79d3ee1f3cda0ee3e70022c1507f1f5daaf6', + '0xadbb875ed84fe3fce2b795e4a8b79c30af5e247f3dfdaae508bd5cc4521da2ae', + ], + [ + '0x82125dc80334dceae262cc16f3424d5c216606a18ef4f14a81d6ed280b4024da', + '0xaa3128c72a194ff8ba61ce10fe6fe85125caf3a86c34087435b80305d00c6e1b', + '0x4300a2a2067c4c376eca3c34c70cbf909ca4bc370199f4cda58d95a0a00d9f5f', + '0x005520c586e3c4a69eac2e3ebf7647a3aa8a2e0a86bd1ac6efe3a6a71b96066e', + '0x566012e0fb640f9689959d682e8cf8f9a85184241178689a501b2eb6c8b15738', + ], + [ + '0x89ebfce06c70a5d3508758f7fcd4a9036a4833d54fe2576b96b314330698d7cc', + '0x4173e8c46b0e986cbdba386648eae089ad023b575bfa14b7359a15bcbe4f5dca', + '0x216dc758c841eedf907fd63c189df9490a5dc5ef8ed78799157cd56c0cdacace', + '0x8017e5d08306448c6c83c6745d631c5db5902eb92ee5531773ed61b2484f7e13', + '0x8029f5e5334d6b0f543f6930c1c7c0b37b7294b372d5245b79ec93e22faebe72', + ], + [ + '0x6c550086228105ce673eaccac85ed331d9406cad27d2f4dcdcd915991acaa2ec', + '0x79909074dfb609a91fe0e2be5be2ed7bbac4d25d429b462449d6b81d5bdd0aa3', + '0x8c817673ca090ada483fb7d5257b800802ec38dac5797e429b100281aba53a56', + '0x8df09c1559d1937569f93edb5027f1e0f37c7e0833bf11a78ee1dcb9b59811df', + '0x2a5b7747acd49567a763e82e6bd273b2485fa0bfc56ab0097fc78793695a922b', + ], + [ + '0x01148072587e8db9a6600ab5493197454b8df92ba6a9c49634950b39cd27b0f8', + '0x4d81c121d9eccc9e10a9a52eec5486dea1ad06225fe763033038e88250cebe53', + '0xaea522baa4b245bae11efb99ef0d9a90ad9e44d3f9211c2936df4f08f4953d28', + '0x26b482f016849f6252607034acbd2d7bac2d8ec69e15f8e1f0cc0849f981463a', + '0x923dd9e6be0ea49ad4d9aa54516a4f7b82c7726f545f0310fc1d548d1b657353', + ], + [ + '0x0feb254ae77a3dee38b2ae93ea7575f463c51f74bfc52fc9e4a26e39a6ecafd6', + '0xd851b1dcad9cde7dd528cf54c1157f0ce8276b4cfd979fbe66331065a382a5cf', + '0x014b03f8bd8233d2937d4081d6c17700f954f85fb84683b494e4ad81af742905', + '0x05d123da41d5138a692a5c848418bab90f010e578d05d6d547d6393db0e0b203', + '0x22c2978cc492babe94a4cffeff058a80b3538b2f383673055dbc321fe732782c', + ], + [ + '0xa19dbff41dc89b35b1ab26211d4ea6c5d7ddbcfdd88c9dc984aca7e401213982', + '0x8ac0e5d925473ded2d7f518e038ce702c85f2cb4efa19c790d652549812e8095', + '0x5873d0babaf77992c162de724ad7ba43354112b023ddbc91081940859b04613d', + '0x750c6d01c25cbf124bcdebbda600d09a36d0353738b618bcbe1211f18841db1c', + '0xe823d63eef2a37596183505ee76683a1af57e8253920594a388b0b31ca2a4730', + ], + [ + '0x21c015847aa2621d1d3ab6b92915e46995d51814c940d9242c99bc1c56aef025', + '0xa285c26d0d89c94360bf876174301f2acb226954b6c2e17081f02258590afd2c', + '0x6e08860ca769d6c45509b06c11c4734e51477c110213c6552290a1c56226927c', + '0x271df62461060c8fcd78bbe82bb592d695a486cce9c78f5f801b020a13d47951', + '0x2293da863dc9ab4d7a7160573f50bae66956c71ea3e16b9356dd0d4713932cdb', + ], + [ + '0xe9817b310039c44dbb0b43e10e63aa999cf05017e0175f1a052a7ae506498bb3', + '0xeee418cba9ec638e7aa9f03ac6fbbb332741b1082f31e949940ab39f746c86f6', + '0x3e62bd3b87e9f45d5ed6924ccd21d67fe43fdd2c43f3c4c8c0ad598b8130302c', + '0x8dadfb35dba3fc01eb543c7016feeab4ec777485fef7efabef46637689d41648', + '0x7d1b521bce3d42dfd719d8202153fd5432efbcf5d4d33a0180811254ae8058a5', + ], + [ + '0x3dd509ae6e664fee8ddd19094e80672ba55d7943112514f255f71f814389334e', + '0x88354bb0173d9db541c91668c722e189308411afdbed18843590c64eb4c65f4a', + '0xbe7f5ded918f2f85e937f9e658e7e78f5e3f6010a8ef552019a4cac02443499a', + '0xe2275db1ec82cfc4d96f711eb22894fe0fe4ed1223ead68fc2ae114cec9613ac', + '0xd7c830bc72657bd204636a1ed199928e70329959410b53e45d664539a95e6a17', + ], + [ + '0x0ca66c3197efa4c0d61d0fda991c18c7039a562192d3e339d16142071b895356', + '0xc78a3bab4a94bf912b1db350e3baeaa4e82a8cc03833e3c6d5821b68af8729ca', + '0x304f55f25d20e54075fd11c38b0c79b6f35d8bbfdbf10954afd8c5bf3c34bed9', + '0xeb45fd351ba6cafd0c3aa600e73471967d9d9eaa30f0021141711ce682466559', + '0x7e71f34c1068d63bfc14c13e4ef9b5f3555e3a7efeae72948d584cf8f5acbf5c', + ], +] diff --git a/packages/subgraph-service/scripts/ops/protocol-activity.ts b/packages/subgraph-service/scripts/ops/protocol-activity.ts new file mode 100644 index 000000000..fc91b1b5b --- /dev/null +++ b/packages/subgraph-service/scripts/ops/protocol-activity.ts @@ -0,0 +1,326 @@ +import { + encodeCollectQueryFeesData, + encodePOIMetadata, + generateAllocationProof, + generatePOI, + generateSignedRAV, + generateSignerProof, + ONE_HUNDRED_THOUSAND, + ONE_THOUSAND, + PaymentTypes, + TEN_MILLION, + ThawRequestType, +} from '@graphprotocol/toolshed' +import hre, { ethers } from 'hardhat' +import { allocationKeys } from './data' +import { randomBigInt } from '@graphprotocol/toolshed/utils' +const PROVISION_THAWING_PERIOD = 2419200n +const PROVISION_MAX_VERIFIER_CUT = 500_000n +const PROVISION_THAWING_PERIOD_B = 2419199n +const PROVISION_MAX_VERIFIER_CUT_B = 900_000n + +const GAS_LIMIT = process.env.GAS_LIMIT ? parseInt(process.env.GAS_LIMIT) : 500_000 + +async function main() { + const graph = hre.graph() + const { HorizonStaking, GraphToken, PaymentsEscrow, GraphTallyCollector } = graph.horizon.contracts + const { SubgraphService, Curation } = graph.subgraphService.contracts + + const { stake, stakeToProvision, delegate, addToDelegationPool } = graph.horizon.actions + + const signers = await graph.accounts.getTestAccounts() + const deployer = await graph.accounts.getDeployer() + const gateway = await graph.accounts.getGateway() // note that this wont be the actual gateway address + + const abi = new ethers.AbiCoder() + + console.log('🔄 Generating protocol activity...') + console.log('- Deployer: ', deployer.address) + const deployerEthBalance = await ethers.provider.getBalance(deployer.address) + const deployerGrtBalance = await GraphToken.balanceOf(deployer.address) + console.log(` + ETH Balance: ${ethers.formatEther(deployerEthBalance)} ETH`) + console.log(` + GRT Balance: ${ethers.formatEther(deployerGrtBalance)} GRT`) + console.log('- Signers: ', signers.length) + + // Fund signers - top up to 0.01 ETH + console.log('💸 Funding signers with ETH...') + for (const signer of [...signers, gateway]) { + const balance = await ethers.provider.getBalance(signer.address) + if (balance < ethers.parseEther('0.01')) { + await deployer.connect(graph.provider).sendTransaction({ to: signer.address, value: ethers.parseEther('0.01') }) + } + } + + // Fund signers - top up to 10M GRT + console.log('💰 Funding signers with GRT...') + for (const signer of [...signers, gateway]) { + const balance = await GraphToken.balanceOf(signer.address) + if (balance < TEN_MILLION) { + await GraphToken.connect(deployer).transfer(signer.address, TEN_MILLION - balance) + } + } + + // Stake - random amount between 0 and available balance + console.log('📈 Staking random amounts...') + for (const signer of signers) { + const balance = await GraphToken.balanceOf(signer.address) + const stakeAmount = randomBigInt(0n, balance) + await stake(signer, [stakeAmount]) + } + + // Provision - if not exist, create with random amount between 100k and idle stake, otherwise add random amount + console.log('🔧 Provisioning or adding to provision...') + for (const signer of signers) { + const provision = await HorizonStaking.getProvision(signer.address, SubgraphService.target) + const provisionExists = provision.createdAt !== 0n + + if (provisionExists) { + const balance = await GraphToken.balanceOf(signer.address) + const addAmount = randomBigInt(0n, balance) + await stakeToProvision(signer, [signer.address, SubgraphService.target, addAmount]) + } else { + const idleStake = await HorizonStaking.getIdleStake(signer.address) + const provisionAmount = randomBigInt(ONE_HUNDRED_THOUSAND, idleStake - ONE_HUNDRED_THOUSAND) + await HorizonStaking.connect(signer).provision(signer.address, SubgraphService.target, provisionAmount, PROVISION_MAX_VERIFIER_CUT, PROVISION_THAWING_PERIOD) + } + } + + // Unstake - random amount between 0 and idle stake, scaled down by 50% + console.log('📉 Unstaking random amounts...') + for (const signer of signers) { + const idleStake = await HorizonStaking.getIdleStake(signer.address) + const unstakeAmount = BigInt(Math.floor(Math.random() * Number(idleStake) * 0.5)) + await HorizonStaking.connect(signer).unstake(unstakeAmount) + } + + // Subgraph Service - register + console.log('📝 Subgraph Service - registering...') + for (const signer of signers) { + const indexer = await SubgraphService.indexers(signer.address) + const isRegistered = indexer.registeredAt !== 0n + if (!isRegistered) { + const paymentsDestination = Math.random() < 0.5 ? signer.address : ethers.ZeroAddress + const data = abi.encode(['string', 'string', 'address'], ['http://indexer.xyz', '69y7mznpp', paymentsDestination]) + await SubgraphService.connect(signer).register(signer.address, data) + } + } + + // Thaw - random amount between 0 and provision tokens free, scaled down by 50% + console.log('❄️ Thawing provision tokens...') + for (const signer of signers) { + const provision = await HorizonStaking.getProvision(signer.address, SubgraphService.target) + const thawAmount = randomBigInt(0n, (provision.tokens - provision.tokensThawing) / 2n) + await HorizonStaking.connect(signer).thaw(signer.address, SubgraphService.target, thawAmount) + } + + // Deprovision/Reprovision - any thawed tokens + console.log('🧊 Deprovisioning thawed tokens...') + for (const signer of signers) { + const thawedTokens = await HorizonStaking.getThawedTokens(ThawRequestType.Provision, signer.address, SubgraphService.target, signer.address) + if (thawedTokens > 0) { + const reprovision = Math.random() < 0.5 + if (reprovision) { + await HorizonStaking.connect(signer).provision(signer.address, ethers.ZeroAddress, 1n, PROVISION_MAX_VERIFIER_CUT, PROVISION_THAWING_PERIOD) + await HorizonStaking.connect(signer).reprovision(signer.address, SubgraphService.target, ethers.ZeroAddress, 0) + } else { + await HorizonStaking.connect(signer).deprovision(signer.address, SubgraphService.target, 0) + } + } + } + + // AddToProvision - random amount between 0 and idle stake, scaled down by 50% + console.log('➕ Adding to provision...') + for (const signer of signers) { + const idleStake = await HorizonStaking.getIdleStake(signer.address) + const addAmount = randomBigInt(0n, idleStake / 2n) + await HorizonStaking.connect(signer).addToProvision(signer.address, SubgraphService.target, addAmount) + } + + // Set provision parameters + console.log('🔨 Setting provision parameters...') + for (const signer of signers) { + await HorizonStaking.connect(signer).setProvisionParameters( + signer.address, + SubgraphService.target, + Math.random() < 0.5 ? PROVISION_MAX_VERIFIER_CUT_B : PROVISION_MAX_VERIFIER_CUT, + Math.random() < 0.5 ? PROVISION_THAWING_PERIOD_B : PROVISION_THAWING_PERIOD, + ) + } + + // Subgraph service - start service + console.log('🚀 Subgraph Service - starting service...') + for (const [i, signer] of signers.entries()) { + for (const privateKey of allocationKeys[i]) { + const wallet = new ethers.Wallet(privateKey) + const allocation = await SubgraphService.getAllocation(wallet.address) + if (allocation.createdAt === 0n) { + const freeAmount = await HorizonStaking.getProviderTokensAvailable(signer.address, SubgraphService.target) - await SubgraphService.allocationProvisionTracker(signer.address) + if (freeAmount > ONE_THOUSAND) { + const allocationAmount = randomBigInt(ONE_THOUSAND, freeAmount) + const subgraphDeploymentId = ethers.keccak256(`0x${i.toString(16).padStart(2, '0')}`) + const proof = await generateAllocationProof(signer.address, privateKey, SubgraphService.target as string, graph.chainId) + const data = abi.encode(['bytes32', 'uint256', 'address', 'bytes'], [subgraphDeploymentId, allocationAmount, wallet.address, proof]) + await SubgraphService.connect(signer).startService(signer.address, data, { gasLimit: GAS_LIMIT }) + // Curate + const curate = Math.random() < 0.5 + if (curate) { + await GraphToken.connect(signer).approve(Curation.target, 12345n) + await Curation.connect(signer).mint(subgraphDeploymentId, 12345n, 0) + } + } + } + } + } + + // Subgraph service - set payments destination + console.log('🏦 Subgraph Service - setting payments destination...') + for (const signer of signers) { + const paymentsDestination = Math.random() < 0.5 ? signer.address : ethers.ZeroAddress + await SubgraphService.connect(signer).setPaymentsDestination(paymentsDestination) + } + + // Delegation cuts + console.log('✂️ Delegation cuts...') + for (const signer of signers) { + const queryFeeCut = randomBigInt(0n, 50_000n) + const indexerFeeCut = randomBigInt(0n, 50_000n) + await HorizonStaking.connect(signer).setDelegationFeeCut(signer.address, SubgraphService.target, PaymentTypes.QueryFee, queryFeeCut) + await HorizonStaking.connect(signer).setDelegationFeeCut(signer.address, SubgraphService.target, PaymentTypes.IndexingRewards, indexerFeeCut) + } + + // Subgraph service - resize allocation + console.log('🔄 Subgraph Service - resizing allocation...') + for (const [i, signer] of signers.entries()) { + for (const privateKey of allocationKeys[i]) { + if (Math.random() > 0.5) { + const wallet = new ethers.Wallet(privateKey) + const allocation = await SubgraphService.getAllocation(wallet.address) + + if (allocation.createdAt !== 0n && allocation.closedAt === 0n) { + const resizeAmount = Math.random() > 0.5 ? allocation.tokens * 9n / 10n : allocation.tokens * 11n / 10n + const freeAmount = await HorizonStaking.getProviderTokensAvailable(signer.address, SubgraphService.target) - await SubgraphService.allocationProvisionTracker(signer.address) + if (resizeAmount - allocation.tokens < freeAmount) { + await SubgraphService.connect(signer).resizeAllocation(signer.address, wallet.address, resizeAmount, { gasLimit: GAS_LIMIT }) + } + } + } + } + } + + // delegate + console.log('👥 Delegating...') + for (const signer of signers) { + const balance = await GraphToken.balanceOf(signer.address) + const delegationAmount = balance / 100n + const serviceProvider = signers[Math.floor(Math.random() * signers.length)] + await delegate(signer, [serviceProvider, SubgraphService.target, delegationAmount, 0n]) + } + + // Add to delegation pool + console.log('🔁 Adding to delegation pool...') + for (const signer of signers) { + const balance = await GraphToken.balanceOf(signer.address) + const delegationAmount = balance / 500n + + const delegationPool = await HorizonStaking.getDelegationPool(signer.address, SubgraphService.target) + if (delegationPool.shares > 0) { + await addToDelegationPool(signer, [signer.address, SubgraphService.target, delegationAmount]) + } + } + + // Undelegate + console.log('🔄 Undelegate...') + for (const signer of signers) { + for (const serviceProvider of signers) { + const delegation = await HorizonStaking.getDelegation(serviceProvider, SubgraphService.target, signer.address) + if (delegation.shares > 0) { + await HorizonStaking.connect(signer)['undelegate(address,address,uint256)'](serviceProvider, SubgraphService.target, delegation.shares) + } + } + } + + // withdraw delegation + console.log('💸 Withdrawing delegation...') + for (const signer of signers) { + const tokensThawed = await HorizonStaking.getThawedTokens(ThawRequestType.Delegation, signer.address, SubgraphService.target, signer.address) + if (tokensThawed > 0) { + await HorizonStaking.connect(signer)['withdrawDelegated(address,address,uint256)'](signer.address, SubgraphService.target, 0) + } + } + + // collect indexing fees + console.log('📊 Collecting indexing fees...') + for (const [i, signer] of signers.entries()) { + for (const privateKey of allocationKeys[i]) { + const wallet = new ethers.Wallet(privateKey) + const allocation = await SubgraphService.getAllocation(wallet.address) + + const timeSinceCreated = Math.floor(Date.now() / 1000) - Number(allocation.createdAt) + if (timeSinceCreated > 120 && allocation.createdAt !== 0n && allocation.closedAt === 0n) { // 10 minutes + const poi = generatePOI('POI') + const publicPoi = generatePOI('publicPOI') + const poiMetadata = encodePOIMetadata(222, publicPoi, 1, 10, 0) // random data, doesnt matter + const data = abi.encode(['address', 'bytes32', 'bytes'], [wallet.address, poi, poiMetadata]) + await SubgraphService.connect(signer).collect(signer.address, PaymentTypes.IndexingRewards, data, { gasLimit: GAS_LIMIT }) + } + } + } + + // collect query fees + console.log('💰 Collecting query fees...') + const gatewaySigner = new ethers.Wallet('0x6a0d63ca1ff7f0a6d3357fa59c2fb585f5fcf99e2c73d433022504e2147b6cdd') // use a random private key + const signerAuth = await GraphTallyCollector.authorizations(gatewaySigner.address) + + if (signerAuth.authorizer === ethers.ZeroAddress) { + const gatewayProof = generateSignerProof(9962283664n, gateway.address, gatewaySigner.privateKey, GraphTallyCollector.target as string, graph.chainId) + await GraphTallyCollector.connect(gateway).authorizeSigner(gatewaySigner.address, 9962283664n, gatewayProof) + } + + for (const [i, signer] of signers.entries()) { + const escrowAccount = await PaymentsEscrow.escrowAccounts(gateway.address, GraphTallyCollector.target, signer.address) + if (escrowAccount.balance < ONE_HUNDRED_THOUSAND) { + await GraphToken.connect(gateway).approve(PaymentsEscrow.target, ONE_HUNDRED_THOUSAND - escrowAccount.balance) + await PaymentsEscrow.connect(gateway).deposit(GraphTallyCollector.target, signer.address, ONE_HUNDRED_THOUSAND - escrowAccount.balance) + } + + for (const privateKey of allocationKeys[i]) { + const wallet = new ethers.Wallet(privateKey) + const collectionId = abi.encode(['address'], [wallet.address]) + const tokensCollected = await GraphTallyCollector.tokensCollected(SubgraphService.target, collectionId, signer.address, gateway.address) + const { rav, signature } = await generateSignedRAV( + wallet.address, + gateway.address, + signer.address, + SubgraphService.target as string, + 0, + tokensCollected + ONE_THOUSAND, + ethers.toUtf8Bytes(''), + gatewaySigner.privateKey, + GraphTallyCollector.target as string, + graph.chainId, + ) + const data = encodeCollectQueryFeesData(rav, signature, 0n) + await SubgraphService.connect(signer).collect(signer.address, 0, data, { gasLimit: GAS_LIMIT }) + } + } + + // Subgraph service - stop service + console.log('🛑 Subgraph Service - stopping service...') + for (const [i, signer] of signers.entries()) { + for (const privateKey of allocationKeys[i]) { + const wallet = new ethers.Wallet(privateKey) + const allocation = await SubgraphService.getAllocation(wallet.address) + + if (allocation.createdAt !== 0n && allocation.closedAt === 0n) { + if (Math.random() < 0.35) { + await SubgraphService.connect(signer).stopService(signer.address, abi.encode(['address'], [wallet.address])) + } + } + } + } +} + +main().catch((error) => { + console.error(error) + process.exitCode = 1 +}) diff --git a/packages/subgraph-service/scripts/post-verify b/packages/subgraph-service/scripts/post-verify new file mode 100755 index 000000000..dfcae3bcc --- /dev/null +++ b/packages/subgraph-service/scripts/post-verify @@ -0,0 +1,3 @@ +#!/bin/bash + +git ls-files --others --exclude-standard ignition/deployments | xargs rm -f \ No newline at end of file diff --git a/packages/subgraph-service/scripts/pre-verify b/packages/subgraph-service/scripts/pre-verify new file mode 100755 index 000000000..fa596b4c2 --- /dev/null +++ b/packages/subgraph-service/scripts/pre-verify @@ -0,0 +1,70 @@ +#!/bin/bash + +# Move external artifacts +cp -r ../contracts/build/contracts/contracts/* build/contracts/contracts +cp -r ../contracts/build/contracts/build-info/* build/contracts/build-info + +cp -r ../horizon/build/contracts/contracts/* build/contracts/contracts +cp -r ../horizon/build/contracts/build-info/* build/contracts/build-info + +cp -r ../horizon/build/contracts/@openzeppelin/contracts/proxy/transparent/* build/contracts/contracts +cp -r ../horizon/build/contracts/build-info/* build/contracts/build-info + +# HardHat Ignition deployment ID +DEPLOYMENT_ID="${1:-chain-421614}" + +# .dbg.json files +DBG_DIR_SRC="./build/contracts/contracts" +DBG_DIR_DEST="./ignition/deployments/${DEPLOYMENT_ID}/artifacts" + +# build-info files +BUILD_INFO_DIR_SRC="./build/contracts/build-info" +BUILD_INFO_DIR_DEST="./ignition/deployments/${DEPLOYMENT_ID}/build-info" + +# Ensure the destination directories exist +mkdir -p "$DBG_DIR_DEST" +mkdir -p "$BUILD_INFO_DIR_DEST" + +# Copy .dbg.json files +echo "Searching for .dbg.json files in $DBG_DIR_SRC and copying them to $DBG_DIR_DEST..." +find "$DBG_DIR_SRC" -type f -name "*.dbg.json" | while read -r file; do + base_name=$(basename "$file" .dbg.json) + new_name="${base_name}#${base_name}.dbg.json" + + if [ ! -f "$DBG_DIR_DEST/$new_name" ]; then + cp "$file" "$DBG_DIR_DEST/$new_name" + fi + + jq '.buildInfo |= sub("../../../../"; "../") | .buildInfo |= sub("../../../"; "../") | .buildInfo |= sub("../../"; "../")' "$DBG_DIR_DEST/$new_name" > "${DBG_DIR_DEST}/${new_name}.tmp" && mv "${DBG_DIR_DEST}/${new_name}.tmp" "$DBG_DIR_DEST/$new_name" +done + +# Copy build-info files +echo "Searching for build-info files in $BUILD_INFO_DIR_SRC and copying them to $BUILD_INFO_DIR_DEST..." +find "$BUILD_INFO_DIR_SRC" -type f -name "*.json" | while read -r file; do + base_name=$(basename "$file" .json) + if [ ! -f "$BUILD_INFO_DIR_DEST/$base_name.json" ]; then + cp "$file" "$BUILD_INFO_DIR_DEST/$base_name.json" + fi +done + +echo "All files have been processed." + +# Patch proxy artifacts +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxies#GraphProxy_HorizonStaking.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/L2Curation#GraphProxy.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/L2GraphToken#GraphProxy.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/L2GraphTokenGateway#GraphProxy.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/RewardsManager#GraphProxy.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/BridgeEscrow#GraphProxy.dbg.json" +cp "$DBG_DIR_DEST/GraphProxy#GraphProxy.dbg.json" "$DBG_DIR_DEST/EpochManager#GraphProxy.dbg.json" + +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.dbg.json" +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.dbg.json" +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.dbg.json" +cp "$DBG_DIR_DEST/TransparentUpgradeableProxy#TransparentUpgradeableProxy.dbg.json" "$DBG_DIR_DEST/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.dbg.json" + +# Rename DisputeManager to LegacyDisputeManager - this avoids artifact name collisions +mkdir -p "build/contracts/contracts/disputes/LegacyDisputeManager.sol" +mv "build/contracts/contracts/disputes/DisputeManager.sol/DisputeManager.json" "build/contracts/contracts/disputes/LegacyDisputeManager.sol/LegacyDisputeManager.json" +mv "build/contracts/contracts/disputes/DisputeManager.sol/DisputeManager.dbg.json" "build/contracts/contracts/disputes/LegacyDisputeManager.sol/LegacyDisputeManager.dbg.json" +rm -rf "build/contracts/contracts/disputes/DisputeManager.sol" \ No newline at end of file diff --git a/packages/subgraph-service/tasks/deploy.ts b/packages/subgraph-service/tasks/deploy.ts index 1e545c9f4..5f71ecfa8 100644 --- a/packages/subgraph-service/tasks/deploy.ts +++ b/packages/subgraph-service/tasks/deploy.ts @@ -1,8 +1,10 @@ /* eslint-disable no-case-declarations */ +import { loadConfig, patchConfig, saveToAddressBook } from '@graphprotocol/toolshed/hardhat' import { task, types } from 'hardhat/config' -import { IgnitionHelper } from 'hardhat-graph-protocol/sdk' +import { printHorizonBanner } from '@graphprotocol/toolshed/utils' +import { ZERO_ADDRESS } from '@graphprotocol/toolshed' -import type { AddressBook } from '../../hardhat-graph-protocol/src/sdk/address-book' +import type { AddressBook } from '@graphprotocol/toolshed/deployments' import type { HardhatRuntimeEnvironment } from 'hardhat/types' import Deploy1Module from '../ignition/modules/deploy/deploy-1' @@ -23,15 +25,14 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont // Load configuration files for the deployment console.log('\n========== ⚙️ Deployment configuration ==========') - const { config: HorizonConfig, file: horizonFile } = IgnitionHelper.loadConfig('./node_modules/@graphprotocol/horizon/ignition/configs', 'protocol', args.horizonConfig ?? hre.network.name) - const { config: SubgraphServiceConfig, file: subgraphServiceFile } = IgnitionHelper.loadConfig('./ignition/configs/', 'protocol', args.subgraphServiceConfig ?? hre.network.name) + const { config: HorizonConfig, file: horizonFile } = loadConfig('./node_modules/@graphprotocol/horizon/ignition/configs', 'protocol', args.horizonConfig ?? hre.network.name) + const { config: SubgraphServiceConfig, file: subgraphServiceFile } = loadConfig('./ignition/configs/', 'protocol', args.subgraphServiceConfig ?? hre.network.name) console.log(`Loaded Horizon migration configuration from ${horizonFile}`) console.log(`Loaded Subgraph Service migration configuration from ${subgraphServiceFile}`) // Display the deployer -- this also triggers the secure accounts prompt if being used console.log('\n========== 🔑 Deployer account ==========') - const signers = await hre.ethers.getSigners() - const deployer = signers[0] + const deployer = await graph.accounts.getDeployer(args.deployerIndex) console.log('Using deployer account:', deployer.address) const balance = await hre.ethers.provider.getBalance(deployer.address) console.log('Deployer balance:', hre.ethers.formatEther(balance), 'ETH') @@ -51,9 +52,10 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont console.log(`\n========== 🚧 Deploy Horizon ==========`) const horizonDeployment = await hre.ignition.deploy(HorizonModule, { displayUi: true, - parameters: IgnitionHelper.patchConfig(HorizonConfig, { + parameters: patchConfig(HorizonConfig, { $global: { - subgraphServiceProxyAddress: proxiesDeployment.Transparent_Proxy_SubgraphService.target as string, + // The naming convention in the horizon package is slightly different + subgraphServiceAddress: proxiesDeployment.Transparent_Proxy_SubgraphService.target as string, }, }), }) @@ -62,18 +64,14 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont console.log(`\n========== 🚧 Deploy SubgraphService implementations and upgrade them ==========`) const subgraphServiceDeployment = await hre.ignition.deploy(Deploy2Module, { displayUi: true, - parameters: IgnitionHelper.patchConfig(SubgraphServiceConfig, { + parameters: patchConfig(SubgraphServiceConfig, { $global: { controllerAddress: horizonDeployment.Controller.target as string, - disputeManagerProxyAddress: proxiesDeployment.Transparent_Proxy_DisputeManager.target as string, - curationAddress: horizonDeployment.Graph_Proxy_L2Curation.target as string, + curationProxyAddress: horizonDeployment.Graph_Proxy_L2Curation.target as string, curationImplementationAddress: horizonDeployment.Implementation_L2Curation.target as string, - subgraphServiceProxyAddress: proxiesDeployment.Transparent_Proxy_SubgraphService.target as string, - }, - DisputeManager: { + disputeManagerProxyAddress: proxiesDeployment.Transparent_Proxy_DisputeManager.target as string, disputeManagerProxyAdminAddress: proxiesDeployment.Transparent_ProxyAdmin_DisputeManager.target as string, - }, - SubgraphService: { + subgraphServiceProxyAddress: proxiesDeployment.Transparent_Proxy_SubgraphService.target as string, subgraphServiceProxyAdminAddress: proxiesDeployment.Transparent_ProxyAdmin_SubgraphService.target as string, graphTallyCollectorAddress: horizonDeployment.GraphTallyCollector.target as string, }, @@ -82,11 +80,11 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont // Save the addresses to the address book console.log('\n========== 📖 Updating address book ==========') - IgnitionHelper.saveToAddressBook(horizonDeployment, hre.network.config.chainId, graph.horizon!.addressBook) - IgnitionHelper.saveToAddressBook(proxiesDeployment, hre.network.config.chainId, graph.subgraphService!.addressBook) - IgnitionHelper.saveToAddressBook(subgraphServiceDeployment, hre.network.config.chainId, graph.subgraphService!.addressBook) - console.log(`Address book at ${graph.horizon!.addressBook.file} updated!`) - console.log(`Address book at ${graph.subgraphService!.addressBook.file} updated!`) + saveToAddressBook(horizonDeployment, graph.horizon.addressBook) + saveToAddressBook(proxiesDeployment, graph.subgraphService.addressBook) + saveToAddressBook(subgraphServiceDeployment, graph.subgraphService.addressBook) + console.log(`Address book at ${graph.horizon.addressBook.file} updated!`) + console.log(`Address book at ${graph.subgraphService.addressBook.file} updated!`) console.log('Note that Horizon deployment addresses are updated in the Horizon address book') console.log('\n\n🎉 ✨ 🚀 ✅ Deployment complete! 🎉 ✨ 🚀 ✅') @@ -95,14 +93,19 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont task('deploy:migrate', 'Deploy the Subgraph Service on an existing Horizon deployment') .addOptionalParam('step', 'Migration step to run (1, 2)', undefined, types.int) .addOptionalParam('subgraphServiceConfig', 'Name of the Subgraph Service configuration file to use. Format is "migrate..json5", file must be in the "ignition/configs/" directory. Defaults to network name.', undefined, types.string) + .addOptionalParam('accountIndex', 'Derivation path index for the account to use', 0, types.int) .addFlag('patchConfig', 'Patch configuration file using address book values - does not save changes') + .addFlag('hideBanner', 'Hide the banner display') .setAction(async (args, hre: HardhatRuntimeEnvironment) => { // Task parameters const step: number = args.step ?? 0 const patchConfig: boolean = args.patchConfig ?? false const graph = hre.graph() - console.log(getHorizonBanner()) + + if (!args.hideBanner) { + printHorizonBanner() + } // Migration step to run console.log('\n========== 🏗️ Migration steps ==========') @@ -116,13 +119,12 @@ task('deploy:migrate', 'Deploy the Subgraph Service on an existing Horizon deplo // Load configuration for the migration console.log('\n========== ⚙️ Deployment configuration ==========') - const { config: SubgraphServiceMigrateConfig, file } = IgnitionHelper.loadConfig('./ignition/configs/', 'migrate', args.subgraphServiceConfig ?? hre.network.name) + const { config: SubgraphServiceMigrateConfig, file } = loadConfig('./ignition/configs/', 'migrate', args.subgraphServiceConfig ?? hre.network.name) console.log(`Loaded migration configuration from ${file}`) // Display the deployer -- this also triggers the secure accounts prompt if being used console.log('\n========== 🔑 Deployer account ==========') - const signers = await hre.ethers.getSigners() - const deployer = signers[0] + const deployer = await graph.accounts.getDeployer(args.accountIndex) console.log('Using deployer account:', deployer.address) const balance = await hre.ethers.provider.getBalance(deployer.address) console.log('Deployer balance:', hre.ethers.formatEther(balance), 'ETH') @@ -138,14 +140,14 @@ task('deploy:migrate', 'Deploy the Subgraph Service on an existing Horizon deplo MigrationModule, { displayUi: true, - parameters: patchConfig ? _patchStepConfig(step, SubgraphServiceMigrateConfig, graph.subgraphService!.addressBook, graph.horizon!.addressBook) : SubgraphServiceMigrateConfig, + parameters: patchConfig ? _patchStepConfig(step, SubgraphServiceMigrateConfig, graph.subgraphService.addressBook, graph.horizon.addressBook) : SubgraphServiceMigrateConfig, deploymentId: `subgraph-service-${hre.network.name}`, }) // Update address book console.log('\n========== 📖 Updating address book ==========') - IgnitionHelper.saveToAddressBook(deployment, hre.network.config.chainId, graph.subgraphService!.addressBook) - console.log(`Address book at ${graph.subgraphService!.addressBook.file} updated!`) + saveToAddressBook(deployment, graph.subgraphService.addressBook) + console.log(`Address book at ${graph.subgraphService.addressBook.file} updated!`) console.log('\n\n🎉 ✨ 🚀 ✅ Migration complete! 🎉 ✨ 🚀 ✅') }) @@ -169,18 +171,15 @@ function _patchStepConfig([ + [ + horizonIndexers[0].address, + [ + { + allocationID: INDEXER_ONE_FIRST_ALLOCATION_ID, + subgraphDeploymentID: SUBGRAPH_DEPLOYMENT_ID_ONE, + allocationPrivateKey: INDEXER_ONE_FIRST_ALLOCATION_PRIVATE_KEY, + tokens: parseEther('10000'), + }, + { + allocationID: INDEXER_ONE_SECOND_ALLOCATION_ID, + subgraphDeploymentID: SUBGRAPH_DEPLOYMENT_ID_TWO, + allocationPrivateKey: INDEXER_ONE_SECOND_ALLOCATION_PRIVATE_KEY, + tokens: parseEther('8000'), + }, + { + allocationID: INDEXER_ONE_THIRD_ALLOCATION_ID, + subgraphDeploymentID: SUBGRAPH_DEPLOYMENT_ID_THREE, + allocationPrivateKey: INDEXER_ONE_THIRD_ALLOCATION_PRIVATE_KEY, + tokens: parseEther('5000'), + }, + ], + ], + [ + horizonIndexers[2].address, + [ + { + allocationID: INDEXER_TWO_FIRST_ALLOCATION_ID, + subgraphDeploymentID: SUBGRAPH_DEPLOYMENT_ID_ONE, + allocationPrivateKey: INDEXER_TWO_FIRST_ALLOCATION_PRIVATE_KEY, + tokens: parseEther('10000'), + }, + { + allocationID: INDEXER_TWO_SECOND_ALLOCATION_ID, + subgraphDeploymentID: SUBGRAPH_DEPLOYMENT_ID_TWO, + allocationPrivateKey: INDEXER_TWO_SECOND_ALLOCATION_PRIVATE_KEY, + tokens: parseEther('8000'), + }, + ], + ], +]) + +// Indexers data +export const indexers: Indexer[] = horizonIndexers + .filter(indexer => !indexer.tokensToUnstake || indexer.tokensToUnstake <= parseEther('100000')) + .map((indexer) => { + // Move existing allocations to legacyAllocations + const legacyAllocations = indexer.allocations + + // Previsouly cuts were indexer's share, Horizon cuts are delegator's share. Invert values: + // 1_000_000 - oldValue converts from "indexer keeps X%" to "delegators get X%" + const maxPpm = 1_000_000 + const indexingRewardCut = maxPpm - indexer.indexingRewardCut + const queryFeeCut = maxPpm - indexer.queryFeeCut + + return { + ...indexer, + indexingRewardCut, + queryFeeCut, + url: 'url', + geoHash: 'geohash', + provisionTokens: parseEther('1000000'), + legacyAllocations, + allocations: allocations.get(indexer.address) || [], + } + }) diff --git a/packages/subgraph-service/tasks/test/integration.ts b/packages/subgraph-service/tasks/test/integration.ts new file mode 100644 index 000000000..0fc3a40ce --- /dev/null +++ b/packages/subgraph-service/tasks/test/integration.ts @@ -0,0 +1,33 @@ +import { glob } from 'glob' +import { task } from 'hardhat/config' +import { TASK_TEST } from 'hardhat/builtin-tasks/task-names' + +import { printBanner } from '@graphprotocol/toolshed/utils' + +task('test:integration', 'Runs all integration tests') + .addParam( + 'phase', + 'Test phase to run: "during-transition-period", "after-transition-period", "after-delegation-slashing-enabled"', + ) + .setAction(async (taskArgs, hre) => { + // Get test files for each phase + const duringTransitionPeriodFiles = await glob('test/integration/during-transition-period/**/*.{js,ts}') + const afterTransitionPeriodFiles = await glob('test/integration/after-transition-period/**/*.{js,ts}') + + // Display banner for the current test phase + printBanner(taskArgs.phase, 'INTEGRATION TESTS: ') + + // Run tests for the current phase + switch (taskArgs.phase) { + case 'during-transition-period': + await hre.run(TASK_TEST, { testFiles: duringTransitionPeriodFiles }) + break + case 'after-transition-period': + await hre.run(TASK_TEST, { testFiles: afterTransitionPeriodFiles }) + break + default: + throw new Error( + 'Invalid phase. Must be "during-transition-period", "after-transition-period", "after-delegation-slashing-enabled", or "all"', + ) + } + }) diff --git a/packages/subgraph-service/tasks/test/seed.ts b/packages/subgraph-service/tasks/test/seed.ts new file mode 100644 index 000000000..aa2cfb4d4 --- /dev/null +++ b/packages/subgraph-service/tasks/test/seed.ts @@ -0,0 +1,113 @@ +import { task } from 'hardhat/config' + +import { encodeRegistrationData, encodeStartServiceData, generateAllocationProof, generatePOI, PaymentTypes } from '@graphprotocol/toolshed' +import { HorizonStakingExtension } from '@graphprotocol/horizon' + +import { indexers } from './fixtures/indexers' + +task('test:seed', 'Seed the test environment, must be run after deployment') + .setAction(async (_, hre) => { + // Get contracts + const graph = hre.graph() + const horizonStaking = graph.horizon.contracts.HorizonStaking + const horizonStakingExtension = graph.horizon.contracts.HorizonStaking as HorizonStakingExtension + const subgraphService = graph.subgraphService.contracts.SubgraphService + const disputeManager = graph.subgraphService.contracts.DisputeManager + + // Get contract addresses + const subgraphServiceAddress = await subgraphService.getAddress() + + // Get chain id + const chainId = (await hre.ethers.provider.getNetwork()).chainId + + // Get configs + const disputePeriod = await disputeManager.getDisputePeriod() + const maxSlashingCut = await disputeManager.maxSlashingCut() + + console.log('\n--- STEP 1: Close all legacy allocations ---') + + for (const indexer of indexers) { + // Skip indexers with no allocations + if (indexer.legacyAllocations.length === 0) { + continue + } + + console.log(`Closing allocations for indexer: ${indexer.address}`) + + // Get indexer signer + const indexerSigner = await hre.ethers.getSigner(indexer.address) + + // Close all allocations with POI != 0 + for (const allocation of indexer.legacyAllocations) { + console.log(`Closing allocation: ${allocation.allocationID}`) + + // Close allocation + const poi = generatePOI() + await horizonStakingExtension.connect(indexerSigner).closeAllocation( + allocation.allocationID, + poi, + ) + + const allocationData = await horizonStaking.getAllocation(allocation.allocationID) + console.log(`Allocation closed at epoch: ${allocationData.closedAtEpoch}`) + } + } + + console.log('\n--- STEP 2: Create provisions, set delegation cuts and register indexers ---') + + for (const indexer of indexers) { + // Create provision + console.log(`Creating subgraph service provision for indexer: ${indexer.address}`) + const indexerSigner = await hre.ethers.getSigner(indexer.address) + await horizonStaking.connect(indexerSigner).provision(indexer.address, await subgraphService.getAddress(), indexer.provisionTokens, maxSlashingCut, disputePeriod) + console.log(`Provision created for indexer with ${indexer.provisionTokens} tokens`) + + // Set delegation fee cut + console.log(`Setting delegation fee cut for indexer: ${indexer.address}`) + await horizonStaking.connect(indexerSigner).setDelegationFeeCut(indexer.address, subgraphServiceAddress, PaymentTypes.IndexingRewards, indexer.indexingRewardCut) + await horizonStaking.connect(indexerSigner).setDelegationFeeCut(indexer.address, subgraphServiceAddress, PaymentTypes.QueryFee, indexer.queryFeeCut) + + // Register indexer + console.log(`Registering indexer: ${indexer.address}`) + const indexerRegistrationData = encodeRegistrationData(indexer.url, indexer.geoHash, indexer.rewardsDestination || hre.ethers.ZeroAddress) + await subgraphService.connect(indexerSigner).register(indexerSigner.address, indexerRegistrationData) + + const indexerData = await subgraphService.indexers(indexerSigner.address) + + console.log(`Indexer registered at: ${indexerData.registeredAt}`) + } + + console.log('\n--- STEP 3: Start allocations ---') + + for (const indexer of indexers) { + // Skip indexers with no allocations + if (indexer.allocations.length === 0) { + continue + } + + console.log(`Starting allocations for indexer: ${indexer.address}`) + + const indexerSigner = await hre.ethers.getSigner(indexer.address) + + for (const allocation of indexer.allocations) { + console.log(`Starting allocation: ${allocation.allocationID}`) + + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocation.allocationPrivateKey, subgraphServiceAddress, Number(chainId)) + const subgraphDeploymentId = allocation.subgraphDeploymentID + const allocationTokens = allocation.tokens + const allocationId = allocation.allocationID + + // Attempt to create an allocation with the same ID + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + + // Start allocation + await subgraphService.connect(indexerSigner).startService( + indexerSigner.address, + data, + ) + + console.log(`Allocation started with tokens: ${allocationTokens}`) + } + } + }) diff --git a/packages/subgraph-service/test/deployment/DisputeManager.test.ts b/packages/subgraph-service/test/deployment/DisputeManager.test.ts new file mode 100644 index 000000000..0391f978d --- /dev/null +++ b/packages/subgraph-service/test/deployment/DisputeManager.test.ts @@ -0,0 +1,60 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from '../../../horizon/test/deployment/lib/testIf' +import { transparentUpgradeableProxyTests } from '../../../horizon/test/deployment/lib/TransparentUpgradeableProxy.tests' + +const config = loadConfig( + './ignition/configs/', + 'migrate', + String(process.env.TEST_DEPLOYMENT_CONFIG ?? hre.network.name), +).config +const graph = hre.graph() + +const addressBookEntry = graph.subgraphService.addressBook.getEntry('DisputeManager') +const DisputeManager = graph.subgraphService.contracts.DisputeManager + +describe('DisputeManager', function () { + testIf(2)('should be owned by the governor', async function () { + const owner = await DisputeManager.owner() + expect(owner).to.equal(config.$global.governor) + }) + + testIf(2)('should set the right arbitrator', async function () { + const arbitrator = await DisputeManager.arbitrator() + expect(arbitrator).to.equal(config.$global.arbitrator) + }) + + testIf(2)('should set the right dispute period', async function () { + const disputePeriod = await DisputeManager.disputePeriod() + expect(disputePeriod).to.equal(config.DisputeManager.disputePeriod) + }) + + testIf(2)('should set the right dispute deposit', async function () { + const disputeDeposit = await DisputeManager.disputeDeposit() + expect(disputeDeposit).to.equal(config.DisputeManager.disputeDeposit) + }) + + testIf(2)('should set the right fisherman reward cut', async function () { + const fishermanRewardCut = await DisputeManager.fishermanRewardCut() + expect(fishermanRewardCut).to.equal(config.DisputeManager.fishermanRewardCut) + }) + + testIf(2)('should set the right max slashing cut', async function () { + const maxSlashingCut = await DisputeManager.maxSlashingCut() + expect(maxSlashingCut).to.equal(config.DisputeManager.maxSlashingCut) + }) + + testIf(2)('should set the right subgraph service address', async function () { + const subgraphService = await DisputeManager.subgraphService() + expect(subgraphService).to.equal(config.$global.subgraphServiceProxyAddress) + }) +}) + +transparentUpgradeableProxyTests( + 'DisputeManager', + addressBookEntry, + config.$global.governor as string, + Number(process.env.TEST_DEPLOYMENT_STEP ?? 1) >= 2, +) diff --git a/packages/subgraph-service/test/deployment/SubgraphService.test.ts b/packages/subgraph-service/test/deployment/SubgraphService.test.ts new file mode 100644 index 000000000..87f3e8a09 --- /dev/null +++ b/packages/subgraph-service/test/deployment/SubgraphService.test.ts @@ -0,0 +1,71 @@ +import hre from 'hardhat' + +import { expect } from 'chai' +import { loadConfig } from '@graphprotocol/toolshed/hardhat' +import { testIf } from '../../../horizon/test/deployment/lib/testIf' +import { transparentUpgradeableProxyTests } from '../../../horizon/test/deployment/lib/TransparentUpgradeableProxy.tests' + +const config = loadConfig('./ignition/configs/', 'migrate', hre.network.name).config +const graph = hre.graph() + +const addressBookEntry = graph.subgraphService.addressBook.getEntry('SubgraphService') +const SubgraphService = graph.subgraphService.contracts.SubgraphService + +describe('SubgraphService', function () { + testIf(2)('should be owned by the governor', async function () { + const owner = await SubgraphService.owner() + expect(owner).to.equal(config.$global.governor) + }) + + testIf(2)('should set the right minimum provision tokens', async function () { + const [minimumProvisionTokens] = await SubgraphService.getProvisionTokensRange() + expect(minimumProvisionTokens).to.equal(config.SubgraphService.minimumProvisionTokens) + }) + + testIf(2)('should set the right delegation ratio', async function () { + const delegationRatio = await SubgraphService.getDelegationRatio() + expect(delegationRatio).to.equal(config.SubgraphService.maximumDelegationRatio) + }) + + testIf(2)('should set the right stake to fees ratio', async function () { + const stakeToFeesRatio = await SubgraphService.stakeToFeesRatio() + expect(stakeToFeesRatio).to.equal(config.SubgraphService.stakeToFeesRatio) + }) + + testIf(2)('should set the right dispute manager address', async function () { + const disputeManagerAddress = await SubgraphService.getDisputeManager() + expect(disputeManagerAddress).to.equal(config.$global.disputeManagerProxyAddress) + }) + + testIf(2)('should set the right graph tally address', async function () { + const graphTallyAddress = await SubgraphService.getGraphTallyCollector() + expect(graphTallyAddress).to.equal(config.$global.graphTallyCollectorAddress) + }) + + testIf(2)('should set the right curation address', async function () { + const curationAddress = await SubgraphService.getCuration() + expect(curationAddress).to.equal(config.$global.curationProxyAddress) + }) + + testIf(2)('should set the right pause guardians', async function () { + expect(await SubgraphService.pauseGuardians(config.$global.pauseGuardian as string)).to.equal(true) + expect(await SubgraphService.pauseGuardians(config.$global.governor as string)).to.equal(true) + }) + + testIf(2)('should set the right maxPOIStaleness', async function () { + const maxPOIStaleness = await SubgraphService.maxPOIStaleness() + expect(maxPOIStaleness).to.equal(config.SubgraphService.maxPOIStaleness) + }) + + testIf(2)('should set the right curationCut', async function () { + const curationCut = await SubgraphService.curationFeesCut() + expect(curationCut).to.equal(config.SubgraphService.curationCut) + }) +}) + +transparentUpgradeableProxyTests( + 'SubgraphService', + addressBookEntry, + config.$global.governor as string, + Number(process.env.TEST_DEPLOYMENT_STEP ?? 1) >= 2, +) diff --git a/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/governance.test.ts b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/governance.test.ts new file mode 100644 index 000000000..f3c045374 --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/governance.test.ts @@ -0,0 +1,122 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager } from '../../../../typechain-types' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('DisputeManager Governance', () => { + let disputeManager: DisputeManager + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + let nonOwner: HardhatEthersSigner + let newArbitrator: HardhatEthersSigner + let newSubgraphService: HardhatEthersSigner + + before(async () => { + const graph = hre.graph() + disputeManager = graph.subgraphService.contracts.DisputeManager + + // Get signers + governor = await graph.accounts.getGovernor() + ;[nonOwner, newArbitrator, newSubgraphService] = await graph.accounts.getTestAccounts() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Arbitrator', () => { + it('should set arbitrator', async () => { + await disputeManager.connect(governor).setArbitrator(newArbitrator.address) + expect(await disputeManager.arbitrator()).to.equal(newArbitrator.address) + }) + + it('should not allow non-owner to set arbitrator', async () => { + await expect( + disputeManager.connect(nonOwner).setArbitrator(newArbitrator.address), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Dispute Period', () => { + it('should set dispute period', async () => { + const newDisputePeriod = 7 * 24 * 60 * 60 // 7 days in seconds + await disputeManager.connect(governor).setDisputePeriod(newDisputePeriod) + expect(await disputeManager.disputePeriod()).to.equal(newDisputePeriod) + }) + + it('should not allow non-owner to set dispute period', async () => { + const newDisputePeriod = 7 * 24 * 60 * 60 + await expect( + disputeManager.connect(nonOwner).setDisputePeriod(newDisputePeriod), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Dispute Deposit', () => { + it('should set dispute deposit', async () => { + const newDisputeDeposit = ethers.parseEther('1000') + await disputeManager.connect(governor).setDisputeDeposit(newDisputeDeposit) + expect(await disputeManager.disputeDeposit()).to.equal(newDisputeDeposit) + }) + + it('should not allow non-owner to set dispute deposit', async () => { + const newDisputeDeposit = ethers.parseEther('1000') + await expect( + disputeManager.connect(nonOwner).setDisputeDeposit(newDisputeDeposit), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Fisherman Rewards Cut', () => { + it('should set fisherman rewards cut', async () => { + const newFishermanRewardsCut = 100000 // 10% in PPM + await disputeManager.connect(governor).setFishermanRewardCut(newFishermanRewardsCut) + expect(await disputeManager.fishermanRewardCut()).to.equal(newFishermanRewardsCut) + }) + + it('should not allow non-owner to set fisherman rewards cut', async () => { + const newFishermanRewardsCut = 100000 + await expect( + disputeManager.connect(nonOwner).setFishermanRewardCut(newFishermanRewardsCut), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Max Slashing Cut', () => { + it('should set max slashing cut', async () => { + const newMaxSlashingCut = 200000 // 20% in PPM + await disputeManager.connect(governor).setMaxSlashingCut(newMaxSlashingCut) + expect(await disputeManager.maxSlashingCut()).to.equal(newMaxSlashingCut) + }) + + it('should not allow non-owner to set max slashing cut', async () => { + const newMaxSlashingCut = 200000 + await expect( + disputeManager.connect(nonOwner).setMaxSlashingCut(newMaxSlashingCut), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Subgraph Service Address', () => { + it('should set subgraph service address', async () => { + await disputeManager.connect(governor).setSubgraphService(newSubgraphService.address) + expect(await disputeManager.subgraphService()).to.equal(newSubgraphService.address) + }) + + it('should not allow non-owner to set subgraph service address', async () => { + await expect( + disputeManager.connect(nonOwner).setSubgraphService(newSubgraphService.address), + ).to.be.revertedWithCustomError(disputeManager, 'OwnableUnauthorizedAccount') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/indexing-disputes.test.ts b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/indexing-disputes.test.ts new file mode 100644 index 000000000..92f805aee --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/indexing-disputes.test.ts @@ -0,0 +1,251 @@ +import { ethers } from 'hardhat' +import { EventLog } from 'ethers' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager, IGraphToken, SubgraphService } from '../../../../typechain-types' +import { generatePOI } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { HorizonStaking } from '@graphprotocol/horizon' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Indexing Disputes', () => { + let disputeManager: DisputeManager + let graphToken: IGraphToken + let staking: HorizonStaking + let subgraphService: SubgraphService + + let snapshotId: string + + // Test addresses + let fisherman: HardhatEthersSigner + let arbitrator: HardhatEthersSigner + let indexer: HardhatEthersSigner + + let allocationId: string + + // Dispute manager variables + let disputeDeposit: bigint + let fishermanRewardCut: bigint + let disputePeriod: bigint + + before(async () => { + // Get contracts + const graph = hre.graph() + disputeManager = graph.subgraphService.contracts.DisputeManager + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + arbitrator = await graph.accounts.getArbitrator() + ;[fisherman] = await graph.accounts.getTestAccounts() + + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.allocations[0] + allocationId = allocation.allocationID + + // Dispute manager variables + disputeDeposit = await disputeManager.disputeDeposit() + fishermanRewardCut = await disputeManager.fishermanRewardCut() + disputePeriod = await disputeManager.disputePeriod() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Fisherman', () => { + it('should allow fisherman to create an indexing dispute', async () => { + // Create dispute + const poi = generatePOI() + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createIndexingDispute(allocationId, poi) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'IndexingDisputeCreated', + ) as EventLog + const disputeId = disputeCreatedEvent?.args[0] + + // Verify dispute was created + const dispute = await disputeManager.disputes(disputeId) + expect(dispute.indexer).to.equal(indexer.address, 'Indexer address mismatch') + expect(dispute.fisherman).to.equal(fisherman.address, 'Fisherman address mismatch') + expect(dispute.disputeType).to.equal(1, 'Dispute type should be indexing') + expect(dispute.status).to.equal(4, 'Dispute status should be pending') + }) + + it('should allow fisherman to cancel an indexing dispute', async () => { + // Create dispute + const poi = generatePOI() + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createIndexingDispute(allocationId, poi) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'IndexingDisputeCreated', + ) as EventLog + const disputeId = disputeCreatedEvent?.args[0] + + // Get fisherman's balance before canceling dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Pass dispute period + await ethers.provider.send('evm_increaseTime', [Number(disputePeriod) + 1]) + await ethers.provider.send('evm_mine', []) + + // Cancel dispute + await disputeManager.connect(fisherman).cancelDispute(disputeId) + + // Verify dispute was canceled + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(5, 'Dispute status should be canceled') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + }) + + describe('Arbitrating Indexing Disputes', () => { + let disputeId: string + + beforeEach(async () => { + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const poi = generatePOI() + const tx = await disputeManager.connect(fisherman).createIndexingDispute(allocationId, poi) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'IndexingDisputeCreated', + ) as EventLog + disputeId = disputeCreatedEvent?.args[0] + }) + + it('should allow arbitrator to accept an indexing dispute', async () => { + // Get fisherman's balance before accepting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before accepting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Accept dispute + await disputeManager.connect(arbitrator).acceptDispute(disputeId, tokensToSlash) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(1, 'Dispute status should be accepted') + + // Verify indexer's stake was slashed + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision - tokensToSlash, 'Indexer stake should be slashed') + + // Verify fisherman got the deposit plus the reward + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + const fishermanReward = (tokensToSlash * fishermanRewardCut) / 1000000n + const fishermanTotal = fishermanBalanceBefore + fishermanReward + disputeDeposit + expect(fishermanBalance).to.equal(fishermanTotal, 'Fisherman balance should be increased by the reward and deposit') + }) + + it('should allow arbitrator to draw an indexing dispute', async () => { + // Get fisherman's balance before drawing dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before drawing dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Draw dispute + await disputeManager.connect(arbitrator).drawDispute(disputeId) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(3, 'Dispute status should be drawn') + + // Verify indexer's provision was not affected + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision, 'Indexer stake should not be affected') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + + it('should allow arbitrator to reject an indexing dispute', async () => { + // Get fisherman's balance before rejecting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before rejecting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Reject dispute + await disputeManager.connect(arbitrator).rejectDispute(disputeId) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(2, 'Dispute status should be rejected') + + // Verify indexer's provision was not affected + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision, 'Indexer stake should not be affected') + + // Verify fisherman did not receive the deposit + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore, 'Fisherman balance should not receive the deposit back') + }) + + it('should not allow non-arbitrator to accept an indexing dispute', async () => { + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Attempt to accept dispute as fisherman + await expect( + disputeManager.connect(fisherman).acceptDispute(disputeId, tokensToSlash), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + + it('should not allow non-arbitrator to draw an indexing dispute', async () => { + // Attempt to draw dispute as fisherman + await expect( + disputeManager.connect(fisherman).drawDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + + it('should not allow non-arbitrator to reject an indexing dispute', async () => { + // Attempt to reject dispute as fisherman + await expect( + disputeManager.connect(fisherman).rejectDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-conflict-disputes.test.ts b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-conflict-disputes.test.ts new file mode 100644 index 000000000..33ad38ceb --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-conflict-disputes.test.ts @@ -0,0 +1,369 @@ +import { ethers } from 'hardhat' +import { EventLog } from 'ethers' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager, IGraphToken, SubgraphService } from '../../../../typechain-types' +import { generateAttestationData } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { HorizonStaking } from '@graphprotocol/horizon' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Query Conflict Disputes', () => { + let disputeManager: DisputeManager + let graphToken: IGraphToken + let staking: HorizonStaking + let subgraphService: SubgraphService + + let snapshotId: string + let chainId: number + + // Test addresses + let fisherman: HardhatEthersSigner + let arbitrator: HardhatEthersSigner + let indexer: HardhatEthersSigner + let relatedIndexer: HardhatEthersSigner + + // Allocation variables + let allocationPrivateKey: string + let relatedAllocationPrivateKey: string + let subgraphDeploymentId: string + + // Dispute manager variables + let disputeDeposit: bigint + let fishermanRewardCut: bigint + let disputePeriod: bigint + let disputeManagerAddress: string + + before(async () => { + // Get contracts + const graph = hre.graph() + disputeManager = graph.subgraphService.contracts.DisputeManager + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + arbitrator = await graph.accounts.getArbitrator() + ;[fisherman] = await graph.accounts.getTestAccounts() + + // Get indexers + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + const relatedIndexerFixture = indexers[1] + relatedIndexer = await ethers.getSigner(relatedIndexerFixture.address) + + // Get allocation + const allocation = indexerFixture.allocations[0] + allocationPrivateKey = allocation.allocationPrivateKey + const relatedAllocation = relatedIndexerFixture.allocations[0] + relatedAllocationPrivateKey = relatedAllocation.allocationPrivateKey + subgraphDeploymentId = allocation.subgraphDeploymentID + + // Dispute manager variables + disputeDeposit = await disputeManager.disputeDeposit() + fishermanRewardCut = await disputeManager.fishermanRewardCut() + disputePeriod = await disputeManager.disputePeriod() + disputeManagerAddress = await disputeManager.getAddress() + + // Get chain ID + chainId = Number((await ethers.provider.getNetwork()).chainId) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Fisherman', () => { + it('should allow fisherman to create a query conflict dispute', async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash1 = ethers.keccak256(ethers.toUtf8Bytes('test-response-1')) + const responseHash2 = ethers.keccak256(ethers.toUtf8Bytes('test-response-2')) + + // Create attestation data for both responses + const attestationData1 = await generateAttestationData( + queryHash, + responseHash1, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + const attestationData2 = await generateAttestationData( + queryHash, + responseHash2, + subgraphDeploymentId, + relatedAllocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDisputeConflict(attestationData1, attestationData2) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeLinkedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'DisputeLinked', + ) as EventLog + const disputeId = disputeLinkedEvent?.args[0] + const relatedDisputeId = disputeLinkedEvent?.args[1] + + // Verify dispute was created + const dispute = await disputeManager.disputes(disputeId) + expect(dispute.indexer).to.equal(indexer.address, 'Indexer address mismatch') + expect(dispute.fisherman).to.equal(fisherman.address, 'Fisherman address mismatch') + expect(dispute.disputeType).to.equal(2, 'Dispute type should be query') + expect(dispute.status).to.equal(4, 'Dispute status should be pending') + + // Verify related dispute was created + const relatedDispute = await disputeManager.disputes(relatedDisputeId) + expect(relatedDispute.indexer).to.equal(relatedIndexer.address, 'Related indexer address mismatch') + expect(relatedDispute.fisherman).to.equal(fisherman.address, 'Related fisherman address mismatch') + expect(relatedDispute.disputeType).to.equal(2, 'Related dispute type should be query') + expect(relatedDispute.status).to.equal(4, 'Related dispute status should be pending') + }) + + it('should allow fisherman to cancel a query conflict dispute', async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash1 = ethers.keccak256(ethers.toUtf8Bytes('test-response-1')) + const responseHash2 = ethers.keccak256(ethers.toUtf8Bytes('test-response-2')) + + // Create attestation data for both responses + const attestationData1 = await generateAttestationData( + queryHash, + responseHash1, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + const attestationData2 = await generateAttestationData( + queryHash, + responseHash2, + subgraphDeploymentId, + relatedAllocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDisputeConflict(attestationData1, attestationData2) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeLinkedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'DisputeLinked', + ) as EventLog + const disputeId = disputeLinkedEvent?.args[0] + const relatedDisputeId = disputeLinkedEvent?.args[1] + + // Get fisherman's balance before canceling dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Pass dispute period + await ethers.provider.send('evm_increaseTime', [Number(disputePeriod) + 1]) + await ethers.provider.send('evm_mine', []) + + // Cancel dispute + await disputeManager.connect(fisherman).cancelDispute(disputeId) + + // Verify dispute was canceled + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(5, 'Dispute status should be canceled') + + // Verify related dispute was canceled + const updatedRelatedDispute = await disputeManager.disputes(relatedDisputeId) + expect(updatedRelatedDispute.status).to.equal(5, 'Related dispute status should be canceled') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + }) + + describe('Arbitrating Query Conflict Disputes', () => { + let disputeId: string + let relatedDisputeId: string + + beforeEach(async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash1 = ethers.keccak256(ethers.toUtf8Bytes('test-response-1')) + const responseHash2 = ethers.keccak256(ethers.toUtf8Bytes('test-response-2')) + + // Create attestation data for both responses + const attestationData1 = await generateAttestationData( + queryHash, + responseHash1, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + const attestationData2 = await generateAttestationData( + queryHash, + responseHash2, + subgraphDeploymentId, + relatedAllocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDisputeConflict(attestationData1, attestationData2) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeLinkedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'DisputeLinked', + ) as EventLog + disputeId = disputeLinkedEvent?.args[0] + relatedDisputeId = disputeLinkedEvent?.args[1] + }) + + it('should allow arbitrator to accept one of the query conflict disputes', async () => { + // Get fisherman's balance before accepting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before accepting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Accept dispute with first response + await disputeManager.connect(arbitrator).acceptDisputeConflict(disputeId, tokensToSlash, false, 0n) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(1, 'Dispute status should be accepted') + + // Verify indexer's stake was slashed + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision - tokensToSlash, 'Indexer stake should be slashed') + + // Verify fisherman got the deposit plus the reward + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + const fishermanReward = (tokensToSlash * fishermanRewardCut) / 1000000n + const fishermanTotal = fishermanBalanceBefore + fishermanReward + disputeDeposit + expect(fishermanBalance).to.equal(fishermanTotal, 'Fisherman balance should be increased by the reward and deposit') + }) + + it('should allow arbitrator to accept both query conflict disputes', async () => { + // Get fisherman's balance before accepting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before accepting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + const provisionRelated = await staking.getProviderTokensAvailable(relatedIndexer.address, await subgraphService.getAddress()) + + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const relatedDispute = await disputeManager.disputes(relatedDisputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + const tokensToSlashRelated = relatedDispute.stakeSnapshot / 10n + + // Accept dispute with both responses + await disputeManager.connect(arbitrator).acceptDisputeConflict(disputeId, tokensToSlash, true, tokensToSlashRelated) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(1, 'Dispute status should be accepted') + + // Verify related dispute status + const updatedRelatedDispute = await disputeManager.disputes(relatedDisputeId) + expect(updatedRelatedDispute.status).to.equal(1, 'Related dispute status should be accepted') + + // Verify indexer's stake was slashed + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision - tokensToSlash, 'Indexer stake should be slashed') + + // Verify related indexer's stake was slashed + const updatedProvisionRelated = await staking.getProviderTokensAvailable(relatedIndexer.address, await subgraphService.getAddress()) + expect(updatedProvisionRelated).to.equal(provisionRelated - tokensToSlashRelated, 'Related indexer stake should be slashed') + + // Verify fisherman got the deposit plus the reward + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + const fishermanReward = ((tokensToSlash + tokensToSlashRelated) * fishermanRewardCut) / 1000000n + const fishermanTotal = fishermanBalanceBefore + fishermanReward + disputeDeposit + expect(fishermanBalance).to.equal(fishermanTotal, 'Fisherman balance should be increased by the reward and deposit') + }) + + it('should allow arbitrator to draw query conflict dispute', async () => { + // Get fisherman's balance before drawing dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before drawing disputes + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + const provisionRelated = await staking.getProviderTokensAvailable(relatedIndexer.address, await subgraphService.getAddress()) + + // Draw dispute + await disputeManager.connect(arbitrator).drawDispute(disputeId) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(3, 'Dispute status should be drawn') + + // Verify related dispute status + const updatedRelatedDispute = await disputeManager.disputes(relatedDisputeId) + expect(updatedRelatedDispute.status).to.equal(3, 'Related dispute status should be drawn') + + // Verify indexer's provision was not affected + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision, 'Indexer stake should not be affected') + + // Verify related indexer's provision was not affected + const updatedProvisionRelated = await staking.getProviderTokensAvailable(relatedIndexer.address, await subgraphService.getAddress()) + expect(updatedProvisionRelated).to.equal(provisionRelated, 'Related indexer stake should not be affected') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + + it('should not allow arbitrator to reject a query conflict dispute', async () => { + // Attempt to reject dispute + await expect( + disputeManager.connect(arbitrator).rejectDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerDisputeInConflict') + }) + + it('should not allow non-arbitrator to accept a query conflict dispute', async () => { + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Attempt to accept dispute as fisherman + await expect( + disputeManager.connect(fisherman).acceptDispute(disputeId, tokensToSlash), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + + it('should not allow non-arbitrator to draw a query conflict dispute', async () => { + // Attempt to draw dispute as fisherman + await expect( + disputeManager.connect(fisherman).drawDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-disputes.test.ts b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-disputes.test.ts new file mode 100644 index 000000000..03878f960 --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/dispute-manager/query-disputes.test.ts @@ -0,0 +1,298 @@ +import { ethers } from 'hardhat' +import { EventLog } from 'ethers' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager, IGraphToken, SubgraphService } from '../../../../typechain-types' +import { generateAttestationData } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { HorizonStaking } from '@graphprotocol/horizon' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Query Disputes', () => { + let disputeManager: DisputeManager + let graphToken: IGraphToken + let staking: HorizonStaking + let subgraphService: SubgraphService + + let snapshotId: string + let chainId: number + // Test addresses + let fisherman: HardhatEthersSigner + let arbitrator: HardhatEthersSigner + let indexer: HardhatEthersSigner + + // Allocation variables + let allocationPrivateKey: string + let subgraphDeploymentId: string + + // Dispute manager variables + let disputeDeposit: bigint + let fishermanRewardCut: bigint + let disputePeriod: bigint + let disputeManagerAddress: string + + before(async () => { + // Get contracts + const graph = hre.graph() + disputeManager = graph.subgraphService.contracts.DisputeManager + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + arbitrator = await graph.accounts.getArbitrator() + ;[fisherman] = await graph.accounts.getTestAccounts() + + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.allocations[0] + allocationPrivateKey = allocation.allocationPrivateKey + subgraphDeploymentId = allocation.subgraphDeploymentID + + // Dispute manager variables + disputeDeposit = await disputeManager.disputeDeposit() + fishermanRewardCut = await disputeManager.fishermanRewardCut() + disputePeriod = await disputeManager.disputePeriod() + disputeManagerAddress = await disputeManager.getAddress() + + // Get chain ID + chainId = Number((await ethers.provider.getNetwork()).chainId) + + // Set GRT balance for fisherman + await setGRTBalance(graph.provider, graphToken.target, fisherman.address, ethers.parseEther('1000000')) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Fisherman', () => { + it('should allow fisherman to create a query dispute', async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash = ethers.keccak256(ethers.toUtf8Bytes('test-response')) + + // Create attestation data + const attestationData = await generateAttestationData( + queryHash, + responseHash, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDispute(attestationData) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'QueryDisputeCreated', + ) as EventLog + const disputeId = disputeCreatedEvent?.args[0] + + // Verify dispute was created + const dispute = await disputeManager.disputes(disputeId) + expect(dispute.indexer).to.equal(indexer.address, 'Indexer address mismatch') + expect(dispute.fisherman).to.equal(fisherman.address, 'Fisherman address mismatch') + expect(dispute.disputeType).to.equal(2, 'Dispute type should be query') + expect(dispute.status).to.equal(4, 'Dispute status should be pending') + }) + + it('should allow fisherman to cancel a query dispute after dispute period', async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash = ethers.keccak256(ethers.toUtf8Bytes('test-response')) + + // Create attestation data + const attestationData = await generateAttestationData( + queryHash, + responseHash, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDispute(attestationData) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'QueryDisputeCreated', + ) as EventLog + const disputeId = disputeCreatedEvent?.args[0] + + // Get fisherman's balance before canceling dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Pass dispute period + await ethers.provider.send('evm_increaseTime', [Number(disputePeriod) + 1]) + await ethers.provider.send('evm_mine', []) + + // Cancel dispute + await disputeManager.connect(fisherman).cancelDispute(disputeId) + + // Verify dispute was canceled + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(5, 'Dispute status should be canceled') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + }) + + describe('Arbitrating Query Disputes', () => { + let disputeId: string + + beforeEach(async () => { + // Create dispute + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash = ethers.keccak256(ethers.toUtf8Bytes('test-response')) + + // Create attestation data + const attestationData = await generateAttestationData( + queryHash, + responseHash, + subgraphDeploymentId, + allocationPrivateKey, + disputeManagerAddress, + chainId, + ) + + // Approve dispute manager for dispute deposit + await graphToken.connect(fisherman).approve(disputeManager.target, disputeDeposit) + + // Create dispute + const tx = await disputeManager.connect(fisherman).createQueryDispute(attestationData) + const receipt = await tx.wait() + + // Get dispute ID from event + const disputeCreatedEvent = receipt?.logs.find( + log => log instanceof EventLog && log.fragment?.name === 'QueryDisputeCreated', + ) as EventLog + disputeId = disputeCreatedEvent?.args[0] + }) + + it('should allow arbitrator to accept a query dispute', async () => { + // Get fisherman's balance before accepting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before accepting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Accept dispute + await disputeManager.connect(arbitrator).acceptDispute(disputeId, tokensToSlash) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(1, 'Dispute status should be accepted') + + // Verify indexer's stake was slashed + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision - tokensToSlash, 'Indexer stake should be slashed') + + // Verify fisherman got the deposit plus the reward + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + const fishermanReward = (tokensToSlash * fishermanRewardCut) / 1000000n + const fishermanTotal = fishermanBalanceBefore + fishermanReward + disputeDeposit + expect(fishermanBalance).to.equal(fishermanTotal, 'Fisherman balance should be increased by the reward and deposit') + }) + + it('should allow arbitrator to draw a query dispute', async () => { + // Get fisherman's balance before drawing dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before drawing dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Draw dispute + await disputeManager.connect(arbitrator).drawDispute(disputeId) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(3, 'Dispute status should be drawn') + + // Verify indexer's provision was not affected + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision, 'Indexer stake should not be affected') + + // Verify fisherman got the deposit back + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + disputeDeposit, 'Fisherman should receive the deposit back') + }) + + it('should allow arbitrator to reject a query dispute', async () => { + // Get fisherman's balance before rejecting dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before rejecting dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Reject dispute + await disputeManager.connect(arbitrator).rejectDispute(disputeId) + + // Verify dispute status + const updatedDispute = await disputeManager.disputes(disputeId) + expect(updatedDispute.status).to.equal(2, 'Dispute status should be rejected') + + // Verify indexer's provision was not affected + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision, 'Indexer stake should not be affected') + + // Verify fisherman did not receive the deposit + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore, 'Fisherman balance should not receive the deposit back') + }) + + it('should not allow non-arbitrator to accept a query dispute', async () => { + // Get indexer stake snapshot + const dispute = await disputeManager.disputes(disputeId) + const tokensToSlash = dispute.stakeSnapshot / 10n + + // Attempt to accept dispute as fisherman + await expect( + disputeManager.connect(fisherman).acceptDispute(disputeId, tokensToSlash), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + + it('should not allow non-arbitrator to draw a query dispute', async () => { + // Attempt to draw dispute as fisherman + await expect( + disputeManager.connect(fisherman).drawDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + + it('should not allow non-arbitrator to reject a query dispute', async () => { + // Attempt to reject dispute as fisherman + await expect( + disputeManager.connect(fisherman).rejectDispute(disputeId), + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/pause.test.ts b/packages/subgraph-service/test/integration/after-transition-period/pause.test.ts new file mode 100644 index 000000000..467bbe4f9 --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/pause.test.ts @@ -0,0 +1,43 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Pausing', () => { + let snapshotId: string + + // Test addresses + let pauseGuardian: HardhatEthersSigner + let governor: HardhatEthersSigner + const graph = hre.graph() + const subgraphService = graph.subgraphService.contracts.SubgraphService + + before(async () => { + pauseGuardian = await graph.accounts.getPauseGuardian() + governor = await graph.accounts.getGovernor() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('SubgraphService', () => { + it('should be pausable by pause guardian', async () => { + await subgraphService.connect(pauseGuardian).pause() + expect(await subgraphService.paused()).to.equal(true) + }) + + it('should be pausable by governor', async () => { + await subgraphService.connect(governor).pause() + expect(await subgraphService.paused()).to.equal(true) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/governance.test.ts b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/governance.test.ts new file mode 100644 index 000000000..8e67dcd5f --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/governance.test.ts @@ -0,0 +1,168 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { SubgraphService } from '../../../../typechain-types' + +describe('Subgraph Service Governance', () => { + let subgraphService: SubgraphService + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + let nonOwner: HardhatEthersSigner + let pauseGuardian: HardhatEthersSigner + + before(async () => { + const graph = hre.graph() + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + governor = await graph.accounts.getGovernor() + ;[nonOwner, pauseGuardian] = await graph.accounts.getTestAccounts() + + // Set eth balance for non-owner and pause guardian + await ethers.provider.send('hardhat_setBalance', [nonOwner.address, '0x56BC75E2D63100000']) + await ethers.provider.send('hardhat_setBalance', [pauseGuardian.address, '0x56BC75E2D63100000']) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Minimum Provision Tokens', () => { + it('should set minimum provision tokens', async () => { + const newMinimumProvisionTokens = ethers.parseEther('1000') + await subgraphService.connect(governor).setMinimumProvisionTokens(newMinimumProvisionTokens) + + // Get the provision tokens range + const [minTokens, maxTokens] = await subgraphService.getProvisionTokensRange() + expect(minTokens).to.equal(newMinimumProvisionTokens, 'Minimum provision tokens should be set') + expect(maxTokens).to.equal(ethers.MaxUint256, 'Maximum provision tokens should be set') + }) + + it('should not allow non-owner to set minimum provision tokens', async () => { + const newMinimumProvisionTokens = ethers.parseEther('1000') + await expect( + subgraphService.connect(nonOwner).setMinimumProvisionTokens(newMinimumProvisionTokens), + 'Non-owner should not be able to set minimum provision tokens', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Pause Guardian', () => { + it('should set pause guardian and allow them to pause the service', async () => { + // Set pause guardian + await subgraphService.connect(governor).setPauseGuardian(pauseGuardian.address, true) + + // Pause guardian should be able to pause the service + await subgraphService.connect(pauseGuardian).pause() + expect(await subgraphService.paused(), 'Pause guardian should be able to pause the service').to.be.true + }) + + it('should remove pause guardian and prevent them from pausing the service', async () => { + // First set pause guardian + await subgraphService.connect(governor).setPauseGuardian(pauseGuardian.address, true) + + // Check that pause guardian can pause the service + await subgraphService.connect(pauseGuardian).pause() + expect(await subgraphService.paused(), 'Pause guardian should be able to pause the service').to.be.true + + // Then remove pause guardian + await subgraphService.connect(governor).setPauseGuardian(pauseGuardian.address, false) + + // Pause guardian should no longer be able to unpause the service + await expect( + subgraphService.connect(pauseGuardian).unpause(), + 'Pause guardian should no longer be able to unpause the service', + ).to.be.revertedWithCustomError(subgraphService, 'DataServicePausableNotPauseGuardian') + }) + + it('should not allow non-owner to set pause guardian', async () => { + await expect( + subgraphService.connect(nonOwner).setPauseGuardian(pauseGuardian.address, true), + 'Non-owner should not be able to set pause guardian', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Delegation Ratio', () => { + it('should set delegation ratio', async () => { + const newDelegationRatio = 5 + await subgraphService.connect(governor).setDelegationRatio(newDelegationRatio) + expect(await subgraphService.getDelegationRatio(), 'Delegation ratio should be set').to.equal(newDelegationRatio) + }) + + it('should not allow non-owner to set delegation ratio', async () => { + const newDelegationRatio = 5 + await expect( + subgraphService.connect(nonOwner).setDelegationRatio(newDelegationRatio), + 'Non-owner should not be able to set delegation ratio', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Stake to Fees Ratio', () => { + it('should set stake to fees ratio', async () => { + const newStakeToFeesRatio = ethers.parseEther('1') + await subgraphService.connect(governor).setStakeToFeesRatio(newStakeToFeesRatio) + + // Get the stake to fees ratio by calling a function that uses it + const stakeToFeesRatio = await subgraphService.stakeToFeesRatio() + expect(stakeToFeesRatio).to.equal(newStakeToFeesRatio, 'Stake to fees ratio should be set') + }) + + it('should not allow non-owner to set stake to fees ratio', async () => { + const newStakeToFeesRatio = ethers.parseEther('1') + await expect( + subgraphService.connect(nonOwner).setStakeToFeesRatio(newStakeToFeesRatio), + 'Non-owner should not be able to set stake to fees ratio', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Max POI Staleness', () => { + it('should set max POI staleness', async () => { + const newMaxPOIStaleness = 3600 // 1 hour in seconds + await subgraphService.connect(governor).setMaxPOIStaleness(newMaxPOIStaleness) + + // Get the max POI staleness + const maxPOIStaleness = await subgraphService.maxPOIStaleness() + expect(maxPOIStaleness).to.equal(newMaxPOIStaleness, 'Max POI staleness should be set') + }) + + it('should not allow non-owner to set max POI staleness', async () => { + const newMaxPOIStaleness = 3600 + await expect( + subgraphService.connect(nonOwner).setMaxPOIStaleness(newMaxPOIStaleness), + 'Non-owner should not be able to set max POI staleness', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) + + describe('Curation Cut', () => { + it('should set curation cut', async () => { + const newCurationCut = 100000 // 10% in PPM + await subgraphService.connect(governor).setCurationCut(newCurationCut) + + // Get the curation cut + const curationCut = await subgraphService.curationFeesCut() + expect(curationCut).to.equal(newCurationCut, 'Curation cut should be set') + }) + + it('should not allow non-owner to set curation cut', async () => { + const newCurationCut = 100000 + await expect( + subgraphService.connect(nonOwner).setCurationCut(newCurationCut), + 'Non-owner should not be able to set curation cut', + ).to.be.revertedWithCustomError(subgraphService, 'OwnableUnauthorizedAccount') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/indexer.test.ts b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/indexer.test.ts new file mode 100644 index 000000000..ef6865787 --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/indexer.test.ts @@ -0,0 +1,697 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { HDNodeWallet } from 'ethers' +import hre from 'hardhat' + +import { encodeCollectIndexingRewardsData, encodeCollectQueryFeesData, encodePOIMetadata, encodeStartServiceData, generateAllocationProof, generatePOI, generateSignedRAV, generateSignerProof, PaymentTypes } from '@graphprotocol/toolshed' +import { GraphPayments, GraphTallyCollector, HorizonStaking } from '@graphprotocol/horizon' +import { IGraphToken, IPaymentsEscrow, SubgraphService } from '../../../../typechain-types' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { Indexer, indexers } from '../../../../tasks/test/fixtures/indexers' +import { delegators } from '@graphprotocol/horizon/tasks/test/fixtures/delegators' + +describe('Indexer', () => { + let escrow: IPaymentsEscrow + let graphPayments: GraphPayments + let graphTallyCollector: GraphTallyCollector + let graphToken: IGraphToken + let staking: HorizonStaking + let subgraphService: SubgraphService + + let snapshotId: string + let chainId: number + + // Test addresses + let indexer: HardhatEthersSigner + let graphTallyCollectorAddress: string + let subgraphServiceAddress: string + + const graph = hre.graph() + const { collect } = graph.subgraphService.actions + + before(async () => { + // Get contracts + escrow = graph.horizon.contracts.PaymentsEscrow + graphPayments = graph.horizon.contracts.GraphPayments + graphTallyCollector = graph.horizon.contracts.GraphTallyCollector + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get contract addresses + graphTallyCollectorAddress = await graphTallyCollector.getAddress() + subgraphServiceAddress = await subgraphService.getAddress() + + // Get chain ID + chainId = Number((await ethers.provider.getNetwork()).chainId) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Indexer Registration', () => { + let indexerUrl: string + let indexerGeoHash: string + + beforeEach(async () => { + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + indexerUrl = indexerFixture.url + indexerGeoHash = indexerFixture.geoHash + }) + + it('should register indexer with valid parameters', async () => { + // Verify indexer metadata + const indexerInfo = await subgraphService.indexers(indexer.address) + expect(indexerInfo.url).to.equal(indexerUrl) + expect(indexerInfo.geoHash).to.equal(indexerGeoHash) + }) + }) + + describe('Allocation Management', () => { + let allocationId: string + let allocationPrivateKey: string + let allocationTokens: bigint + let subgraphDeploymentId: string + let indexerFixture: Indexer + + before(async () => { + // Get indexer data + indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + }) + + describe('New allocation', () => { + let provisionTokens: bigint + + before(() => { + // Generate new allocation ID and private key + const wallet = ethers.Wallet.createRandom() + allocationId = wallet.address + allocationPrivateKey = wallet.privateKey + allocationTokens = ethers.parseEther('1000') + subgraphDeploymentId = indexerFixture.allocations[0].subgraphDeploymentID + + // Get provision tokens + provisionTokens = indexerFixture.provisionTokens + }) + + it('should start an allocation with valid parameters', async () => { + // Get locked tokens before allocation + const beforeLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Attempt to create an allocation with the same ID + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + + // Start allocation + await subgraphService.connect(indexer).startService( + indexer.address, + data, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.indexer).to.equal(indexer.address, 'Allocation indexer is not the expected indexer') + expect(allocation.tokens).to.equal(allocationTokens, 'Allocation tokens are not the expected tokens') + expect(allocation.subgraphDeploymentId).to.equal(subgraphDeploymentId, 'Allocation subgraph deployment ID is not the expected subgraph deployment ID') + + // Verify tokens are locked + const afterLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + expect(afterLockedTokens).to.equal(beforeLockedTokens + allocationTokens) + }) + + it('should be able to start an allocation with zero tokens', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Attempt to create an allocation with the same ID + const data = encodeStartServiceData(subgraphDeploymentId, 0n, allocationId, signature) + + // Start allocation with zero tokens + await subgraphService.connect(indexer).startService( + indexer.address, + data, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.indexer).to.equal(indexer.address, 'Allocation indexer is not the expected indexer') + expect(allocation.tokens).to.equal(0, 'Allocation tokens are not zero') + expect(allocation.subgraphDeploymentId).to.equal(subgraphDeploymentId, 'Allocation subgraph deployment ID is not the expected subgraph deployment ID') + }) + + it('should not start an allocation without enough tokens', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Build allocation data + const allocationTokens = provisionTokens + ethers.parseEther('10000000') + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + + // Attempt to open allocation with excessive tokens + await expect( + subgraphService.connect(indexer).startService( + indexer.address, + data, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionTrackerInsufficientTokens', + ) + }) + }) + + describe('Existing allocation', () => { + beforeEach(() => { + // Get allocation data + const allocation = indexerFixture.allocations[0] + allocationId = allocation.allocationID + allocationTokens = allocation.tokens + subgraphDeploymentId = allocation.subgraphDeploymentID + }) + + describe('Resize allocation', () => { + it('should resize an open allocation increasing tokens', async () => { + // Get locked tokens before resize + const beforeLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Resize allocation + const increaseTokens = ethers.parseEther('5000') + const newAllocationTokens = allocationTokens + increaseTokens + await subgraphService.connect(indexer).resizeAllocation( + indexer.address, + allocationId, + newAllocationTokens, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.tokens).to.equal(newAllocationTokens, 'Allocation tokens were not resized') + + // Verify tokens are locked + const afterLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + expect(afterLockedTokens).to.equal(beforeLockedTokens + increaseTokens) + }) + + it('should resize an open allocation decreasing tokens', async () => { + // Get locked tokens before resize + const beforeLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Resize allocation + const decreaseTokens = ethers.parseEther('5000') + const newAllocationTokens = allocationTokens - decreaseTokens + await subgraphService.connect(indexer).resizeAllocation( + indexer.address, + allocationId, + newAllocationTokens, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.tokens).to.equal(newAllocationTokens) + + // Verify tokens are released + const afterLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + expect(afterLockedTokens).to.equal(beforeLockedTokens - decreaseTokens) + }) + }) + + describe('Close allocation', () => { + it('should be able to close an allocation', async () => { + // Get before locked tokens + const beforeLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Close allocation + const data = ethers.AbiCoder.defaultAbiCoder().encode( + ['address'], + [allocationId], + ) + await subgraphService.connect(indexer).stopService(indexer.address, data) + + // Verify allocation is closed + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.closedAt).to.not.equal(0) + + // Verify tokens are released + const afterLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + expect(afterLockedTokens).to.equal(beforeLockedTokens - allocationTokens) + }) + }) + }) + }) + + describe('Indexing Rewards', () => { + let allocationId: string + let indexingRewardCut: number + + describe('With delegation pool tokens greater than zero', () => { + describe('Re-provisioning', () => { + let otherAllocationId: string + + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + indexingRewardCut = indexerFixture.indexingRewardCut + + // Get allocations + allocationId = indexerFixture.allocations[0].allocationID + otherAllocationId = indexerFixture.allocations[1].allocationID + + // Check rewards destination is not set + const paymentsDestination = await subgraphService.paymentsDestination(indexer.address) + expect(paymentsDestination).to.equal(ethers.ZeroAddress, 'Payments destination should be zero address') + }) + + it('should collect indexing rewards with re-provisioning', async () => { + // Get before provision and delegation pool tokens + const beforeProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + const beforeDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 1000; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + // Collect rewards + const rewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, data]) + expect(rewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Verify rewards are added to delegation pool + const delegationRewards = (rewards * BigInt(indexingRewardCut)) / BigInt(1e6) + const afterDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + expect(afterDelegationPoolTokens).to.equal(beforeDelegationPoolTokens + delegationRewards, 'Rewards should be added to delegation pool') + + // Verify rewards are added to provision + const indexerRewards = rewards - delegationRewards + const afterProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + expect(afterProvisionTokens).to.equal(beforeProvisionTokens + indexerRewards, 'Rewards should be added to provision') + }) + + it('should collect rewards continuously for multiple allocations', async () => { + // Get before provision and delegation pool tokens + const beforeProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + const beforeDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const allocationData = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + const otherAllocationData = encodeCollectIndexingRewardsData(otherAllocationId, poi, poiMetadata) + + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 1000; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Collect rewards for first allocation + let rewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, allocationData]) + expect(rewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Collect rewards for second allocation + let otherRewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, otherAllocationData]) + expect(otherRewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Verify rewards are added to delegation pool + const delegationRewards = (rewards * BigInt(indexingRewardCut)) / BigInt(1e6) + (otherRewards * BigInt(indexingRewardCut)) / BigInt(1e6) + const afterDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + expect(afterDelegationPoolTokens).to.equal(beforeDelegationPoolTokens + delegationRewards, 'Rewards should be continuously added to delegation pool') + + // Verify rewards collected + const indexerRewards = rewards + otherRewards - delegationRewards + const afterFirstCollectionProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + expect(afterFirstCollectionProvisionTokens).to.equal(beforeProvisionTokens + indexerRewards, 'Rewards should be continuously added to provision') + + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 500; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Collect rewards for first allocation + rewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, allocationData]) + expect(rewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Collect rewards for second allocation + otherRewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, otherAllocationData]) + expect(otherRewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Verify rewards are added to delegation pool + const secondCollectionDelegationRewards = (rewards * BigInt(indexingRewardCut)) / BigInt(1e6) + (otherRewards * BigInt(indexingRewardCut)) / BigInt(1e6) + const afterSecondCollectionDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + expect(afterSecondCollectionDelegationPoolTokens).to.equal(afterDelegationPoolTokens + secondCollectionDelegationRewards, 'Rewards should be continuously added to delegation pool') + + // Verify total rewards collected + const secondCollectionIndexerRewards = rewards + otherRewards - secondCollectionDelegationRewards + const afterSecondCollectionProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + expect(afterSecondCollectionProvisionTokens).to.equal(afterFirstCollectionProvisionTokens + secondCollectionIndexerRewards, 'Rewards should be collected continuously') + }) + + it('should not collect rewards after POI staleness', async () => { + // Get before provision tokens + const beforeProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + + // Wait for POI staleness + const maxPOIStaleness = await subgraphService.maxPOIStaleness() + await ethers.provider.send('evm_increaseTime', [Number(maxPOIStaleness) + 1]) + await ethers.provider.send('evm_mine', []) + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + // Attempt to collect rewards + await subgraphService.connect(indexer).collect( + indexer.address, + PaymentTypes.IndexingRewards, + data, + ) + + // Verify no rewards were collected + const afterProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + expect(afterProvisionTokens).to.equal(beforeProvisionTokens, 'Rewards should not be collected after POI staleness') + }) + + describe('Over allocated', () => { + let subgraphDeploymentId: string + let delegator: HardhatEthersSigner + let allocationPrivateKey: string + beforeEach(async () => { + // Get delegator + delegator = await ethers.getSigner(delegators[0].address) + + // Get locked tokens + const lockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Get delegation ratio + const delegationRatio = await subgraphService.getDelegationRatio() + const availableTokens = await staking.getTokensAvailable(indexer.address, subgraphService.target, delegationRatio) + + // Create allocation with tokens available + const wallet = ethers.Wallet.createRandom() + allocationId = wallet.address + allocationPrivateKey = wallet.privateKey + subgraphDeploymentId = indexers[0].allocations[0].subgraphDeploymentID + const allocationTokens = availableTokens - lockedTokens + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + await subgraphService.connect(indexer).startService( + indexer.address, + data, + ) + + // Undelegate from indexer so they become over allocated + const delegation = await staking.getDelegation( + indexer.address, + subgraphService.target, + delegator.address, + ) + + // Undelegate tokens + await staking.connect(delegator)['undelegate(address,address,uint256)'](indexer.address, subgraphServiceAddress, delegation.shares) + }) + + it('should collect rewards while over allocated with fresh POI', async () => { + // Get before provision tokens + const beforeProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 1000; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + // Collect rewards + const rewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, data]) + expect(rewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Verify rewards are added to provision + const afterProvisionTokens = (await staking.getProvision(indexer.address, subgraphService.target)).tokens + expect(afterProvisionTokens).to.equal(beforeProvisionTokens + rewards, 'Rewards should be collected') + + // Verify allocation was closed + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.closedAt).to.not.equal(0) + }) + }) + }) + }) + + describe('With delegation pool tokens equal to zero', () => { + describe('With rewards destination', () => { + let paymentsDestination: string + + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[1] + indexer = await ethers.getSigner(indexerFixture.address) + indexingRewardCut = indexerFixture.indexingRewardCut + + // Get allocation + const allocation = indexerFixture.allocations[0] + allocationId = allocation.allocationID + + // Check rewards destination is set + paymentsDestination = await subgraphService.paymentsDestination(indexer.address) + expect(paymentsDestination).not.equal(ethers.ZeroAddress, 'Payments destination should be set') + }) + + it('should collect indexing rewards with rewards destination', async () => { + // Get before balance of rewards destination + const beforePaymentsDestinationBalance = await graphToken.balanceOf(paymentsDestination) + + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 500; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + // Collect rewards + const rewards = await collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, data]) + expect(rewards).to.not.equal(0n, 'Rewards should be greater than zero') + + // Verify rewards are transferred to payments destination + const afterPaymentsDestinationBalance = await graphToken.balanceOf(paymentsDestination) + expect(afterPaymentsDestinationBalance).to.equal(beforePaymentsDestinationBalance + rewards, 'Rewards should be transferred to payments destination') + }) + }) + }) + }) + + describe('Query Fees', () => { + let payer: HDNodeWallet + let signer: HDNodeWallet + let allocationId: string + let otherAllocationId: string + let collectTokens: bigint + let queryFeeCut: number + + before(async () => { + // Get payer + payer = ethers.Wallet.createRandom() + payer = payer.connect(ethers.provider) + + // Get signer + signer = ethers.Wallet.createRandom() + + // Mint GRT to payer and fund payer and signer with ETH + await setGRTBalance(graph.provider, graphToken.target, payer.address, ethers.parseEther('1000000')) + await ethers.provider.send('hardhat_setBalance', [payer.address, '0x56BC75E2D63100000']) + await ethers.provider.send('hardhat_setBalance', [signer.address, '0x56BC75E2D63100000']) + + // Authorize payer as signer + // Block timestamp plus 1 year + const proofDeadline = (await ethers.provider.getBlock('latest'))!.timestamp + 31536000 + const signerProof = generateSignerProof(BigInt(proofDeadline), payer.address, signer.privateKey, graphTallyCollectorAddress, chainId) + await graphTallyCollector.connect(payer).authorizeSigner(signer.address, proofDeadline, signerProof) + + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + queryFeeCut = indexerFixture.queryFeeCut + // Get allocation + allocationId = indexerFixture.allocations[0].allocationID + otherAllocationId = indexerFixture.allocations[1].allocationID + // Get collect tokens + collectTokens = ethers.parseUnits('1000') + }) + + beforeEach(async () => { + // Deposit tokens in escrow + await graphToken.connect(payer).approve(escrow.target, collectTokens) + await escrow.connect(payer).deposit(graphTallyCollector.target, indexer.address, collectTokens) + }) + + it('should collect query fees with SignedRAV', async () => { + const { rav, signature } = await generateSignedRAV( + allocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + collectTokens, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedSignedRAV = encodeCollectQueryFeesData(rav, signature, 0n) + + // Get balance and delegation pool tokens before collect + const beforeIndexerStake = await staking.getStake(indexer.address) + const beforeDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + + // Collect query fees + await collect(indexer, [indexer.address, PaymentTypes.QueryFee, encodedSignedRAV]) + + // Calculate expected rewards + const rewardsAfterTax = collectTokens - (collectTokens * BigInt(await graphPayments.PROTOCOL_PAYMENT_CUT())) / BigInt(1e6) + const rewardsAfterCuration = rewardsAfterTax - (rewardsAfterTax * BigInt(await subgraphService.curationFeesCut())) / BigInt(1e6) + + // Verify tokens where added to delegation pool + const delegatorTokens = (rewardsAfterCuration * BigInt(queryFeeCut)) / BigInt(1e6) + const afterDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + expect(afterDelegationPoolTokens).to.equal(beforeDelegationPoolTokens + delegatorTokens) + + // Verify indexer received tokens were automatically restaked + const indexerTokens = rewardsAfterCuration - delegatorTokens + const afterIndexerStake = await staking.getStake(indexer.address) + expect(afterIndexerStake).to.equal(beforeIndexerStake + indexerTokens) + }) + + it('should collect multiple SignedRAVs', async () => { + // Get balance and delegation pool tokens before collect + const beforeDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + const beforeIndexerStake = await staking.getStake(indexer.address) + // Get fees + const fees1 = collectTokens / 4n + const fees2 = collectTokens / 2n + + // Get encoded SignedRAVs + const { rav: rav1, signature: signature1 } = await generateSignedRAV( + allocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + fees1, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedSignedRAV1 = encodeCollectQueryFeesData(rav1, signature1, 0n) + + const { rav: rav2, signature: signature2 } = await generateSignedRAV( + otherAllocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + fees2, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedSignedRAV2 = encodeCollectQueryFeesData(rav2, signature2, 0n) + + // Collect first set of fees + const rewards1 = await collect(indexer, [indexer.address, PaymentTypes.QueryFee, encodedSignedRAV1]) + + // Collect second set of fees + const rewards2 = await collect(indexer, [indexer.address, PaymentTypes.QueryFee, encodedSignedRAV2]) + + // Verify total rewards collected + const totalRewards = rewards1 + rewards2 + const totalRewardsAfterTax = totalRewards - (totalRewards * BigInt(await graphPayments.PROTOCOL_PAYMENT_CUT())) / BigInt(1e6) + const totalRewardsAfterCuration = totalRewardsAfterTax - (totalRewardsAfterTax * BigInt(await subgraphService.curationFeesCut())) / BigInt(1e6) + + // Verify tokens where added to delegation pool + const delegatorTokens = (totalRewardsAfterCuration * BigInt(queryFeeCut)) / BigInt(1e6) + const afterDelegationPoolTokens = (await staking.getDelegationPool(indexer.address, subgraphService.target)).tokens + expect(afterDelegationPoolTokens).to.equal(beforeDelegationPoolTokens + delegatorTokens) + + // Verify indexer received tokens + const indexerTokens = totalRewardsAfterCuration - delegatorTokens + const afterIndexerStake = await staking.getStake(indexer.address) + expect(afterIndexerStake).to.equal(beforeIndexerStake + indexerTokens) + + // Collect new RAV for allocation 1 + const newFees1 = fees1 * 2n + const { rav: newRav1, signature: newSignature1 } = await generateSignedRAV( + allocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + newFees1, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedNewRAV1 = encodeCollectQueryFeesData(newRav1, newSignature1, 0n) + + // Collect new RAV for allocation 1 + const newRewards1 = await collect(indexer, [indexer.address, PaymentTypes.QueryFee, encodedNewRAV1]) + + // Verify only the difference was collected + expect(newRewards1).to.equal(newFees1 - fees1) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/operator.test.ts b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/operator.test.ts new file mode 100644 index 000000000..ff13ad3be --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/operator.test.ts @@ -0,0 +1,398 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager, IGraphToken, IPaymentsEscrow, SubgraphService } from '../../../../typechain-types' +import { encodeCollectIndexingRewardsData, encodeCollectQueryFeesData, encodePOIMetadata, encodeRegistrationData, encodeStartServiceData, generateAllocationProof, generatePOI, generateSignedRAV, generateSignerProof } from '@graphprotocol/toolshed' +import { GraphTallyCollector, HorizonStaking } from '@graphprotocol/horizon' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { PaymentTypes } from '@graphprotocol/toolshed' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Operator', () => { + let subgraphService: SubgraphService + let staking: HorizonStaking + let graphToken: IGraphToken + let escrow: IPaymentsEscrow + let disputeManager: DisputeManager + let graphTallyCollector: GraphTallyCollector + + let snapshotId: string + let chainId: number + + // Test addresses + let indexer: HardhatEthersSigner + let authorizedOperator: HardhatEthersSigner + let unauthorizedOperator: HardhatEthersSigner + let allocationId: string + let subgraphDeploymentId: string + let allocationTokens: bigint + let graphTallyCollectorAddress: string + let subgraphServiceAddress: string + const graph = hre.graph() + const { provision } = graph.horizon.actions + const { collect } = graph.subgraphService.actions + + before(async () => { + // Get contracts + subgraphService = graph.subgraphService.contracts.SubgraphService + staking = graph.horizon.contracts.HorizonStaking + graphToken = graph.horizon.contracts.GraphToken + escrow = graph.horizon.contracts.PaymentsEscrow + graphTallyCollector = graph.horizon.contracts.GraphTallyCollector + disputeManager = graph.subgraphService.contracts.DisputeManager + + // Get contract addresses + graphTallyCollectorAddress = await graphTallyCollector.getAddress() + subgraphServiceAddress = await subgraphService.getAddress() + + // Get chain ID + chainId = Number((await ethers.provider.getNetwork()).chainId) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('New indexer', () => { + beforeEach(async () => { + // Get indexer + [indexer, authorizedOperator, unauthorizedOperator] = await graph.accounts.getTestAccounts() + + // Set balances for operators + await ethers.provider.send('hardhat_setBalance', [authorizedOperator.address, '0x56BC75E2D63100000']) + await ethers.provider.send('hardhat_setBalance', [unauthorizedOperator.address, '0x56BC75E2D63100000']) + + // Create provision + const disputePeriod = await disputeManager.getDisputePeriod() + const maxSlashingCut = await disputeManager.maxSlashingCut() + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ethers.parseEther('100000')) + await provision(indexer, [indexer.address, subgraphServiceAddress, ethers.parseEther('100000'), maxSlashingCut, disputePeriod]) + }) + + describe('Authorized Operator', () => { + beforeEach(async () => { + // Authorize operator + await staking.connect(indexer).setOperator(subgraphServiceAddress, authorizedOperator.address, true) + }) + + it('should be able to register the indexer', async () => { + const indexerUrl = 'https://test-indexer.com' + const indexerGeoHash = 'test-geo-hash' + const indexerRegistrationData = encodeRegistrationData(indexerUrl, indexerGeoHash, ethers.ZeroAddress) + + await subgraphService.connect(authorizedOperator).register(indexer.address, indexerRegistrationData) + + // Verify indexer metadata + const indexerInfo = await subgraphService.indexers(indexer.address) + expect(indexerInfo.url).to.equal(indexerUrl) + expect(indexerInfo.geoHash).to.equal(indexerGeoHash) + }) + }) + + describe('Unauthorized Operator', () => { + it('should not be able to register the indexer', async () => { + const indexerUrl = 'https://test-indexer.com' + const indexerGeoHash = 'test-geo-hash' + const indexerRegistrationData = encodeRegistrationData(indexerUrl, indexerGeoHash, ethers.ZeroAddress) + + await expect( + subgraphService.connect(unauthorizedOperator).register(indexer.address, indexerRegistrationData), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + }) + }) + + describe('Existing indexer', () => { + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + ;[authorizedOperator, unauthorizedOperator] = await graph.accounts.getTestAccounts() + }) + + describe('New allocation', () => { + let allocationPrivateKey: string + + beforeEach(() => { + // Generate test allocation + const wallet = ethers.Wallet.createRandom() + allocationId = wallet.address + allocationPrivateKey = wallet.privateKey + subgraphDeploymentId = ethers.keccak256(ethers.toUtf8Bytes('test-subgraph-deployment')) + allocationTokens = ethers.parseEther('10000') + }) + + describe('Authorized Operator', () => { + beforeEach(async () => { + // Authorize operator + await staking.connect(indexer).setOperator(subgraphServiceAddress, authorizedOperator.address, true) + }) + + it('should be able to create an allocation', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Build allocation data + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + // Start allocation + await subgraphService.connect(authorizedOperator).startService( + indexer.address, + data, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.indexer).to.equal(indexer.address) + expect(allocation.tokens).to.equal(allocationTokens) + expect(allocation.subgraphDeploymentId).to.equal(subgraphDeploymentId) + }) + }) + + describe('Unauthorized Operator', () => { + it('should not be able to create an allocation', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Build allocation data + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + + await expect( + subgraphService.connect(unauthorizedOperator).startService( + indexer.address, + data, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + }) + }) + + describe('Open allocation', () => { + beforeEach(() => { + // Get allocation data + const allocationFixture = indexers[0].allocations[0] + allocationId = allocationFixture.allocationID + subgraphDeploymentId = allocationFixture.subgraphDeploymentID + allocationTokens = allocationFixture.tokens + }) + + describe('Authorized Operator', () => { + beforeEach(async () => { + // Authorize operator + await staking.connect(indexer).setOperator(subgraphServiceAddress, authorizedOperator.address, true) + }) + + it('should be able to resize an allocation', async () => { + // Resize allocation + const newAllocationTokens = allocationTokens + ethers.parseEther('5000') + await subgraphService.connect(authorizedOperator).resizeAllocation( + indexer.address, + allocationId, + newAllocationTokens, + ) + + // Verify allocation + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.tokens).to.equal(newAllocationTokens) + }) + + it('should be able to close an allocation', async () => { + // Close allocation + const data = ethers.AbiCoder.defaultAbiCoder().encode( + ['address'], + [allocationId], + ) + await subgraphService.connect(authorizedOperator).stopService( + indexer.address, + data, + ) + + // Verify allocation is closed + const allocation = await subgraphService.getAllocation(allocationId) + expect(allocation.closedAt).to.not.equal(0) + }) + + it('should be able to collect indexing rewards', async () => { + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 1000; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Build data for collect indexing rewards + const poi = generatePOI() + const publicPOI = generatePOI('public poi') + const poiMetadata = encodePOIMetadata( + 0, + publicPOI, + 0, + 0, + 0, + ) + const collectData = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + // Collect rewards + const rewards = await collect(authorizedOperator, [indexer.address, PaymentTypes.IndexingRewards, collectData]) + expect(rewards).to.not.equal(0n) + }) + + it('should be able to collect query fees', async () => { + // Setup query fees collection + let payer = ethers.Wallet.createRandom() + payer = payer.connect(ethers.provider) + let signer = ethers.Wallet.createRandom() + signer = signer.connect(ethers.provider) + const collectTokens = ethers.parseUnits('1000') + + // Mint GRT to payer and fund payer and signer with ETH + await setGRTBalance(graph.provider, graphToken.target, payer.address, ethers.parseEther('1000000')) + await ethers.provider.send('hardhat_setBalance', [payer.address, '0x56BC75E2D63100000']) + await ethers.provider.send('hardhat_setBalance', [signer.address, '0x56BC75E2D63100000']) + + // Authorize payer as signer + const proofDeadline = (await ethers.provider.getBlock('latest'))!.timestamp + 31536000 + const signerProof = generateSignerProof(BigInt(proofDeadline), payer.address, signer.privateKey, graphTallyCollectorAddress, chainId) + await graphTallyCollector.connect(payer).authorizeSigner(signer.address, proofDeadline, signerProof) + + // Deposit tokens in escrow + await graphToken.connect(payer).approve(escrow.target, collectTokens) + await escrow.connect(payer).deposit(graphTallyCollector.target, indexer.address, collectTokens) + + // Get encoded SignedRAV + const { rav, signature } = await generateSignedRAV( + allocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + collectTokens, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedSignedRAV = encodeCollectQueryFeesData(rav, signature, 0n) + + // Collect query fees + const rewards = await collect(authorizedOperator, [indexer.address, PaymentTypes.QueryFee, encodedSignedRAV]) + expect(rewards).to.not.equal(0n) + }) + }) + + describe('Unauthorized Operator', () => { + it('should not be able to resize an allocation', async () => { + // Attempt to resize with unauthorized operator + const newAllocationTokens = allocationTokens + ethers.parseEther('5000') + await expect( + subgraphService.connect(unauthorizedOperator).resizeAllocation( + indexer.address, + allocationId, + newAllocationTokens, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + + it('should not be able to close an allocation', async () => { + // Attempt to close with unauthorized operator + await expect( + subgraphService.connect(unauthorizedOperator).stopService( + indexer.address, + allocationId, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + + it('should not be able to collect indexing rewards', async () => { + // Mine multiple blocks to simulate time passing + for (let i = 0; i < 1000; i++) { + await ethers.provider.send('evm_mine', []) + } + + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + generatePOI('public poi'), + 0, + 0, + 0, + ) + const collectData = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + // Attempt to collect rewards with unauthorized operator + await expect( + collect(unauthorizedOperator, [indexer.address, PaymentTypes.IndexingRewards, collectData]), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + + it('should not be able to collect query fees', async () => { + // Setup query fees collection + let payer = ethers.Wallet.createRandom() + payer = payer.connect(ethers.provider) + let signer = ethers.Wallet.createRandom() + signer = signer.connect(ethers.provider) + const collectTokens = ethers.parseUnits('1000') + + // Mint GRT to payer and fund payer and signer with ETH + await setGRTBalance(graph.provider, graphToken.target, payer.address, ethers.parseEther('1000000')) + await ethers.provider.send('hardhat_setBalance', [payer.address, '0x56BC75E2D63100000']) + await ethers.provider.send('hardhat_setBalance', [signer.address, '0x56BC75E2D63100000']) + + // Authorize payer as signer + const proofDeadline = (await ethers.provider.getBlock('latest'))!.timestamp + 31536000 + const signerProof = generateSignerProof(BigInt(proofDeadline), payer.address, signer.privateKey, graphTallyCollectorAddress, chainId) + await graphTallyCollector.connect(payer).authorizeSigner(signer.address, proofDeadline, signerProof) + + // Deposit tokens in escrow + await graphToken.connect(payer).approve(escrow.target, collectTokens) + await escrow.connect(payer).deposit(escrow.target, indexer.address, collectTokens) + + // Get encoded SignedRAV + const { rav, signature } = await generateSignedRAV( + allocationId, + payer.address, + indexer.address, + subgraphServiceAddress, + 0, + collectTokens, + ethers.toUtf8Bytes(''), + signer.privateKey, + graphTallyCollectorAddress, + chainId, + ) + const encodedSignedRAV = encodeCollectQueryFeesData(rav, signature, 0n) + // Attempt to collect query fees with unauthorized operator + await expect( + collect(unauthorizedOperator, [indexer.address, PaymentTypes.QueryFee, encodedSignedRAV]), + ).to.be.revertedWithCustomError( + subgraphService, + 'ProvisionManagerNotAuthorized', + ) + }) + }) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/paused.test.ts b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/paused.test.ts new file mode 100644 index 000000000..a6ac1dbdd --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/paused.test.ts @@ -0,0 +1,247 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { DisputeManager, IGraphToken, SubgraphService } from '../../../../typechain-types' +import { encodeCollectIndexingRewardsData, encodePOIMetadata, encodeRegistrationData, encodeStartServiceData, generateAllocationProof, generatePOI, PaymentTypes } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Paused Protocol', () => { + let disputeManager: DisputeManager + let graphToken: IGraphToken + let subgraphService: SubgraphService + + let snapshotId: string + let chainId: number + + // Test addresses + let pauseGuardian: HardhatEthersSigner + let indexer: HardhatEthersSigner + let allocationId: string + let subgraphDeploymentId: string + let allocationTokens: bigint + let subgraphServiceAddress: string + + const graph = hre.graph() + const { provision } = graph.horizon.actions + const { collect } = graph.subgraphService.actions + + before(async () => { + // Get contracts + disputeManager = graph.subgraphService.contracts.DisputeManager + graphToken = graph.horizon.contracts.GraphToken + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + pauseGuardian = await graph.accounts.getPauseGuardian() + + // Get chain id + chainId = Number((await hre.ethers.provider.getNetwork()).chainId) + + // Get subgraph service address + subgraphServiceAddress = await subgraphService.getAddress() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Get indexer + ;[indexer] = await graph.accounts.getTestAccounts() + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Pause actions', () => { + it('should allow pause guardian to pause the protocol', async () => { + await subgraphService.connect(pauseGuardian).pause() + expect(await subgraphService.paused()).to.be.true + }) + + it('should allow pause guardian to unpause the protocol', async () => { + // First pause the protocol + await subgraphService.connect(pauseGuardian).pause() + expect(await subgraphService.paused()).to.be.true + + // Then unpause it + await subgraphService.connect(pauseGuardian).unpause() + expect(await subgraphService.paused()).to.be.false + }) + }) + + describe('Indexer Operations While Paused', () => { + beforeEach(async () => { + // Pause the protocol before each test + await subgraphService.connect(pauseGuardian).pause() + }) + + describe('Existing indexer', () => { + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + }) + + describe('Opened allocation', () => { + beforeEach(() => { + // Get allocation + const allocation = indexers[0].allocations[0] + allocationId = allocation.allocationID + subgraphDeploymentId = allocation.subgraphDeploymentID + allocationTokens = allocation.tokens + }) + + it('should not allow indexer to stop an allocation while paused', async () => { + await expect( + subgraphService.connect(indexer).stopService( + indexer.address, + allocationId, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + + it('should not allow indexer to collect indexing rewards while paused', async () => { + // Build data for collect indexing rewards + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + await expect( + collect(indexer, [indexer.address, PaymentTypes.IndexingRewards, data]), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + + it('should not allow indexer to collect query fees while paused', async () => { + // Build data for collect query fees + const poi = generatePOI() + const poiMetadata = encodePOIMetadata( + 0, + poi, + 0, + 0, + 0, + ) + const data = encodeCollectIndexingRewardsData(allocationId, poi, poiMetadata) + + await expect( + collect(indexer, [indexer.address, PaymentTypes.QueryFee, data]), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + + it('should not allow indexer to resize an allocation while paused', async () => { + await expect( + subgraphService.connect(indexer).resizeAllocation( + indexer.address, + allocationId, + allocationTokens + ethers.parseEther('1000'), + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + }) + + describe('New allocation', () => { + let allocationPrivateKey: string + + beforeEach(() => { + // Get allocation + const wallet = ethers.Wallet.createRandom() + allocationId = wallet.address + allocationPrivateKey = wallet.privateKey + subgraphDeploymentId = indexers[0].allocations[0].subgraphDeploymentID + allocationTokens = 1000n + }) + + it('should not allow indexer to start an allocation while paused', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Build allocation data + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + + await expect( + subgraphService.connect(indexer).startService( + indexer.address, + data, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + }) + }) + + describe('New indexer', () => { + beforeEach(async () => { + // Get indexer + [indexer] = await graph.accounts.getTestAccounts() + + // Create provision + const disputePeriod = await disputeManager.getDisputePeriod() + const maxSlashingCut = await disputeManager.maxSlashingCut() + await setGRTBalance(graph.provider, graphToken.target, indexer.address, ethers.parseEther('100000')) + await provision(indexer, [indexer.address, await subgraphService.getAddress(), ethers.parseEther('100000'), maxSlashingCut, disputePeriod]) + }) + + it('should not allow indexer to register while paused', async () => { + const indexerUrl = 'https://test-indexer.com' + const indexerGeoHash = 'test-geo-hash' + const indexerRegistrationData = encodeRegistrationData(indexerUrl, indexerGeoHash, ethers.ZeroAddress) + + await expect( + subgraphService.connect(indexer).register(indexer.address, indexerRegistrationData), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + }) + + describe('Permissionless', () => { + let anyone: HardhatEthersSigner + + before(async () => { + // Get anyone address + [anyone] = await graph.accounts.getTestAccounts() + }) + + it('should not allow anyone to close a stale allocation while paused', async () => { + // Wait for POI staleness + const maxPOIStaleness = await subgraphService.maxPOIStaleness() + await ethers.provider.send('evm_increaseTime', [Number(maxPOIStaleness) + 1]) + await ethers.provider.send('evm_mine', []) + + await expect( + subgraphService.connect(anyone).closeStaleAllocation(allocationId), + ).to.be.revertedWithCustomError( + subgraphService, + 'EnforcedPause', + ) + }) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/permisionless.test.ts b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/permisionless.test.ts new file mode 100644 index 000000000..3c26155b7 --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/subgraph-service/permisionless.test.ts @@ -0,0 +1,115 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { encodeStartServiceData, generateAllocationProof } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { SubgraphService } from '../../../../typechain-types' + +import { indexers } from '../../../../tasks/test/fixtures/indexers' + +describe('Permissionless', () => { + let subgraphService: SubgraphService + let snapshotId: string + + // Test data + let indexer: HardhatEthersSigner + let anyone: HardhatEthersSigner + let allocationId: string + let subgraphDeploymentId: string + let allocationTokens: bigint + + const graph = hre.graph() + + before(async () => { + // Get contracts + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get anyone address + ;[anyone] = await graph.accounts.getTestAccounts() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Non-altruistic allocation', () => { + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.allocations[0] + allocationId = allocation.allocationID + subgraphDeploymentId = allocation.subgraphDeploymentID + allocationTokens = allocation.tokens + }) + + it('should allow anyone to close an allocation after max POI staleness passes', async () => { + // Wait for POI staleness + const maxPOIStaleness = await subgraphService.maxPOIStaleness() + await ethers.provider.send('evm_increaseTime', [Number(maxPOIStaleness) + 1]) + await ethers.provider.send('evm_mine', []) + + // Get before state + const beforeLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + + // Close allocation as anyone + await subgraphService.connect(anyone).closeStaleAllocation(allocationId) + + // Verify allocation is closed + const afterAllocation = await subgraphService.getAllocation(allocationId) + expect(afterAllocation.closedAt).to.not.equal(0, 'Allocation should be closed') + + // Verify tokens are released + const afterLockedTokens = await subgraphService.allocationProvisionTracker(indexer.address) + expect(afterLockedTokens).to.equal(beforeLockedTokens - allocationTokens, 'Tokens should be released') + }) + }) + + describe('Altruistic allocation', () => { + let allocationPrivateKey: string + + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Generate random allocation + const wallet = ethers.Wallet.createRandom() + allocationId = wallet.address + allocationPrivateKey = wallet.privateKey + subgraphDeploymentId = indexerFixture.allocations[0].subgraphDeploymentID + allocationTokens = 0n + + // Start allocation + const subgraphServiceAddress = await subgraphService.getAddress() + const chainId = Number((await hre.ethers.provider.getNetwork()).chainId) + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + const data = encodeStartServiceData(subgraphDeploymentId, allocationTokens, allocationId, signature) + await subgraphService.connect(indexer).startService(indexer.address, data) + }) + + it('should not allow closing an altruistic allocation permissionless', async () => { + // Wait for POI staleness + const maxPOIStaleness = await subgraphService.maxPOIStaleness() + await ethers.provider.send('evm_increaseTime', [Number(maxPOIStaleness) + 1]) + await ethers.provider.send('evm_mine', []) + + // Attempt to close allocation as anyone + await expect( + subgraphService.connect(anyone).closeStaleAllocation(allocationId), + ).to.be.revertedWithCustomError( + subgraphService, + 'SubgraphServiceAllocationIsAltruistic', + ).withArgs(allocationId) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/after-transition-period/upgrade.test.ts b/packages/subgraph-service/test/integration/after-transition-period/upgrade.test.ts new file mode 100644 index 000000000..a2e192c6f --- /dev/null +++ b/packages/subgraph-service/test/integration/after-transition-period/upgrade.test.ts @@ -0,0 +1,83 @@ +import hre from 'hardhat' + +import { ethers } from 'hardhat' +import { expect } from 'chai' + +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { zeroPadValue } from 'ethers' + +const abi = [{ + 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', +}] + +describe('Upgrading contracts', () => { + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + const graph = hre.graph() + + before(async () => { + governor = await graph.accounts.getGovernor() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + it('subgraph service should be upgradeable by the governor', async () => { + const entry = graph.subgraphService.addressBook.getEntry('SubgraphService') + const proxyAdmin = entry.proxyAdmin! + const proxy = entry.address! + + // Upgrade the contract to a different implementation + // the implementation we use is the GraphTallyCollector, this is obviously absurd but we just need an address with code on it + const ProxyAdmin = new ethers.Contract(proxyAdmin, abi, governor) + await ProxyAdmin.upgradeAndCall(proxy, graph.horizon.contracts.GraphTallyCollector.target, '0x') + + // https:// github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L37C53-L37C119 + const implementation = await hre.ethers.provider.getStorage(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + expect(zeroPadValue(implementation, 32)).to.equal(zeroPadValue(graph.horizon.contracts.GraphTallyCollector.target as string, 32)) + }) + + it('dispute manager should be upgradeable by the governor', async () => { + const entry = graph.subgraphService.addressBook.getEntry('DisputeManager') + const proxyAdmin = entry.proxyAdmin! + const proxy = entry.address! + + // Upgrade the contract to a different implementation + // the implementation we use is the GraphTallyCollector, this is obviously absurd but we just need an address with code on it + const ProxyAdmin = new ethers.Contract(proxyAdmin, abi, governor) + await ProxyAdmin.upgradeAndCall(proxy, graph.horizon.contracts.GraphTallyCollector.target, '0x') + + // https:// github.com/OpenZeppelin/openzeppelin-contracts/blob/dbb6104ce834628e473d2173bbc9d47f81a9eec3/contracts/proxy/ERC1967/ERC1967Utils.sol#L37C53-L37C119 + const implementation = await hre.ethers.provider.getStorage(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + expect(zeroPadValue(implementation, 32)).to.equal(zeroPadValue(graph.horizon.contracts.GraphTallyCollector.target as string, 32)) + }) +}) diff --git a/packages/subgraph-service/test/integration/during-transition-period/dispute-manager.test.ts b/packages/subgraph-service/test/integration/during-transition-period/dispute-manager.test.ts new file mode 100644 index 000000000..9b870871b --- /dev/null +++ b/packages/subgraph-service/test/integration/during-transition-period/dispute-manager.test.ts @@ -0,0 +1,154 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' +import { EventLog } from 'ethers' + +import { DisputeManager, IGraphToken, SubgraphService } from '../../../typechain-types' +import { generateLegacyIndexingDisputeId, generateLegacyTypeDisputeId } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { HorizonStaking } from '@graphprotocol/horizon' +import { LegacyDisputeManager } from '@graphprotocol/toolshed/deployments' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { indexers } from '../../../tasks/test/fixtures/indexers' + +describe('Dispute Manager', () => { + let disputeManager: DisputeManager + let legacyDisputeManager: LegacyDisputeManager + let graphToken: IGraphToken + let staking: HorizonStaking + let subgraphService: SubgraphService + + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + let fisherman: HardhatEthersSigner + let arbitrator: HardhatEthersSigner + let indexer: HardhatEthersSigner + + let disputeDeposit: bigint + + // Allocation variables + let allocationId: string + + before(async () => { + // Get contracts + const graph = hre.graph() + disputeManager = graph.subgraphService.contracts.DisputeManager + legacyDisputeManager = graph.subgraphService.contracts.LegacyDisputeManager + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get signers + governor = await graph.accounts.getGovernor() + arbitrator = await graph.accounts.getArbitrator() + ;[fisherman] = await graph.accounts.getTestAccounts() + + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.legacyAllocations[0] + allocationId = allocation.allocationID + + // Get dispute deposit + disputeDeposit = ethers.parseEther('10000') + + // Set GRT balance for fisherman + await setGRTBalance(graph.provider, graphToken.target, fisherman.address, ethers.parseEther('1000000')) + + // Set arbitrator + await legacyDisputeManager.connect(governor).setArbitrator(arbitrator.address) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Legacy dispute type', () => { + describe('Arbitrator', () => { + it('should allow arbitrator to create and accept a legacy dispute on the new dispute manager after slashing on the legacy dispute manager', async () => { + // Create an indexing dispute on legacy dispute manager + await graphToken.connect(fisherman).approve(legacyDisputeManager.target, disputeDeposit) + await legacyDisputeManager.connect(fisherman).createIndexingDispute(allocationId, disputeDeposit) + const legacyDisputeId = generateLegacyIndexingDisputeId(allocationId) + + // Accept the dispute on the legacy dispute manager + await legacyDisputeManager.connect(arbitrator).acceptDispute(legacyDisputeId) + + // Get fisherman's balance before creating dispute + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Get indexer's provision before creating dispute + const provision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + + // Create and accept legacy dispute using the same allocation ID + const tokensToSlash = ethers.parseEther('100000') + const tokensToReward = tokensToSlash / 2n + await disputeManager.connect(arbitrator).createAndAcceptLegacyDispute( + allocationId, + fisherman.address, + tokensToSlash, + tokensToReward + ) + + // Get dispute ID from event + const disputeId = generateLegacyTypeDisputeId(allocationId) + + // Verify dispute was created and accepted + const dispute = await disputeManager.disputes(disputeId) + expect(dispute.indexer).to.equal(indexer.address, 'Indexer address mismatch') + expect(dispute.fisherman).to.equal(fisherman.address, 'Fisherman address mismatch') + expect(dispute.disputeType).to.equal(3, 'Dispute type should be legacy') + expect(dispute.status).to.equal(1, 'Dispute status should be accepted') + + // Verify indexer's stake was slashed + const updatedProvision = await staking.getProviderTokensAvailable(indexer.address, await subgraphService.getAddress()) + expect(updatedProvision).to.equal(provision - tokensToSlash, 'Indexer stake should be slashed') + + // Verify fisherman got the reward + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + tokensToReward, 'Fisherman balance should be increased by the reward') + }) + + it('should not allow creating a legacy dispute for non-existent allocation', async () => { + const tokensToSlash = ethers.parseEther('1000') + const tokensToReward = tokensToSlash / 2n + + // Attempt to create legacy dispute with non-existent allocation + await expect( + disputeManager.connect(arbitrator).createAndAcceptLegacyDispute( + ethers.Wallet.createRandom().address, + fisherman.address, + tokensToSlash, + tokensToReward + ) + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerIndexerNotFound') + }) + }) + + it('should not allow non-arbitrator to create a legacy dispute', async () => { + const tokensToSlash = ethers.parseEther('1000') + const tokensToReward = tokensToSlash / 2n + + // Attempt to create legacy dispute as fisherman + await expect( + disputeManager.connect(fisherman).createAndAcceptLegacyDispute( + allocationId, + fisherman.address, + tokensToSlash, + tokensToReward + ) + ).to.be.revertedWithCustomError(disputeManager, 'DisputeManagerNotArbitrator') + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/during-transition-period/governance.test.ts b/packages/subgraph-service/test/integration/during-transition-period/governance.test.ts new file mode 100644 index 000000000..e70f9a779 --- /dev/null +++ b/packages/subgraph-service/test/integration/during-transition-period/governance.test.ts @@ -0,0 +1,93 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { ISubgraphService } from '../../../typechain-types' + +describe('Governance', () => { + let subgraphService: ISubgraphService + let snapshotId: string + + // Test addresses + let governor: HardhatEthersSigner + let indexer: HardhatEthersSigner + let nonOwner: HardhatEthersSigner + let allocationId: string + let subgraphDeploymentId: string + + const graph = hre.graph() + + before(() => { + subgraphService = graph.subgraphService.contracts.SubgraphService + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Get signers + governor = await graph.accounts.getGovernor() + ;[indexer, nonOwner] = await graph.accounts.getTestAccounts() + + // Generate test addresses + allocationId = ethers.Wallet.createRandom().address + subgraphDeploymentId = ethers.keccak256(ethers.toUtf8Bytes('test-subgraph-deployment')) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Legacy Allocation Migration', () => { + it('should migrate legacy allocation', async () => { + // Migrate legacy allocation + await subgraphService.connect(governor).migrateLegacyAllocation( + indexer.address, + allocationId, + subgraphDeploymentId, + ) + + // Verify the legacy allocation was migrated + const legacyAllocation = await subgraphService.getLegacyAllocation(allocationId) + expect(legacyAllocation.indexer).to.equal(indexer.address) + expect(legacyAllocation.subgraphDeploymentId).to.equal(subgraphDeploymentId) + }) + + it('should not allow non-owner to migrate legacy allocation', async () => { + // Attempt to migrate legacy allocation as non-owner + await expect( + subgraphService.connect(nonOwner).migrateLegacyAllocation( + indexer.address, + allocationId, + subgraphDeploymentId, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'OwnableUnauthorizedAccount', + ) + }) + + it('should not allow migrating a legacy allocation that was already migrated', async () => { + // First migration + await subgraphService.connect(governor).migrateLegacyAllocation( + indexer.address, + allocationId, + subgraphDeploymentId, + ) + + // Attempt to migrate the same allocation again + await expect( + subgraphService.connect(governor).migrateLegacyAllocation( + indexer.address, + allocationId, + subgraphDeploymentId, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'LegacyAllocationAlreadyExists', + ).withArgs(allocationId) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/during-transition-period/indexer.test.ts b/packages/subgraph-service/test/integration/during-transition-period/indexer.test.ts new file mode 100644 index 000000000..9b9da1be6 --- /dev/null +++ b/packages/subgraph-service/test/integration/during-transition-period/indexer.test.ts @@ -0,0 +1,106 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { encodeStartServiceData, generateAllocationProof } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { ISubgraphService } from '../../../typechain-types' + +import { indexers } from '../../../tasks/test/fixtures/indexers' + +describe('Indexer', () => { + let subgraphService: ISubgraphService + let snapshotId: string + let chainId: number + + // Test addresses + let governor: HardhatEthersSigner + let indexer: HardhatEthersSigner + let allocationId: string + let subgraphDeploymentId: string + let allocationPrivateKey: string + let subgraphServiceAddress: string + + const graph = hre.graph() + + before(async () => { + // Get contracts + subgraphService = graph.subgraphService.contracts.SubgraphService + + // Get governor and non-owner + governor = await graph.accounts.getGovernor() + + // Get chain id + chainId = Number((await hre.ethers.provider.getNetwork()).chainId) + + // Get subgraph service address + subgraphServiceAddress = await subgraphService.getAddress() + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Allocation', () => { + beforeEach(async () => { + // Get indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Generate test addresses + const allocation = indexerFixture.legacyAllocations[0] + allocationId = allocation.allocationID + subgraphDeploymentId = allocation.subgraphDeploymentID + allocationPrivateKey = allocation.allocationPrivateKey + }) + + it('should not be able to create an allocation with an AllocationID that already exists in HorizonStaking contract', async () => { + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Attempt to create an allocation with the same ID + const data = encodeStartServiceData(subgraphDeploymentId, 1000n, allocationId, signature) + + await expect( + subgraphService.connect(indexer).startService( + indexer.address, + data, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'LegacyAllocationAlreadyExists', + ).withArgs(allocationId) + }) + + it('should not be able to create an allocation that was already migrated by the owner', async () => { + // Migrate legacy allocation + await subgraphService.connect(governor).migrateLegacyAllocation( + indexer.address, + allocationId, + subgraphDeploymentId, + ) + + // Build allocation proof + const signature = await generateAllocationProof(indexer.address, allocationPrivateKey, subgraphServiceAddress, chainId) + + // Attempt to create the same allocation + const data = encodeStartServiceData(subgraphDeploymentId, 1000n, allocationId, signature) + + await expect( + subgraphService.connect(indexer).startService( + indexer.address, + data, + ), + ).to.be.revertedWithCustomError( + subgraphService, + 'LegacyAllocationAlreadyExists', + ).withArgs(allocationId) + }) + }) +}) diff --git a/packages/subgraph-service/test/integration/during-transition-period/legacy-dispute-manager.test.ts b/packages/subgraph-service/test/integration/during-transition-period/legacy-dispute-manager.test.ts new file mode 100644 index 000000000..03b659684 --- /dev/null +++ b/packages/subgraph-service/test/integration/during-transition-period/legacy-dispute-manager.test.ts @@ -0,0 +1,249 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import hre from 'hardhat' + +import { generateAttestationData, generateLegacyIndexingDisputeId, generateLegacyQueryDisputeId } from '@graphprotocol/toolshed' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { HorizonStaking } from '@graphprotocol/horizon' +import { IGraphToken } from '../../../typechain-types' +import type { LegacyDisputeManager } from '@graphprotocol/toolshed/deployments' +import { setGRTBalance } from '@graphprotocol/toolshed/hardhat' + +import { indexers } from '../../../tasks/test/fixtures/indexers' + +describe('Legacy Dispute Manager', () => { + let legacyDisputeManager: LegacyDisputeManager + let graphToken: IGraphToken + let staking: HorizonStaking + + let snapshotId: string + + let governor: HardhatEthersSigner + let arbitrator: HardhatEthersSigner + let indexer: HardhatEthersSigner + let fisherman: HardhatEthersSigner + + let disputeDeposit: bigint + + const graph = hre.graph() + + // We have to use Aribtrm Sepolia since we're testing an already deployed contract but running on a hardhat fork + const chainId = 421614 + + before(async () => { + governor = await graph.accounts.getGovernor() + ;[arbitrator, fisherman] = await graph.accounts.getTestAccounts() + + // Get contract instances with correct types + legacyDisputeManager = graph.subgraphService.contracts.LegacyDisputeManager + graphToken = graph.horizon.contracts.GraphToken + staking = graph.horizon.contracts.HorizonStaking + + // Set GRT balances + await setGRTBalance(graph.provider, graphToken.target, fisherman.address, ethers.parseEther('100000')) + }) + + beforeEach(async () => { + // Take a snapshot before each test + snapshotId = await ethers.provider.send('evm_snapshot', []) + + // Legacy dispute manager + disputeDeposit = ethers.parseEther('10000') + + // Set arbitrator + await legacyDisputeManager.connect(governor).setArbitrator(arbitrator.address) + }) + + afterEach(async () => { + // Revert to the snapshot after each test + await ethers.provider.send('evm_revert', [snapshotId]) + }) + + describe('Indexing Disputes', () => { + let allocationId: string + + beforeEach(async () => { + // Get Indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + allocationId = indexerFixture.legacyAllocations[0].allocationID + }) + + it('should allow creating and accepting indexing disputes', async () => { + // Create an indexing dispute + await graphToken.connect(fisherman).approve(legacyDisputeManager.target, disputeDeposit) + await legacyDisputeManager.connect(fisherman).createIndexingDispute(allocationId, disputeDeposit) + const disputeId = generateLegacyIndexingDisputeId(allocationId) + + // Verify dispute was created + const disputeExists = await legacyDisputeManager.isDisputeCreated(disputeId) + expect(disputeExists).to.be.true + + // Get state before slashing + const idxSlashingPercentage = 25000n + const indexerStakeBefore = (await staking.getServiceProvider(indexer.address)).tokensStaked + const slashedAmount = (indexerStakeBefore * idxSlashingPercentage) / 1_000_000n + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Accept the dispute + await legacyDisputeManager.connect(arbitrator).acceptDispute(disputeId) + + // Verify indexer was slashed for 2.5% of their stake + const indexerStake = (await staking.getServiceProvider(indexer.address)).tokensStaked + expect(indexerStake).to.equal(indexerStakeBefore - slashedAmount, 'Indexer stake was not slashed correctly') + + // Verify fisherman received their deposit and 50% of the slashed amount + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + slashedAmount / 2n + disputeDeposit, 'Fisherman balance was not updated correctly') + }) + }) + + describe('Query Disputes', () => { + let allocationPrivateKey: string + let subgraphDeploymentId: string + + beforeEach(async () => { + // Get Indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.legacyAllocations[0] + allocationPrivateKey = allocation.allocationPrivateKey + subgraphDeploymentId = allocation.subgraphDeploymentID + }) + + it('should allow creating and accepting query disputes', async () => { + // Create attestation data + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash = ethers.keccak256(ethers.toUtf8Bytes('test-response')) + const attestationData = await generateAttestationData( + queryHash, + responseHash, + subgraphDeploymentId, + allocationPrivateKey, + await legacyDisputeManager.getAddress(), + chainId, + ) + + // Create a query dispute + await graphToken.connect(fisherman).approve(legacyDisputeManager.target, disputeDeposit) + await legacyDisputeManager.connect(fisherman).createQueryDispute(attestationData, disputeDeposit) + const disputeId = generateLegacyQueryDisputeId(queryHash, + responseHash, + subgraphDeploymentId, + indexer.address, + fisherman.address + ) + + // Verify dispute was created + const disputeExists = await legacyDisputeManager.isDisputeCreated(disputeId) + expect(disputeExists).to.be.true + + // Get state before slashing + const qrySlashingPercentage = 25000n + const indexerStakeBefore = (await staking.getServiceProvider(indexer.address)).tokensStaked + const slashedAmount = (indexerStakeBefore * qrySlashingPercentage) / 1_000_000n + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Accept the dispute + await legacyDisputeManager.connect(arbitrator).acceptDispute(disputeId) + + // Verify indexer was slashed for 2.5% of their stake + const indexerStake = (await staking.getServiceProvider(indexer.address)).tokensStaked + expect(indexerStake).to.equal(indexerStakeBefore - slashedAmount, 'Indexer stake was not slashed correctly') + + // Verify fisherman received their deposit and 50% of the slashed amount + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal(fishermanBalanceBefore + slashedAmount / 2n + disputeDeposit, 'Fisherman balance was not updated correctly') + }) + }) + + describe('Query Dispute Conflict', () => { + let allocationPrivateKey: string + let subgraphDeploymentId: string + + beforeEach(async () => { + // Get Indexer + const indexerFixture = indexers[0] + indexer = await ethers.getSigner(indexerFixture.address) + + // Get allocation + const allocation = indexerFixture.legacyAllocations[0] + allocationPrivateKey = allocation.allocationPrivateKey + subgraphDeploymentId = allocation.subgraphDeploymentID + }) + + it('should allow creating conflicting query disputes', async () => { + // Create first attestation data + const queryHash = ethers.keccak256(ethers.toUtf8Bytes('test-query')) + const responseHash1 = ethers.keccak256(ethers.toUtf8Bytes('test-response-1')) + const attestationData1 = await generateAttestationData( + queryHash, + responseHash1, + subgraphDeploymentId, + allocationPrivateKey, + await legacyDisputeManager.getAddress(), + chainId, + ) + + // Create second attestation data with different query/response + const responseHash2 = ethers.keccak256(ethers.toUtf8Bytes('test-response-2')) + const attestationData2 = await generateAttestationData( + queryHash, + responseHash2, + subgraphDeploymentId, + allocationPrivateKey, + await legacyDisputeManager.getAddress(), + chainId, + ) + + // Create query dispute + await legacyDisputeManager.connect(fisherman).createQueryDisputeConflict(attestationData1, attestationData2) + + // Create dispute IDs + const disputeId1 = generateLegacyQueryDisputeId( + queryHash, + responseHash1, + subgraphDeploymentId, + indexer.address, + fisherman.address + ) + const disputeId2 = generateLegacyQueryDisputeId( + queryHash, + responseHash2, + subgraphDeploymentId, + indexer.address, + fisherman.address + ) + + // Verify both disputes were created + const disputeExists1 = await legacyDisputeManager.isDisputeCreated(disputeId1) + const disputeExists2 = await legacyDisputeManager.isDisputeCreated(disputeId2) + expect(disputeExists1).to.be.true + expect(disputeExists2).to.be.true + + // Get state before slashing + const qrySlashingPercentage = 25000n + const indexerStakeBefore = (await staking.getServiceProvider(indexer.address)).tokensStaked + const slashedAmount = (indexerStakeBefore * qrySlashingPercentage) / 1_000_000n + const fishermanBalanceBefore = await graphToken.balanceOf(fisherman.address) + + // Accept one dispute + await legacyDisputeManager.connect(arbitrator).acceptDispute(disputeId1) + + // Verify indexer was slashed for 2.5% of their stake + const indexerStake = (await staking.getServiceProvider(indexer.address)).tokensStaked + expect(indexerStake).to.equal(indexerStakeBefore - slashedAmount, 'Indexer stake was not slashed correctly') + + // Verify fisherman received 50% of the slashed amount + const fishermanBalance = await graphToken.balanceOf(fisherman.address) + expect(fishermanBalance).to.equal( + fishermanBalanceBefore + slashedAmount / 2n, + 'Fisherman balance was not updated correctly', + ) + }) + }) +}) diff --git a/packages/subgraph-service/test/SubgraphBaseTest.t.sol b/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol similarity index 98% rename from packages/subgraph-service/test/SubgraphBaseTest.t.sol rename to packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol index 1a5929c60..0f59013be 100644 --- a/packages/subgraph-service/test/SubgraphBaseTest.t.sol +++ b/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol @@ -18,8 +18,8 @@ import { PaymentsEscrow } from "@graphprotocol/horizon/contracts/payments/Paymen import { UnsafeUpgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; import { Constants } from "./utils/Constants.sol"; -import { DisputeManager } from "../contracts/DisputeManager.sol"; -import { SubgraphService } from "../contracts/SubgraphService.sol"; +import { DisputeManager } from "../../contracts/DisputeManager.sol"; +import { SubgraphService } from "../../contracts/SubgraphService.sol"; import { Users } from "./utils/Users.sol"; import { Utils } from "./utils/Utils.sol"; diff --git a/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol similarity index 99% rename from packages/subgraph-service/test/disputeManager/DisputeManager.t.sol rename to packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol index 4ea784e46..ebe35e4fa 100644 --- a/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol @@ -5,10 +5,9 @@ import "forge-std/Test.sol"; import { MathUtils } from "@graphprotocol/horizon/contracts/libraries/MathUtils.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../contracts/libraries/Attestation.sol"; -import { Allocation } from "../../contracts/libraries/Allocation.sol"; -import { IDisputeManager } from "../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { Attestation } from "../../../contracts/libraries/Attestation.sol"; +import { Allocation } from "../../../contracts/libraries/Allocation.sol"; import { SubgraphServiceSharedTest } from "../shared/SubgraphServiceShared.t.sol"; diff --git a/packages/subgraph-service/test/disputeManager/constructor/constructor.t.sol b/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol similarity index 97% rename from packages/subgraph-service/test/disputeManager/constructor/constructor.t.sol rename to packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol index ffdfc3179..d157b8fef 100644 --- a/packages/subgraph-service/test/disputeManager/constructor/constructor.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol @@ -6,9 +6,9 @@ import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; import { GraphDirectory } from "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol"; import { UnsafeUpgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; -import { DisputeManager } from "../../../contracts/DisputeManager.sol"; +import { DisputeManager } from "../../../../contracts/DisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; contract DisputeManagerConstructorTest is DisputeManagerTest { using PPMMath for uint256; diff --git a/packages/subgraph-service/test/disputeManager/disputes/disputes.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol similarity index 96% rename from packages/subgraph-service/test/disputeManager/disputes/disputes.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol index efcf49bc4..71d40e055 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/disputes.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol similarity index 97% rename from packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol index 901508bda..e06f105b8 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol similarity index 97% rename from packages/subgraph-service/test/disputeManager/disputes/indexing/cancel.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol index 977d1abf2..8b8e0f587 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol similarity index 98% rename from packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol index b2ca9b8de..fdf803d5d 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol similarity index 92% rename from packages/subgraph-service/test/disputeManager/disputes/indexing/draw.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol index 0f7dc6699..62a384b52 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingDrawDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol similarity index 92% rename from packages/subgraph-service/test/disputeManager/disputes/indexing/reject.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol index ed91c70c0..a084bee14 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingRejectDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/legacy.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol similarity index 92% rename from packages/subgraph-service/test/disputeManager/disputes/legacy.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol index f3055869a..6ff14583f 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/legacy.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../contracts/libraries/Attestation.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerLegacyDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol similarity index 98% rename from packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol index 86405ad43..ed70b6bc9 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol similarity index 96% rename from packages/subgraph-service/test/disputeManager/disputes/query/cancel.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol index 09374016a..484b1ac4a 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol similarity index 97% rename from packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol index 020749a30..6abd890a2 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol similarity index 90% rename from packages/subgraph-service/test/disputeManager/disputes/query/draw.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol index 59eaee991..8f1c9c4d1 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryDrawDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol similarity index 90% rename from packages/subgraph-service/test/disputeManager/disputes/query/reject.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol index 4752ed423..0e03b05ec 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryRejectDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol similarity index 98% rename from packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol index 6f805794a..35850ebe3 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol similarity index 98% rename from packages/subgraph-service/test/disputeManager/disputes/queryConflict/cancel.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol index 1d8d3c6eb..94b83b699 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictCancelDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol similarity index 96% rename from packages/subgraph-service/test/disputeManager/disputes/queryConflict/create.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol index 4b185a850..684c10ec7 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictCreateDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol similarity index 95% rename from packages/subgraph-service/test/disputeManager/disputes/queryConflict/draw.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol index 35875408b..e7c7622c7 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictDrawDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol similarity index 93% rename from packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol rename to packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol index 3b56a05d8..cdfed4ecf 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictRejectDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/disputeManager/governance/arbitrator.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol similarity index 92% rename from packages/subgraph-service/test/disputeManager/governance/arbitrator.t.sol rename to packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol index 34b1f1322..dac0f7c74 100644 --- a/packages/subgraph-service/test/disputeManager/governance/arbitrator.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol similarity index 93% rename from packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol rename to packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol index c7221e690..cdc4a6bc1 100644 --- a/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/disputeManager/governance/fishermanRewardCut.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol similarity index 93% rename from packages/subgraph-service/test/disputeManager/governance/fishermanRewardCut.t.sol rename to packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol index b274ff6df..a949f6732 100644 --- a/packages/subgraph-service/test/disputeManager/governance/fishermanRewardCut.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/disputeManager/governance/maxSlashingCut.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol similarity index 93% rename from packages/subgraph-service/test/disputeManager/governance/maxSlashingCut.t.sol rename to packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol index 5f0820241..5b3ce35c5 100644 --- a/packages/subgraph-service/test/disputeManager/governance/maxSlashingCut.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol similarity index 88% rename from packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol rename to packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol index 2934af577..286f797ae 100644 --- a/packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerGovernanceSubgraphService is DisputeManagerTest { diff --git a/packages/subgraph-service/test/mocks/MockCuration.sol b/packages/subgraph-service/test/unit/mocks/MockCuration.sol similarity index 100% rename from packages/subgraph-service/test/mocks/MockCuration.sol rename to packages/subgraph-service/test/unit/mocks/MockCuration.sol diff --git a/packages/subgraph-service/test/mocks/MockEpochManager.sol b/packages/subgraph-service/test/unit/mocks/MockEpochManager.sol similarity index 100% rename from packages/subgraph-service/test/mocks/MockEpochManager.sol rename to packages/subgraph-service/test/unit/mocks/MockEpochManager.sol diff --git a/packages/subgraph-service/test/mocks/MockGRTToken.sol b/packages/subgraph-service/test/unit/mocks/MockGRTToken.sol similarity index 100% rename from packages/subgraph-service/test/mocks/MockGRTToken.sol rename to packages/subgraph-service/test/unit/mocks/MockGRTToken.sol diff --git a/packages/subgraph-service/test/mocks/MockRewardsManager.sol b/packages/subgraph-service/test/unit/mocks/MockRewardsManager.sol similarity index 96% rename from packages/subgraph-service/test/mocks/MockRewardsManager.sol rename to packages/subgraph-service/test/unit/mocks/MockRewardsManager.sol index 3279e114c..68175d535 100644 --- a/packages/subgraph-service/test/mocks/MockRewardsManager.sol +++ b/packages/subgraph-service/test/unit/mocks/MockRewardsManager.sol @@ -102,4 +102,8 @@ contract MockRewardsManager is IRewardsManager { subgraphs[_subgraphDeploymentID] = true; return 0; } + + function subgraphService() external pure returns (address) { + return address(0x00); + } } diff --git a/packages/subgraph-service/test/shared/HorizonStakingShared.t.sol b/packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol similarity index 100% rename from packages/subgraph-service/test/shared/HorizonStakingShared.t.sol rename to packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol diff --git a/packages/subgraph-service/test/shared/SubgraphServiceShared.t.sol b/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol similarity index 95% rename from packages/subgraph-service/test/shared/SubgraphServiceShared.t.sol rename to packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol index 861e3b688..a21a00407 100644 --- a/packages/subgraph-service/test/shared/SubgraphServiceShared.t.sol +++ b/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol @@ -3,11 +3,10 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { MathUtils } from "@graphprotocol/horizon/contracts/libraries/MathUtils.sol"; -import { Allocation } from "../../contracts/libraries/Allocation.sol"; -import { AllocationManager } from "../../contracts/utilities/AllocationManager.sol"; +import { Allocation } from "../../../contracts/libraries/Allocation.sol"; +import { AllocationManager } from "../../../contracts/utilities/AllocationManager.sol"; import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; -import { ISubgraphService } from "../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; import { HorizonStakingSharedTest } from "./HorizonStakingShared.t.sol"; diff --git a/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol b/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol similarity index 98% rename from packages/subgraph-service/test/subgraphService/SubgraphService.t.sol rename to packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol index 0d30baa2e..3b1a74e18 100644 --- a/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol @@ -13,10 +13,10 @@ import { LinkedList } from "@graphprotocol/horizon/contracts/libraries/LinkedLis import { IDataServiceFees } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol"; import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.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 { 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 { SubgraphServiceSharedTest } from "../shared/SubgraphServiceShared.t.sol"; contract SubgraphServiceTest is SubgraphServiceSharedTest { diff --git a/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol similarity index 95% rename from packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol rename to packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol index 993b3f148..9acfbc37f 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol @@ -6,8 +6,8 @@ import "forge-std/Test.sol"; import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { Allocation } from "../../../contracts/libraries/Allocation.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/allocation/overDelegated.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol similarity index 93% rename from packages/subgraph-service/test/subgraphService/allocation/overDelegated.t.sol rename to packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol index 60149be19..0113b36f2 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/overDelegated.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol @@ -6,8 +6,8 @@ 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 { Allocation } from "../../../contracts/libraries/Allocation.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationOverDelegatedTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/allocation/resize.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol similarity index 94% rename from packages/subgraph-service/test/subgraphService/allocation/resize.t.sol rename to packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol index 6ff7add3f..c9984bdba 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/resize.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol @@ -3,10 +3,10 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Allocation } from "../../../contracts/libraries/Allocation.sol"; -import { AllocationManager } from "../../../contracts/utilities/AllocationManager.sol"; +import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; +import { AllocationManager } from "../../../../contracts/utilities/AllocationManager.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; contract SubgraphServiceAllocationResizeTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/allocation/start.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol similarity index 96% rename from packages/subgraph-service/test/subgraphService/allocation/start.t.sol rename to packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol index b568bd6a3..2f132e132 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/start.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol @@ -7,10 +7,10 @@ import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.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 { 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 SubgraphServiceAllocationStartTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/allocation/stop.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol similarity index 88% rename from packages/subgraph-service/test/subgraphService/allocation/stop.t.sol rename to packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol index d861371e5..2c4391cb2 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/stop.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol @@ -7,10 +7,10 @@ import { IDataService } from "@graphprotocol/horizon/contracts/data-service/inte 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 { 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 SubgraphServiceAllocationStopTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/collect/collect.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol similarity index 90% rename from packages/subgraph-service/test/subgraphService/collect/collect.t.sol rename to packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol index 33ba00ff6..aff11d578 100644 --- a/packages/subgraph-service/test/subgraphService/collect/collect.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceCollectTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/collect/indexing/indexing.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol similarity index 97% rename from packages/subgraph-service/test/subgraphService/collect/indexing/indexing.t.sol rename to packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol index 580e5eb3c..6d2d18571 100644 --- a/packages/subgraph-service/test/subgraphService/collect/indexing/indexing.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol @@ -5,9 +5,9 @@ import "forge-std/Test.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; -import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; +import { Allocation } from "../../../../../contracts/libraries/Allocation.sol"; contract SubgraphServiceCollectIndexingTest is SubgraphServiceTest { /* * TESTS diff --git a/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol similarity index 99% rename from packages/subgraph-service/test/subgraphService/collect/query/query.t.sol rename to packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol index d5913be51..433e32375 100644 --- a/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol @@ -9,7 +9,7 @@ import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol" import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; contract SubgraphServiceRegisterTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/governance/legacy.t.sol b/packages/subgraph-service/test/unit/subgraphService/governance/legacy.t.sol similarity index 100% rename from packages/subgraph-service/test/subgraphService/governance/legacy.t.sol rename to packages/subgraph-service/test/unit/subgraphService/governance/legacy.t.sol diff --git a/packages/subgraph-service/test/subgraphService/governance/stakeToFeesRatio.t.sol b/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol similarity index 94% rename from packages/subgraph-service/test/subgraphService/governance/stakeToFeesRatio.t.sol rename to packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol index d1aca8155..a6ce1ae1d 100644 --- a/packages/subgraph-service/test/subgraphService/governance/stakeToFeesRatio.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/subgraphService/provider/register.t.sol b/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol similarity index 97% rename from packages/subgraph-service/test/subgraphService/provider/register.t.sol rename to packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol index e64baa060..333f03f10 100644 --- a/packages/subgraph-service/test/subgraphService/provider/register.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProviderRegisterTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/provider/rewardsDestination.t.sol b/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol similarity index 90% rename from packages/subgraph-service/test/subgraphService/provider/rewardsDestination.t.sol rename to packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol index 600f655b2..ab8f2e55c 100644 --- a/packages/subgraph-service/test/subgraphService/provider/rewardsDestination.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProviderRewardsDestinationTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/subgraphService/provision/accept.t.sol b/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol similarity index 98% rename from packages/subgraph-service/test/subgraphService/provision/accept.t.sol rename to packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol index a54ff7db2..fb21c7ce0 100644 --- a/packages/subgraph-service/test/subgraphService/provision/accept.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProvisionAcceptTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/utils/Constants.sol b/packages/subgraph-service/test/unit/utils/Constants.sol similarity index 100% rename from packages/subgraph-service/test/utils/Constants.sol rename to packages/subgraph-service/test/unit/utils/Constants.sol diff --git a/packages/subgraph-service/test/utils/Users.sol b/packages/subgraph-service/test/unit/utils/Users.sol similarity index 100% rename from packages/subgraph-service/test/utils/Users.sol rename to packages/subgraph-service/test/unit/utils/Users.sol diff --git a/packages/subgraph-service/test/utils/Utils.sol b/packages/subgraph-service/test/unit/utils/Utils.sol similarity index 100% rename from packages/subgraph-service/test/utils/Utils.sol rename to packages/subgraph-service/test/unit/utils/Utils.sol diff --git a/packages/token-distribution/package.json b/packages/token-distribution/package.json index 097bc13e0..a814a55e5 100644 --- a/packages/token-distribution/package.json +++ b/packages/token-distribution/package.json @@ -1,18 +1,19 @@ { "name": "@graphprotocol/token-distribution", + "private": true, "version": "1.2.1", "description": "Graph Token Distribution", "main": "index.js", "scripts": { "prepublishOnly": "scripts/prepublish", "build": "scripts/build", - "clean": "rm -rf build/ cache/ dist/ && hardhat clean", + "clean": "rm -rf build/ cache/ dist/", "compile": "hardhat compile --show-stack-traces", - "deploy": "yarn run build && hardhat deploy", + "deploy": "pnpm run build && hardhat deploy", "test": "scripts/test", "test:gas": "RUN_EVM=true REPORT_GAS=true scripts/test", "test:coverage": "scripts/coverage", - "lint": "yarn run lint:ts && yarn run lint:sol", + "lint": "pnpm run lint:ts && pnpm run lint:sol", "lint:ts": "eslint '**/*.{js,ts}' --fix", "lint:sol": "prettier --write contracts/**/*.sol && solhint --fix contracts/**/*.sol --config node_modules/solhint-graph-config/index.js", "security": "scripts/security", diff --git a/packages/token-distribution/scripts/build b/packages/token-distribution/scripts/build index 5f63fc2ee..404e8b5f7 100755 --- a/packages/token-distribution/scripts/build +++ b/packages/token-distribution/scripts/build @@ -2,10 +2,11 @@ set -eo pipefail + if [ -z "${STUDIO_API_KEY}" ]; then echo "Warning: STUDIO_API_KEY is not set. Skipping build steps. Some functionality may be limited." exit 0 fi -yarn graphclient build -yarn run compile \ No newline at end of file +pnpm graphclient build +pnpm run compile diff --git a/packages/token-distribution/scripts/coverage b/packages/token-distribution/scripts/coverage index 9252ae7b6..ebc33e4a5 100755 --- a/packages/token-distribution/scripts/coverage +++ b/packages/token-distribution/scripts/coverage @@ -2,5 +2,5 @@ set -eo pipefail -yarn run compile +pnpm run compile npx hardhat coverage $@ diff --git a/packages/token-distribution/scripts/prepublish b/packages/token-distribution/scripts/prepublish index 73c84821d..75779693d 100755 --- a/packages/token-distribution/scripts/prepublish +++ b/packages/token-distribution/scripts/prepublish @@ -5,8 +5,8 @@ TYPECHAIN_DIR=dist/types set -eo pipefail # Build contracts -yarn run clean -yarn run build +pnpm run clean +pnpm run build # Refresh distribution folder rm -rf dist && mkdir -p dist diff --git a/packages/token-distribution/scripts/security b/packages/token-distribution/scripts/security index 90cb4c2f0..9d91f39f2 100755 --- a/packages/token-distribution/scripts/security +++ b/packages/token-distribution/scripts/security @@ -9,7 +9,7 @@ mkdir -p reports pip3 install --user slither-analyzer && \ -yarn run build && \ +pnpm run build && \ echo "Analyzing contracts..." slither . &> reports/analyzer-report.log && \ diff --git a/packages/token-distribution/scripts/test b/packages/token-distribution/scripts/test index 412fc8201..865f4a371 100755 --- a/packages/token-distribution/scripts/test +++ b/packages/token-distribution/scripts/test @@ -37,7 +37,7 @@ fi mkdir -p reports -yarn run compile +pnpm run compile if [ "$RUN_EVM" = true ]; then # Run using the standalone evm instance diff --git a/packages/toolshed/CHANGELOG.md b/packages/toolshed/CHANGELOG.md new file mode 100644 index 000000000..75f70d2c6 --- /dev/null +++ b/packages/toolshed/CHANGELOG.md @@ -0,0 +1,124 @@ +# @graphprotocol/toolshed + +## 0.3.2 + +### Patch Changes + +- Fix package exports + - @graphprotocol/horizon@0.3.2 + - @graphprotocol/subgraph-service@0.3.4 + +## 0.3.1 + +### Patch Changes + +- chore: fix package visibility +- Updated dependencies + - @graphprotocol/subgraph-service@0.3.4 + - @graphprotocol/contracts@7.1.2 + - @graphprotocol/horizon@0.3.2 + +## 0.3.0 + +### Minor Changes + +- Proper path resolution for contract artifacts + +### Patch Changes + +- @graphprotocol/horizon@0.3.1 +- @graphprotocol/subgraph-service@0.3.3 + +## 0.2.6 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/subgraph-service@0.3.3 + - @graphprotocol/horizon@0.3.1 + +## 0.2.5 + +### Patch Changes + +- Fix IServiceRegistry import in subgraph service toolshed deployment +- Updated dependencies + - @graphprotocol/subgraph-service@0.3.2 + - @graphprotocol/contracts@7.1.1 + - @graphprotocol/horizon@0.3.1 + +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.1.0 + - @graphprotocol/horizon@0.3.1 + - @graphprotocol/subgraph-service@0.3.1 + +## 0.2.3 + +### Patch Changes + +- Use proper types for Curation contract, add epochLength to EpochManager import in Horizon. +- Updated dependencies + - @graphprotocol/subgraph-service@0.3.1 + - @graphprotocol/horizon@0.3.1 + +## 0.2.2 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/subgraph-service@0.3.0 + - @graphprotocol/horizon@0.3.0 + +## 0.2.1 + +### Patch Changes + +- Pin ethers version +- Updated dependencies + - @graphprotocol/subgraph-service@0.2.1 + - @graphprotocol/horizon@0.2.1 + +## 0.2.0 + +### Minor Changes + +- Add connectContracts utility functions to deployments + +### Patch Changes + +- @graphprotocol/horizon@0.2.0 +- @graphprotocol/subgraph-service@0.2.0 + +## 0.1.2 + +### Patch Changes + +- 585cf27: Allow loading empty address books for subgraph service +- Updated dependencies + - @graphprotocol/subgraph-service@0.2.0 + - @graphprotocol/horizon@0.2.0 + +## 0.1.1 + +### Patch Changes + +- Publish fork 1 deployment +- Updated dependencies + - @graphprotocol/subgraph-service@0.1.1 + - @graphprotocol/horizon@0.1.1 + +## 0.1.0 + +### Minor Changes + +- Publish initial dev versions + +### Patch Changes + +- Updated dependencies + - @graphprotocol/subgraph-service@0.1.0 + - @graphprotocol/horizon@0.1.0 diff --git a/packages/toolshed/README.md b/packages/toolshed/README.md new file mode 100644 index 000000000..c4a0eaabb --- /dev/null +++ b/packages/toolshed/README.md @@ -0,0 +1,34 @@ +# @graphprotocol/toolshed + +A collection of tools and utilities for The Graph Protocol's TypeScript components. This package provides essential functionality for working with The Graph Protocol's smart contracts, deployments, and development tools. + +## Features + +- **Core**: Essential tools and functions for working with The Graph Protocol +- **Deployment Tools**: Utilities for interacting with protocol deployments +- **Hardhat Integration**: Tools and plugins for Hardhat development +- **Utility Functions**: Helper functions for common operations + +## Installation + +```bash +pnpm add @graphprotocol/toolshed +``` + +## Usage + +The package is organized into several modules that can be imported separately: + +```typescript +// Import core functionality +import { generateAllocationProof } from '@graphprotocol/toolshed'; + +// Import deployment +import { loadGraphHorizon } from '@graphprotocol/toolshed/deployments/horizon'; + +// Import Hardhat utilities +import { hardhatBaseConfig } from '@graphprotocol/toolshed/hardhat'; + +// Import utility functions +import { printBanner } from '@graphprotocol/toolshed/utils'; +``` \ No newline at end of file diff --git a/packages/toolshed/eslint.config.js b/packages/toolshed/eslint.config.js new file mode 100644 index 000000000..cf12d9860 --- /dev/null +++ b/packages/toolshed/eslint.config.js @@ -0,0 +1,3 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const config = require('eslint-graph-config') +module.exports = config.default diff --git a/packages/toolshed/package.json b/packages/toolshed/package.json new file mode 100644 index 000000000..345af1ea4 --- /dev/null +++ b/packages/toolshed/package.json @@ -0,0 +1,61 @@ +{ + "name": "@graphprotocol/toolshed", + "version": "0.3.2", + "publishConfig": { + "access": "public" + }, + "description": "A collection of tools and utilities for the Graph Protocol Typescript components", + "author": "Tomás Migone ", + "license": "MIT", + "main": "./dist/core/index.js", + "types": "./dist/core/index.d.ts", + "exports": { + ".": { + "types": "./dist/core/index.d.ts", + "default": "./dist/core/index.js" + }, + "./deployments": { + "types": "./dist/deployments/index.d.ts", + "default": "./dist/deployments/index.js" + }, + "./hardhat": { + "types": "./dist/hardhat/index.d.ts", + "default": "./dist/hardhat/index.js" + }, + "./utils": { + "types": "./dist/utils/index.d.ts", + "default": "./dist/utils/index.js" + } + }, + "scripts": { + "build": "tsc", + "lint": "eslint '**/*.{js,ts}' --fix" + }, + "keywords": [ + "ethereum", + "smart-contracts", + "hardhat", + "hardhat-plugin", + "graph", + "graph-protocol", + "horizon" + ], + "dependencies": { + "@graphprotocol/contracts": "workspace:^", + "@graphprotocol/horizon": "workspace:^", + "@graphprotocol/subgraph-service": "workspace:^", + "@nomicfoundation/hardhat-ethers": "3.0.8", + "debug": "^4.4.0", + "ethers": "6.13.7", + "glob": "^11.0.1", + "hardhat": "^2.22.16", + "json5": "^2.2.3" + }, + "devDependencies": { + "@types/debug": "^4.1.12", + "@types/json5": "^2.2.0", + "eslint": "^8.56.0", + "eslint-graph-config": "workspace:^", + "typescript": "^5.0.0" + } +} diff --git a/packages/toolshed/src/core/abi.ts b/packages/toolshed/src/core/abi.ts new file mode 100644 index 000000000..f90664ee7 --- /dev/null +++ b/packages/toolshed/src/core/abi.ts @@ -0,0 +1,12 @@ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function mergeABIs(abi1: any[], abi2: any[]) { + for (const item of abi2) { + if (abi1.find(v => v.name === item.name) === undefined) { + abi1.push(item) + } + } + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return abi1 +} diff --git a/packages/toolshed/src/core/accounts.ts b/packages/toolshed/src/core/accounts.ts new file mode 100644 index 000000000..d88081f56 --- /dev/null +++ b/packages/toolshed/src/core/accounts.ts @@ -0,0 +1,99 @@ +import { setGRTBalance } from '../hardhat' +import { TEN_MILLION } from './constants' +import { toBeHex } from 'ethers' + +import type { Addressable } from 'ethers' +import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +// The Graph convention for account derivation is: +// 0: Deployer +// 1: Governor +// 2: Arbitrator +// 3: Pause guardian +// 4: Subgraph Availability Oracle +// 5: Gateway/payer +// 6+: Test accounts + +enum GraphAccountIndex { + Deployer = 0, + Governor = 1, + Arbitrator = 2, + PauseGuardian = 3, + SubgraphAvailabilityOracle = 4, + Gateway = 5, +} + +export type GraphAccounts = { + deployer: HardhatEthersSigner + governor: HardhatEthersSigner + arbitrator: HardhatEthersSigner + pauseGuardian: HardhatEthersSigner + subgraphAvailabilityOracle: HardhatEthersSigner + gateway: HardhatEthersSigner + test: HardhatEthersSigner[] +} + +export async function getAccounts(provider: HardhatEthersProvider, grtTokenAddress?: string | Addressable): Promise { + return { + deployer: await getDeployer(provider, GraphAccountIndex.Deployer, grtTokenAddress), + governor: await getGovernor(provider, GraphAccountIndex.Governor, grtTokenAddress), + arbitrator: await getArbitrator(provider, GraphAccountIndex.Arbitrator, grtTokenAddress), + pauseGuardian: await getPauseGuardian(provider, GraphAccountIndex.PauseGuardian, grtTokenAddress), + subgraphAvailabilityOracle: await getSubgraphAvailabilityOracle(provider, GraphAccountIndex.SubgraphAvailabilityOracle, grtTokenAddress), + gateway: await getGateway(provider, GraphAccountIndex.Gateway, grtTokenAddress), + test: await getTestAccounts(provider, grtTokenAddress), + } +} + +export async function getDeployer(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.Deployer, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getGovernor(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.Governor, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getArbitrator(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.Arbitrator, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getPauseGuardian(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.PauseGuardian, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getSubgraphAvailabilityOracle(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.SubgraphAvailabilityOracle, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getGateway(provider: HardhatEthersProvider, accountIndex = GraphAccountIndex.Gateway, grtTokenAddress?: string | Addressable) { + return _getAccount(provider, accountIndex, grtTokenAddress) +} + +export async function getTestAccounts(provider: HardhatEthersProvider, grtTokenAddress?: string | Addressable) { + const accounts = await provider.send('eth_accounts', []) as string[] + const numReservedAccounts = Object.values(GraphAccountIndex).filter(v => typeof v === 'number').length + if (accounts.length < numReservedAccounts) { + return [] + } + return await Promise.all( + accounts + .slice(numReservedAccounts) + .map(async account => await _getAccount(provider, account, grtTokenAddress)), + ) +} + +async function _getAccount(provider: HardhatEthersProvider, accountIndex: number | string, grtTokenAddress?: string | Addressable) { + const account = await provider.getSigner(accountIndex) + + // If the chain is local, set balance to 10M GRT + if (grtTokenAddress) { + const chainId = await provider.send('eth_chainId', []) as string + const isLocal = [toBeHex(1337), toBeHex(31337)].includes(toBeHex(BigInt(chainId))) + if (isLocal) { + await setGRTBalance(provider, grtTokenAddress, account.address, TEN_MILLION) + } + } + + return account +} diff --git a/packages/toolshed/src/core/allocation.ts b/packages/toolshed/src/core/allocation.ts new file mode 100644 index 000000000..28bb45e4e --- /dev/null +++ b/packages/toolshed/src/core/allocation.ts @@ -0,0 +1,48 @@ +import { ethers, id } from 'ethers' +import { randomHexBytes } from '../lib/bytes' + +// For legacy allocations in the staking contract +export async function generateLegacyAllocationProof(indexerAddress: string, allocationPrivateKey: string) { + const wallet = new ethers.Wallet(allocationPrivateKey) + const messageHash = ethers.solidityPackedKeccak256( + ['address', 'address'], + [indexerAddress, wallet.address], + ) + const messageHashBytes = ethers.getBytes(messageHash) + return wallet.signMessage(messageHashBytes) +} + +export const EIP712_ALLOCATION_PROOF_TYPEHASH = id('AllocationIdProof(address indexer,address allocationId)') + +export const EIP712_ALLOCATION_ID_PROOF_TYPES = { + AllocationIdProof: [ + { name: 'indexer', type: 'address' }, + { name: 'allocationId', type: 'address' }, + ], +} + +// For new allocations in the subgraph service +export async function generateAllocationProof( + indexerAddress: string, + allocationPrivateKey: string, + subgraphServiceAddress: string, + chainId: number, +) { + const wallet = new ethers.Wallet(allocationPrivateKey) + + const domain = { + name: 'SubgraphService', + version: '1.0', + chainId: chainId, + verifyingContract: subgraphServiceAddress, + } + + return wallet.signTypedData(domain, EIP712_ALLOCATION_ID_PROOF_TYPES, { + indexer: indexerAddress, + allocationId: wallet.address, + }) +} + +export function randomAllocationMetadata() { + return randomHexBytes(32) +} diff --git a/packages/toolshed/src/core/attestations.ts b/packages/toolshed/src/core/attestations.ts new file mode 100644 index 000000000..7f50c8846 --- /dev/null +++ b/packages/toolshed/src/core/attestations.ts @@ -0,0 +1,62 @@ +import { ethers, id, Wallet } from 'ethers' + +export const EIP712_DISPUTE_MANAGER_DOMAIN_SALT = ethers.getBytes('0xa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c2') + +export const EIP712_ATTESTATION_PROOF_TYPEHASH = id('Receipt(bytes32 requestCID,bytes32 responseCID,bytes32 subgraphDeploymentID)') +export const EIP712_ATTESTATION_PROOF_TYPES = { + Receipt: [ + { name: 'requestCID', type: 'bytes32' }, + { name: 'responseCID', type: 'bytes32' }, + { name: 'subgraphDeploymentID', type: 'bytes32' }, + ], +} + +/** + * Creates an attestation data for a given request and response CIDs. + * @param requestCID The request CID. + * @param responseCID The response CID. + * @param signerPrivateKey The private key of the signer. + * @param subgraphDeploymentId The subgraph deployment ID. + * @param disputeManagerAddress The address of the dispute manager contract. + * @param chainId The chain ID. + * @returns The attestation data. + */ +export async function generateAttestationData( + requestCID: string, + responseCID: string, + subgraphDeploymentId: string, + signerPrivateKey: string, + disputeManagerAddress: string, + chainId: number, +): Promise { + // Create the domain for the EIP712 signature + const domain = { + name: 'Graph Protocol', + version: '0', + chainId: chainId, + verifyingContract: disputeManagerAddress, + salt: EIP712_DISPUTE_MANAGER_DOMAIN_SALT, + } + + // Create receipt struct + const receipt = { + requestCID: ethers.hexlify(ethers.getBytes(requestCID)), + responseCID: ethers.hexlify(ethers.getBytes(responseCID)), + subgraphDeploymentID: ethers.hexlify(ethers.getBytes(subgraphDeploymentId)), + } + + // Sign the receipt hash with the allocation private key + const signer = new Wallet(signerPrivateKey) + const signature = await signer.signTypedData(domain, EIP712_ATTESTATION_PROOF_TYPES, receipt) + const sig = ethers.Signature.from(signature) + + // Concatenate the bytes directly + return ethers.concat([ + ethers.getBytes(requestCID), + ethers.getBytes(responseCID), + ethers.getBytes(subgraphDeploymentId), + ethers.getBytes(sig.r), + ethers.getBytes(sig.s), + new Uint8Array([sig.v]), + ]) +} diff --git a/packages/toolshed/src/core/constants.ts b/packages/toolshed/src/core/constants.ts new file mode 100644 index 000000000..7bfe2cf5f --- /dev/null +++ b/packages/toolshed/src/core/constants.ts @@ -0,0 +1,9 @@ +import { ethers } from 'ethers' + +export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' + +export const ONE_THOUSAND = ethers.parseEther('1000') +export const TEN_THOUSAND = ethers.parseEther('10000') +export const ONE_HUNDRED_THOUSAND = ethers.parseEther('100000') +export const ONE_MILLION = ethers.parseEther('1000000') +export const TEN_MILLION = ethers.parseEther('10000000') diff --git a/packages/toolshed/src/core/disputes.ts b/packages/toolshed/src/core/disputes.ts new file mode 100644 index 000000000..0b3495b58 --- /dev/null +++ b/packages/toolshed/src/core/disputes.ts @@ -0,0 +1,27 @@ +import { ethers } from 'ethers' + +// For disputes in the legacy dispute manager contract +export function generateLegacyIndexingDisputeId(allocationId: string) { + return ethers.solidityPackedKeccak256(['address'], [allocationId]) +} + +export function generateLegacyQueryDisputeId( + queryHash: string, + responseHash: string, + subgraphDeploymentId: string, + indexer: string, + fisherman: string, +) { + return ethers.solidityPackedKeccak256( + ['bytes32', 'bytes32', 'bytes32', 'address', 'address'], + [queryHash, responseHash, subgraphDeploymentId, indexer, fisherman], + ) +} + +// For legacy dispute type in dispute manager contract +export function generateLegacyTypeDisputeId(allocationId: string) { + return ethers.solidityPackedKeccak256( + ['address', 'string'], + [allocationId, 'legacy'] + ) +} diff --git a/packages/toolshed/src/core/graph-tally.ts b/packages/toolshed/src/core/graph-tally.ts new file mode 100644 index 000000000..f71b58ee1 --- /dev/null +++ b/packages/toolshed/src/core/graph-tally.ts @@ -0,0 +1,106 @@ +import { BytesLike, ethers, id, Signature, Wallet } from 'ethers' + +import type { RAV } from './types' +export const EIP712_RAV_PROOF_TYPEHASH = id('ReceiptAggregateVoucher(bytes32 collectionId,address payer,address serviceProvider,address dataService,uint64 timestampNs,uint128 valueAggregate,bytes metadata)') +export const EIP712_RAV_PROOF_TYPES = { + ReceiptAggregateVoucher: [ + { name: 'collectionId', type: 'bytes32' }, + { name: 'payer', type: 'address' }, + { name: 'serviceProvider', type: 'address' }, + { name: 'dataService', type: 'address' }, + { name: 'timestampNs', type: 'uint64' }, + { name: 'valueAggregate', type: 'uint128' }, + { name: 'metadata', type: 'bytes' }, + ], +} + +/** + * Generates a signed RAV + * @param allocationId The allocation ID + * @param payer The payer + * @param serviceProvider The service provider + * @param dataService The data service + * @param timestampNs The timestamp in nanoseconds + * @param valueAggregate The value aggregate + * @param metadata The metadata + * @param signerPrivateKey The private key of the signer + * @param graphTallyCollectorAddress The address of the Graph Tally Collector contract + * @param chainId The chain ID + * @returns The encoded signed RAV calldata + */ +export async function generateSignedRAV( + allocationId: string, + payer: string, + serviceProvider: string, + dataService: string, + timestampNs: number, + valueAggregate: bigint, + metadata: BytesLike, + signerPrivateKey: string, + graphTallyCollectorAddress: string, + chainId: number, +): Promise<{ rav: RAV, signature: string }> { + // Create the domain for the EIP712 signature + const domain = { + name: 'GraphTallyCollector', + version: '1', + chainId, + verifyingContract: graphTallyCollectorAddress, + } + + // Create the RAV data + const ravData = { + collectionId: ethers.zeroPadValue(allocationId, 32), + payer: payer, + serviceProvider: serviceProvider, + dataService: dataService, + timestampNs: timestampNs, + valueAggregate: valueAggregate, + metadata: metadata, + } + + // Sign the RAV data + const signer = new Wallet(signerPrivateKey) + const signature = await signer.signTypedData(domain, EIP712_RAV_PROOF_TYPES, ravData) + + // Return the signed RAV + return { rav: ravData, signature: signature } +} + +/** + * Generates a signer proof for authorizing a signer in the Graph Tally Collector + * @param graphTallyCollector The Graph Tally Collector contract + * @param signer The signer + * @param chainId The chain ID + * @param proofDeadline The deadline for the proof + * @param signerPrivateKey The private key of the signer + * @returns The encoded signer proof + */ +export function generateSignerProof( + proofDeadline: bigint, + payer: string, + signerPrivateKey: string, + graphTallyCollectorAddress: string, + chainId: number, +): string { + // Create the message hash + const messageHash = ethers.keccak256( + ethers.solidityPacked( + ['uint256', 'address', 'string', 'uint256', 'address'], + [ + chainId, + graphTallyCollectorAddress, + 'authorizeSignerProof', + proofDeadline, + payer, + ], + ), + ) + + // Convert to EIP-191 signed message hash (this is the proofToDigest) + const proofToDigest = ethers.hashMessage(ethers.getBytes(messageHash)) + + // Sign the message + const signer = new Wallet(signerPrivateKey) + return Signature.from(signer.signingKey.sign(proofToDigest)).serialized +} diff --git a/packages/toolshed/src/core/index.ts b/packages/toolshed/src/core/index.ts new file mode 100644 index 000000000..e1bf04633 --- /dev/null +++ b/packages/toolshed/src/core/index.ts @@ -0,0 +1,10 @@ +export * from './poi' +export * from './abi' +export * from './constants' +export * from './allocation' +export * from './types' +export * from './accounts' +export * from './graph-tally' +export * from './attestations' +export * from './subgraph-service' +export * from './disputes' diff --git a/packages/toolshed/src/core/poi.ts b/packages/toolshed/src/core/poi.ts new file mode 100644 index 000000000..08cbf2356 --- /dev/null +++ b/packages/toolshed/src/core/poi.ts @@ -0,0 +1,12 @@ +import { BytesLike, ethers, keccak256, toUtf8Bytes } from 'ethers' + +export function generatePOI(message = 'poi') { + return ethers.getBytes(keccak256(toUtf8Bytes(message))) +} + +export function encodePOIMetadata(blockNumber: number, publicPOI: BytesLike, indexingStatus: number, errorCode: number, errorBlockNumber: number) { + return ethers.AbiCoder.defaultAbiCoder().encode( + ['uint256', 'bytes32', 'uint8', 'uint8', 'uint256'], + [blockNumber, publicPOI, indexingStatus, errorCode, errorBlockNumber], + ) +} diff --git a/packages/toolshed/src/core/subgraph-service.ts b/packages/toolshed/src/core/subgraph-service.ts new file mode 100644 index 000000000..c358361c8 --- /dev/null +++ b/packages/toolshed/src/core/subgraph-service.ts @@ -0,0 +1,35 @@ +import { BytesLike, ethers } from 'ethers' +import { RAV } from './types' + +export function encodeRegistrationData(url: string, geoHash: string, rewardsDestination: string) { + return ethers.AbiCoder.defaultAbiCoder().encode( + ['string', 'string', 'address'], + [url, geoHash, rewardsDestination], + ) +} + +export function encodeStartServiceData( + subgraphDeploymentId: string, + allocationTokens: bigint, + allocationId: string, + signature: string, +) { + return ethers.AbiCoder.defaultAbiCoder().encode( + ['bytes32', 'uint256', 'address', 'bytes'], + [subgraphDeploymentId, allocationTokens, allocationId, signature], + ) +} + +export function encodeCollectIndexingRewardsData(allocationId: string, poi: BytesLike, poiMetadata: BytesLike) { + return ethers.AbiCoder.defaultAbiCoder().encode( + ['address', 'bytes32', 'bytes'], + [allocationId, poi, poiMetadata], + ) +} + +export function encodeCollectQueryFeesData(rav: RAV, signature: string, tokensToCollect: bigint) { + return ethers.AbiCoder.defaultAbiCoder().encode( + ['tuple(tuple(bytes32 collectionId, address payer, address serviceProvider, address dataService, uint256 timestampNs, uint128 valueAggregate, bytes metadata) rav, bytes signature)', 'uint256'], + [{ rav, signature }, tokensToCollect], + ) +} diff --git a/packages/toolshed/src/core/types.ts b/packages/toolshed/src/core/types.ts new file mode 100644 index 000000000..8552bf104 --- /dev/null +++ b/packages/toolshed/src/core/types.ts @@ -0,0 +1,22 @@ +import type { BytesLike } from 'ethers' + +export enum PaymentTypes { + QueryFee = 0, + IndexingFee = 1, + IndexingRewards = 2, +} + +export enum ThawRequestType { + Provision = 0, + Delegation = 1, +} + +export type RAV = { + collectionId: string + payer: string + serviceProvider: string + dataService: string + timestampNs: number + valueAggregate: bigint + metadata: BytesLike +} diff --git a/packages/hardhat-graph-protocol/src/sdk/address-book.ts b/packages/toolshed/src/deployments/address-book.ts similarity index 96% rename from packages/hardhat-graph-protocol/src/sdk/address-book.ts rename to packages/toolshed/src/deployments/address-book.ts index 3c9634bec..626fcca9f 100644 --- a/packages/hardhat-graph-protocol/src/sdk/address-book.ts +++ b/packages/toolshed/src/deployments/address-book.ts @@ -1,9 +1,9 @@ import fs from 'fs' -import { assertObject } from './utils/assertion' +import { logDebug, logError, logWarn } from '../lib/logger' +import { assertObject } from '../lib/assert' -import { ContractList, loadContract } from './lib/contract' -import { logDebug, logError, logWarn } from '../logger' +import { ContractList, loadContract } from './contract' import { Provider, Signer } from 'ethers' export type AddressBookJson< @@ -85,7 +85,10 @@ export abstract class AddressBook< } // Load address book and validate its shape - const fileContents = JSON.parse(fs.readFileSync(this.file, 'utf8')) + const fileContents = JSON.parse(fs.readFileSync(this.file, 'utf8')) as Record + if (typeof fileContents !== 'object' || fileContents === null) { + throw new Error('Address book is not an object') + } if (!fileContents[this.chainId]) { fileContents[this.chainId] = {} } diff --git a/packages/hardhat-graph-protocol/src/sdk/lib/artifact.ts b/packages/toolshed/src/deployments/artifact.ts similarity index 84% rename from packages/hardhat-graph-protocol/src/sdk/lib/artifact.ts rename to packages/toolshed/src/deployments/artifact.ts index eff3fc601..becca0be9 100644 --- a/packages/hardhat-graph-protocol/src/sdk/lib/artifact.ts +++ b/packages/toolshed/src/deployments/artifact.ts @@ -1,5 +1,4 @@ import { Artifacts } from 'hardhat/internal/artifacts' -import { logError } from '../../logger' import type { Artifact } from 'hardhat/types' @@ -26,9 +25,9 @@ export const loadArtifact = (name: string, buildDir?: string[] | string): Artifa break } catch (error) { if (error instanceof Error) { - logError(`Could not load artifact ${name} from ${dir} - ${error.message}`) + throw new Error(`Could not load artifact ${name} from ${dir} - ${error.message}`) } else { - logError(`Could not load artifact ${name} from ${dir}`) + throw new Error(`Could not load artifact ${name} from ${dir}`) } } } diff --git a/packages/hardhat-graph-protocol/src/sdk/lib/contract.ts b/packages/toolshed/src/deployments/contract.ts similarity index 92% rename from packages/hardhat-graph-protocol/src/sdk/lib/contract.ts rename to packages/toolshed/src/deployments/contract.ts index 827237756..66b4491f9 100644 --- a/packages/hardhat-graph-protocol/src/sdk/lib/contract.ts +++ b/packages/toolshed/src/deployments/contract.ts @@ -1,5 +1,6 @@ import { Contract, Provider, Signer } from 'ethers' import { loadArtifact } from './artifact' +import { wrapTransactionCalls } from './tx-logging' export type ContractList = Partial> @@ -28,6 +29,8 @@ export function loadContract( contract = contract.connect(signerOrProvider) as Contract } + contract = wrapTransactionCalls(contract, name) + return contract } catch (err: unknown) { if (err instanceof Error) { diff --git a/packages/toolshed/src/deployments/horizon/actions.ts b/packages/toolshed/src/deployments/horizon/actions.ts new file mode 100644 index 000000000..23538fb04 --- /dev/null +++ b/packages/toolshed/src/deployments/horizon/actions.ts @@ -0,0 +1,179 @@ +import type { GraphHorizonContracts, HorizonStakingExtension } from '.' +import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +/** + * It's important to use JSDoc in the return functions here for good developer experience as + * intellisense does not expand the args type aliases. + */ +export function loadActions( + contracts: GraphHorizonContracts, +) { + return { + /** + * Stakes GRT tokens in the Horizon staking contract + * Note that it will approve HorizonStaking to spend the tokens + * + * @param signer - The signer that will execute the transactions + * @param args Parameters: + * - [tokens] - Amount of GRT tokens to stake + */ + stake: (signer: HardhatEthersSigner, args: Parameters) => stake(contracts, signer, args), + /** + * Stakes GRT tokens in the Horizon staking contract to a service provider + * Note that it will approve HorizonStaking to spend the tokens + * + * @param signer - The signer that will execute the transactions + * @param args Parameters: + * - [serviceProvider, tokens] - The provision parameters + */ + stakeTo: (signer: HardhatEthersSigner, args: Parameters) => stakeTo(contracts, signer, args), + /** + * Stakes GRT tokens in the Horizon staking contract to a provision + * Note that it will approve HorizonStaking to spend the tokens + * + * @param signer - The signer that will execute the transactions + * @param args Parameters: + * - [serviceProvider, verifier, tokens] - The provision parameters + */ + stakeToProvision: (signer: HardhatEthersSigner, args: Parameters) => stakeToProvision(contracts, signer, args), + /** + * Adds tokens to a provision + * Note that it will approve HorizonStaking to spend the tokens + * + * @param signer - The signer that will execute the transactions + * @param args Parameters: + * - [serviceProvider, verifier, tokens] - The provision parameters + */ + addToProvision: (signer: HardhatEthersSigner, args: Parameters) => addToProvision(contracts, signer, args), + /** + * Provisions tokens in the Horizon staking contract + * Note that it will approve HorizonStaking to spend the tokens and stake them + * + * @param signer - The signer that will execute the provision transaction + * @param args Parameters: + * - `[serviceProvider, verifier, tokens, maxVerifierCut, thawingPeriod]` - The provision parameters + */ + provision: (signer: HardhatEthersSigner, args: Parameters) => provision(contracts, signer, args), + /** + * [Legacy] Collects query fees from the Horizon staking contract + * Note that it will approve HorizonStaking to spend the tokens + * @param signer - The signer that will execute the collect transaction + * @param args Parameters: + * - `[tokens, allocationID]` - The collect parameters + */ + collect: (signer: HardhatEthersSigner, args: Parameters) => collect(contracts, signer, args), + /** + * Delegates tokens in the Horizon staking contract + * Note that it will approve HorizonStaking to spend the tokens + * @param signer - The signer that will execute the delegate transaction + * @param args Parameters: + * - `[serviceProvider, verifier, tokens, minSharesOut]` - The delegate parameters + */ + delegate: (signer: HardhatEthersSigner, args: Parameters) => delegate(contracts, signer, args), + /** + * Adds tokens to a delegation pool + * Note that it will approve HorizonStaking to spend the tokens + * @param signer - The signer that will execute the addToDelegationPool transaction + * @param args Parameters: + * - `[serviceProvider, verifier, tokens]` - The addToDelegationPool parameters + */ + addToDelegationPool: (signer: HardhatEthersSigner, args: Parameters) => addToDelegationPool(contracts, signer, args), + } +} + +async function stake( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [tokens] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).stake(tokens) +} + +async function stakeTo( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, tokens] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).stakeTo(serviceProvider, tokens) +} + +async function stakeToProvision( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, verifier, tokens] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).stakeToProvision(serviceProvider, verifier, tokens) +} + +async function addToProvision( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, verifier, tokens] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).addToProvision(serviceProvider, verifier, tokens) +} + +async function provision( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, verifier, tokens, maxVerifierCut, thawingPeriod] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).stake(tokens) + await HorizonStaking.connect(signer).provision(serviceProvider, verifier, tokens, maxVerifierCut, thawingPeriod) +} + +async function collect( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [tokens, allocationID] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await (HorizonStaking as HorizonStakingExtension).connect(signer).collect(tokens, allocationID) +} + +async function delegate( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, verifier, tokens, minSharesOut] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer)['delegate(address,address,uint256,uint256)'](serviceProvider, verifier, tokens, minSharesOut) +} + +async function addToDelegationPool( + contracts: GraphHorizonContracts, + signer: HardhatEthersSigner, + args: Parameters, +) { + const { GraphToken, HorizonStaking } = contracts + const [serviceProvider, verifier, tokens] = args + + await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) + await HorizonStaking.connect(signer).addToDelegationPool(serviceProvider, verifier, tokens) +} diff --git a/packages/hardhat-graph-protocol/src/sdk/deployments/horizon/address-book.ts b/packages/toolshed/src/deployments/horizon/address-book.ts similarity index 61% rename from packages/hardhat-graph-protocol/src/sdk/deployments/horizon/address-book.ts rename to packages/toolshed/src/deployments/horizon/address-book.ts index e940a6313..8da05223e 100644 --- a/packages/hardhat-graph-protocol/src/sdk/deployments/horizon/address-book.ts +++ b/packages/toolshed/src/deployments/horizon/address-book.ts @@ -1,13 +1,15 @@ import { GraphHorizonArtifactsMap, GraphHorizonContractNameList } from './contracts' -import { logDebug, logError } from '../../../logger' +import { logDebug, logError } from '../../lib/logger' import { Provider, Signer } from 'ethers' -import { AddressBook } from '../../address-book' -import { assertObject } from '../../utils/assertion' +import { AddressBook } from '../address-book' +import { assertObject } from '../../lib/assert' import { Contract } from 'ethers' -import { loadArtifact } from '../../lib/artifact' -import { mergeABIs } from '../../utils/abi' +import { loadArtifact } from '../artifact' +import { mergeABIs } from '../../core/abi' +import { wrapTransactionCalls } from '../tx-logging' import type { GraphHorizonContractName, GraphHorizonContracts } from './contracts' +import type { LegacyStaking } from './types' export class GraphHorizonAddressBook extends AddressBook { isContractName(name: unknown): name is GraphHorizonContractName { @@ -27,7 +29,7 @@ export class GraphHorizonAddressBook extends AddressBook): Promise => collect(contracts, signer, args), + } +} + +// Collects payment from the subgraph service +async function collect( + contracts: { SubgraphService: ISubgraphService }, + signer: HardhatEthersSigner, + args: Parameters, +): Promise { + const { SubgraphService } = contracts + const [indexer, paymentType, data] = args + + const tx = await SubgraphService.connect(signer).collect(indexer, paymentType, data) + const receipt = await tx.wait() + if (!receipt) throw new Error('Transaction failed') + + const iface = new Interface(['event ServicePaymentCollected(address indexed serviceProvider, uint8 indexed feeType, uint256 tokens)']) + const event = receipt.logs.find(log => log.topics[0] === iface.getEvent('ServicePaymentCollected')?.topicHash) + if (!event) throw new Error('ServicePaymentCollected event not found') + + return BigInt(event.data) +} diff --git a/packages/toolshed/src/deployments/subgraph-service/address-book.ts b/packages/toolshed/src/deployments/subgraph-service/address-book.ts new file mode 100644 index 000000000..e7216e4d4 --- /dev/null +++ b/packages/toolshed/src/deployments/subgraph-service/address-book.ts @@ -0,0 +1,78 @@ +import { logDebug, logError } from '../../lib/logger' +import { Provider, Signer } from 'ethers' +import { SubgraphServiceArtifactsMap, SubgraphServiceContractNameList } from './contracts' +import { AddressBook } from '../address-book' +import { assertObject } from '../../lib/assert' +import { Contract } from 'ethers' +import { loadArtifact } from '../artifact' +import { wrapTransactionCalls } from '../tx-logging' + +import type { SubgraphServiceContractName, SubgraphServiceContracts } from './contracts' +import { LegacyDisputeManager, LegacyServiceRegistry } from './types' + +export class SubgraphServiceAddressBook extends AddressBook { + isContractName(name: unknown): name is SubgraphServiceContractName { + return ( + typeof name === 'string' + && SubgraphServiceContractNameList.includes(name as SubgraphServiceContractName) + ) + } + + loadContracts( + signerOrProvider?: Signer | Provider, + ): SubgraphServiceContracts { + logDebug('Loading Subgraph Service contracts...') + + // Filter out LegacyDisputeManager from the artifacts map + const { LegacyDisputeManager: _, LegacyServiceRegistry: __, ...filteredArtifactsMap } = SubgraphServiceArtifactsMap + + const contracts = this._loadContracts( + filteredArtifactsMap as typeof SubgraphServiceArtifactsMap, + signerOrProvider, + ) + + // Aliases + const contractsWithAliases = { + ...contracts, + Curation: contracts.L2Curation, + GNS: contracts.L2GNS, + + } as SubgraphServiceContracts + + // Load LegacyDisputeManager manually + if (this.entryExists('LegacyDisputeManager')) { + const entry = this.getEntry('LegacyDisputeManager') + contractsWithAliases.LegacyDisputeManager = wrapTransactionCalls(new Contract( + entry.address, + loadArtifact('IDisputeManager', SubgraphServiceArtifactsMap.LegacyDisputeManager).abi, + signerOrProvider, + ), 'LegacyDisputeManager') as unknown as LegacyDisputeManager + } + + // Load ServiceRegistry manually + if (this.entryExists('LegacyServiceRegistry')) { + const entry = this.getEntry('LegacyServiceRegistry') + contractsWithAliases.LegacyServiceRegistry = wrapTransactionCalls(new Contract( + entry.address, + loadArtifact('IServiceRegistry', SubgraphServiceArtifactsMap.LegacyServiceRegistry).abi, + signerOrProvider, + ), 'LegacyServiceRegistry') as unknown as LegacyServiceRegistry + } + + this._assertSubgraphServiceContracts(contractsWithAliases) + return contractsWithAliases + } + + _assertSubgraphServiceContracts( + contracts: unknown, + ): asserts contracts is SubgraphServiceContracts { + assertObject(contracts) + + // Assert that all SubgraphServiceContracts were loaded + for (const contractName of SubgraphServiceContractNameList) { + if (!contracts[contractName]) { + logError(`Missing SubgraphService contract: ${contractName}`) + } + } + } +} diff --git a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/contracts.ts b/packages/toolshed/src/deployments/subgraph-service/contracts.ts similarity index 58% rename from packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/contracts.ts rename to packages/toolshed/src/deployments/subgraph-service/contracts.ts index 1e770e1ff..f55dc8519 100644 --- a/packages/hardhat-graph-protocol/src/sdk/deployments/subgraph-service/contracts.ts +++ b/packages/toolshed/src/deployments/subgraph-service/contracts.ts @@ -1,52 +1,55 @@ -import path from 'path' - -import type { - L2Curation, - L2GNS, - ServiceRegistry, - SubgraphNFT, -} from '@graphprotocol/contracts' +import { resolvePackagePath } from '../../lib/path' import type { DisputeManager, SubgraphService, } from '@graphprotocol/subgraph-service' -import type { ContractList } from '../../lib/contract' +import type { + L2Curation, + L2GNS, + LegacyDisputeManager, + LegacyServiceRegistry, +} from './types' +import type { ContractList } from '../contract' export const SubgraphServiceContractNameList = [ // @graphprotocol/contracts 'L2Curation', 'L2GNS', 'SubgraphNFT', - 'ServiceRegistry', // @graphprotocol/subgraph-service 'SubgraphService', 'DisputeManager', + + // @graphprotocol/contracts - legacy + 'LegacyDisputeManager', + 'LegacyServiceRegistry', ] as const -const root = path.resolve(__dirname, '../../../..') // hardhat-graph-protocol root -export const CONTRACTS_ARTIFACTS_PATH = path.resolve(root, 'node_modules', '@graphprotocol/contracts/build/contracts') -export const SUBGRAPH_SERVICE_ARTIFACTS_PATH = path.resolve(root, 'node_modules', '@graphprotocol/subgraph-service/build/contracts') +export const CONTRACTS_ARTIFACTS_PATH = resolvePackagePath('@graphprotocol/contracts', 'build/contracts') +export const SUBGRAPH_SERVICE_ARTIFACTS_PATH = resolvePackagePath('@graphprotocol/subgraph-service', 'build/contracts') export const SubgraphServiceArtifactsMap = { // @graphprotocol/contracts L2Curation: CONTRACTS_ARTIFACTS_PATH, L2GNS: CONTRACTS_ARTIFACTS_PATH, SubgraphNFT: CONTRACTS_ARTIFACTS_PATH, - ServiceRegistry: CONTRACTS_ARTIFACTS_PATH, // @graphprotocol/subgraph-service SubgraphService: SUBGRAPH_SERVICE_ARTIFACTS_PATH, DisputeManager: SUBGRAPH_SERVICE_ARTIFACTS_PATH, + + // @graphprotocol/contracts - legacy + LegacyDisputeManager: CONTRACTS_ARTIFACTS_PATH, + LegacyServiceRegistry: CONTRACTS_ARTIFACTS_PATH, } as const export interface SubgraphServiceContracts extends ContractList { // @graphprotocol/contracts L2Curation: L2Curation L2GNS: L2GNS - SubgraphNFT: SubgraphNFT - ServiceRegistry: ServiceRegistry + // SubgraphNFT: SubgraphNFT // @graphprotocol/subgraph-service SubgraphService: SubgraphService @@ -55,6 +58,10 @@ export interface SubgraphServiceContracts extends ContractList(contract: T, contractName: string): T { + return new Proxy(contract, { + get(target, prop) { + const orig = Reflect.get(target, prop) + + // Intercept connect calls + if (prop === 'connect') { + return (runner: ContractRunner) => { + const connected = orig.call(target, runner) as unknown as Contract + return wrapTransactionCalls(connected, contractName) + } + } + + // Only intercept function calls + if (typeof orig !== 'function') { + return orig + } + + // Only intercept function calls from the ABI + let fn: ContractMethod | undefined + try { + fn = contract.getFunction(String(prop)) + } catch (_) { + return orig + } + + // Only intercept state changing calls - aka transactions + const fragment = fn.fragment + if (['view', 'pure'].includes(fragment.stateMutability)) { + return orig + } + + // Finally, this is a transaction call so intercept it :D + return async (...args: unknown[]) => { + // Make the call + const response = await orig.apply(target, args) as ContractTransactionResponse + logContractTransaction(response, contractName, String(prop), args) + + // And wait for confirmation + const receipt = await response.wait() + if (receipt) { + logContractTransactionReceipt(receipt) + } + + return response + } + }, + }) +} + +function logContractTransaction( + tx: ContractTransactionResponse, + contractName: string, + fn: string, + args: ContractMethodArgs, +) { + const msg: string[] = [] + msg.push(`> Sending transaction: ${contractName}.${fn}`) + msg.push(` = Sender: ${tx.from}`) + msg.push(` = Contract: ${tx.to}`) + msg.push(` = Params: [ ${args.join(', ')} ]`) + msg.push(` = TxHash: ${tx.hash}`) + + logToConsoleAndFile(msg) +} + +function logContractTransactionReceipt(receipt: ContractTransactionReceipt) { + const msg: string[] = [] + msg.push(receipt.status ? ` ✔ Transaction succeeded!` : ` ✖ Transaction failed!`) + logToConsoleAndFile(msg) +} + +function logToConsoleAndFile(msg: string[]) { + const isoDate = new Date().toISOString() + const fileName = `tx-${isoDate.substring(0, 10)}.log` + + msg.map((line) => { + logTxLogging(line) + fs.appendFileSync(fileName, `[${isoDate}] ${line}\n`) + }) +} diff --git a/packages/toolshed/src/deployments/types.ts b/packages/toolshed/src/deployments/types.ts new file mode 100644 index 000000000..3ae96a884 --- /dev/null +++ b/packages/toolshed/src/deployments/types.ts @@ -0,0 +1,20 @@ +import type { GraphHorizonAddressBook, GraphHorizonContracts } from './horizon' +import type { SubgraphServiceAddressBook, SubgraphServiceContracts } from './subgraph-service' +import type { loadActions } from './horizon/actions' +import type { loadActions as loadSubgraphServiceActions } from './subgraph-service/actions' +export const GraphDeploymentsList = ['horizon', 'subgraphService'] as const + +export type GraphDeploymentName = (typeof GraphDeploymentsList)[number] + +export type GraphDeployments = { + horizon: { + contracts: GraphHorizonContracts + addressBook: GraphHorizonAddressBook + actions: ReturnType + } + subgraphService: { + contracts: SubgraphServiceContracts + addressBook: SubgraphServiceAddressBook + actions: ReturnType + } +} diff --git a/packages/toolshed/src/hardhat/config.ts b/packages/toolshed/src/hardhat/config.ts new file mode 100644 index 000000000..0b903c4ae --- /dev/null +++ b/packages/toolshed/src/hardhat/config.ts @@ -0,0 +1,16 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { existsSync } from 'fs' +import { globSync } from 'glob' +import { join } from 'path' + +export function loadTasks(rootPath: string) { + const tasksPath = join(rootPath, 'tasks') + const files: string[] = globSync('**/*.ts', { cwd: tasksPath, absolute: true }) + files.forEach(require) +} + +// This is going to fail if the project is using a different build directory +export function isProjectBuilt(rootPath: string) { + return existsSync(join(rootPath, 'build/contracts')) +} diff --git a/packages/toolshed/src/hardhat/erc20.ts b/packages/toolshed/src/hardhat/erc20.ts new file mode 100644 index 000000000..a071ae610 --- /dev/null +++ b/packages/toolshed/src/hardhat/erc20.ts @@ -0,0 +1,43 @@ +import { toBeHex, zeroPadValue } from 'ethers/utils' +import { keccak256 } from 'ethers/crypto' + +import type { Addressable } from 'ethers' +import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' + +export async function setGRTBalance( + provider: HardhatEthersProvider, + tokenAddress: string | Addressable, + userAddress: string | Addressable, + balance: bigint | string | number, +): Promise { + await setERC20Balance(provider, tokenAddress, userAddress, balance, 52) +} + +export async function setERC20Balance( + provider: HardhatEthersProvider, + tokenAddress: string | Addressable, + userAddress: string | Addressable, + balance: bigint | string | number, + slot = 0, +): Promise { + if (typeof tokenAddress !== 'string') { + tokenAddress = await tokenAddress.getAddress() + } + if (typeof userAddress !== 'string') { + userAddress = await userAddress.getAddress() + } + const paddedAddress = zeroPadValue(userAddress, 32) // 32-byte padded user address + const paddedSlot = zeroPadValue(toBeHex(slot), 32) // 32-byte padded slot index + + // Compute the storage key for the mapping: keccak256(paddedAddress ++ paddedSlot) + const storageKey = keccak256(paddedAddress + paddedSlot.slice(2)) + + // Pad the balance to 32 bytes + const paddedValue = toBeHex(balance, 32) + + await provider.send('hardhat_setStorageAt', [ + tokenAddress, + storageKey, + paddedValue, + ]) +} diff --git a/packages/toolshed/src/hardhat/event.ts b/packages/toolshed/src/hardhat/event.ts new file mode 100644 index 000000000..152c57918 --- /dev/null +++ b/packages/toolshed/src/hardhat/event.ts @@ -0,0 +1,23 @@ +import { ethers } from 'ethers' + +import type { TransactionResponse } from 'ethers' + +export async function getEventData(tx: TransactionResponse, eventAbi: string) { + const receipt = await tx.wait() + const abi = [ + eventAbi, + ] + const iface = new ethers.Interface(abi) + if (receipt?.logs === undefined) { + return [] + } + + for (const log of receipt.logs) { + const event = iface.parseLog(log) + if (event !== null) { + return event.args + } + } + + return [] +} diff --git a/packages/hardhat-graph-protocol/src/sdk/hardhat.base.config.ts b/packages/toolshed/src/hardhat/hardhat.base.config.ts similarity index 50% rename from packages/hardhat-graph-protocol/src/sdk/hardhat.base.config.ts rename to packages/toolshed/src/hardhat/hardhat.base.config.ts index 26536ea29..60960e028 100644 --- a/packages/hardhat-graph-protocol/src/sdk/hardhat.base.config.ts +++ b/packages/toolshed/src/hardhat/hardhat.base.config.ts @@ -1,19 +1,43 @@ +import { resolveNodeModulesPath } from '../lib/path' import { vars } from 'hardhat/config' import type { HardhatUserConfig, NetworksUserConfig, ProjectPathsUserConfig, SolidityUserConfig } from 'hardhat/types' -import type { EtherscanConfig } from '@nomicfoundation/hardhat-verify/types' -import type { GraphRuntimeEnvironmentOptions } from '../types' -// TODO: this should be imported from hardhat-secure-accounts, but currently it's not exported +// This base config file assumes the project is using the following hardhat plugins: +// - hardhat-graph-protocol +// - hardhat-secure-accounts +// - hardhat-verify +// To avoid adding those dependencies on toolshed we re-declare some types here interface SecureAccountsOptions { enabled?: boolean } +type GraphRuntimeEnvironmentOptions = { + deployments?: { + [deployment in ('horizon' | 'subgraphService')]?: string | { + addressBook: string + } + } +} + +interface EtherscanConfig { + apiKey: string | Record + customChains: { + network: string + chainId: number + urls: { + apiURL: string + browserURL: string + } + }[] + enabled: boolean +} + // Hardhat variables const ARBITRUM_ONE_RPC = vars.get('ARBITRUM_ONE_RPC', 'https://arb1.arbitrum.io/rpc') const ARBITRUM_SEPOLIA_RPC = vars.get('ARBITRUM_SEPOLIA_RPC', 'https://sepolia-rollup.arbitrum.io/rpc') +const LOCAL_NETWORK_RPC = vars.get('LOCAL_NETWORK_RPC', 'http://chain:8545') const LOCALHOST_RPC = vars.get('LOCALHOST_RPC', 'http://localhost:8545') -const LOCALHOST_CHAIN_ID = vars.get('LOCALHOST_CHAIN_ID', '31337') export const solidityUserConfig: SolidityUserConfig = { version: '0.8.27', @@ -39,10 +63,20 @@ export const etherscanUserConfig: Partial = { } // In general: -// - hardhat is used for unit tests -// - localhost is used for local development on a hardhat network or fork -type BaseNetworksUserConfig = NetworksUserConfig & - Record +// - "hardhat" is used for unit tests +// - "localhost" is used for local development on a hardhat network or fork +// - "localNetwork" is used for testing in the local network environment +type EnhancedNetworkConfig = T & { + secureAccounts?: SecureAccountsOptions + deployments?: { + horizon: string + subgraphService: string + } +} + +type BaseNetworksUserConfig = { + [K in keyof NetworksUserConfig]: EnhancedNetworkConfig +} export const networksUserConfig: BaseNetworksUserConfig = { hardhat: { chainId: 31337, @@ -50,22 +84,27 @@ export const networksUserConfig: BaseNetworksUserConfig = { mnemonic: 'myth like bonus scare over problem client lizard pioneer submit female collect', }, deployments: { - horizon: resolveLocalAddressBook('@graphprotocol/horizon/addresses.json'), - subgraphService: resolveLocalAddressBook('@graphprotocol/subgraph-service/addresses.json'), + horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-hardhat.json'), + subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-hardhat.json'), + }, + }, + localNetwork: { + chainId: 1337, + url: LOCAL_NETWORK_RPC, + deployments: { + horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-local-network.json'), + subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-local-network.json'), }, }, localhost: { - chainId: parseInt(LOCALHOST_CHAIN_ID), + chainId: 31337, url: LOCALHOST_RPC, secureAccounts: { enabled: true, }, - ...(vars.has('LOCALHOST_ACCOUNTS_MNEMONIC') && { - accounts: { mnemonic: vars.get('LOCALHOST_ACCOUNTS_MNEMONIC') }, - }), deployments: { - horizon: resolveLocalAddressBook('@graphprotocol/horizon/addresses.json'), - subgraphService: resolveLocalAddressBook('@graphprotocol/subgraph-service/addresses.json'), + horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-localhost.json'), + subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-localhost.json'), }, }, arbitrumOne: { @@ -84,13 +123,6 @@ export const networksUserConfig: BaseNetworksUserConfig = { }, } -// Local address books are not commited to GitHub so they might not exist -// require.resolve will throw an error if the file does not exist, so we hack it a bit -function resolveLocalAddressBook(path: string) { - const resolvedPath = require.resolve(path) - return resolvedPath.replace('addresses.json', 'addresses-local.json') -} - type BaseHardhatConfig = HardhatUserConfig & { etherscan: Partial } & { graph: GraphRuntimeEnvironmentOptions } & @@ -104,8 +136,8 @@ export const hardhatBaseConfig: BaseHardhatConfig = { networks: networksUserConfig, graph: { deployments: { - horizon: require.resolve('@graphprotocol/horizon/addresses.json'), - subgraphService: require.resolve('@graphprotocol/subgraph-service/addresses.json'), + horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses.json'), + subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses.json'), }, }, etherscan: etherscanUserConfig, diff --git a/packages/hardhat-graph-protocol/src/sdk/ignition/ignition.ts b/packages/toolshed/src/hardhat/ignition.ts similarity index 58% rename from packages/hardhat-graph-protocol/src/sdk/ignition/ignition.ts rename to packages/toolshed/src/hardhat/ignition.ts index 4b2d7501f..d287dc440 100644 --- a/packages/hardhat-graph-protocol/src/sdk/ignition/ignition.ts +++ b/packages/toolshed/src/hardhat/ignition.ts @@ -1,14 +1,20 @@ -/* eslint-disable no-prototype-builtins */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -require('json5/lib/register') - import fs from 'fs' +import { parse } from 'json5' import path from 'path' -import type { AddressBook } from '../address-book' +import type { AddressBook } from '../deployments/address-book' + +type IgnitionConfigValue = string | number +type IgnitionConfig = { + [key: string]: Record +} + +export function loadConfig(configPath: string, prefix: string, configName: string): { + config: IgnitionConfig + file: string +} { + prefix = process.env.IGNITION_DEPLOYMENT_TYPE ?? prefix -export function loadConfig(configPath: string, prefix: string, configName: string): any { const configFileCandidates = [ path.resolve(process.cwd(), configPath, `${prefix}.${configName}.json5`), path.resolve(process.cwd(), configPath, `${prefix}.default.json5`), @@ -21,38 +27,38 @@ export function loadConfig(configPath: string, prefix: string, configName: strin ) } - return { config: removeNFromBigInts(require(configFile)), file: configFile } + const config = parse(fs.readFileSync(configFile, 'utf8')) + + return { + config: removeNFromBigInts(config), + file: configFile, + } } -export function patchConfig(jsonData: any, patches: Record) { - function recursivePatch(obj: any, patchObj: any) { - if (typeof obj === 'object' && obj !== null && typeof patchObj === 'object' && patchObj !== null) { - for (const key in patchObj) { - if (obj.hasOwnProperty(key) && typeof obj[key] === 'object' && typeof patchObj[key] === 'object') { - // Both are objects, recursively merge - recursivePatch(obj[key], patchObj[key]) - } else { - // Either not an object or new key, directly assign - obj[key] = patchObj[key] - } - } +export function patchConfig(jsonData: IgnitionConfig, patches: IgnitionConfig): IgnitionConfig { + const result: IgnitionConfig = { ...jsonData } + for (const [key, patchValue] of Object.entries(patches)) { + const existingValue = result[key] + if (existingValue) { + result[key] = { ...existingValue, ...patchValue } + } else { + result[key] = patchValue } - return obj } + return result +} - return recursivePatch(jsonData, patches) +type IgnitionModuleResult = { + [key: string]: { + target: string + } } export function saveToAddressBook( - contracts: any, - chainId: number | undefined, + ignitionModuleResult: unknown, addressBook: AddressBook, ): AddressBook { - if (!chainId) { - throw new Error('Chain ID is required') - } - - // Extract contract names and addresses + const contracts = ignitionModuleResult as IgnitionModuleResult for (const [ignitionContractName, contract] of Object.entries(contracts)) { // Proxy contracts if (ignitionContractName.includes('_Proxy_')) { @@ -61,7 +67,7 @@ export function saveToAddressBook [ + k, + typeof v === 'string' && /^\d+n$/.test(v) ? v.slice(0, -1) : v, + ]), + ) } } - return obj + return result } diff --git a/packages/toolshed/src/hardhat/index.ts b/packages/toolshed/src/hardhat/index.ts new file mode 100644 index 000000000..a92e9776d --- /dev/null +++ b/packages/toolshed/src/hardhat/index.ts @@ -0,0 +1,6 @@ +export { hardhatBaseConfig } from './hardhat.base.config' +export { isProjectBuilt, loadTasks } from './config' +export { loadConfig, patchConfig, saveToAddressBook } from './ignition' +export { requireLocalNetwork } from './local' +export { setERC20Balance, setGRTBalance } from './erc20' +export { getEventData } from './event' diff --git a/packages/toolshed/src/hardhat/local.ts b/packages/toolshed/src/hardhat/local.ts new file mode 100644 index 000000000..1258b08b6 --- /dev/null +++ b/packages/toolshed/src/hardhat/local.ts @@ -0,0 +1,21 @@ +import type { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider' +import type { HardhatRuntimeEnvironment } from 'hardhat/types' + +const localNetworks = ['localhost', 'hardhat', 'localNetwork'] + +export function requireLocalNetwork(hre: HardhatRuntimeEnvironment) { + if (!localNetworks.includes(hre.network.name)) { + throw new Error(`Network ${hre.network.name} is not a local network.`) + } +} + +export async function warp(provider: HardhatEthersProvider, seconds: number) { + await provider.send('evm_increaseTime', [seconds]) + await provider.send('evm_mine', []) +} + +export async function mine(provider: HardhatEthersProvider, blocks: number) { + for (let i = 0; i < blocks; i++) { + await provider.send('evm_mine', []) + } +} diff --git a/packages/hardhat-graph-protocol/src/sdk/utils/assertion.ts b/packages/toolshed/src/lib/assert.ts similarity index 100% rename from packages/hardhat-graph-protocol/src/sdk/utils/assertion.ts rename to packages/toolshed/src/lib/assert.ts diff --git a/packages/toolshed/src/lib/bytes.ts b/packages/toolshed/src/lib/bytes.ts new file mode 100644 index 000000000..e688fc72f --- /dev/null +++ b/packages/toolshed/src/lib/bytes.ts @@ -0,0 +1,3 @@ +import { ethers } from 'ethers' + +export const randomHexBytes = (n = 32): string => ethers.hexlify(ethers.randomBytes(n)) diff --git a/packages/sdk/src/gre/helpers/logger.ts b/packages/toolshed/src/lib/logger.ts similarity index 68% rename from packages/sdk/src/gre/helpers/logger.ts rename to packages/toolshed/src/lib/logger.ts index a768d6b04..c8aa2dd6a 100644 --- a/packages/sdk/src/gre/helpers/logger.ts +++ b/packages/toolshed/src/lib/logger.ts @@ -1,7 +1,9 @@ import debug from 'debug' -const LOG_BASE = 'hardhat:gre' +const LOG_BASE = 'toolshed' export const logDebug = debug(`${LOG_BASE}:debug`) export const logWarn = debug(`${LOG_BASE}:warn`) export const logError = debug(`${LOG_BASE}:error`) + +export const logTxLogging = debug(`${LOG_BASE}:tx`) diff --git a/packages/toolshed/src/lib/path.ts b/packages/toolshed/src/lib/path.ts new file mode 100644 index 000000000..bab48884e --- /dev/null +++ b/packages/toolshed/src/lib/path.ts @@ -0,0 +1,38 @@ +import fs from 'fs' +import path from 'path' + +export function findPathUp(startPath: string, pathToFind: string): string | null { + let currentDir = path.resolve(startPath) + + while (currentDir !== path.dirname(currentDir)) { + const candidate = path.join(currentDir, pathToFind) + if (fs.existsSync(candidate) && fs.statSync(candidate).isDirectory()) { + return candidate + } + + const parentDir = path.dirname(currentDir) + if (parentDir === currentDir) { + return null + } + + currentDir = parentDir + } + + return null +} + +// Useful if you need to resolve a path to a file that might not exist but you +// know it will eventually exist in the node_modules directory +export function resolveNodeModulesPath(fileName: string): string { + const basePath = findPathUp(__dirname, 'node_modules') + if (!basePath) { + throw new Error('Could not find node_modules directory') + } + return path.resolve(basePath, fileName) +} + +// Useful if you need to resolve a path to a file that exists in a package +export function resolvePackagePath(packageName: string, relativePath: string): string { + const packageRoot = path.dirname(require.resolve(`${packageName}/package.json`)) + return path.join(packageRoot, relativePath) +} diff --git a/packages/toolshed/src/utils/banner.ts b/packages/toolshed/src/utils/banner.ts new file mode 100644 index 000000000..50aa4ff77 --- /dev/null +++ b/packages/toolshed/src/utils/banner.ts @@ -0,0 +1,58 @@ +/** + * Creates and prints a box-style banner with centered text to the console + * @param title The main title text to display + * @param prefix Optional prefix text that appears before the title (default: '') + * @param minWidth Minimum width of the banner (default: 47) + */ +export function printBanner(title: string, prefix = '', minWidth = 47): void { + // Format title with capitalized words if it contains hyphens + const formattedTitle = title.includes('-') + ? title + .split('-') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' ') + : title + + const fullText = prefix + formattedTitle + + // Calculate minimum banner width needed for the text + const contentWidth = fullText.length + const bannerWidth = Math.max(minWidth, contentWidth + 10) // Add padding + + // Create the centered text line + const paddingLeft = Math.floor((bannerWidth - contentWidth) / 2) + const paddingRight = bannerWidth - contentWidth - paddingLeft + const centeredLine = '|' + ' '.repeat(paddingLeft) + fullText + ' '.repeat(paddingRight) + '|' + + // Create empty line with correct width + const emptyLine = '|' + ' '.repeat(bannerWidth) + '|' + + // Create border with correct width + const border = '+' + '-'.repeat(bannerWidth) + '+' + + console.log(` +${border} +${emptyLine} +${centeredLine} +${emptyLine} +${border} +`) +} + +export function printHorizonBanner() { + console.log(` + ██╗ ██╗ ██████╗ ██████╗ ██╗███████╗ ██████╗ ███╗ ██╗ + ██║ ██║██╔═══██╗██╔══██╗██║╚══███╔╝██╔═══██╗████╗ ██║ + ███████║██║ ██║██████╔╝██║ ███╔╝ ██║ ██║██╔██╗ ██║ + ██╔══██║██║ ██║██╔══██╗██║ ███╔╝ ██║ ██║██║╚██╗██║ + ██║ ██║╚██████╔╝██║ ██║██║███████╗╚██████╔╝██║ ╚████║ + ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ + + ██╗ ██╗██████╗ ██████╗ ██████╗ █████╗ ██████╗ ███████╗ + ██║ ██║██╔══██╗██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ + ██║ ██║██████╔╝██║ ███╗██████╔╝███████║██║ ██║█████╗ + ██║ ██║██╔═══╝ ██║ ██║██╔══██╗██╔══██║██║ ██║██╔══╝ + ╚██████╔╝██║ ╚██████╔╝██║ ██║██║ ██║██████╔╝███████╗ + ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚══════╝ + `) +} diff --git a/packages/toolshed/src/utils/bigint.ts b/packages/toolshed/src/utils/bigint.ts new file mode 100644 index 000000000..544375eae --- /dev/null +++ b/packages/toolshed/src/utils/bigint.ts @@ -0,0 +1,18 @@ +import { hexlify } from 'ethers' + +import { randomBytes } from 'ethers' + +export function randomBigInt(min: bigint, max: bigint): bigint { + if (min > max) throw new Error('min must be <= max') + const range = max - min + 1n + const bits = range.toString(2).length + const byteLen = Math.ceil(bits / 8) + + let rand: bigint + do { + const bytes = randomBytes(byteLen) + rand = BigInt('0x' + hexlify(bytes).slice(2)) + } while (rand >= range) + + return min + rand +} diff --git a/packages/toolshed/src/utils/index.ts b/packages/toolshed/src/utils/index.ts new file mode 100644 index 000000000..ecfc5c9c0 --- /dev/null +++ b/packages/toolshed/src/utils/index.ts @@ -0,0 +1,2 @@ +export * from './banner' +export * from './bigint' diff --git a/packages/toolshed/tsconfig.json b/packages/toolshed/tsconfig.json new file mode 100644 index 000000000..e5a013f47 --- /dev/null +++ b/packages/toolshed/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2020", + "module": "node16", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "outDir": "dist", + }, + "include": ["eslint.config.js", "src/**/*.ts", "test/**/*.ts"], +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..e80365c3f --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,26432 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@changesets/cli': + specifier: ^2.27.1 + version: 2.29.3 + '@commitlint/cli': + specifier: ^18.4.3 + version: 18.6.1(@types/node@22.7.5)(typescript@5.8.3) + '@commitlint/config-conventional': + specifier: ^18.4.3 + version: 18.6.3 + husky: + specifier: ^8.0.3 + version: 8.0.3 + + packages/contracts: + devDependencies: + '@arbitrum/sdk': + specifier: ~3.1.13 + version: 3.1.13(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@defi-wonderland/smock': + specifier: ~2.3.0 + version: 2.3.5(@ethersproject/abi@5.8.0)(@ethersproject/abstract-provider@5.8.0)(@ethersproject/abstract-signer@5.8.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@ethersproject/abi': + specifier: ^5.8.0 + version: 5.8.0 + '@ethersproject/abstract-provider': + specifier: ^5.8.0 + version: 5.8.0 + '@ethersproject/bytes': + specifier: ^5.8.0 + version: 5.8.0 + '@ethersproject/experimental': + specifier: ^5.6.0 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/providers': + specifier: ^5.8.0 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/common-ts': + specifier: ^1.8.3 + version: 1.8.7(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@graphprotocol/sdk': + specifier: 0.5.4 + version: 0.5.4(bufferutil@4.0.9)(encoding@0.1.13)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-network-helpers': + specifier: ^1.0.0 + version: 1.0.12(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-ethers': + specifier: ^2.2.3 + version: 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': + specifier: ^3.1.7 + version: 3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-waffle': + specifier: 2.0.3 + version: 2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@openzeppelin/contracts': + specifier: ^3.4.1 + version: 3.4.2 + '@openzeppelin/contracts-upgradeable': + specifier: 3.4.2 + version: 3.4.2 + '@openzeppelin/hardhat-defender': + specifier: ^1.8.1 + version: 1.9.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@openzeppelin/hardhat-upgrades': + specifier: ^1.6.0 + version: 1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@tenderly/hardhat-tenderly': + specifier: 1.0.13 + version: 1.0.13(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@typechain/ethers-v5': + specifier: ^7.0.0 + version: 7.2.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@5.2.0(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': + specifier: ^2.0.0 + version: 2.3.1(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@5.2.0(typescript@5.8.3)) + '@types/bs58': + specifier: ^4.0.1 + version: 4.0.4 + '@types/chai': + specifier: 4.3.4 + version: 4.3.4 + '@types/chai-as-promised': + specifier: ^7.1.5 + version: 7.1.8 + '@types/glob': + specifier: ^7.2.0 + version: 7.2.0 + '@types/inquirer': + specifier: ^7.3.1 + version: 7.3.3 + '@types/minimist': + specifier: ^1.2.1 + version: 1.2.5 + '@types/mocha': + specifier: ^8.2.2 + version: 8.2.3 + '@types/node': + specifier: ^20.9.0 + version: 20.17.32 + '@types/sinon-chai': + specifier: ^3.2.12 + version: 3.2.12 + '@types/winston': + specifier: ^2.4.4 + version: 2.4.4 + '@types/yargs': + specifier: ^16.0.0 + version: 16.0.9 + '@urql/core': + specifier: ^2.1.3 + version: 2.6.1(graphql@16.8.0) + arbos-precompiles: + specifier: ^1.0.2 + version: 1.0.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + axios: + specifier: ^1.8.4 + version: 1.9.0(debug@4.4.0) + bignumber.js: + specifier: 9.1.2 + version: 9.1.2 + chai: + specifier: 4.3.4 + version: 4.3.4 + chai-as-promised: + specifier: ^7.1.1 + version: 7.1.2(chai@4.3.4) + cli-table: + specifier: ^0.3.6 + version: 0.3.11 + console-table-printer: + specifier: ^2.11.1 + version: 2.12.1 + dotenv: + specifier: ^9.0.0 + version: 9.0.2 + eslint: + specifier: ^8.57.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^0.0.1 + version: link:../eslint-graph-config + ethereum-waffle: + specifier: ^3.2.0 + version: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10) + ethers: + specifier: ^5.7.2 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + form-data: + specifier: ^4.0.0 + version: 4.0.2 + glob: + specifier: ^8.0.3 + version: 8.1.0 + graphql-tag: + specifier: ^2.12.4 + version: 2.12.6(graphql@16.8.0) + hardhat: + specifier: ~2.14.0 + version: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-abi-exporter: + specifier: ^2.2.0 + version: 2.11.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-contract-sizer: + specifier: ^2.0.3 + version: 2.10.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-gas-reporter: + specifier: ^1.0.4 + version: 1.0.10(bufferutil@4.0.9)(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + hardhat-secure-accounts: + specifier: 0.0.5 + version: 0.0.5(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-storage-layout: + specifier: 0.1.6 + version: 0.1.6(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-tracer: + specifier: ^1.0.0-alpha.6 + version: 1.3.0(chalk@5.4.1)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + inquirer: + specifier: ^8.0.0 + version: 8.0.0 + ipfs-http-client: + specifier: 47.0.1 + version: 47.0.1(encoding@0.1.13) + isomorphic-fetch: + specifier: ^3.0.0 + version: 3.0.0(encoding@0.1.13) + lint-staged: + specifier: ^10.5.4 + version: 10.5.4 + p-queue: + specifier: ^6.6.1 + version: 6.6.2 + prettier: + specifier: ^3.2.5 + version: 3.5.3 + prettier-plugin-solidity: + specifier: ^1.3.1 + version: 1.4.3(prettier@3.5.3) + solhint: + specifier: ^4.1.1 + version: 4.5.4(typescript@5.8.3) + solhint-graph-config: + specifier: workspace:^0.0.1 + version: link:../solhint-graph-config + solhint-plugin-graph: + specifier: workspace:^0.0.1 + version: link:../solhint-plugin-graph + solidity-coverage: + specifier: ^0.7.16 + version: 0.7.22(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typechain: + specifier: ^5.0.0 + version: 5.2.0(typescript@5.8.3) + typescript: + specifier: ^5.2.2 + version: 5.8.3 + winston: + specifier: ^3.3.3 + version: 3.17.0 + yaml: + specifier: ^1.10.2 + version: 1.10.2 + yargs: + specifier: ^17.0.0 + version: 17.7.2 + + packages/data-edge: + devDependencies: + '@commitlint/cli': + specifier: ^16.2.1 + version: 16.3.0 + '@commitlint/config-conventional': + specifier: ^16.2.1 + version: 16.2.4 + '@nomiclabs/hardhat-ethers': + specifier: ^2.0.2 + version: 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': + specifier: ^3.1.2 + version: 3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-waffle': + specifier: ^2.0.1 + version: 2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@openzeppelin/contracts': + specifier: ^4.5.0 + version: 4.9.6 + '@openzeppelin/hardhat-upgrades': + specifier: ^1.8.2 + version: 1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@tenderly/api-client': + specifier: ^1.0.13 + version: 1.1.0(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5) + '@tenderly/hardhat-tenderly': + specifier: ^1.0.13 + version: 1.0.13(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@typechain/ethers-v5': + specifier: ^9.0.0 + version: 9.0.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@7.0.1(typescript@4.9.5))(typescript@4.9.5) + '@typechain/hardhat': + specifier: ^4.0.0 + version: 4.0.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@7.0.1(typescript@4.9.5)) + '@types/mocha': + specifier: ^9.0.0 + version: 9.1.1 + '@types/node': + specifier: ^17.0.0 + version: 17.0.45 + chai: + specifier: ^4.2.0 + version: 4.5.0 + dotenv: + specifier: ^16.0.0 + version: 16.5.0 + eslint: + specifier: ^8.57.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^0.0.1 + version: link:../eslint-graph-config + ethereum-waffle: + specifier: ^3.0.2 + version: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10) + ethers: + specifier: ^5.1.3 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethlint: + specifier: ^1.2.5 + version: 1.2.5(solium@1.2.5) + hardhat: + specifier: ~2.14.0 + version: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat-abi-exporter: + specifier: ^2.2.0 + version: 2.11.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + hardhat-contract-sizer: + specifier: ^2.0.3 + version: 2.10.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + hardhat-gas-reporter: + specifier: ^1.0.4 + version: 1.0.10(bufferutil@4.0.9)(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + husky: + specifier: ^7.0.4 + version: 7.0.4 + lint-staged: + specifier: ^12.3.5 + version: 12.5.0(enquirer@2.4.1) + prettier: + specifier: ^2.1.1 + version: 2.8.8 + prettier-plugin-solidity: + specifier: ^1.0.0-alpha.56 + version: 1.4.3(prettier@2.8.8) + solhint: + specifier: ^4.5.2 + version: 4.5.4(typescript@4.9.5) + solhint-graph-config: + specifier: workspace:^0.0.1 + version: link:../solhint-graph-config + solidity-coverage: + specifier: ^0.7.10 + version: 0.7.22(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + truffle-flattener: + specifier: ^1.4.4 + version: 1.6.0 + ts-node: + specifier: ^10.5.0 + version: 10.9.2(@types/node@17.0.45)(typescript@4.9.5) + typechain: + specifier: ^7.0.0 + version: 7.0.1(typescript@4.9.5) + typescript: + specifier: ^4.0.2 + version: 4.9.5 + + packages/eslint-graph-config: + dependencies: + '@stylistic/eslint-plugin': + specifier: ^1.6.2 + version: 1.8.1(eslint@8.57.1)(typescript@5.8.3) + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.3.0 + eslint-plugin-no-secrets: + specifier: ^0.8.9 + version: 0.8.9(eslint@8.57.1) + typescript-eslint: + specifier: ^7.0.2 + version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + devDependencies: + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 + '@types/node': + specifier: ^20.11.19 + version: 20.17.32 + globals: + specifier: ^16.0.0 + version: 16.0.0 + typescript: + specifier: ^5.3.3 + version: 5.8.3 + + packages/hardhat-graph-protocol: + dependencies: + '@graphprotocol/toolshed': + specifier: workspace:^ + version: link:../toolshed + '@nomicfoundation/hardhat-ethers': + specifier: 3.0.8 + version: 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: + specifier: ^4.3.7 + version: 4.4.0(supports-color@9.4.0) + json5: + specifier: ^2.2.3 + version: 2.2.3 + devDependencies: + '@nomicfoundation/hardhat-verify': + specifier: ^2.0.12 + version: 2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@types/chai': + specifier: ^4.0.0 + version: 4.3.20 + '@types/debug': + specifier: ^4.1.12 + version: 4.1.12 + '@types/mocha': + specifier: ^10.0.9 + version: 10.0.10 + chai: + specifier: ^4.0.0 + version: 4.5.0 + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^0.0.1 + version: link:../eslint-graph-config + ethers: + specifier: 6.13.7 + version: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: + specifier: ^2.22.16 + version: 2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-secure-accounts: + specifier: ^1.0.4 + version: 1.0.5(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + mocha: + specifier: ^10.8.2 + version: 10.8.2 + ts-node: + specifier: ^8.0.0 + version: 8.10.2(typescript@5.8.3) + typescript: + specifier: ^5.6.3 + version: 5.8.3 + + packages/horizon: + devDependencies: + '@defi-wonderland/natspec-smells': + specifier: ^1.1.6 + version: 1.1.6(typescript@5.8.3)(zod@3.24.4) + '@graphprotocol/contracts': + specifier: workspace:^7.1.2 + version: link:../contracts + '@graphprotocol/toolshed': + specifier: workspace:^ + version: link:../toolshed + '@nomicfoundation/hardhat-chai-matchers': + specifier: ^2.0.0 + version: 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': + specifier: 3.0.8 + version: 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-foundry': + specifier: ^1.1.1 + version: 1.1.3(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ignition': + specifier: ^0.15.9 + version: 0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ignition-ethers': + specifier: ^0.15.9 + version: 0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': + specifier: ^1.0.0 + version: 1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-toolbox': + specifier: ^4.0.0 + version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@20.17.32)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@nomicfoundation/hardhat-verify': + specifier: ^2.0.10 + version: 2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/ignition-core': + specifier: ^0.15.9 + version: 0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@openzeppelin/contracts': + specifier: ^5.0.2 + version: 5.3.0 + '@openzeppelin/contracts-upgradeable': + specifier: ^5.0.2 + version: 5.3.0(@openzeppelin/contracts@5.3.0) + '@typechain/ethers-v6': + specifier: ^0.5.0 + version: 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': + specifier: ^9.0.0 + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)) + '@types/chai': + specifier: ^4.2.0 + version: 4.3.20 + '@types/mocha': + specifier: '>=9.1.0' + version: 10.0.10 + '@types/node': + specifier: '>=16.0.0' + version: 20.17.32 + chai: + specifier: ^4.2.0 + version: 4.5.0 + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^0.0.1 + version: link:../eslint-graph-config + ethers: + specifier: 6.13.7 + version: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + glob: + specifier: ^11.0.1 + version: 11.0.2 + hardhat: + specifier: ^2.22.18 + version: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-contract-sizer: + specifier: ^2.10.0 + version: 2.10.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-gas-reporter: + specifier: ^1.0.8 + version: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + hardhat-graph-protocol: + specifier: workspace:^0.1.12 + version: link:../hardhat-graph-protocol + hardhat-secure-accounts: + specifier: ^1.0.5 + version: 1.0.5(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + lint-staged: + specifier: ^15.2.2 + version: 15.5.1 + prettier: + specifier: ^3.2.5 + version: 3.5.3 + prettier-plugin-solidity: + specifier: ^1.3.1 + version: 1.4.3(prettier@3.5.3) + solhint: + specifier: ^4.5.2 + version: 4.5.4(typescript@5.8.3) + solhint-graph-config: + specifier: workspace:^0.0.1 + version: link:../solhint-graph-config + solhint-plugin-graph: + specifier: workspace:^0.0.1 + version: link:../solhint-plugin-graph + solidity-coverage: + specifier: ^0.8.0 + version: 0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + ts-node: + specifier: '>=8.0.0' + version: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typechain: + specifier: ^8.3.0 + version: 8.3.2(typescript@5.8.3) + typescript: + specifier: ^5.6.3 + version: 5.8.3 + + packages/solhint-graph-config: + dependencies: + prettier: + specifier: ^3.2.5 + version: 3.5.3 + prettier-plugin-solidity: + specifier: ^1.3.1 + version: 1.4.3(prettier@3.5.3) + solhint: + specifier: ^4.5.4 + version: 4.5.4(typescript@5.8.3) + solhint-plugin-graph: + specifier: workspace:* + version: link:../solhint-plugin-graph + + packages/solhint-plugin-graph: {} + + packages/subgraph-service: + devDependencies: + '@defi-wonderland/natspec-smells': + specifier: ^1.1.6 + version: 1.1.6(typescript@5.8.3)(zod@3.24.4) + '@graphprotocol/contracts': + specifier: workspace:^7.1.2 + version: link:../contracts + '@graphprotocol/horizon': + specifier: workspace:^0.3.2 + version: link:../horizon + '@graphprotocol/toolshed': + specifier: workspace:^ + version: link:../toolshed + '@nomicfoundation/hardhat-chai-matchers': + specifier: ^2.0.0 + version: 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': + specifier: 3.0.8 + version: 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-foundry': + specifier: ^1.1.1 + version: 1.1.3(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ignition': + specifier: ^0.15.9 + version: 0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ignition-ethers': + specifier: ^0.15.9 + version: 0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': + specifier: ^1.0.0 + version: 1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-toolbox': + specifier: ^4.0.0 + version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@20.17.32)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@nomicfoundation/hardhat-verify': + specifier: ^2.0.10 + version: 2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/ignition-core': + specifier: ^0.15.9 + version: 0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@openzeppelin/contracts': + specifier: ^5.0.2 + version: 5.3.0 + '@openzeppelin/contracts-upgradeable': + specifier: ^5.0.2 + version: 5.3.0(@openzeppelin/contracts@5.3.0) + '@typechain/ethers-v6': + specifier: ^0.5.0 + version: 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': + specifier: ^9.0.0 + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)) + '@types/chai': + specifier: ^4.2.0 + version: 4.3.20 + '@types/mocha': + specifier: '>=9.1.0' + version: 10.0.10 + '@types/node': + specifier: '>=16.0.0' + version: 20.17.32 + chai: + specifier: ^4.2.0 + version: 4.5.0 + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^0.0.1 + version: link:../eslint-graph-config + ethers: + specifier: 6.13.7 + version: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + glob: + specifier: ^11.0.1 + version: 11.0.2 + hardhat: + specifier: ^2.22.18 + version: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-contract-sizer: + specifier: ^2.10.0 + version: 2.10.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-gas-reporter: + specifier: ^1.0.8 + version: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + hardhat-graph-protocol: + specifier: workspace:^0.1.12 + version: link:../hardhat-graph-protocol + hardhat-secure-accounts: + specifier: ^1.0.5 + version: 1.0.5(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + json5: + specifier: ^2.2.3 + version: 2.2.3 + lint-staged: + specifier: ^15.2.2 + version: 15.5.1 + prettier: + specifier: ^3.2.5 + version: 3.5.3 + prettier-plugin-solidity: + specifier: ^1.3.1 + version: 1.4.3(prettier@3.5.3) + solhint: + specifier: ^4.5.4 + version: 4.5.4(typescript@5.8.3) + solhint-graph-config: + specifier: workspace:^0.0.1 + version: link:../solhint-graph-config + solhint-plugin-graph: + specifier: workspace:^0.0.1 + version: link:../solhint-plugin-graph + solidity-coverage: + specifier: ^0.8.0 + version: 0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + solidity-docgen: + specifier: ^0.6.0-beta.36 + version: 0.6.0-beta.36(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + ts-node: + specifier: '>=8.0.0' + version: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typechain: + specifier: ^8.3.0 + version: 8.3.2(typescript@5.8.3) + typescript: + specifier: ^5.3.3 + version: 5.8.3 + + packages/token-distribution: + devDependencies: + '@ethersproject/experimental': + specifier: ^5.0.7 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/client-cli': + specifier: ^2.0.2 + version: 2.2.22(@babel/core@7.27.1)(@envelop/core@3.0.6)(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/merge@8.4.2(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@graphprotocol/contracts': + specifier: workspace:^7.0.0 + version: link:../contracts + '@nomiclabs/hardhat-ethers': + specifier: ^2.0.0 + version: 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': + specifier: ^3.1.7 + version: 3.1.8(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-waffle': + specifier: ^2.0.0 + version: 2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@openzeppelin/contracts': + specifier: ^3.3.0-solc-0.7 + version: 3.4.2 + '@openzeppelin/contracts-upgradeable': + specifier: 3.4.2 + version: 3.4.2 + '@openzeppelin/hardhat-upgrades': + specifier: ^1.22.1 + version: 1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@typechain/ethers-v5': + specifier: ^7.0.0 + version: 7.2.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@5.2.0(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': + specifier: ^2.0.0 + version: 2.3.1(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@5.2.0(typescript@5.8.3)) + '@types/mocha': + specifier: ^9.1.0 + version: 9.1.1 + '@types/node': + specifier: ^20.4.2 + version: 20.17.32 + chai: + specifier: ^4.2.0 + version: 4.5.0 + coingecko-api: + specifier: ^1.0.10 + version: 1.0.10 + consola: + specifier: ^2.15.0 + version: 2.15.3 + dotenv: + specifier: ^16.0.0 + version: 16.5.0 + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^ + version: link:../eslint-graph-config + ethereum-waffle: + specifier: ^3.1.1 + version: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10) + ethers: + specifier: ^5.0.18 + version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + graphql: + specifier: ^16.5.0 + version: 16.11.0 + hardhat: + specifier: ^2.6.1 + version: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-abi-exporter: + specifier: ^2.0.1 + version: 2.11.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-contract-sizer: + specifier: ^2.0.1 + version: 2.10.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + hardhat-deploy: + specifier: ^0.7.0-beta.9 + version: 0.7.11(@ethersproject/hardware-wallets@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + hardhat-gas-reporter: + specifier: ^1.0.1 + version: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + inquirer: + specifier: 8.0.0 + version: 8.0.0 + p-queue: + specifier: ^6.6.2 + version: 6.6.2 + prettier: + specifier: ^3.2.5 + version: 3.5.3 + prettier-plugin-solidity: + specifier: ^1.3.1 + version: 1.4.3(prettier@3.5.3) + solhint-community: + specifier: ^3.7.0 + version: 3.7.0(typescript@5.8.3) + solhint-graph-config: + specifier: workspace:^0.0.1 + version: link:../solhint-graph-config + solhint-plugin-prettier: + specifier: ^0.1.0 + version: 0.1.0(prettier-plugin-solidity@1.4.3(prettier@3.5.3))(prettier@3.5.3) + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typechain: + specifier: ^5.0.0 + version: 5.2.0(typescript@5.8.3) + typescript: + specifier: ^5.2.2 + version: 5.8.3 + + packages/toolshed: + dependencies: + '@graphprotocol/contracts': + specifier: workspace:^ + version: link:../contracts + '@graphprotocol/horizon': + specifier: workspace:^ + version: link:../horizon + '@graphprotocol/subgraph-service': + specifier: workspace:^ + version: link:../subgraph-service + '@nomicfoundation/hardhat-ethers': + specifier: 3.0.8 + version: 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: + specifier: ^4.4.0 + version: 4.4.0(supports-color@9.4.0) + ethers: + specifier: 6.13.7 + version: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + glob: + specifier: ^11.0.1 + version: 11.0.2 + hardhat: + specifier: ^2.22.16 + version: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + json5: + specifier: ^2.2.3 + version: 2.2.3 + devDependencies: + '@types/debug': + specifier: ^4.1.12 + version: 4.1.12 + '@types/json5': + specifier: ^2.2.0 + version: 2.2.0 + eslint: + specifier: ^8.56.0 + version: 8.57.1 + eslint-graph-config: + specifier: workspace:^ + version: link:../eslint-graph-config + typescript: + specifier: ^5.0.0 + version: 5.8.3 + +packages: + + '@adraffy/ens-normalize@1.10.1': + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@arbitrum/sdk@3.1.13': + resolution: {integrity: sha512-oE/j8ThWWEdFfV0helmR8lD0T67/CY1zMCt6RVslaCLrytFdbg3QsrHs/sQE3yiCXgisQlsx3qomCgh8PfBo8Q==} + engines: {node: '>=v11', npm: please-use-yarn, yarn: '>= 1.0.0'} + + '@ardatan/fast-json-stringify@0.0.6': + resolution: {integrity: sha512-//BefMIP6U1ptNeBf44Le4vqThejTwZndtYLtAuFBwA/DmbVbbYTCLNIMhZ96WZnhI92EvTXneT5tKJrgINE9A==} + peerDependencies: + ajv: ^8.10.0 + ajv-formats: ^2.1.1 + + '@ardatan/relay-compiler@12.0.0': + resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} + hasBin: true + peerDependencies: + graphql: '*' + + '@ardatan/sync-fetch@0.0.1': + resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} + engines: {node: '>=14'} + + '@aws-crypto/sha256-js@1.2.2': + resolution: {integrity: sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==} + + '@aws-crypto/util@1.2.2': + resolution: {integrity: sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==} + + '@aws-sdk/types@3.775.0': + resolution: {integrity: sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-utf8-browser@3.259.0': + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.27.1': + resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.27.1': + resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.1': + resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.1': + resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.27.1': + resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.27.1': + resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.27.1': + resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.1': + resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-object-rest-spread@7.20.7': + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-flow@7.27.1': + resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.27.1': + resolution: {integrity: sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-classes@7.27.1': + resolution: {integrity: sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.27.1': + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.27.1': + resolution: {integrity: sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.1': + resolution: {integrity: sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.27.1': + resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.27.1': + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.27.1': + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.27.1': + resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + engines: {node: '>=6.9.0'} + + '@bytecodealliance/preview2-shim@0.17.0': + resolution: {integrity: sha512-JorcEwe4ud0x5BS/Ar2aQWOQoFzjq/7jcnxYXCvSMh0oRm0dQXzOA+hqLDBnOMks1LLBA7dmiLLsEBl09Yd6iQ==} + + '@chainsafe/as-sha256@0.3.1': + resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} + + '@chainsafe/persistent-merkle-tree@0.4.2': + resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} + + '@chainsafe/persistent-merkle-tree@0.5.0': + resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} + + '@chainsafe/ssz@0.10.2': + resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} + + '@chainsafe/ssz@0.9.4': + resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} + + '@changesets/apply-release-plan@7.0.12': + resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} + + '@changesets/assemble-release-plan@6.0.7': + resolution: {integrity: sha512-vS5J92Rm7ZUcrvtu6WvggGWIdohv8s1/3ypRYQX8FsPO+KPDx6JaNC3YwSfh2umY/faGGfNnq42A7PRT0aZPFw==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/cli@2.29.3': + resolution: {integrity: sha512-TNhKr6Loc7I0CSD9LpAyVNSxWBHElXVmmvQYIZQvaMan5jddmL7geo3+08Wi7ImgHFVNB0Nhju/LzXqlrkoOxg==} + hasBin: true + + '@changesets/config@3.1.1': + resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.3': + resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + + '@changesets/get-release-plan@4.0.11': + resolution: {integrity: sha512-4DZpsewsc/1m5TArVg5h1c0U94am+cJBnu3izAM3yYIZr8+zZwa3AXYdEyCNURzjx0wWr80u/TWoxshbwdZXOA==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.1': + resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.5': + resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@commitlint/cli@16.3.0': + resolution: {integrity: sha512-P+kvONlfsuTMnxSwWE1H+ZcPMY3STFaHb2kAacsqoIkNx66O0T7sTpBxpxkMrFPyhkJiLJnJWMhk4bbvYD3BMA==} + engines: {node: '>=v12'} + hasBin: true + + '@commitlint/cli@18.6.1': + resolution: {integrity: sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@16.2.4': + resolution: {integrity: sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==} + engines: {node: '>=v12'} + + '@commitlint/config-conventional@18.6.3': + resolution: {integrity: sha512-8ZrRHqF6je+TRaFoJVwszwnOXb/VeYrPmTwPhf0WxpzpGTcYy1p0SPyZ2eRn/sRi/obnWAcobtDAq6+gJQQNhQ==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@16.2.1': + resolution: {integrity: sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==} + engines: {node: '>=v12'} + + '@commitlint/config-validator@18.6.1': + resolution: {integrity: sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==} + engines: {node: '>=v18'} + + '@commitlint/ensure@16.2.1': + resolution: {integrity: sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==} + engines: {node: '>=v12'} + + '@commitlint/ensure@18.6.1': + resolution: {integrity: sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@16.2.1': + resolution: {integrity: sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==} + engines: {node: '>=v12'} + + '@commitlint/execute-rule@18.6.1': + resolution: {integrity: sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==} + engines: {node: '>=v18'} + + '@commitlint/format@16.2.1': + resolution: {integrity: sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==} + engines: {node: '>=v12'} + + '@commitlint/format@18.6.1': + resolution: {integrity: sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@16.2.4': + resolution: {integrity: sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==} + engines: {node: '>=v12'} + + '@commitlint/is-ignored@18.6.1': + resolution: {integrity: sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==} + engines: {node: '>=v18'} + + '@commitlint/lint@16.2.4': + resolution: {integrity: sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==} + engines: {node: '>=v12'} + + '@commitlint/lint@18.6.1': + resolution: {integrity: sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==} + engines: {node: '>=v18'} + + '@commitlint/load@16.3.0': + resolution: {integrity: sha512-3tykjV/iwbkv2FU9DG+NZ/JqmP0Nm3b7aDwgCNQhhKV5P74JAuByULkafnhn+zsFGypG1qMtI5u+BZoa9APm0A==} + engines: {node: '>=v12'} + + '@commitlint/load@18.6.1': + resolution: {integrity: sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==} + engines: {node: '>=v18'} + + '@commitlint/message@16.2.1': + resolution: {integrity: sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==} + engines: {node: '>=v12'} + + '@commitlint/message@18.6.1': + resolution: {integrity: sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==} + engines: {node: '>=v18'} + + '@commitlint/parse@16.2.1': + resolution: {integrity: sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==} + engines: {node: '>=v12'} + + '@commitlint/parse@18.6.1': + resolution: {integrity: sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==} + engines: {node: '>=v18'} + + '@commitlint/read@16.2.1': + resolution: {integrity: sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==} + engines: {node: '>=v12'} + + '@commitlint/read@18.6.1': + resolution: {integrity: sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@16.2.1': + resolution: {integrity: sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==} + engines: {node: '>=v12'} + + '@commitlint/resolve-extends@18.6.1': + resolution: {integrity: sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==} + engines: {node: '>=v18'} + + '@commitlint/rules@16.2.4': + resolution: {integrity: sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==} + engines: {node: '>=v12'} + + '@commitlint/rules@18.6.1': + resolution: {integrity: sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@16.2.1': + resolution: {integrity: sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==} + engines: {node: '>=v12'} + + '@commitlint/to-lines@18.6.1': + resolution: {integrity: sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==} + engines: {node: '>=v18'} + + '@commitlint/top-level@16.2.1': + resolution: {integrity: sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==} + engines: {node: '>=v12'} + + '@commitlint/top-level@18.6.1': + resolution: {integrity: sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==} + engines: {node: '>=v18'} + + '@commitlint/types@16.2.1': + resolution: {integrity: sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==} + engines: {node: '>=v12'} + + '@commitlint/types@18.6.1': + resolution: {integrity: sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==} + engines: {node: '>=v18'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dabh/diagnostics@2.0.3': + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + + '@defi-wonderland/natspec-smells@1.1.6': + resolution: {integrity: sha512-HTdZLEdBs3UakW0JQZ7vO8pb6YCoU3CPQNfLxa0Z9PWAwmgKhSZJbF8dm/okkJEJGRa0dCoOxviJw5jeK+kDiQ==} + hasBin: true + + '@defi-wonderland/smock@2.3.5': + resolution: {integrity: sha512-klANj1hUpc3cd2ShXdVH/bEGwxJd+LxOngkF5gLcIbg6b37RCgMPMmR/94/hgL62F8bfWtuNKsQD7K+c6M5fWQ==} + peerDependencies: + '@ethersproject/abi': ^5 + '@ethersproject/abstract-provider': ^5 + '@ethersproject/abstract-signer': ^5 + '@nomiclabs/hardhat-ethers': ^2 + ethers: ^5 + hardhat: ^2 + + '@ensdomains/ens@0.4.5': + resolution: {integrity: sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==} + deprecated: Please use @ensdomains/ens-contracts + + '@ensdomains/resolver@0.2.4': + resolution: {integrity: sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==} + deprecated: Please use @ensdomains/ens-contracts + + '@envelop/core@3.0.6': + resolution: {integrity: sha512-06t1xCPXq6QFN7W1JUEf68aCwYN0OUDNAIoJe7bAqhaoa2vn7NCcuX1VHkJ/OWpmElUgCsRO6RiBbIru1in0Ig==} + + '@envelop/extended-validation@2.0.6': + resolution: {integrity: sha512-aXAf1bg5Z71YfEKLCZ8OMUZAOYPGHV/a+7avd5TIMFNDxl5wJTmIonep3T+kdMpwRInDphfNPGFD0GcGdGxpHg==} + peerDependencies: + '@envelop/core': ^3.0.6 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@envelop/types@3.0.2': + resolution: {integrity: sha512-pOFea9ha0EkURWxJ/35axoH9fDGP5S2cUu/5Mmo9pb8zUf+TaEot8vB670XXihFEn/92759BMjLJNWBKmNhyng==} + + '@envelop/validation-cache@5.1.3': + resolution: {integrity: sha512-MkzcScQHJJQ/9YCAPdWShEi3xZv4F4neTs+NszzSrZOdlU8z/THuRt7gZ0sO0y2be+sx+SKjHQP8Gq3VXXcTTg==} + peerDependencies: + '@envelop/core': ^3.0.6 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ethereum-waffle/chai@3.4.4': + resolution: {integrity: sha512-/K8czydBtXXkcM9X6q29EqEkc5dN3oYenyH2a9hF7rGAApAJUpH8QBtojxOY/xQ2up5W332jqgxwp0yPiYug1g==} + engines: {node: '>=10.0'} + + '@ethereum-waffle/compiler@3.4.4': + resolution: {integrity: sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ==} + engines: {node: '>=10.0'} + + '@ethereum-waffle/ens@3.4.4': + resolution: {integrity: sha512-0m4NdwWxliy3heBYva1Wr4WbJKLnwXizmy5FfSSr5PMbjI7SIGCdCB59U7/ZzY773/hY3bLnzLwvG5mggVjJWg==} + engines: {node: '>=10.0'} + + '@ethereum-waffle/mock-contract@3.4.4': + resolution: {integrity: sha512-Mp0iB2YNWYGUV+VMl5tjPsaXKbKo8MDH9wSJ702l9EBjdxFf/vBvnMBAC1Fub1lLtmD0JHtp1pq+mWzg/xlLnA==} + engines: {node: '>=10.0'} + + '@ethereum-waffle/provider@3.4.4': + resolution: {integrity: sha512-GK8oKJAM8+PKy2nK08yDgl4A80mFuI8zBkE0C9GqTRYQqvuxIyXoLmJ5NZU9lIwyWVv5/KsoA11BgAv2jXE82g==} + engines: {node: '>=10.0'} + + '@ethereumjs/common@2.5.0': + resolution: {integrity: sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==} + + '@ethereumjs/common@2.6.5': + resolution: {integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/rlp@5.0.2': + resolution: {integrity: sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==} + engines: {node: '>=18'} + hasBin: true + + '@ethereumjs/tx@3.3.2': + resolution: {integrity: sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==} + + '@ethereumjs/tx@3.5.2': + resolution: {integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==} + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + + '@ethereumjs/util@9.1.0': + resolution: {integrity: sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==} + engines: {node: '>=18'} + + '@ethersproject/abi@5.0.0-beta.153': + resolution: {integrity: sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==} + + '@ethersproject/abi@5.6.0': + resolution: {integrity: sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg==} + + '@ethersproject/abi@5.7.0': + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + + '@ethersproject/abi@5.8.0': + resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} + + '@ethersproject/abstract-provider@5.6.0': + resolution: {integrity: sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==} + + '@ethersproject/abstract-provider@5.7.0': + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + + '@ethersproject/abstract-provider@5.8.0': + resolution: {integrity: sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==} + + '@ethersproject/abstract-signer@5.6.0': + resolution: {integrity: sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==} + + '@ethersproject/abstract-signer@5.7.0': + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + + '@ethersproject/abstract-signer@5.8.0': + resolution: {integrity: sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==} + + '@ethersproject/address@5.6.0': + resolution: {integrity: sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==} + + '@ethersproject/address@5.6.1': + resolution: {integrity: sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==} + + '@ethersproject/address@5.7.0': + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + + '@ethersproject/address@5.8.0': + resolution: {integrity: sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==} + + '@ethersproject/base64@5.6.0': + resolution: {integrity: sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==} + + '@ethersproject/base64@5.7.0': + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + + '@ethersproject/base64@5.8.0': + resolution: {integrity: sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==} + + '@ethersproject/basex@5.6.0': + resolution: {integrity: sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==} + + '@ethersproject/basex@5.7.0': + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} + + '@ethersproject/basex@5.8.0': + resolution: {integrity: sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==} + + '@ethersproject/bignumber@5.6.0': + resolution: {integrity: sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==} + + '@ethersproject/bignumber@5.7.0': + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + + '@ethersproject/bignumber@5.8.0': + resolution: {integrity: sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==} + + '@ethersproject/bytes@5.6.1': + resolution: {integrity: sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/bytes@5.8.0': + resolution: {integrity: sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==} + + '@ethersproject/constants@5.6.0': + resolution: {integrity: sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==} + + '@ethersproject/constants@5.7.0': + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + + '@ethersproject/constants@5.8.0': + resolution: {integrity: sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==} + + '@ethersproject/contracts@5.6.0': + resolution: {integrity: sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==} + + '@ethersproject/contracts@5.7.0': + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} + + '@ethersproject/contracts@5.8.0': + resolution: {integrity: sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==} + + '@ethersproject/experimental@5.8.0': + resolution: {integrity: sha512-Oa5LNrm0jk0xQwbwd///ptex4Y62VRYIBzLfRtPpS5CGE+4RbAvETWc7bp/I0cXHqvXjvdvPNcZNc40qB8B5Mw==} + + '@ethersproject/hardware-wallets@5.8.0': + resolution: {integrity: sha512-bsGrIs3CnsphjB+0/8bcoBm3ttJInUTSC1f2bA5Gjf8KPyA1DlIAr3x/RKQdg0a0EWygtY9HNRJgosec5mvZ7Q==} + + '@ethersproject/hash@5.6.0': + resolution: {integrity: sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==} + + '@ethersproject/hash@5.7.0': + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + + '@ethersproject/hash@5.8.0': + resolution: {integrity: sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==} + + '@ethersproject/hdnode@5.6.0': + resolution: {integrity: sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==} + + '@ethersproject/hdnode@5.7.0': + resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} + + '@ethersproject/hdnode@5.8.0': + resolution: {integrity: sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==} + + '@ethersproject/json-wallets@5.6.0': + resolution: {integrity: sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==} + + '@ethersproject/json-wallets@5.7.0': + resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} + + '@ethersproject/json-wallets@5.8.0': + resolution: {integrity: sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==} + + '@ethersproject/keccak256@5.6.0': + resolution: {integrity: sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==} + + '@ethersproject/keccak256@5.7.0': + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + + '@ethersproject/keccak256@5.8.0': + resolution: {integrity: sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==} + + '@ethersproject/logger@5.6.0': + resolution: {integrity: sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/logger@5.8.0': + resolution: {integrity: sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==} + + '@ethersproject/networks@5.6.1': + resolution: {integrity: sha512-b2rrupf3kCTcc3jr9xOWBuHylSFtbpJf79Ga7QR98ienU2UqGimPGEsYMgbI29KHJfA5Us89XwGVmxrlxmSrMg==} + + '@ethersproject/networks@5.7.0': + resolution: {integrity: sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==} + + '@ethersproject/networks@5.8.0': + resolution: {integrity: sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==} + + '@ethersproject/pbkdf2@5.6.0': + resolution: {integrity: sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==} + + '@ethersproject/pbkdf2@5.7.0': + resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} + + '@ethersproject/pbkdf2@5.8.0': + resolution: {integrity: sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==} + + '@ethersproject/properties@5.6.0': + resolution: {integrity: sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==} + + '@ethersproject/properties@5.7.0': + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + + '@ethersproject/properties@5.8.0': + resolution: {integrity: sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==} + + '@ethersproject/providers@5.6.2': + resolution: {integrity: sha512-6/EaFW/hNWz+224FXwl8+HdMRzVHt8DpPmu5MZaIQqx/K/ELnC9eY236SMV7mleCM3NnEArFwcAAxH5kUUgaRg==} + + '@ethersproject/providers@5.7.0': + resolution: {integrity: sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==} + + '@ethersproject/providers@5.8.0': + resolution: {integrity: sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==} + + '@ethersproject/random@5.6.0': + resolution: {integrity: sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==} + + '@ethersproject/random@5.7.0': + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} + + '@ethersproject/random@5.8.0': + resolution: {integrity: sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==} + + '@ethersproject/rlp@5.6.0': + resolution: {integrity: sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==} + + '@ethersproject/rlp@5.7.0': + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + + '@ethersproject/rlp@5.8.0': + resolution: {integrity: sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==} + + '@ethersproject/sha2@5.6.0': + resolution: {integrity: sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==} + + '@ethersproject/sha2@5.7.0': + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + + '@ethersproject/sha2@5.8.0': + resolution: {integrity: sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==} + + '@ethersproject/signing-key@5.6.0': + resolution: {integrity: sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==} + + '@ethersproject/signing-key@5.7.0': + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + + '@ethersproject/signing-key@5.8.0': + resolution: {integrity: sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==} + + '@ethersproject/solidity@5.6.0': + resolution: {integrity: sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==} + + '@ethersproject/solidity@5.7.0': + resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} + + '@ethersproject/solidity@5.8.0': + resolution: {integrity: sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==} + + '@ethersproject/strings@5.6.0': + resolution: {integrity: sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==} + + '@ethersproject/strings@5.7.0': + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + + '@ethersproject/strings@5.8.0': + resolution: {integrity: sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==} + + '@ethersproject/transactions@5.6.0': + resolution: {integrity: sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==} + + '@ethersproject/transactions@5.7.0': + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + + '@ethersproject/transactions@5.8.0': + resolution: {integrity: sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==} + + '@ethersproject/units@5.6.0': + resolution: {integrity: sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==} + + '@ethersproject/units@5.7.0': + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} + + '@ethersproject/units@5.8.0': + resolution: {integrity: sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==} + + '@ethersproject/wallet@5.6.0': + resolution: {integrity: sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==} + + '@ethersproject/wallet@5.7.0': + resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} + + '@ethersproject/wallet@5.8.0': + resolution: {integrity: sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==} + + '@ethersproject/web@5.6.0': + resolution: {integrity: sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==} + + '@ethersproject/web@5.7.0': + resolution: {integrity: sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==} + + '@ethersproject/web@5.8.0': + resolution: {integrity: sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==} + + '@ethersproject/wordlists@5.6.0': + resolution: {integrity: sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==} + + '@ethersproject/wordlists@5.7.0': + resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} + + '@ethersproject/wordlists@5.8.0': + resolution: {integrity: sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@fastify/deepmerge@1.3.0': + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + + '@graphprotocol/client-add-source-name@1.0.20': + resolution: {integrity: sha512-JJ++BVg4fhNCbLej105uHpabZesLsCSo9p43ZKSTT1VUdbuZtarzyIHC3uUmbvCfWQMVTCJEBZGx4l41oooOiw==} + peerDependencies: + '@graphql-mesh/types': ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 + '@graphql-tools/delegate': ^9.0.32 + '@graphql-tools/utils': ^9.2.1 + '@graphql-tools/wrap': ^9.4.2 + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/client-auto-pagination@1.1.18': + resolution: {integrity: sha512-p8eEyeBcqxCXLxC7CNgIhLSCd7bjiKToKnrwYPShVb26gIG2JdAmD3/mpjuR+QaMA4chN/EO5t+TGvq6KnFx9g==} + peerDependencies: + '@graphql-mesh/types': ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 + '@graphql-tools/delegate': ^9.0.32 + '@graphql-tools/utils': ^9.2.1 + '@graphql-tools/wrap': ^9.4.2 + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/client-auto-type-merging@1.0.25': + resolution: {integrity: sha512-kpiX2s804mpP3EVL0EdJfxeHWBTdg6SglIyEvSZ5T1OWyGDeMhr19D+gVIAlo22/PiBUkBDd0JfqppLsliPZ1A==} + peerDependencies: + '@graphql-mesh/types': ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 + '@graphql-tools/delegate': ^9.0.32 + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/client-block-tracking@1.0.14': + resolution: {integrity: sha512-Eim0fZ0AgukHt5770j/UYDxfrqJroOhDe8FfNKKN7mDVRoMBoCsNknH47i03fh4A/kE8R+J6Job/zEJZPTtKnQ==} + peerDependencies: + '@graphql-tools/delegate': ^9.0.32 + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/client-cli@2.2.22': + resolution: {integrity: sha512-PIi8rFibYZVup+0jb08399RmbGF1ZrqUe6RXzLtKZBT57OWIMWwsFvdJyUAdr8Y8f0rrMn6A+Oy4nP1lf3hc1g==} + hasBin: true + peerDependencies: + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/client-polling-live@1.1.1': + resolution: {integrity: sha512-/XKnXNTts1VCUqwN2TCuPzQBfMGusL8vtamACKUeX65WxVy/H/Wjpcxq+w/XbyqNsQdG5QOoxY+AS/vKMhUcDQ==} + peerDependencies: + '@envelop/core': ^2.4.2 || ^3.0.0 + '@graphql-tools/merge': ^8.3.14 + graphql: ^15.2.0 || ^16.0.0 + + '@graphprotocol/common-ts@1.8.7': + resolution: {integrity: sha512-B1LZHbWnP7HOjkycN/y0dB47yZ8PuhOrZHGLsRo+4qhpMJx55NzJBfPOPnivnrfbM7wL69l158NpSHhpr9Mgug==} + + '@graphprotocol/common-ts@2.0.11': + resolution: {integrity: sha512-WtQGYMGVwaXDIli+OCAZUSqh8+ql9THzjztqvLGeSbAIPKxysvej9vua0voMguqEkI/RyEEMBajelodMzzZlEw==} + + '@graphprotocol/contracts@2.1.0': + resolution: {integrity: sha512-SeymJCUxBp488K/KNi77EKvrkPT0t/7rERGp8zFkmf5KByerjihhE9Ty9oXJAU9RzbUpxsU0JkPBSmiw9/2DYQ==} + + '@graphprotocol/contracts@5.3.3': + resolution: {integrity: sha512-fmFSKr+VDinWWotj2q/Ztn92PppcRrYXeO/62gLgkLos/DcYa7bGWKbcOWyMUw0vsUvXxk6QAtr5o/LG3yQ1WQ==} + + '@graphprotocol/pino-sentry-simple@0.7.1': + resolution: {integrity: sha512-iccKFdFBjarSp8/liXuK1EtGq8Vwn118tqymbOJBxblecRsi4rOebk63qnL+dK/a0IvxH6h2+RjjWDbRt7UsUA==} + engines: {node: '>=10'} + + '@graphprotocol/sdk@0.5.4': + resolution: {integrity: sha512-iVmzFBT/SjeNrtt+6BUEf9zqrX4ojSlZBY5A4FLbJUbOEMLWvlCIN/psTSeX4sRY7mn1X7G/RX3b/AsEtSBakA==} + + '@graphql-codegen/core@3.1.0': + resolution: {integrity: sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/plugin-helpers@2.7.2': + resolution: {integrity: sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/plugin-helpers@3.1.2': + resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/plugin-helpers@4.2.0': + resolution: {integrity: sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/schema-ast@3.0.1': + resolution: {integrity: sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typed-document-node@4.0.1': + resolution: {integrity: sha512-mQNYCd12JsFSaK6xLry4olY9TdYG7GxQPexU6qU4Om++eKhseGwk2eGmQDRG4Qp8jEDFLMXuHMVUKqMQ1M+F/A==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript-generic-sdk@3.1.0': + resolution: {integrity: sha512-nQZi/YGRI1+qCZZsh0V5nz6+hCHSN4OU9tKyOTDsEPyDFnGEukDuRdCH2IZasGn22a3Iu5TUDkgp5w9wEQwGmg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-tag: ^2.0.0 + + '@graphql-codegen/typescript-operations@3.0.4': + resolution: {integrity: sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript-resolvers@3.2.1': + resolution: {integrity: sha512-2ZIHk5J6HTuylse5ZIxw+aega54prHxvj7vM8hiKJ6vejZ94kvVPAq4aWmSFOkZ5lqU3YnM/ZyWfnhT5CUDj1g==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/typescript@3.0.4': + resolution: {integrity: sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw==} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/visitor-plugin-common@2.13.1': + resolution: {integrity: sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-codegen/visitor-plugin-common@3.1.1': + resolution: {integrity: sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-inspector/core@3.3.0': + resolution: {integrity: sha512-LRtk9sHgj9qqVPIkkThAVq3iZ7QxgHCx6elEwd0eesZBCmaIYQxD/BFu+VT8jr10YfOURBZuAnVdyGu64vYpBg==} + peerDependencies: + graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@graphql-mesh/cache-localforage@0.93.1': + resolution: {integrity: sha512-cY/LJ+XC8kiyPoLxqPAMlOAvaeB81CZafdadLNyNDFuu66qDiZqWTYPw/lnhp2nyeukC8o/P69oP7d2OqVaCZA==} + peerDependencies: + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/cli@0.82.35': + resolution: {integrity: sha512-5IuXpk+Zpg05u6qNPX19VzC5/HCiLdDRF6EPZ3ze57FIRgGA3YsB1CUGga6Ky3inalURYwx0kWqmdjbdKZYx1w==} + hasBin: true + peerDependencies: + graphql: '*' + + '@graphql-mesh/config@0.93.1': + resolution: {integrity: sha512-g4omjuBBVPtyhEDeEa6uwfSSvUehV3zcwZVNbk+UJuFJEYPO4yBLsxfEZBpoeO6EriiPX2WnQyn5kiHbC3YTRA==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/runtime': ^0.93.1 + '@graphql-mesh/store': ^0.93.1 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/cross-helpers@0.3.4': + resolution: {integrity: sha512-jseNppSNEwNWjcjDDwsxmRBK+ub8tz2qc/ca2ZfCTebuCk/+D3dI3LJ95ceNFOIhInK0g2HVq8BO8lMMX1pQtg==} + peerDependencies: + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + + '@graphql-mesh/graphql@0.93.1': + resolution: {integrity: sha512-1G2/1jkl1VPWhsZsUBwFQI5d9OxxEc+CMxy5ef0qI2WEXqIocOxMhEY53cc+tCSbuXR99rxos+KD/8Z6ZasaOQ==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/store': ^0.93.1 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/http@0.93.2': + resolution: {integrity: sha512-tdGEvijb3w2YJsncoh59ZobWLWpYPDmTd07XOYroJTg3m95zloFRJr/IzklKOsAa57zVIuRLCOfDju5m1m47CQ==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/runtime': ^0.93.2 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/merger-bare@0.93.1': + resolution: {integrity: sha512-S/G3WSSa4+9YT320iRL/tODK4hTvepkQNUSzmddf3oz10xeyQD7hPJyOAnB6D+2dGVhaOTwmXJIueqevcAcP6Q==} + peerDependencies: + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/merger-stitching@0.93.1': + resolution: {integrity: sha512-8km5UFhKQGd0XY8bTBpHoBhVx/7qCkflPHLoTAguIWN8nJrcXJoqPamodci/U+2hudLAtRqhWosHu/8z7ctZpg==} + peerDependencies: + '@graphql-mesh/store': ^0.93.1 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/runtime@0.93.2': + resolution: {integrity: sha512-8z9ag3jZLmkzawMzF6+i/+P1nQai+HmSZzNeJJen6fRkwprSM1Z7B4lfYBYhdiCbK11HHubDfw4LYwRuBcISMQ==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/store@0.93.1': + resolution: {integrity: sha512-OEljVuaZn2htU1rt4Yll/aJmynw3/Kvhd6eE8V0/del0u9iuLJqiKkzFJl8HUSMh0IkO10OnficJnTM0tCmxRw==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/string-interpolation@0.4.4': + resolution: {integrity: sha512-IotswBYZRaPswOebcr2wuOFuzD3dHIJxVEkPiiQubqjUIR8HhQI22XHJv0WNiQZ65z8NR9+GYWwEDIc2JRCNfQ==} + peerDependencies: + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/transform-type-merging@0.93.1': + resolution: {integrity: sha512-CUrqCMaEqO1LDusv59UPqmQju3f+LpEGxFu7CydMiIvbfKDDDrf8+dF3OVU7d/ZOMRxB6hR80JsQF0SVeXPCOQ==} + peerDependencies: + '@graphql-mesh/types': ^0.93.1 + '@graphql-mesh/utils': ^0.93.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/types@0.93.2': + resolution: {integrity: sha512-113DuJzmR7aj2EMnLPu33ktCe5k7+Mk0BxFfmQViUH+mkr6i4JMsWvPKs9dTODSYuSuwvAZ90Vw2l3QyMrbFVA==} + peerDependencies: + '@graphql-mesh/store': ^0.93.1 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-mesh/utils@0.93.2': + resolution: {integrity: sha512-U+VytfSoqPofH/pmYZHFY10SkIFtHKrvE7Isxv1d0DiweVjdH3Qtojw13DWFpu/EKtgJY5bqoVnlcsZJYlKQoA==} + peerDependencies: + '@graphql-mesh/cross-helpers': ^0.3.4 + '@graphql-mesh/types': ^0.93.2 + '@graphql-tools/utils': ^9.2.1 + graphql: '*' + tslib: ^2.4.0 + + '@graphql-tools/batch-delegate@8.4.27': + resolution: {integrity: sha512-efgDDJhljma9d3Ky/LswIu1xm/if2oS27XA1sOcxcShW+Ze+Qxi0hZZ6iyI4eQxVDX5Lyy/n+NvQEZAK1riqnQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/batch-execute@8.5.22': + resolution: {integrity: sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/code-file-loader@7.3.23': + resolution: {integrity: sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/delegate@9.0.35': + resolution: {integrity: sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-graphql-ws@0.0.14': + resolution: {integrity: sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-http@0.1.10': + resolution: {integrity: sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-legacy-ws@0.0.11': + resolution: {integrity: sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor@0.0.18': + resolution: {integrity: sha512-xZC0C+/npXoSHBB5bsJdwxDLgtl1Gu4fL9J2TPQmXoZC3L2N506KJoppf9LgWdHU/xK04luJrhP6WjhfkIN0pQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor@0.0.20': + resolution: {integrity: sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-file-loader@7.5.17': + resolution: {integrity: sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/graphql-tag-pluck@7.5.2': + resolution: {integrity: sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/import@6.7.18': + resolution: {integrity: sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/load@7.8.14': + resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/merge@8.4.2': + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/optimize@1.4.0': + resolution: {integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/relay-operation-optimizer@6.5.18': + resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/schema@9.0.19': + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/stitch@8.7.50': + resolution: {integrity: sha512-VB1/uZyXjj1P5Wj0c4EKX3q8Q1Maj4dy6uNwodEPaO3EHMpaJU/DqyN0Bvnhxu0ol7RzdY3kgsvsdUjU2QMImw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/stitching-directives@2.3.34': + resolution: {integrity: sha512-DVlo1/SW9jN6jN1IL279c7voEJiEHsLbYRD7tYsAW472zrHqn0rpB6jRzZDzLOlCpm7JRWPsegXVlkqf0qvqFQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/url-loader@7.17.18': + resolution: {integrity: sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@8.13.1': + resolution: {integrity: sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@9.2.1': + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/wrap@9.4.2': + resolution: {integrity: sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-yoga/logger@0.0.1': + resolution: {integrity: sha512-6npFz7eZz33mXgSm1waBLMjUNG0D5hTc/p5Hcs1mojkT3KsLpCOFokzTEKboNsBhKevYcaVa/xeA7WBj4UYMLg==} + + '@graphql-yoga/subscription@3.1.0': + resolution: {integrity: sha512-Vc9lh8KzIHyS3n4jBlCbz7zCjcbtQnOBpsymcRvHhFr2cuH+knmRn0EmzimMQ58jQ8kxoRXXC3KJS3RIxSdPIg==} + + '@graphql-yoga/typed-event-target@1.0.0': + resolution: {integrity: sha512-Mqni6AEvl3VbpMtKw+TIjc9qS9a8hKhiAjFtqX488yq5oJtj9TkNlFTIacAVS3vnPiswNsmDiQqvwUOcJgi1DA==} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/ttlcache@1.4.1': + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/create-cache-key-function@29.7.0': + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@ledgerhq/cryptoassets@5.53.0': + resolution: {integrity: sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==} + + '@ledgerhq/devices@5.51.1': + resolution: {integrity: sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==} + + '@ledgerhq/errors@5.50.0': + resolution: {integrity: sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==} + + '@ledgerhq/hw-app-eth@5.27.2': + resolution: {integrity: sha512-llNdrE894cCN8j6yxJEUniciyLVcLmu5N0UmIJLOObztG+5rOF4bX54h4SreTWK+E10Z0CzHSeyE5Lz/tVcqqQ==} + + '@ledgerhq/hw-transport-node-hid-noevents@5.51.1': + resolution: {integrity: sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==} + + '@ledgerhq/hw-transport-node-hid@5.26.0': + resolution: {integrity: sha512-qhaefZVZatJ6UuK8Wb6WSFNOLWc2mxcv/xgsfKi5HJCIr4bPF/ecIeN+7fRcEaycxj4XykY6Z4A7zDVulfFH4w==} + + '@ledgerhq/hw-transport-u2f@5.26.0': + resolution: {integrity: sha512-QTxP1Rsh+WZ184LUOelYVLeaQl3++V3I2jFik+l9JZtakwEHjD0XqOT750xpYNL/vfHsy31Wlz+oicdxGzFk+w==} + deprecated: '@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md' + + '@ledgerhq/hw-transport@5.26.0': + resolution: {integrity: sha512-NFeJOJmyEfAX8uuIBTpocWHcz630sqPcXbu864Q+OCBm4EK5UOKV1h/pX7e0xgNIKY8zhJ/O4p4cIZp9tnXLHQ==} + + '@ledgerhq/hw-transport@5.51.1': + resolution: {integrity: sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==} + + '@ledgerhq/logs@5.50.0': + resolution: {integrity: sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==} + + '@ljharb/resumer@0.0.1': + resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==} + engines: {node: '>= 0.4'} + + '@ljharb/through@2.3.14': + resolution: {integrity: sha512-ajBvlKpWucBB17FuQYUShqpqy8GRgYEpJW0vWJbUu1CV9lWyrDCapy0lScU8T8Z6qn49sSwJB3+M+evYIdGg+A==} + engines: {node: '>= 0.4'} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@metamask/eth-sig-util@4.0.1': + resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} + engines: {node: '>=12.0.0'} + + '@multiformats/base-x@4.0.1': + resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} + + '@noble/curves@1.2.0': + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + + '@noble/curves@1.8.2': + resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.2.0': + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + + '@noble/hashes@1.3.2': + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.7.2': + resolution: {integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@noble/secp256k1@1.7.1': + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nomicfoundation/edr-darwin-arm64@0.10.0': + resolution: {integrity: sha512-n0N+CVM4LKN9QeGZ5irr94Q4vwSs4u7W6jfuhNLmx1cpUxwE9RpeW+ym93JXDv62iVsbekeI5VsUEBHy0hymtA==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-darwin-x64@0.10.0': + resolution: {integrity: sha512-nmImWM/3qWopYzOmicMzK/MF3rFKpm2Biuc8GpQYTLjdXhmItpP9JwEPyjbAWv/1HI09C2pRzgNzKfTxoIgJ6w==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-arm64-gnu@0.10.0': + resolution: {integrity: sha512-B/N1IyrCU7J6H4QckkQ1cSWAq1jSrJcXpO8GzRaQD1bgOOvg8wrUOrCD+Mfw7MLa6+X9vdZoXtPZOaaOQ9LmhA==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-arm64-musl@0.10.0': + resolution: {integrity: sha512-NA9DFLB0LzcKy9mTCUzgnRDbmmSfW0CdO22ySwOy+MKt4Cr9eJi+XR5ZH933Rxpi6BWNkSPeS2ECETE25sJT3w==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-x64-gnu@0.10.0': + resolution: {integrity: sha512-bDrbRTA9qZ9wSw5mqa8VpLFbf6ue2Z4qmRd08404eKm8RyBEFxjdHflFzCx46gz/Td0e+GLXy6KTVDj5D29r8w==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-linux-x64-musl@0.10.0': + resolution: {integrity: sha512-wx7yOlC/hx4N1xuIeh5cAebpzCTx8ZH8/z0IyYMf2t4v52KHERz4IyzBz5OLfd+0IqTRg8ZU5EnFBacIoPeP/g==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr-win32-x64-msvc@0.10.0': + resolution: {integrity: sha512-DpBdVMimb+BUEs0E+nLGQ5JFHdGHyxQQNA+nh9V1eKtgarsV21S6br/d1vlQBMLQqkIzwmc6n+/O9Zjk2KfB3g==} + engines: {node: '>= 18'} + + '@nomicfoundation/edr@0.10.0': + resolution: {integrity: sha512-ed9qHSNssgh+0hYUx4ilDoMxxgf/sNT8SjnzgmA5A/LSXHaq2ax68bkdQ8otLYTlxHCO9BS5Nhb8bfajV4FZeA==} + engines: {node: '>= 18'} + + '@nomicfoundation/ethereumjs-block@4.2.2': + resolution: {integrity: sha512-atjpt4gc6ZGZUPHBAQaUJsm1l/VCo7FmyQ780tMGO8QStjLdhz09dXynmhwVTy5YbRr0FOh/uX3QaEM0yIB2Zg==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-block@5.0.1': + resolution: {integrity: sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-blockchain@6.2.2': + resolution: {integrity: sha512-6AIB2MoTEPZJLl6IRKcbd8mUmaBAQ/NMe3O7OsAOIiDjMNPPH5KaUQiLfbVlegT4wKIg/GOsFH7XlH2KDVoJNg==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-blockchain@7.0.1': + resolution: {integrity: sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-common@3.1.2': + resolution: {integrity: sha512-JAEBpIua62dyObHM9KI2b4wHZcRQYYge9gxiygTWa3lNCr2zo+K0TbypDpgiNij5MCGNWP1eboNfNfx1a3vkvA==} + + '@nomicfoundation/ethereumjs-common@4.0.1': + resolution: {integrity: sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==} + + '@nomicfoundation/ethereumjs-ethash@2.0.5': + resolution: {integrity: sha512-xlLdcICGgAYyYmnI3r1t0R5fKGBJNDQSOQxXNjVO99JmxJIdXR5MgPo5CSJO1RpyzKOgzi3uIFn8agv564dZEQ==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-ethash@3.0.1': + resolution: {integrity: sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-evm@1.3.2': + resolution: {integrity: sha512-I00d4MwXuobyoqdPe/12dxUQxTYzX8OckSaWsMcWAfQhgVDvBx6ffPyP/w1aL0NW7MjyerySPcSVfDJAMHjilw==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-evm@2.0.1': + resolution: {integrity: sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-rlp@4.0.3': + resolution: {integrity: sha512-DZMzB/lqPK78T6MluyXqtlRmOMcsZbTTbbEyAjo0ncaff2mqu/k8a79PBcyvpgAhWD/R59Fjq/x3ro5Lof0AtA==} + engines: {node: '>=14'} + hasBin: true + + '@nomicfoundation/ethereumjs-rlp@5.0.1': + resolution: {integrity: sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==} + engines: {node: '>=14'} + hasBin: true + + '@nomicfoundation/ethereumjs-statemanager@1.0.5': + resolution: {integrity: sha512-CAhzpzTR5toh/qOJIZUUOnWekUXuRqkkzaGAQrVcF457VhtCmr+ddZjjK50KNZ524c1XP8cISguEVNqJ6ij1sA==} + + '@nomicfoundation/ethereumjs-statemanager@2.0.1': + resolution: {integrity: sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==} + + '@nomicfoundation/ethereumjs-trie@5.0.5': + resolution: {integrity: sha512-+8sNZrXkzvA1NH5F4kz5RSYl1I6iaRz7mAZRsyxOm0IVY4UaP43Ofvfp/TwOalFunurQrYB5pRO40+8FBcxFMA==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-trie@6.0.1': + resolution: {integrity: sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-tx@4.1.2': + resolution: {integrity: sha512-emJBJZpmTdUa09cqxQqHaysbBI9Od353ZazeH7WgPb35miMgNY6mb7/3vBA98N5lUW/rgkiItjX0KZfIzihSoQ==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-tx@5.0.1': + resolution: {integrity: sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-util@8.0.6': + resolution: {integrity: sha512-jOQfF44laa7xRfbfLXojdlcpkvxeHrE2Xu7tSeITsWFgoII163MzjOwFEzSNozHYieFysyoEMhCdP+NY5ikstw==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-util@9.0.1': + resolution: {integrity: sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-vm@6.4.2': + resolution: {integrity: sha512-PRTyxZMP6kx+OdAzBhuH1LD2Yw+hrSpaytftvaK//thDy2OI07S0nrTdbrdk7b8ZVPAc9H9oTwFBl3/wJ3w15g==} + engines: {node: '>=14'} + + '@nomicfoundation/ethereumjs-vm@7.0.1': + resolution: {integrity: sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==} + engines: {node: '>=14'} + + '@nomicfoundation/hardhat-chai-matchers@2.0.8': + resolution: {integrity: sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==} + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.0 + chai: ^4.2.0 + ethers: ^6.1.0 + hardhat: ^2.9.4 + + '@nomicfoundation/hardhat-ethers@3.0.8': + resolution: {integrity: sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==} + peerDependencies: + ethers: ^6.1.0 + hardhat: ^2.0.0 + + '@nomicfoundation/hardhat-foundry@1.1.3': + resolution: {integrity: sha512-30Ezc3hlZ4pC5Z/9W9euW5uoPKKQQKaecLETHJH8BPpd30zYOooy6HfjmcTY1/taOQjlwirOdNO7tHlje8Qcgw==} + peerDependencies: + hardhat: ^2.17.2 + + '@nomicfoundation/hardhat-ignition-ethers@0.15.11': + resolution: {integrity: sha512-srXzvf7qCDHLrnvQWtpVA9gWpcbp4BcnsOqJt6ISet9OlUnxk4GgRMbdFq4YpM48bHQTX397jS9yk1AtJCjt/g==} + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.4 + '@nomicfoundation/hardhat-ignition': ^0.15.11 + '@nomicfoundation/ignition-core': ^0.15.11 + ethers: ^6.7.0 + hardhat: ^2.18.0 + + '@nomicfoundation/hardhat-ignition@0.15.11': + resolution: {integrity: sha512-OXebmK9FCMwwbb4mIeHBbVFFicAGgyGKJT2zrONrpixrROxrVs6KEi1gzsiN25qtQhCQePt8BTjjYrgy86Dfxg==} + peerDependencies: + '@nomicfoundation/hardhat-verify': ^2.0.1 + hardhat: ^2.18.0 + + '@nomicfoundation/hardhat-network-helpers@1.0.12': + resolution: {integrity: sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==} + peerDependencies: + hardhat: ^2.9.5 + + '@nomicfoundation/hardhat-toolbox@4.0.0': + resolution: {integrity: sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==} + peerDependencies: + '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 + '@nomicfoundation/hardhat-ethers': ^3.0.0 + '@nomicfoundation/hardhat-network-helpers': ^1.0.0 + '@nomicfoundation/hardhat-verify': ^2.0.0 + '@typechain/ethers-v6': ^0.5.0 + '@typechain/hardhat': ^9.0.0 + '@types/chai': ^4.2.0 + '@types/mocha': '>=9.1.0' + '@types/node': '>=16.0.0' + chai: ^4.2.0 + ethers: ^6.4.0 + hardhat: ^2.11.0 + hardhat-gas-reporter: ^1.0.8 + solidity-coverage: ^0.8.1 + ts-node: '>=8.0.0' + typechain: ^8.3.0 + typescript: '>=4.5.0' + + '@nomicfoundation/hardhat-verify@2.0.13': + resolution: {integrity: sha512-i57GX1sC0kYGyRVnbQrjjyBTpWTKgrvKC+jH8CMKV6gHp959Upb8lKaZ58WRHIU0espkulTxLnacYeUDirwJ2g==} + peerDependencies: + hardhat: ^2.0.4 + + '@nomicfoundation/ignition-core@0.15.11': + resolution: {integrity: sha512-PeYKRlrQ0koT72yRnlyyG66cXMFiv5X/cIB8hBFPl3ekeg5tPXcHAgs/VZhOsgwEox4ejphTtItLESb1IDBw0w==} + + '@nomicfoundation/ignition-ui@0.15.11': + resolution: {integrity: sha512-VPOVl5xqCKhYCyPOQlposx+stjCwqXQ+BCs5lnw/f2YUfgII+G5Ye0JfHiJOfCJGmqyS03WertBslcj9zQg50A==} + + '@nomicfoundation/slang@0.18.3': + resolution: {integrity: sha512-YqAWgckqbHM0/CZxi9Nlf4hjk9wUNLC9ngWCWBiqMxPIZmzsVKYuChdlrfeBPQyvQQBoOhbx+7C1005kLVQDZQ==} + + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + resolution: {integrity: sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + resolution: {integrity: sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + resolution: {integrity: sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + resolution: {integrity: sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + resolution: {integrity: sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + resolution: {integrity: sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer@0.1.2': + resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} + engines: {node: '>= 12'} + + '@nomiclabs/hardhat-ethers@2.2.3': + resolution: {integrity: sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==} + peerDependencies: + ethers: ^5.0.0 + hardhat: ^2.0.0 + + '@nomiclabs/hardhat-etherscan@3.1.8': + resolution: {integrity: sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==} + deprecated: The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead + peerDependencies: + hardhat: ^2.0.4 + + '@nomiclabs/hardhat-waffle@2.0.3': + resolution: {integrity: sha512-049PHSnI1CZq6+XTbrMbMv5NaL7cednTfPenx02k3cEh8wBMLa6ys++dBETJa6JjfwgA9nBhhHQ173LJv6k2Pg==} + peerDependencies: + '@nomiclabs/hardhat-ethers': ^2.0.0 + ethereum-waffle: ^3.2.0 + ethers: ^5.0.0 + hardhat: ^2.0.0 + + '@openzeppelin/contracts-upgradeable@3.4.2': + resolution: {integrity: sha512-mDlBS17ymb2wpaLcrqRYdnBAmP1EwqhOXMvqWk2c5Q1N1pm5TkiCtXM9Xzznh4bYsQBq0aIWEkFFE2+iLSN1Tw==} + + '@openzeppelin/contracts-upgradeable@5.3.0': + resolution: {integrity: sha512-yVzSSyTMWO6rapGI5tuqkcLpcGGXA0UA1vScyV5EhE5yw8By3Ewex9rDUw8lfVw0iTkvR/egjfcW5vpk03lqZg==} + peerDependencies: + '@openzeppelin/contracts': 5.3.0 + + '@openzeppelin/contracts@3.4.2': + resolution: {integrity: sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==} + + '@openzeppelin/contracts@4.9.6': + resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} + + '@openzeppelin/contracts@5.3.0': + resolution: {integrity: sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==} + + '@openzeppelin/defender-admin-client@1.54.6': + resolution: {integrity: sha512-P4lxJDySrekWNuPa7FeyW/UmuxnuIXIAGYr5gZnmnMHRsYNaw+XfgkiCDfoGtjEyJbXYxXttYF6iAZhWQPdf1g==} + deprecated: This package has been deprecated and will no longer be maintained, please use @openzeppelin/defender-sdk package instead. + + '@openzeppelin/defender-base-client@1.54.6': + resolution: {integrity: sha512-PTef+rMxkM5VQ7sLwLKSjp2DBakYQd661ZJiSRywx+q/nIpm3B/HYGcz5wPZCA5O/QcEP6TatXXDoeMwimbcnw==} + deprecated: This package has been deprecated and will no longer be maintained, please use @openzeppelin/defender-sdk package instead. + + '@openzeppelin/hardhat-defender@1.9.0': + resolution: {integrity: sha512-dl2pQyBvwEZVq1sgw/i+mLQiu4ZD7iKn2/ghD9RbAGHIM8hZQ4ou8cXl1S6wCA92prpeO1rPGQ+NcJajbY4MCw==} + deprecated: '@openzeppelin/hardhat-defender is deprecated. This functionality is now included as part of @openzeppelin/hardhat-upgrades' + + '@openzeppelin/hardhat-upgrades@1.28.0': + resolution: {integrity: sha512-7sb/Jf+X+uIufOBnmHR0FJVWuxEs2lpxjJnLNN6eCJCP8nD0v+Ot5lTOW2Qb/GFnh+fLvJtEkhkowz4ZQ57+zQ==} + hasBin: true + peerDependencies: + '@nomiclabs/hardhat-ethers': ^2.0.0 + '@nomiclabs/hardhat-etherscan': ^3.1.0 + '@nomiclabs/harhdat-etherscan': '*' + ethers: ^5.0.5 + hardhat: ^2.0.2 + peerDependenciesMeta: + '@nomiclabs/harhdat-etherscan': + optional: true + + '@openzeppelin/platform-deploy-client@0.8.0': + resolution: {integrity: sha512-POx3AsnKwKSV/ZLOU/gheksj0Lq7Is1q2F3pKmcFjGZiibf+4kjGxr4eSMrT+2qgKYZQH1ZLQZ+SkbguD8fTvA==} + deprecated: '@openzeppelin/platform-deploy-client is deprecated. Please use @openzeppelin/defender-sdk-deploy-client' + + '@openzeppelin/upgrades-core@1.44.0': + resolution: {integrity: sha512-AUnQW7cbh2ntFuQdHi5C0vKB+QfkTQtzXgCmzazXLJDX7slFTF676lw+x97ZKfzwQw5unO1+ALZMx+s+2yQUew==} + hasBin: true + + '@peculiar/asn1-schema@2.3.15': + resolution: {integrity: sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==} + + '@peculiar/json-schema@1.1.12': + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + + '@peculiar/webcrypto@1.5.0': + resolution: {integrity: sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==} + engines: {node: '>=10.12.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + + '@prettier/sync@0.3.0': + resolution: {integrity: sha512-3dcmCyAxIcxy036h1I7MQU/uEEBq8oLwf1CE3xeze+MPlgkdlb/+w6rGR/1dhp6Hqi17fRS6nvwnOzkESxEkOw==} + peerDependencies: + prettier: ^3.0.0 + + '@react-native/assets-registry@0.79.2': + resolution: {integrity: sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==} + engines: {node: '>=18'} + + '@react-native/codegen@0.79.2': + resolution: {integrity: sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/community-cli-plugin@0.79.2': + resolution: {integrity: sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==} + engines: {node: '>=18'} + peerDependencies: + '@react-native-community/cli': '*' + peerDependenciesMeta: + '@react-native-community/cli': + optional: true + + '@react-native/debugger-frontend@0.79.2': + resolution: {integrity: sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==} + engines: {node: '>=18'} + + '@react-native/dev-middleware@0.79.2': + resolution: {integrity: sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==} + engines: {node: '>=18'} + + '@react-native/gradle-plugin@0.79.2': + resolution: {integrity: sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==} + engines: {node: '>=18'} + + '@react-native/js-polyfills@0.79.2': + resolution: {integrity: sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw==} + engines: {node: '>=18'} + + '@react-native/normalize-colors@0.79.2': + resolution: {integrity: sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==} + + '@react-native/virtualized-lists@0.79.2': + resolution: {integrity: sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==} + engines: {node: '>=18'} + peerDependencies: + '@types/react': ^19.0.0 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true + + '@repeaterjs/repeater@3.0.4': + resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} + + '@repeaterjs/repeater@3.0.6': + resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} + + '@resolver-engine/core@0.2.1': + resolution: {integrity: sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==} + + '@resolver-engine/core@0.3.3': + resolution: {integrity: sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==} + + '@resolver-engine/fs@0.2.1': + resolution: {integrity: sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==} + + '@resolver-engine/fs@0.3.3': + resolution: {integrity: sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==} + + '@resolver-engine/imports-fs@0.2.2': + resolution: {integrity: sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==} + + '@resolver-engine/imports-fs@0.3.3': + resolution: {integrity: sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==} + + '@resolver-engine/imports@0.2.2': + resolution: {integrity: sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==} + + '@resolver-engine/imports@0.3.3': + resolution: {integrity: sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/base@1.2.5': + resolution: {integrity: sha512-9rE6EOVeIQzt5TSu4v+K523F8u6DhBsoZWPGKlnCshhlDhy0kJzUX4V+tr2dWmzF1GdekvThABoEQBGBQI7xZw==} + + '@scure/bip32@1.1.5': + resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip39@1.1.1': + resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@sentry/core@5.30.0': + resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} + engines: {node: '>=6'} + + '@sentry/hub@5.30.0': + resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} + engines: {node: '>=6'} + + '@sentry/minimal@5.30.0': + resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} + engines: {node: '>=6'} + + '@sentry/node@5.30.0': + resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} + engines: {node: '>=6'} + + '@sentry/tracing@5.30.0': + resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} + engines: {node: '>=6'} + + '@sentry/types@5.30.0': + resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} + engines: {node: '>=6'} + + '@sentry/utils@5.30.0': + resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} + engines: {node: '>=6'} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@0.14.0': + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@smithy/types@4.2.0': + resolution: {integrity: sha512-7eMk09zQKCO+E/ivsjQv+fDlOupcFUCSC/L2YUPgwhvowVGWbPQHjEFcmjt7QQ4ra5lyowS92SV53Zc6XD4+fg==} + engines: {node: '>=18.0.0'} + + '@solidity-parser/parser@0.14.5': + resolution: {integrity: sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==} + + '@solidity-parser/parser@0.16.2': + resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} + + '@solidity-parser/parser@0.18.0': + resolution: {integrity: sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==} + + '@solidity-parser/parser@0.19.0': + resolution: {integrity: sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==} + + '@solidity-parser/parser@0.20.1': + resolution: {integrity: sha512-58I2sRpzaQUN+jJmWbHfbWf9AKfzqCI8JAdFB0vbyY+u8tBRcuTt9LxzasvR0LGQpcRv97eyV7l61FQ3Ib7zVw==} + + '@stylistic/eslint-plugin-js@1.8.1': + resolution: {integrity: sha512-c5c2C8Mos5tTQd+NWpqwEu7VT6SSRooAguFPMj1cp2RkTYl1ynKoXo8MWy3k4rkbzoeYHrqC2UlUzsroAN7wtQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-jsx@1.8.1': + resolution: {integrity: sha512-k1Eb6rcjMP+mmjvj+vd9y5KUdWn1OBkkPLHXhsrHt5lCDFZxJEs0aVQzE5lpYrtVZVkpc5esTtss/cPJux0lfA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-plus@1.8.1': + resolution: {integrity: sha512-4+40H3lHYTN8OWz+US8CamVkO+2hxNLp9+CAjorI7top/lHqemhpJvKA1LD9Uh+WMY9DYWiWpL2+SZ2wAXY9fQ==} + peerDependencies: + eslint: '*' + + '@stylistic/eslint-plugin-ts@1.8.1': + resolution: {integrity: sha512-/q1m+ZuO1JHfiSF16EATFzv7XSJkc5W6DocfvH5o9oB6WWYFMF77fVoBWnKT3wGptPOc2hkRupRKhmeFROdfWA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin@1.8.1': + resolution: {integrity: sha512-64My6I7uCcmSQ//427Pfg2vjSf9SDzfsGIWohNFgISMLYdC5BzJqDo647iDDJzSxINh3WTC0Ql46ifiKuOoTyA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + + '@szmarczak/http-timer@1.1.2': + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@tenderly/api-client@1.1.0': + resolution: {integrity: sha512-kyye7TQ+RbDbJ7bSUjNf/O9fTtRYNUDIEUZQSrmNonowMw5/EpNi664eWaOoC00NEzxgttVrtme/GHvIOu7rNg==} + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + '@tenderly/hardhat-tenderly@1.0.13': + resolution: {integrity: sha512-XsrF2QIUh8YmzCcWHmPnSNQjZNBQkyrHER8bcrWsFIgL7ub49hmPbpGVB2Isb6gUV/IGBpBm7R69jpmoTvJ17g==} + peerDependencies: + hardhat: ^2.0.3 + + '@truffle/error@0.1.1': + resolution: {integrity: sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@truffle/interface-adapter@0.5.37': + resolution: {integrity: sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==} + engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@truffle/provider@0.2.64': + resolution: {integrity: sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@typechain/ethers-v5@2.0.0': + resolution: {integrity: sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw==} + peerDependencies: + ethers: ^5.0.0 + typechain: ^3.0.0 + + '@typechain/ethers-v5@7.2.0': + resolution: {integrity: sha512-jfcmlTvaaJjng63QsT49MT6R1HFhtO/TBMWbyzPFSzMmVIqb2tL6prnKBs4ZJrSvmgIXWy+ttSjpaxCTq8D/Tw==} + peerDependencies: + '@ethersproject/abi': ^5.0.0 + '@ethersproject/bytes': ^5.0.0 + '@ethersproject/providers': ^5.0.0 + ethers: ^5.1.3 + typechain: ^5.0.0 + typescript: '>=4.0.0' + + '@typechain/ethers-v5@9.0.0': + resolution: {integrity: sha512-bAanuPl1L2itaUdMvor/QvwnIH+TM/CmG00q17Ilv3ZZMeJ2j8HcarhgJUZ9pBY1teBb85P8cC03dz3mSSx+tQ==} + peerDependencies: + '@ethersproject/abi': ^5.0.0 + '@ethersproject/bytes': ^5.0.0 + '@ethersproject/providers': ^5.0.0 + ethers: ^5.1.3 + typechain: ^7.0.0 + typescript: '>=4.0.0' + + '@typechain/ethers-v6@0.5.1': + resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} + peerDependencies: + ethers: 6.x + typechain: ^8.3.2 + typescript: '>=4.7.0' + + '@typechain/hardhat@2.3.1': + resolution: {integrity: sha512-BQV8OKQi0KAzLXCdsPO0pZBNQQ6ra8A2ucC26uFX/kquRBtJu1yEyWnVSmtr07b5hyRoJRpzUeINLnyqz4/MAw==} + peerDependencies: + hardhat: ^2.0.10 + lodash: ^4.17.15 + typechain: ^5.1.2 + + '@typechain/hardhat@4.0.0': + resolution: {integrity: sha512-SeEKtiHu4Io3LHhE8VV3orJbsj7dwJZX8pzSTv7WQR38P18vOLm2M52GrykVinMpkLK0uVc88ICT58emvfn74w==} + peerDependencies: + hardhat: ^2.0.10 + lodash: ^4.17.15 + typechain: ^7.0.0 + + '@typechain/hardhat@9.1.0': + resolution: {integrity: sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==} + peerDependencies: + '@typechain/ethers-v6': ^0.5.1 + ethers: ^6.1.0 + hardhat: ^2.9.9 + typechain: ^8.3.2 + + '@types/async-eventemitter@0.2.4': + resolution: {integrity: sha512-2Bq61VD01kgLf1XkK2xPtoBcu7fgn/km5JyEX9v0BlG5VQBzA+BlF9umFk+8gR8S4+eK7MgDY2oyVZCu6ar3Jw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.7': + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + + '@types/bn.js@4.11.6': + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@types/bs58@4.0.4': + resolution: {integrity: sha512-0IEpMFXXQi2zXaXl9GJ3sRwQo0uEkD+yFOv+FnAU5lkPtcu6h61xb7jc2CFPEZ5BUOaiP13ThuGc9HD4R8lR5g==} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/chai-as-promised@7.1.8': + resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} + + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + + '@types/chai@4.3.4': + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + + '@types/concat-stream@1.6.1': + resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/events@3.0.3': + resolution: {integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==} + + '@types/form-data@0.0.33': + resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/inquirer@7.3.3': + resolution: {integrity: sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@2.2.0': + resolution: {integrity: sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A==} + deprecated: This is a stub types definition. json5 provides its own type definitions, so you do not need this installed. + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/lru-cache@5.1.1': + resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mkdirp@0.5.2': + resolution: {integrity: sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==} + + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + + '@types/mocha@8.2.3': + resolution: {integrity: sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==} + + '@types/mocha@9.1.1': + resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + + '@types/node@10.17.60': + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@20.17.32': + resolution: {integrity: sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==} + + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + + '@types/node@8.10.66': + resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/pbkdf2@3.1.2': + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} + + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + + '@types/qs@6.9.18': + resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + + '@types/readable-stream@2.3.15': + resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + + '@types/resolve@0.0.8': + resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/secp256k1@4.0.6': + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} + + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + + '@types/sinon-chai@3.2.12': + resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} + + '@types/sinon@17.0.4': + resolution: {integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==} + + '@types/sinonjs__fake-timers@8.1.5': + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/through@0.0.33': + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/underscore@1.13.0': + resolution: {integrity: sha512-L6LBgy1f0EFQZ+7uSA57+n2g/s4Qs5r06Vwrwn0/nuK1de+adz00NWaztRQ30aEqw5qOaWbPI8u2cGQ52lj6VA==} + + '@types/validator@13.15.0': + resolution: {integrity: sha512-nh7nrWhLr6CBq9ldtw0wx+z9wKnnv/uTVLA9g/3/TcOYxbpOSZE+MhKPmWqU+K0NvThjhv12uD8MuqijB0WzEA==} + + '@types/web3@1.0.19': + resolution: {integrity: sha512-fhZ9DyvDYDwHZUp5/STa9XW2re0E8GxoioYJ4pEUZ13YHpApSagixj7IAdoYH5uAK+UalGq6Ml8LYzmgRA/q+A==} + + '@types/winston@2.4.4': + resolution: {integrity: sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==} + deprecated: This is a stub types definition. winston provides its own type definitions, so you do not need this installed. + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@16.0.9': + resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@urql/core@2.4.4': + resolution: {integrity: sha512-TD+OS7jG1Ts6QkpU0TZ85i/vu40r71GF0QQFDhnWFtgkHcNwnpkIwWBMa72AR3j2imBTPpk61e/xb39uM/t37A==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@urql/core@2.6.1': + resolution: {integrity: sha512-gYrEHy3tViJhwIhauK6MIf2Qp09QTsgNHZRd0n71rS+hF6gdwjspf1oKljl4m25+272cJF7fPjBUGmjaiEr7Kg==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@urql/core@3.1.0': + resolution: {integrity: sha512-6pYB4/WGZmuCxCc+h8AX9h+g1o75cPgMrcan+G/pYEDGAd6+PXoEuDumhEXpwu4vnkqCvVnFELEYcqkaM8ddPg==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@urql/exchange-execute@1.2.2': + resolution: {integrity: sha512-KebdnKWMKI1NkRtIxp8YIouynOaFnhcdaMNCcJEtp+kmY4vGZUgdxT/SIzTPXXYJvk5G2aiQ/JMr97I+wM/EHA==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@urql/exchange-execute@2.1.0': + resolution: {integrity: sha512-b84hq5EPgbERmg+98SqmMZqD5W3YrFkFii/6ZWVm5zsVdb+c0ZhRpUrpOCSemh5Jl5X291PG0WUUy2hdMtjraQ==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@whatwg-node/cookie-store@0.0.1': + resolution: {integrity: sha512-uoti8QU5xd+X+9PULOGpPpOqPDdwkz+ukMc4kyQG1GwXeKVGktr4FSllr6dBotjOjNVPSBPpmj5V6zrUdDcLaw==} + + '@whatwg-node/events@0.0.2': + resolution: {integrity: sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==} + + '@whatwg-node/events@0.0.3': + resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} + + '@whatwg-node/fetch@0.8.8': + resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} + + '@whatwg-node/node-fetch@0.3.6': + resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} + + '@whatwg-node/server@0.7.7': + resolution: {integrity: sha512-aHURgNDFm/48WVV3vhTMfnEKCYwYgdaRdRhZsQZx4UVFjGGkGay7Ys0+AYu9QT/jpoImv2oONkstoTMUprDofg==} + + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + + '@zxing/text-encoding@0.9.0': + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abbrev@1.0.9: + resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} + + abitype@0.7.1: + resolution: {integrity: sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ==} + peerDependencies: + typescript: '>=4.9.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + abortcontroller-polyfill@1.7.8: + resolution: {integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==} + + abstract-level@1.0.4: + resolution: {integrity: sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==} + engines: {node: '>=12'} + + abstract-leveldown@2.6.3: + resolution: {integrity: sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + abstract-leveldown@2.7.2: + resolution: {integrity: sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + abstract-leveldown@3.0.0: + resolution: {integrity: sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==} + engines: {node: '>=4'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + abstract-leveldown@5.0.0: + resolution: {integrity: sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + adm-zip@0.4.16: + resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} + engines: {node: '>=0.3.0'} + + aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + + aes-js@3.1.2: + resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==} + + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@5.5.2: + resolution: {integrity: sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + amazon-cognito-identity-js@6.3.15: + resolution: {integrity: sha512-G2mzTlGYHKYh9oZDO0Gk94xVQ4iY9GYWBaYScbDYvz05ps6dqi0IvdNx1Lxi7oA3tjS5X+mUN7/svFJJdOB9YA==} + + amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + + anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + antlr4@4.13.2: + resolution: {integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==} + engines: {node: '>=16'} + + antlr4ts@0.5.0-alpha.4: + resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} + + any-signal@1.2.0: + resolution: {integrity: sha512-Cl08k4xItix3jvu4cxO/dt2rQ6iUAjO66pTyRMub+WL1VXeAyZydCpD8GqWTPKfdL28U0R0UucmQVsUsBnvCmQ==} + + anymatch@1.3.2: + resolution: {integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + + arbos-precompiles@1.0.2: + resolution: {integrity: sha512-1dOFYFJUN0kKoofh6buZJ8qCqTs+oLGSsGzHI0trA/Pka/TCERflCRsNVxez2lihOvK7MT/a2RA8AepKtBXdPQ==} + deprecated: This package is no longer maintained, instead look into @arbitrum/nitro-contracts + + are-we-there-yet@1.1.7: + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + deprecated: This package is no longer supported. + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + arr-diff@2.0.0: + resolution: {integrity: sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==} + engines: {node: '>=0.10.0'} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-back@1.0.4: + resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} + engines: {node: '>=0.12.0'} + + array-back@2.0.0: + resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} + engines: {node: '>=4'} + + array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + engines: {node: '>=6'} + + array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + array-unique@0.2.1: + resolution: {integrity: sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==} + engines: {node: '>=0.10.0'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + array.prototype.reduce@1.0.8: + resolution: {integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + asn1js@3.0.6: + resolution: {integrity: sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==} + engines: {node: '>=12.0.0'} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + ast-parents@0.0.1: + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + + async-eventemitter@0.2.4: + resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + + async-mutex@0.4.1: + resolution: {integrity: sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==} + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + async@1.5.2: + resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} + + async@2.6.2: + resolution: {integrity: sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + auto-bind@4.0.0: + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + + axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + + axios@0.27.2: + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} + + axios@1.9.0: + resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + + babel-code-frame@6.26.0: + resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} + + babel-core@6.26.3: + resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==} + + babel-generator@6.26.1: + resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==} + + babel-helper-builder-binary-assignment-operator-visitor@6.24.1: + resolution: {integrity: sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==} + + babel-helper-call-delegate@6.24.1: + resolution: {integrity: sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==} + + babel-helper-define-map@6.26.0: + resolution: {integrity: sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==} + + babel-helper-explode-assignable-expression@6.24.1: + resolution: {integrity: sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==} + + babel-helper-function-name@6.24.1: + resolution: {integrity: sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==} + + babel-helper-get-function-arity@6.24.1: + resolution: {integrity: sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==} + + babel-helper-hoist-variables@6.24.1: + resolution: {integrity: sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==} + + babel-helper-optimise-call-expression@6.24.1: + resolution: {integrity: sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==} + + babel-helper-regex@6.26.0: + resolution: {integrity: sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==} + + babel-helper-remap-async-to-generator@6.24.1: + resolution: {integrity: sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==} + + babel-helper-replace-supers@6.24.1: + resolution: {integrity: sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==} + + babel-helpers@6.24.1: + resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-messages@6.23.0: + resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==} + + babel-plugin-check-es2015-constants@6.22.0: + resolution: {integrity: sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==} + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-syntax-async-functions@6.13.0: + resolution: {integrity: sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==} + + babel-plugin-syntax-exponentiation-operator@6.13.0: + resolution: {integrity: sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==} + + babel-plugin-syntax-hermes-parser@0.25.1: + resolution: {integrity: sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==} + + babel-plugin-syntax-trailing-function-commas@6.22.0: + resolution: {integrity: sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==} + + babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: + resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} + + babel-plugin-transform-async-to-generator@6.24.1: + resolution: {integrity: sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==} + + babel-plugin-transform-es2015-arrow-functions@6.22.0: + resolution: {integrity: sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==} + + babel-plugin-transform-es2015-block-scoped-functions@6.22.0: + resolution: {integrity: sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==} + + babel-plugin-transform-es2015-block-scoping@6.26.0: + resolution: {integrity: sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==} + + babel-plugin-transform-es2015-classes@6.24.1: + resolution: {integrity: sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==} + + babel-plugin-transform-es2015-computed-properties@6.24.1: + resolution: {integrity: sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==} + + babel-plugin-transform-es2015-destructuring@6.23.0: + resolution: {integrity: sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==} + + babel-plugin-transform-es2015-duplicate-keys@6.24.1: + resolution: {integrity: sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==} + + babel-plugin-transform-es2015-for-of@6.23.0: + resolution: {integrity: sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==} + + babel-plugin-transform-es2015-function-name@6.24.1: + resolution: {integrity: sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==} + + babel-plugin-transform-es2015-literals@6.22.0: + resolution: {integrity: sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==} + + babel-plugin-transform-es2015-modules-amd@6.24.1: + resolution: {integrity: sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==} + + babel-plugin-transform-es2015-modules-commonjs@6.26.2: + resolution: {integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==} + + babel-plugin-transform-es2015-modules-systemjs@6.24.1: + resolution: {integrity: sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==} + + babel-plugin-transform-es2015-modules-umd@6.24.1: + resolution: {integrity: sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==} + + babel-plugin-transform-es2015-object-super@6.24.1: + resolution: {integrity: sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==} + + babel-plugin-transform-es2015-parameters@6.24.1: + resolution: {integrity: sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==} + + babel-plugin-transform-es2015-shorthand-properties@6.24.1: + resolution: {integrity: sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==} + + babel-plugin-transform-es2015-spread@6.22.0: + resolution: {integrity: sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==} + + babel-plugin-transform-es2015-sticky-regex@6.24.1: + resolution: {integrity: sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==} + + babel-plugin-transform-es2015-template-literals@6.22.0: + resolution: {integrity: sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==} + + babel-plugin-transform-es2015-typeof-symbol@6.23.0: + resolution: {integrity: sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==} + + babel-plugin-transform-es2015-unicode-regex@6.24.1: + resolution: {integrity: sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==} + + babel-plugin-transform-exponentiation-operator@6.24.1: + resolution: {integrity: sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==} + + babel-plugin-transform-regenerator@6.26.0: + resolution: {integrity: sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==} + + babel-plugin-transform-strict-mode@6.24.1: + resolution: {integrity: sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==} + + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-env@1.7.0: + resolution: {integrity: sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==} + + babel-preset-fbjs@3.4.0: + resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-register@6.26.0: + resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==} + + babel-runtime@6.26.0: + resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} + + babel-template@6.26.0: + resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==} + + babel-traverse@6.26.0: + resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==} + + babel-types@6.26.0: + resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==} + + babelify@7.3.0: + resolution: {integrity: sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==} + + babylon@6.18.0: + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} + hasBin: true + + backoff@2.5.0: + resolution: {integrity: sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==} + engines: {node: '>= 0.6'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-64@0.1.0: + resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} + + base-x@3.0.11: + resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} + + base-x@4.0.1: + resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + bigint-crypto-utils@3.3.0: + resolution: {integrity: sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==} + engines: {node: '>=14.0.0'} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bintrees@1.0.2: + resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} + + bip39@2.5.0: + resolution: {integrity: sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + blob-to-it@0.0.2: + resolution: {integrity: sha512-3/NRr0mUWQTkS71MYEC1teLbT5BTs7RZ6VMPXDV6qApjw3B4TAZspQuvDkYfHuD/XzL5p/RO91x5XRPeJvcCqg==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} + + bn.js@4.12.2: + resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + + bn.js@5.2.2: + resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + + body-parser@1.19.1: + resolution: {integrity: sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==} + engines: {node: '>= 0.8'} + + body-parser@1.19.2: + resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==} + engines: {node: '>= 0.8'} + + body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + borc@2.1.2: + resolution: {integrity: sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==} + engines: {node: '>=4'} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@1.8.5: + resolution: {integrity: sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==} + engines: {node: '>=0.10.0'} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browser-level@1.0.1: + resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} + + browser-readablestream-to-it@0.0.2: + resolution: {integrity: sha512-bbiTccngeAbPmpTUJcUyr6JhivADKV9xkNJVLdA91vjdzXyFBZ6fgrzElQsV3k1UNGQACRTl3p4y+cEGG9U48A==} + + browser-stdout@1.3.0: + resolution: {integrity: sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + + browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + + browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} + + browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} + + browserslist@3.2.8: + resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} + hasBin: true + + browserslist@4.24.5: + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-to-arraybuffer@0.0.5: + resolution: {integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==} + + buffer-writer@2.0.0: + resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} + engines: {node: '>=4'} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer-xor@2.0.2: + resolution: {integrity: sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==} + + buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.9: + resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} + engines: {node: '>=6.14.2'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.1.1: + resolution: {integrity: sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + bytewise-core@1.2.3: + resolution: {integrity: sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==} + + bytewise@1.1.0: + resolution: {integrity: sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-lookup@6.1.0: + resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} + engines: {node: '>=10.6.0'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + cacheable-request@6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + cachedown@1.0.0: + resolution: {integrity: sha512-t+yVk82vQWCJF3PsWHMld+jhhjkkWjcAzz8NbFx1iULOXWl8Tm/FdM4smZNVw3MRr0X+lVTx9PKzvEn4Ng19RQ==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + + caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + + callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@3.0.0: + resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} + engines: {node: '>=0.10.0'} + + camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} + engines: {node: '>=4'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001717: + resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} + + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + + case@1.6.3: + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + catering@2.1.1: + resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} + engines: {node: '>=6'} + + cbor@10.0.3: + resolution: {integrity: sha512-72Jnj81xMsqepqdcSdf2+fflz/UDsThOHy5hj2MW5F5xzHL8Oa0KQ6I6V9CwVUPxg5pf+W9xp6W2KilaRXWWtw==} + engines: {node: '>=18'} + + cbor@8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + + cbor@9.0.2: + resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} + engines: {node: '>=16'} + + chai-as-promised@7.1.2: + resolution: {integrity: sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==} + peerDependencies: + chai: '>= 2.1.2 < 6' + + chai@4.3.4: + resolution: {integrity: sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==} + engines: {node: '>=4'} + + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + change-case-all@1.0.14: + resolution: {integrity: sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==} + + change-case-all@1.0.15: + resolution: {integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==} + + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + checkpoint-store@1.1.0: + resolution: {integrity: sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==} + + chokidar@1.7.0: + resolution: {integrity: sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + + chromium-edge-launcher@0.2.0: + resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cids@0.7.5: + resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==} + engines: {node: '>=4.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by the multiformats module + + cids@1.1.9: + resolution: {integrity: sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==} + engines: {node: '>=4.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by the multiformats module + + cipher-base@1.0.6: + resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} + engines: {node: '>= 0.10'} + + class-is@1.1.0: + resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + classic-level@1.4.1: + resolution: {integrity: sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==} + engines: {node: '>=12'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-table3@0.5.1: + resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} + engines: {node: '>=6'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cli-table@0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cliui@3.2.0: + resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} + + cliui@4.1.0: + resolution: {integrity: sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + + coingecko-api@1.0.10: + resolution: {integrity: sha512-7YLLC85+daxAw5QlBWoHVBVpJRwoPr4HtwanCr8V/WRjoyHTa1Lb9DQAvv4MDJZHiz4no6HGnDQnddtjV35oRA==} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + + colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + + command-line-args@4.0.7: + resolution: {integrity: sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==} + hasBin: true + + command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + engines: {node: '>=4.0.0'} + + command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} + engines: {node: '>=8.0.0'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + + commander@2.11.0: + resolution: {integrity: sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@3.0.2: + resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + console-table-printer@2.12.1: + resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==} + + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-hash@2.5.2: + resolution: {integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + conventional-changelog-angular@5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-conventionalcommits@4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} + engines: {node: '>=10'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-commits-parser@3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + + cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + core-js-pure@3.42.0: + resolution: {integrity: sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==} + + core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig-typescript-loader@2.0.2: + resolution: {integrity: sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + typescript: '>=3' + + cosmiconfig-typescript-loader@5.1.0: + resolution: {integrity: sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + + cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-fetch@2.2.6: + resolution: {integrity: sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==} + + cross-fetch@3.1.5: + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + + cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + + cross-spawn@6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + + d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dataloader@2.2.2: + resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} + + dayjs@1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + + death@1.1.0: + resolution: {integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.6: + resolution: {integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==} + deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + + decompress-response@4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} + engines: {node: '>=8'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + deep-eql@3.0.1: + resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} + engines: {node: '>=0.12'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + defer-to-connect@1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + deferred-leveldown@1.2.2: + resolution: {integrity: sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + deferred-leveldown@4.0.2: + resolution: {integrity: sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + delete-empty@3.0.0: + resolution: {integrity: sha512-ZUyiwo76W+DYnKsL3Kim6M/UOavPdBJgDYWOmuQhYaZvJH0AXAHbUNyEDtRbBra8wqqr686+63/0azfEk1ebUQ==} + engines: {node: '>=10'} + hasBin: true + + delimit-stream@0.1.0: + resolution: {integrity: sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dependency-graph@0.11.0: + resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + engines: {node: '>= 0.6.0'} + + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + + destroy@1.0.4: + resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + detect-indent@4.0.0: + resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} + engines: {node: '>=0.10.0'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-port@1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} + hasBin: true + + diff@3.3.1: + resolution: {integrity: sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==} + engines: {node: '>=0.3.1'} + + diff@3.5.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + + difflib@0.2.4: + resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-over-http-resolver@1.2.3: + resolution: {integrity: sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==} + + dnscache@1.0.2: + resolution: {integrity: sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + dotenv@16.5.0: + resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + engines: {node: '>=12'} + + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + + dotignore@0.1.2: + resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} + hasBin: true + + dottie@2.0.6: + resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.150: + resolution: {integrity: sha512-rOOkP2ZUMx1yL4fCxXQKDHQ8ZXwisb2OycOQVKHgvB3ZI4CvehOd4y2tfnnLDieJ3Zs1RL1Dlp3cMkyIn7nnXA==} + + elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding-down@5.0.4: + resolution: {integrity: sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + eol@0.9.1: + resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + err-code@3.0.1: + resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + engines: {node: '>= 0.4'} + + es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + + es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@1.8.1: + resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==} + engines: {node: '>=0.12.0'} + hasBin: true + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-no-secrets@0.8.9: + resolution: {integrity: sha512-CqaBxXrImABCtxMWspAnm8d5UKkpNylC7zqVveb+fJHEvsSiNGJlSWzdSIvBUnW1XhJXkzifNIZQC08rEII5Ng==} + engines: {node: '>=10.0.0', npm: '>=6.9.0'} + peerDependencies: + eslint: '>=3.0.0' + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@2.7.3: + resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} + engines: {node: '>=0.10.0'} + hasBin: true + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@1.9.3: + resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} + engines: {node: '>=0.10.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eth-block-tracker@3.0.1: + resolution: {integrity: sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==} + + eth-ens-namehash@2.0.8: + resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} + + eth-gas-reporter@0.2.27: + resolution: {integrity: sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==} + peerDependencies: + '@codechecks/client': ^0.1.0 + peerDependenciesMeta: + '@codechecks/client': + optional: true + + eth-json-rpc-infura@3.2.1: + resolution: {integrity: sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + eth-json-rpc-middleware@1.6.0: + resolution: {integrity: sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==} + + eth-lib@0.1.29: + resolution: {integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==} + + eth-lib@0.2.8: + resolution: {integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==} + + eth-query@2.1.2: + resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} + + eth-sig-util@1.4.2: + resolution: {integrity: sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==} + deprecated: Deprecated in favor of '@metamask/eth-sig-util' + + eth-sig-util@3.0.0: + resolution: {integrity: sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==} + deprecated: Deprecated in favor of '@metamask/eth-sig-util' + + eth-tx-summary@3.2.4: + resolution: {integrity: sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==} + + ethashjs@0.0.8: + resolution: {integrity: sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==} + deprecated: 'New package name format for new versions: @ethereumjs/ethash. Please update.' + + ethereum-bloom-filters@1.2.0: + resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==} + + ethereum-common@0.0.18: + resolution: {integrity: sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==} + + ethereum-common@0.2.0: + resolution: {integrity: sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==} + + ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + + ethereum-cryptography@1.2.0: + resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + ethereum-waffle@3.4.4: + resolution: {integrity: sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q==} + engines: {node: '>=10.0'} + hasBin: true + + ethereumjs-abi@0.6.5: + resolution: {integrity: sha512-rCjJZ/AE96c/AAZc6O3kaog4FhOsAViaysBxqJNy2+LHP0ttH0zkZ7nXdVHOAyt6lFwLO0nlCwWszysG/ao1+g==} + deprecated: This library has been deprecated and usage is discouraged. + + ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + deprecated: This library has been deprecated and usage is discouraged. + + ethereumjs-abi@https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0: + resolution: {tarball: https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0} + version: 0.6.8 + + ethereumjs-account@2.0.5: + resolution: {integrity: sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==} + + ethereumjs-account@3.0.0: + resolution: {integrity: sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==} + deprecated: Please use Util.Account class found on package ethereumjs-util@^7.0.6 https://github.com/ethereumjs/ethereumjs-util/releases/tag/v7.0.6 + + ethereumjs-block@1.7.1: + resolution: {integrity: sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==} + deprecated: 'New package name format for new versions: @ethereumjs/block. Please update.' + + ethereumjs-block@2.2.2: + resolution: {integrity: sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==} + deprecated: 'New package name format for new versions: @ethereumjs/block. Please update.' + + ethereumjs-blockchain@4.0.4: + resolution: {integrity: sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==} + deprecated: 'New package name format for new versions: @ethereumjs/blockchain. Please update.' + + ethereumjs-common@1.5.0: + resolution: {integrity: sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==} + deprecated: 'New package name format for new versions: @ethereumjs/common. Please update.' + + ethereumjs-tx@1.3.7: + resolution: {integrity: sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==} + deprecated: 'New package name format for new versions: @ethereumjs/tx. Please update.' + + ethereumjs-tx@2.1.2: + resolution: {integrity: sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==} + deprecated: 'New package name format for new versions: @ethereumjs/tx. Please update.' + + ethereumjs-util@4.5.1: + resolution: {integrity: sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==} + + ethereumjs-util@5.2.1: + resolution: {integrity: sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==} + + ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + + ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} + + ethereumjs-vm@2.6.0: + resolution: {integrity: sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==} + deprecated: 'New package name format for new versions: @ethereumjs/vm. Please update.' + + ethereumjs-vm@4.2.0: + resolution: {integrity: sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==} + deprecated: 'New package name format for new versions: @ethereumjs/vm. Please update.' + + ethereumjs-wallet@0.6.5: + resolution: {integrity: sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==} + deprecated: 'New package name format for new versions: @ethereumjs/wallet. Please update.' + + ethers@4.0.49: + resolution: {integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==} + + ethers@5.6.2: + resolution: {integrity: sha512-EzGCbns24/Yluu7+ToWnMca3SXJ1Jk1BvWB7CCmVNxyOeM4LLvw2OLuIHhlkhQk1dtOcj9UMsdkxUh8RiG1dxQ==} + + ethers@5.7.0: + resolution: {integrity: sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==} + + ethers@5.8.0: + resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} + + ethers@6.13.7: + resolution: {integrity: sha512-qbaJ0uIrjh+huP1Lad2f2QtzW5dcqSVjIzVH6yWB4dKoMuj2WqYz5aMeeQTCNpAKgTJBM5J9vcc2cYJ23UAimQ==} + engines: {node: '>=14.0.0'} + + ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} + + ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} + + ethlint@1.2.5: + resolution: {integrity: sha512-x2nKK98zmd72SFWL3Ul1S6scWYf5QqG221N6/mFNMO661g7ASvTRINGIWVvHzsvflW6y4tvgMSjnTN5RCTuZug==} + hasBin: true + + event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.4: + resolution: {integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-brackets@0.1.5: + resolution: {integrity: sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==} + engines: {node: '>=0.10.0'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + expand-range@1.8.2: + resolution: {integrity: sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==} + engines: {node: '>=0.10.0'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + + express@4.17.3: + resolution: {integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==} + engines: {node: '>= 0.10.0'} + + express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + + ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extglob@0.3.2: + resolution: {integrity: sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==} + engines: {node: '>=0.10.0'} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + extract-files@11.0.0: + resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} + engines: {node: ^12.20 || >= 14.13} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + fake-merkle-patricia-tree@1.0.1: + resolution: {integrity: sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==} + + fast-base64-decode@1.0.0: + resolution: {integrity: sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + fast-deep-equal@1.1.0: + resolution: {integrity: sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fastify-warning@0.2.0: + resolution: {integrity: sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==} + deprecated: This module renamed to process-warning + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + + fbjs@3.0.5: + resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + fetch-ponyfill@4.1.0: + resolution: {integrity: sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==} + + fets@0.1.5: + resolution: {integrity: sha512-mL/ya591WOgCP1yBBPbp8E37nynj8QQF6iQCUVl0aHDL80BZ9SOL4BcKBy0dnKdC+clnnAkMm05KB9hsj4m4jQ==} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filename-regex@2.0.1: + resolution: {integrity: sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==} + engines: {node: '>=0.10.0'} + + fill-range@2.2.4: + resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==} + engines: {node: '>=0.10.0'} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-replace@1.0.3: + resolution: {integrity: sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==} + engines: {node: '>=4.0.0'} + + find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + engines: {node: '>=4.0.0'} + + find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-yarn-workspace-root@1.2.1: + resolution: {integrity: sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==} + + find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + + findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + + flow-stoplight@1.0.0: + resolution: {integrity: sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA==} + + fmix@0.1.0: + resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + for-own@0.1.5: + resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} + engines: {node: '>=0.10.0'} + + foreach@2.0.6: + resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data-encoder@1.7.1: + resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + + form-data@2.5.3: + resolution: {integrity: sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==} + engines: {node: '>= 0.12'} + + form-data@3.0.3: + resolution: {integrity: sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==} + engines: {node: '>= 6'} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fp-ts@1.19.3: + resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@0.30.0: + resolution: {integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-extra@4.0.3: + resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@1.2.7: + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} + + fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: Upgrade to fsevents v2 to mitigate potential security issues + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + ganache-core@2.13.2: + resolution: {integrity: sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==} + engines: {node: '>=8.9.0'} + deprecated: ganache-core is now ganache; visit https://trfl.io/g7 for details + bundledDependencies: + - keccak + + gauge@2.7.4: + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + deprecated: This package is no longer supported. + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@1.0.3: + resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-iterator@1.0.2: + resolution: {integrity: sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-port@3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + ghost-testrpc@0.0.2: + resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==} + hasBin: true + + git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + glob-base@0.3.0: + resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} + engines: {node: '>=0.10.0'} + + glob-parent@2.0.0: + resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.2: + resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} + engines: {node: 20 || >=22} + hasBin: true + + glob@5.0.15: + resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.1.2: + resolution: {integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + engines: {node: '>=18'} + + globals@9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@10.0.2: + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + got@12.1.0: + resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} + engines: {node: '>=14.16'} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + got@9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphql-import-node@0.0.5: + resolution: {integrity: sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q==} + peerDependencies: + graphql: '*' + + graphql-tag@2.12.6: + resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} + engines: {node: '>=10'} + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + graphql-ws@5.12.1: + resolution: {integrity: sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg==} + engines: {node: '>=10'} + peerDependencies: + graphql: '>=0.11 <=16' + + graphql-ws@5.16.2: + resolution: {integrity: sha512-E1uccsZxt/96jH/OwmLPuXMACILs76pKF2i3W861LpKBCYtGIyPQGtWLuBLkND4ox1KHns70e83PS4te50nvPQ==} + engines: {node: '>=10'} + peerDependencies: + graphql: '>=0.11 <=16' + + graphql-yoga@3.9.1: + resolution: {integrity: sha512-BB6EkN64VBTXWmf9Kym2OsVZFzBC0mAsQNo9eNB5xIr3t+x7qepQ34xW5A353NWol3Js3xpzxwIKFVF6l9VsPg==} + peerDependencies: + graphql: ^15.2.0 || ^16.0.0 + + graphql@16.11.0: + resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + graphql@16.3.0: + resolution: {integrity: sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A==} + engines: {node: ^12.22.0 || ^14.16.0 || >=16.0.0} + + graphql@16.8.0: + resolution: {integrity: sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + growl@1.10.3: + resolution: {integrity: sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==} + engines: {node: '>=4.x'} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + hardhat-abi-exporter@2.11.0: + resolution: {integrity: sha512-hBC4Xzncew9pdqVpzWoEEBJUthp99TCH39cHlMehVxBBQ6EIsIFyj3N0yd0hkVDfM8/s/FMRAuO5jntZBpwCZQ==} + engines: {node: '>=14.14.0'} + peerDependencies: + hardhat: ^2.0.0 + + hardhat-contract-sizer@2.10.0: + resolution: {integrity: sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==} + peerDependencies: + hardhat: ^2.0.0 + + hardhat-deploy@0.7.11: + resolution: {integrity: sha512-ONLH3NH8Biuhky44KRFyaINVHM8JI4Ihy1TpntIRZUpIFHlz9h3gieq46H7iwdp6z3CqMsOCChF0riUF3CFpmQ==} + peerDependencies: + '@ethersproject/hardware-wallets': ^5.0.14 + hardhat: ^2.0.0 + + hardhat-gas-reporter@1.0.10: + resolution: {integrity: sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==} + peerDependencies: + hardhat: ^2.0.2 + + hardhat-secure-accounts@0.0.5: + resolution: {integrity: sha512-ma/UOYV8fROMucLifflUEvYdtchcK4JB2tCV6etAg8PB66OlBo7MwmofnWnN4ABMR8Qt7zGgedFBkGdmBrmxRA==} + peerDependencies: + '@nomiclabs/hardhat-ethers': ^2.1.1 + ethers: ^5.0.0 + hardhat: ^2.0.0 + + hardhat-secure-accounts@0.0.6: + resolution: {integrity: sha512-KnSLrjdNdxg5YJ4/FZ0Ogf1S4nR0YdlIWG9DLMyUurF0S345yzKt0IMPDqcG5/MNDI/hMNfSv6/AQuBWZ4i21w==} + peerDependencies: + '@nomiclabs/hardhat-ethers': ^2.1.1 + ethers: ^5.0.0 + hardhat: ^2.0.0 + + hardhat-secure-accounts@1.0.5: + resolution: {integrity: sha512-gr0bV1eh1sOOSy2CgQ0BMFwQ8QPLBLBB7mJIT4VYNkEf6+fPjO8r70lNapoX53zMhfy9kQe7F0ko6yKpkcBqBg==} + peerDependencies: + '@nomicfoundation/hardhat-ethers': ^3.0.0 + ethers: ^6.13.0 + hardhat: ^2.22.0 + + hardhat-storage-layout@0.1.6: + resolution: {integrity: sha512-urp9PUDJmRrFaTnMkyYGAlU0OF7Q+inWMWKHvuGRyvBDwVQKXfj5WoerTax4bBpXukJ4fBYyUTjAr0x+j2LcKQ==} + peerDependencies: + hardhat: ^2.0.3 + + hardhat-tracer@1.3.0: + resolution: {integrity: sha512-mUYuRJWlxCwY4R2urCpNM4ecVSq/iMLiVP9YZKlfXyv4R8T+4HAcTfumilUOXHGe6wHI+8Ki2EaTon3KgzATDA==} + peerDependencies: + chalk: 4.x + ethers: 5.x + hardhat: 2.x + + hardhat@2.14.1: + resolution: {integrity: sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A==} + engines: {node: '>=14.0.0'} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + hardhat@2.23.0: + resolution: {integrity: sha512-xnORx1LgX46TxylOFme96JmSAIjXuHUVpOlUnaCt8MKMGsgy0NGsfPo5rJI/ncCBPLFLURGfZUQ2Uc6ZYN4kYg==} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + + has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + + hash-base@3.0.5: + resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} + engines: {node: '>= 0.10'} + + hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + + hash-it@6.0.0: + resolution: {integrity: sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==} + + hash.js@1.1.3: + resolution: {integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.1.1: + resolution: {integrity: sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==} + hasBin: true + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + + heap@0.2.6: + resolution: {integrity: sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ==} + + heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + + helmet@5.0.2: + resolution: {integrity: sha512-QWlwUZZ8BtlvwYVTSDTBChGf8EOcQ2LkGMnQJxSzD1mUu8CCjXJZq/BXP8eWw4kikRnzlhtYo3lCk0ucmYA3Vg==} + engines: {node: '>=12.0.0'} + + helmet@7.0.0: + resolution: {integrity: sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ==} + engines: {node: '>=16.0.0'} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-estree@0.28.1: + resolution: {integrity: sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + hermes-parser@0.28.1: + resolution: {integrity: sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + home-or-tmp@2.0.0: + resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} + engines: {node: '>=0.10.0'} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hotscript@1.0.13: + resolution: {integrity: sha512-C++tTF1GqkGYecL+2S1wJTfoH6APGAsbb7PAWQ3iVIwgG/EFseAfEVOKFgAFq4yK3+6j1EjUD4UQ9dRJHX/sSQ==} + + http-basic@8.1.3: + resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} + engines: {node: '>=6.0.0'} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-https@1.0.0: + resolution: {integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==} + + http-response-object@3.0.2: + resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} + + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + hasBin: true + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@7.0.4: + resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} + engines: {node: '>=12'} + hasBin: true + + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + idna-uts46-hx@2.3.1: + resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} + engines: {node: '>=4.0.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immediate@3.2.3: + resolution: {integrity: sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==} + + immediate@3.3.0: + resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} + + immer@10.0.2: + resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + + immutable@3.7.6: + resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} + engines: {node: '>=0.8.0'} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-from@4.0.0: + resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} + engines: {node: '>=12.2'} + + imul@1.0.1: + resolution: {integrity: sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==} + engines: {node: '>=0.10.0'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflection@1.13.4: + resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} + engines: {'0': node >= 0.4.0} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inquirer@8.0.0: + resolution: {integrity: sha512-ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==} + engines: {node: '>=8.0.0'} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + invert-kv@1.0.0: + resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} + engines: {node: '>=0.10.0'} + + io-ts@1.10.4: + resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} + + ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipfs-core-utils@0.4.0: + resolution: {integrity: sha512-IBPFvYjWPfVFpCeYUL/0gCUOabdBhh7aO5i4tU//UlF2gVCXPH4PRYlbBH9WM83zE2+o4vDi+dBXsdAI6nLPAg==} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details + + ipfs-http-client@47.0.1: + resolution: {integrity: sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==} + engines: {node: '>=10.3.0', npm: '>=3.0.0'} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details + + ipfs-utils@3.0.0: + resolution: {integrity: sha512-qahDc+fghrM57sbySr2TeWjaVR/RH/YEB/hvdAjiTbjESeD87qZawrXwj+19Q2LtGmFGusKNLo5wExeuI5ZfDQ==} + + ipld-block@0.10.1: + resolution: {integrity: sha512-lPMfW9tA2hVZw9hdO/YSppTxFmA0+5zxcefBOlCTOn+12RLyy+pdepKMbQw8u0KESFu3pYVmabNRWuFGcgHLLw==} + engines: {node: '>=6.0.0', npm: '>=3.0.0'} + + ipld-dag-cbor@0.17.1: + resolution: {integrity: sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==} + engines: {node: '>=6.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by @ipld/dag-cbor and multiformats + + ipld-dag-pb@0.20.0: + resolution: {integrity: sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==} + engines: {node: '>=6.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by @ipld/dag-pb and multiformats + + ipld-raw@6.0.0: + resolution: {integrity: sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==} + deprecated: This module has been superseded by the multiformats module + + is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + + is-circular@1.0.2: + resolution: {integrity: sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-dotfile@1.0.3: + resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} + engines: {node: '>=0.10.0'} + + is-electron@2.2.2: + resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} + + is-equal-shallow@0.1.3: + resolution: {integrity: sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==} + engines: {node: '>=0.10.0'} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + + is-fn@1.0.0: + resolution: {integrity: sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + is-ip@3.1.0: + resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} + engines: {node: '>=8'} + + is-lower-case@2.0.2: + resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@2.1.0: + resolution: {integrity: sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==} + engines: {node: '>=0.10.0'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@4.0.0: + resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-posix-bracket@0.1.1: + resolution: {integrity: sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==} + engines: {node: '>=0.10.0'} + + is-primitive@2.0.0: + resolution: {integrity: sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==} + engines: {node: '>=0.10.0'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-upper-case@2.0.2: + resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} + + is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iso-constants@0.1.2: + resolution: {integrity: sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==} + engines: {node: '>=10'} + + iso-url@0.4.7: + resolution: {integrity: sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==} + engines: {node: '>=10'} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + + isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + it-all@1.0.6: + resolution: {integrity: sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==} + + it-concat@1.0.3: + resolution: {integrity: sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==} + + it-glob@0.0.8: + resolution: {integrity: sha512-PmIAgb64aJPM6wwT1UTlNDAJnNgdGrvr0vRr3AYCngcUuq1KaAovuz0dQAmUkaXudDG3EQzc7OttuLW9DaL3YQ==} + + it-last@1.0.6: + resolution: {integrity: sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==} + + it-map@1.0.6: + resolution: {integrity: sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==} + + it-peekable@0.0.1: + resolution: {integrity: sha512-fd0JzbNldseeq+FFWthbqYB991UpKNyjPG6LqFhIOmJviCxSompMyoopKIXvLPLY+fBhhv2CT5PT31O/lEnTHw==} + + it-reader@2.1.0: + resolution: {integrity: sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==} + + it-tar@1.2.2: + resolution: {integrity: sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==} + + it-to-buffer@1.0.5: + resolution: {integrity: sha512-dczvg0VeXkfr2i2IQ3GGWEATBbk4Uggr+YnvBz76/Yp0zFJZTIOeDCz2KyFDxSDHNI62OlldbJXWmDPb5nFQeg==} + + it-to-stream@0.1.2: + resolution: {integrity: sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-sdsl@4.4.2: + resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} + + js-sha3@0.5.7: + resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + + js-tokens@3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + + jsel@1.1.6: + resolution: {integrity: sha512-7E6r8kVzjmKhwXR/82Z+43edfOJGRvLvx6cJZ+SS2MGAPPtYZGnaIsFHpQMA1IbIPA9twDProkob4IIAJ0ZqSw==} + engines: {node: '>=0.10.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@1.3.0: + resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bigint-patch@0.0.8: + resolution: {integrity: sha512-xa0LTQsyaq8awYyZyuUsporWisZFiyqzxGW8CKM3t7oouf0GFAKYJnqAm6e9NLNBQOCtOLvy614DEiRX/rPbnA==} + + json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-pointer@0.6.2: + resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + + json-rpc-engine@3.8.0: + resolution: {integrity: sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==} + + json-rpc-error@2.0.0: + resolution: {integrity: sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==} + + json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + + json-schema-to-ts@2.12.0: + resolution: {integrity: sha512-uTde38yBm5lzJSRPWRaasxZo72pb+JGE4iUksNdNfAkFaLhV4N9akeBxPPUpZy5onINt9Zo0oTLrAoEXyZESiQ==} + engines: {node: '>=16'} + + json-schema-traverse@0.3.1: + resolution: {integrity: sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stable-stringify@1.3.0: + resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} + engines: {node: '>= 0.4'} + + json-stream-stringify@3.1.6: + resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} + engines: {node: '>=7.10.1'} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json-text-sequence@0.1.1: + resolution: {integrity: sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==} + + json5@0.5.1: + resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@2.4.0: + resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonschema@1.5.0: + resolution: {integrity: sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==} + + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keyv@3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + + klaw@1.3.1: + resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + lcid@1.0.0: + resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} + engines: {node: '>=0.10.0'} + + level-codec@7.0.1: + resolution: {integrity: sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==} + deprecated: Superseded by level-transcoder (https://github.com/Level/community#faq) + + level-codec@9.0.2: + resolution: {integrity: sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==} + engines: {node: '>=6'} + deprecated: Superseded by level-transcoder (https://github.com/Level/community#faq) + + level-errors@1.0.5: + resolution: {integrity: sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + level-errors@2.0.1: + resolution: {integrity: sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + level-iterator-stream@1.3.1: + resolution: {integrity: sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==} + + level-iterator-stream@2.0.3: + resolution: {integrity: sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==} + engines: {node: '>=4'} + + level-iterator-stream@3.0.1: + resolution: {integrity: sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==} + engines: {node: '>=6'} + + level-mem@3.0.1: + resolution: {integrity: sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==} + engines: {node: '>=6'} + deprecated: Superseded by memory-level (https://github.com/Level/community#faq) + + level-packager@4.0.1: + resolution: {integrity: sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + level-post@1.0.7: + resolution: {integrity: sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==} + + level-sublevel@6.6.4: + resolution: {integrity: sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==} + + level-supports@4.0.1: + resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} + engines: {node: '>=12'} + + level-transcoder@1.0.1: + resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} + engines: {node: '>=12'} + + level-ws@0.0.0: + resolution: {integrity: sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==} + + level-ws@1.0.0: + resolution: {integrity: sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==} + engines: {node: '>=6'} + + level@8.0.1: + resolution: {integrity: sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ==} + engines: {node: '>=12'} + + levelup@1.3.9: + resolution: {integrity: sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + levelup@3.1.1: + resolution: {integrity: sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==} + engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + + lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + + lilconfig@2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@10.5.4: + resolution: {integrity: sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==} + hasBin: true + + lint-staged@12.5.0: + resolution: {integrity: sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + lint-staged@15.5.1: + resolution: {integrity: sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@3.14.0: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + listr2@4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + listr2@8.3.2: + resolution: {integrity: sha512-vsBzcU4oE+v0lj4FhVLzr9dBTv4/fHIa57l+GCwovP8MoFNZJTOhGU8PXd4v2VJCbECAaijBiHntiekFMLvo0g==} + engines: {node: '>=18.0.0'} + + load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} + engines: {node: '>=0.10.0'} + + localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.assign@4.2.0: + resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.clone@4.5.0: + resolution: {integrity: sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==} + deprecated: This package is deprecated. Use structuredClone instead. + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lodash.isequalwith@4.4.0: + resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + + lodash.topath@4.5.2: + resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.17.20: + resolution: {integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} + + looper@2.0.0: + resolution: {integrity: sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ==} + + looper@3.0.0: + resolution: {integrity: sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lower-case-first@2.0.2: + resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + + lru-cache@3.2.0: + resolution: {integrity: sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow==} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + + ltgt@2.1.3: + resolution: {integrity: sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw==} + + ltgt@2.2.1: + resolution: {integrity: sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + markdown-table@1.1.3: + resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + + match-all@1.2.7: + resolution: {integrity: sha512-qSpsBKarh55r9KyXzFC3xBLRf2GlGasba2em9kbpRsSlGvdTAqjx3QD0r3FKSARiW+OE4iMHYsolM3aX9n5djw==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + math-random@1.0.4: + resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} + + mcl-wasm@0.7.9: + resolution: {integrity: sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==} + engines: {node: '>=8.9.0'} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + mem@1.1.0: + resolution: {integrity: sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==} + engines: {node: '>=4'} + + memdown@1.4.1: + resolution: {integrity: sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==} + deprecated: Superseded by memory-level (https://github.com/Level/community#faq) + + memdown@3.0.0: + resolution: {integrity: sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==} + engines: {node: '>=6'} + deprecated: Superseded by memory-level (https://github.com/Level/community#faq) + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + memory-level@1.0.0: + resolution: {integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==} + engines: {node: '>=12'} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-options@2.0.0: + resolution: {integrity: sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==} + engines: {node: '>=8'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merkle-patricia-tree@2.3.2: + resolution: {integrity: sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==} + + merkle-patricia-tree@3.0.0: + resolution: {integrity: sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==} + + meros@1.3.0: + resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} + engines: {node: '>=13'} + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + metro-babel-transformer@0.82.2: + resolution: {integrity: sha512-c2gesA7/B4dovPmmYC2HziNXb4XFG3YkQ9FjEzwRnR6KH2hT7nJn6mkcri1h85r3sMttpnmoBuZ8WDz980Zhlw==} + engines: {node: '>=18.18'} + + metro-cache-key@0.82.2: + resolution: {integrity: sha512-lfjC9zzSri+rS7lkoCh04LniFga8JQVUqSuscD9KraIm9zRzwIwvaMx8V6Oogiezs+FAJUOSnVNhHcHc9l8H2Q==} + engines: {node: '>=18.18'} + + metro-cache@0.82.2: + resolution: {integrity: sha512-MxY4xvPKuE68NYpKJjH8YvVVugDL2QcuTracHsV5/30ZIaRr0v1QuAX5vt45OCQDQQWeh1rDv3E4JB6AbIvnZQ==} + engines: {node: '>=18.18'} + + metro-config@0.82.2: + resolution: {integrity: sha512-0dG3qCFLoE3ddNexAxSLJ7FbGjEbwUjDNOgYeCLoPSkKB01k5itvvr2HFfl2HisOCfLcpjpVzF5NtB/O71lxfA==} + engines: {node: '>=18.18'} + + metro-core@0.82.2: + resolution: {integrity: sha512-d2XMkWbRh6PdPV1OZ8OyUyDWrtEbQ1m5ASpKtemLPbujfoE4RlwFZdl4ljfBNVVZ1s0z7tgsSFwKMyTeXgjtSg==} + engines: {node: '>=18.18'} + + metro-file-map@0.82.2: + resolution: {integrity: sha512-pax0WA80eRH096YO0kwox+ZD5im3V0Vswr2x1YqdMcZVWlr6uwXgQdo9q+mpcvJ1k77J+hmY5HIg71bqrUptVg==} + engines: {node: '>=18.18'} + + metro-minify-terser@0.82.2: + resolution: {integrity: sha512-+nveaEdQUvsoi0OSr4Cp+btevZsg2DKsu8kUJsvyLIcRRFPUw9CwzF3V2cA5b55DY5LcIJyAcZf4D9ARKfoilQ==} + engines: {node: '>=18.18'} + + metro-resolver@0.82.2: + resolution: {integrity: sha512-Who2hGzq2aCGSsBaQBU0L3SADiy/kj/gv0coujNWziRY4SKq7ECKzWqtVk1JlEF7IGXDDRDxEgFuLmPV6mZGVQ==} + engines: {node: '>=18.18'} + + metro-runtime@0.82.2: + resolution: {integrity: sha512-gEcb2AfDs3GRs2SFjtEmG0k61B/cZEVCbh6cSmkjJpyHr+VRjw77MnDpX9AUcJYa4bCT63E7IEySOMM0Z8p87g==} + engines: {node: '>=18.18'} + + metro-source-map@0.82.2: + resolution: {integrity: sha512-S26xPdz1/EeAY0HqaPXfny8CeiY0Dvl4sBLQiXGXhoES4gUDAuMhA1tioKrv5F+x68Sod8cp8Js6EGqbMXeqMA==} + engines: {node: '>=18.18'} + + metro-symbolicate@0.82.2: + resolution: {integrity: sha512-iheanMnOMned6gjt6sKSfU5AoNyV6pJyQAWydwuHcjhGpa/kiAM0kKmw23qHejELK89Yw8HDZ3Fd/5l1jxpFVA==} + engines: {node: '>=18.18'} + hasBin: true + + metro-transform-plugins@0.82.2: + resolution: {integrity: sha512-kEveuEVxghTEXkDiyY0MT5QRqei092KJG46nduo0VghFgI6QFodbAjFit1ULyWsn2VOTGSUDJ3VgHBMy7MaccA==} + engines: {node: '>=18.18'} + + metro-transform-worker@0.82.2: + resolution: {integrity: sha512-MJQNz6cGjqewCRqFmPrsHu6Oe93v2B6zgHkrNxQ6XdPMJz5VHD33m8q+8UsNJOH8wUMoRu5JmYtuUTIVIFxh2A==} + engines: {node: '>=18.18'} + + metro@0.82.2: + resolution: {integrity: sha512-hOBd4O4Cn/tLf3jz7IjSgD/A66MqMzgZuyF1I/pmNwYcY3q3j2vbh7Fa09KIbvUq5Yz7BewU356XboaEtEXPgA==} + engines: {node: '>=18.18'} + hasBin: true + + micro-eth-signer@0.14.0: + resolution: {integrity: sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + micro-packed@0.7.3: + resolution: {integrity: sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg==} + + micromatch@2.3.11: + resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} + engines: {node: '>=0.10.0'} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@0.0.8: + resolution: {integrity: sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@1.3.3: + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp-promise@5.0.1: + resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} + engines: {node: '>=4'} + deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. + + mkdirp@0.5.1: + resolution: {integrity: sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + hasBin: true + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mnemonist@0.38.5: + resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} + + mocha@10.8.2: + resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + mocha@4.1.0: + resolution: {integrity: sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==} + engines: {node: '>= 4.0.0'} + hasBin: true + + mock-fs@4.14.0: + resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} + + mock-property@1.0.3: + resolution: {integrity: sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==} + engines: {node: '>= 0.4'} + + module-error@1.0.2: + resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} + engines: {node: '>=10'} + + moment-timezone@0.5.48: + resolution: {integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + morgan@1.10.0: + resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} + engines: {node: '>= 0.8.0'} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multiaddr-to-uri@6.0.0: + resolution: {integrity: sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==} + deprecated: This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri + + multiaddr@8.1.2: + resolution: {integrity: sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==} + deprecated: This module is deprecated, please upgrade to @multiformats/multiaddr + + multibase@0.6.1: + resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==} + deprecated: This module has been superseded by the multiformats module + + multibase@0.7.0: + resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==} + deprecated: This module has been superseded by the multiformats module + + multibase@3.1.2: + resolution: {integrity: sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==} + engines: {node: '>=10.0.0', npm: '>=6.0.0'} + deprecated: This module has been superseded by the multiformats module + + multibase@4.0.6: + resolution: {integrity: sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==} + engines: {node: '>=12.0.0', npm: '>=6.0.0'} + deprecated: This module has been superseded by the multiformats module + + multicodec@0.5.7: + resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==} + deprecated: This module has been superseded by the multiformats module + + multicodec@1.0.4: + resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==} + deprecated: This module has been superseded by the multiformats module + + multicodec@2.1.3: + resolution: {integrity: sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==} + deprecated: This module has been superseded by the multiformats module + + multicodec@3.2.1: + resolution: {integrity: sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==} + deprecated: This module has been superseded by the multiformats module + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + multihashes@0.4.21: + resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} + + multihashes@3.1.2: + resolution: {integrity: sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==} + engines: {node: '>=10.0.0', npm: '>=6.0.0'} + + multihashes@4.0.3: + resolution: {integrity: sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==} + engines: {node: '>=12.0.0', npm: '>=6.0.0'} + + multihashing-async@2.1.4: + resolution: {integrity: sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==} + engines: {node: '>=12.0.0', npm: '>=6.0.0'} + + murmur-128@0.2.1: + resolution: {integrity: sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==} + + murmurhash3js-revisited@3.0.0: + resolution: {integrity: sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==} + engines: {node: '>=8.0.0'} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + nan@2.22.2: + resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} + + nano-json-stream-parser@0.1.2: + resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + + napi-macros@2.2.2: + resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} + + native-fetch@3.0.0: + resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} + peerDependencies: + node-fetch: '*' + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + + ngeohash@0.6.3: + resolution: {integrity: sha512-kltF0cOxgx1AbmVzKxYZaoB0aj7mOxZeHaerEtQV0YaqnkXNq26WWqMmJ6lTqShYxVRWZ/mwvvTrNeOwdslWiw==} + engines: {node: '>=v0.2.0'} + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-abi@2.30.1: + resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + + node-addon-api@4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} + + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + + node-fetch@1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-hid@1.3.0: + resolution: {integrity: sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==} + engines: {node: '>=6.0.0'} + hasBin: true + + node-hid@2.1.1: + resolution: {integrity: sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==} + engines: {node: '>=10'} + hasBin: true + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + + noop-logger@0.1.1: + resolution: {integrity: sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==} + + nopt@3.0.6: + resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@4.1.2: + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + deprecated: This package is no longer supported. + + nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + + number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} + + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + ob1@0.82.2: + resolution: {integrity: sha512-sfUaYpjkAdHgu8cXLAyWXO98jW1EUOStTDNslfC9eb3tBLExe67PRqh09J0xdD6AlFKHFGTvXPbuHGvlrZNJNA==} + engines: {node: '>=18.18'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.10.3: + resolution: {integrity: sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==} + + object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@0.4.0: + resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.getownpropertydescriptors@2.1.8: + resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} + engines: {node: '>= 0.8'} + + object.omit@2.0.1: + resolution: {integrity: sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==} + engines: {node: '>=0.10.0'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + obliterator@2.0.5: + resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==} + + oboe@2.1.4: + resolution: {integrity: sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ==} + + oboe@2.1.5: + resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} + + on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ordinal@1.0.3: + resolution: {integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==} + + os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + + os-locale@1.4.0: + resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} + engines: {node: '>=0.10.0'} + + os-locale@2.1.0: + resolution: {integrity: sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==} + engines: {node: '>=4'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-cancelable@1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-defer@3.0.0: + resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} + engines: {node: '>=8'} + + p-fifo@1.0.0: + resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + packet-reader@1.0.0: + resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} + + parse-cache-control@1.0.1: + resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + + parse-duration@0.4.4: + resolution: {integrity: sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==} + + parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + + parse-glob@3.0.4: + resolution: {integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==} + engines: {node: '>=0.10.0'} + + parse-headers@2.0.6: + resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==} + + parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + patch-package@6.2.2: + resolution: {integrity: sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==} + engines: {npm: '>5'} + hasBin: true + + patch-package@6.5.1: + resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==} + engines: {node: '>=10', npm: '>5'} + hasBin: true + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + + path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + + path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-starts-with@2.0.1: + resolution: {integrity: sha512-wZ3AeiRBRlNwkdUxvBANh0+esnt38DLffHDujZyRHkqkaKHTglnY2EP5UX3b8rdeiSutgO4y9NEJwXezNP5vHg==} + engines: {node: '>=8'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + pegjs@0.10.0: + resolution: {integrity: sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==} + engines: {node: '>=0.10'} + hasBin: true + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + pg-cloudflare@1.2.5: + resolution: {integrity: sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==} + + pg-connection-string@2.8.5: + resolution: {integrity: sha512-Ni8FuZ8yAF+sWZzojvtLE2b03cqjO5jNULcHFfM9ZZ0/JXrgom5pBREbtnAw7oxsxJqHw9Nz/XWORUEL3/IFow==} + + pg-hstore@2.3.4: + resolution: {integrity: sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA==} + engines: {node: '>= 0.8.x'} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.9.6: + resolution: {integrity: sha512-rFen0G7adh1YmgvrmE5IPIqbb+IgEzENUm+tzm6MLLDSlPRoZVhzU1WdML9PV2W5GOdRA9qBKURlbt1OsXOsPw==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.9.5: + resolution: {integrity: sha512-DYTWtWpfd5FOro3UnAfwvhD8jh59r2ig8bPtc9H8Ds7MscE/9NYruUQWFAOuraRl29jwcT2kyMFQ3MxeaVjUhg==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.11.3: + resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pg@8.7.3: + resolution: {integrity: sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=2.0.0' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidtree@0.5.0: + resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} + engines: {node: '>=0.10'} + hasBin: true + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + + pino-multi-stream@6.0.0: + resolution: {integrity: sha512-oCuTtaDSUB5xK1S45r9oWE0Dj8RWdHVvaGTft5pO/rmzgIqQRkilf5Ooilz3uRm0IYj8sPRho3lVx48LCmXjvQ==} + deprecated: No longer supported. Use the multi-stream support in the latest core Pino + + pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + + pino@7.6.0: + resolution: {integrity: sha512-CCCdryvM/chT0CDt9jQ1//z62RpSXPrzUFUpY4b8eKCVq3T2T3UF6DomoczkPze9d6VFiTyVF6Y8A6F9iAyAxg==} + hasBin: true + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + please-upgrade-node@3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + postinstall-postinstall@2.1.0: + resolution: {integrity: sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==} + + prebuild-install@5.3.6: + resolution: {integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==} + engines: {node: '>=6'} + hasBin: true + + prebuild-install@6.1.4: + resolution: {integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==} + engines: {node: '>=6'} + hasBin: true + + precond@0.2.3: + resolution: {integrity: sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==} + engines: {node: '>= 0.6'} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + + preserve@0.2.0: + resolution: {integrity: sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==} + engines: {node: '>=0.10.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier-plugin-solidity@1.4.3: + resolution: {integrity: sha512-Mrr/iiR9f9IaeGRMZY2ApumXcn/C5Gs3S7B7hWB3gigBFML06C0yEyW86oLp0eqiA0qg+46FaChgLPJCj/pIlg==} + engines: {node: '>=18'} + peerDependencies: + prettier: '>=2.3.0' + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + private@0.1.8: + resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} + engines: {node: '>= 0.6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + prom-client@14.0.1: + resolution: {integrity: sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==} + engines: {node: '>=10'} + + prom-client@14.2.0: + resolution: {integrity: sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==} + engines: {node: '>=10'} + + promise-to-callback@1.0.0: + resolution: {integrity: sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==} + engines: {node: '>=0.10.0'} + + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + + prompt-sync@4.2.0: + resolution: {integrity: sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + protocol-buffers-schema@3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + + protons@2.0.3: + resolution: {integrity: sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + + pull-cat@1.1.11: + resolution: {integrity: sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg==} + + pull-defer@0.2.3: + resolution: {integrity: sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==} + + pull-level@2.0.4: + resolution: {integrity: sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==} + + pull-live@1.0.1: + resolution: {integrity: sha512-tkNz1QT5gId8aPhV5+dmwoIiA1nmfDOzJDlOOUpU5DNusj6neNd3EePybJ5+sITr2FwyCs/FVpx74YMCfc8YeA==} + + pull-pushable@2.2.0: + resolution: {integrity: sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg==} + + pull-stream@3.7.0: + resolution: {integrity: sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw==} + + pull-window@2.1.4: + resolution: {integrity: sha512-cbDzN76BMlcGG46OImrgpkMf/VkCnupj8JhsrpBw3aWBM9ye345aYnqitmZCgauBkc0HbbRRn9hCnsa3k2FNUg==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + pumpify@2.0.1: + resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.1.0: + resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pvtsutils@1.3.6: + resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + + pvutils@1.1.3: + resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} + engines: {node: '>=6.0.0'} + + q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + qs@6.9.6: + resolution: {integrity: sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==} + engines: {node: '>=0.6'} + + qs@6.9.7: + resolution: {integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==} + engines: {node: '>=0.6'} + + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randomatic@3.1.1: + resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} + engines: {node: '>= 0.10.0'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.4.2: + resolution: {integrity: sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==} + engines: {node: '>= 0.8'} + + raw-body@2.4.3: + resolution: {integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==} + engines: {node: '>= 0.8'} + + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-devtools-core@6.1.1: + resolution: {integrity: sha512-TFo1MEnkqE6hzAbaztnyR5uLTMoz6wnEWwWBsCUzNt+sVXJycuRJdDqvL078M4/h65BI/YO5XWTaxZDWVsW0fw==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-native-fs@2.20.0: + resolution: {integrity: sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ==} + peerDependencies: + react-native: '*' + react-native-windows: '*' + peerDependenciesMeta: + react-native-windows: + optional: true + + react-native-path@0.0.5: + resolution: {integrity: sha512-WJr256xBquk7X2O83QYWKqgLg43Zg3SrgjPc/kr0gCD2LoXA+2L72BW4cmstH12GbGeutqs/eXk3jgDQ2iCSvQ==} + + react-native@0.79.2: + resolution: {integrity: sha512-AnGzb56JvU5YCL7cAwg10+ewDquzvmgrMddiBM0GAWLwQM/6DJfGd2ZKrMuKKehHerpDDZgG+EY64gk3x3dEkw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@types/react': ^19.0.0 + react: ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + + read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + + readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@2.2.1: + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + + receptacle@1.3.2: + resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} + engines: {node: '>=6'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-transform@0.10.1: + resolution: {integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==} + + regex-cache@0.4.4: + resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} + engines: {node: '>=0.10.0'} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpu-core@2.0.0: + resolution: {integrity: sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==} + + registry-auth-token@5.1.0: + resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + regjsgen@0.2.0: + resolution: {integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==} + + regjsparser@0.1.5: + resolution: {integrity: sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==} + hasBin: true + + relay-runtime@12.0.0: + resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} + + req-cwd@2.0.0: + resolution: {integrity: sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==} + engines: {node: '>=4'} + + req-from@2.0.0: + resolution: {integrity: sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==} + engines: {node: '>=4'} + + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@1.2.1: + resolution: {integrity: sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + reset@0.1.0: + resolution: {integrity: sha512-RF7bp2P2ODreUPA71FZ4DSK52gNLJJ8dSwA1nhOCoC0mI4KZ4D/W6zhd2nfBqX/JlR+QZ/iUqAYPjq1UQU8l0Q==} + engines: {node: '>= 0.8.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + + resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.1.7: + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + + resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry-as-promised@5.0.0: + resolution: {integrity: sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==} + + retry-as-promised@7.1.1: + resolution: {integrity: sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel-limit@1.1.0: + resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + run@1.5.0: + resolution: {integrity: sha512-CBPzeX6JQZUdhZpSFyNt2vUk44ivKMWZYCNBYoZYEE46mL9nf6WyMP3320WnzIrJuo89+njiUvlo83jUEXjXLg==} + engines: {node: '>=v0.9.0'} + hasBin: true + + rustbn.js@0.2.0: + resolution: {integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==} + + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-event-emitter@1.0.1: + resolution: {integrity: sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==} + deprecated: Renamed to @metamask/safe-event-emitter + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sc-istanbul@0.4.6: + resolution: {integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==} + hasBin: true + + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + scrypt-js@2.0.4: + resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==} + + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + scryptsy@1.2.1: + resolution: {integrity: sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw==} + + secp256k1@4.0.4: + resolution: {integrity: sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==} + engines: {node: '>=18.0.0'} + + seedrandom@3.0.1: + resolution: {integrity: sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==} + + semaphore@1.1.0: + resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==} + engines: {node: '>=0.8.0'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@5.4.1: + resolution: {integrity: sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==} + hasBin: true + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + send@0.17.2: + resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} + engines: {node: '>= 0.8.0'} + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + + sequelize-pool@7.1.0: + resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} + engines: {node: '>= 10.0.0'} + + sequelize@6.19.0: + resolution: {integrity: sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==} + engines: {node: '>=10.0.0'} + peerDependencies: + ibm_db: '*' + mariadb: '*' + mysql2: '*' + pg: '*' + pg-hstore: '*' + snowflake-sdk: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + ibm_db: + optional: true + mariadb: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-hstore: + optional: true + snowflake-sdk: + optional: true + sqlite3: + optional: true + tedious: + optional: true + + sequelize@6.33.0: + resolution: {integrity: sha512-GkeCbqgaIcpyZ1EyXrDNIwktbfMldHAGOVXHGM4x8bxGSRAOql5htDWofPvwpfL/FoZ59CaFmfO3Mosv1lDbQw==} + engines: {node: '>=10.0.0'} + peerDependencies: + ibm_db: '*' + mariadb: '*' + mysql2: '*' + oracledb: '*' + pg: '*' + pg-hstore: '*' + snowflake-sdk: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + ibm_db: + optional: true + mariadb: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-hstore: + optional: true + snowflake-sdk: + optional: true + sqlite3: + optional: true + tedious: + optional: true + + serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-static@1.14.2: + resolution: {integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + servify@0.1.12: + resolution: {integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==} + engines: {node: '>=6'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-immediate-shim@1.0.1: + resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} + engines: {node: '>=0.10.0'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + setimmediate@1.0.4: + resolution: {integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + sha1@1.1.1: + resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + signed-varint@2.0.1: + resolution: {integrity: sha512-abgDPg1106vuZZOvw7cFwdCABddfJRz5akcCcchzTbhyhYnsG31y4AlZEgp315T7W3nQq5P4xeOm186ZiPVFzw==} + + signedsource@1.0.0: + resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@2.8.2: + resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} + + simple-get@3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + simple-wcswidth@1.0.1: + resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@1.0.0: + resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} + engines: {node: '>=0.10.0'} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + sol-digger@0.0.2: + resolution: {integrity: sha512-oqrw1E/X2WWYUYCzKDM5INDDH2nWOWos4p2Cw2OF52qoZcTDzlKMJQ5pJFXKOCADCg6KggBO5WYE/vNb+kJ0Hg==} + + sol-explore@1.6.1: + resolution: {integrity: sha512-cmwg7l+QLj2LE3Qvwrdo4aPYcNYY425+bN5VPkgCjkO0CiSz33G5vM5BmMZNrfd/6yNGwcm0KtwDJmh5lUElEQ==} + + solc-typed-ast@18.2.4: + resolution: {integrity: sha512-HTkr6b2WMSJ3pgVRf5us/UWjCvfSlvE1yUcHna+miSPerkyppGnZQaJWqrcECa7ZjxmSV7H2buUDKux9hR4ivg==} + hasBin: true + + solc@0.4.26: + resolution: {integrity: sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==} + hasBin: true + + solc@0.6.12: + resolution: {integrity: sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g==} + engines: {node: '>=8.0.0'} + hasBin: true + + solc@0.7.3: + resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} + engines: {node: '>=8.0.0'} + hasBin: true + + solc@0.8.25: + resolution: {integrity: sha512-7P0TF8gPeudl1Ko3RGkyY6XVCxe2SdD/qQhtns1vl3yAbK/PDifKDLHGtx1t7mX3LgR7ojV7Fg/Kc6Q9D2T8UQ==} + engines: {node: '>=10.0.0'} + hasBin: true + + solc@0.8.26: + resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} + engines: {node: '>=10.0.0'} + hasBin: true + + solhint-community@3.7.0: + resolution: {integrity: sha512-8nfdaxVll+IIaEBHFz3CzagIZNNTGp4Mrr+6O4m7c9Bs/L8OcgR/xzZJFwROkGAhV8Nbiv4gqJ42nEXZPYl3Qw==} + hasBin: true + + solhint-plugin-prettier@0.1.0: + resolution: {integrity: sha512-SDOTSM6tZxZ6hamrzl3GUgzF77FM6jZplgL2plFBclj/OjKP8Z3eIPojKU73gRr0MvOS8ACZILn8a5g0VTz/Gw==} + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-solidity: ^1.0.0 + + solhint@4.5.4: + resolution: {integrity: sha512-Cu1XiJXub2q1eCr9kkJ9VPv1sGcmj3V7Zb76B0CoezDOB9bu3DxKIFFH7ggCl9fWpEPD6xBmRLfZrYijkVmujQ==} + hasBin: true + + solidity-ast@0.4.60: + resolution: {integrity: sha512-UwhasmQ37ji1ul8cIp0XlrQ/+SVQhy09gGqJH4jnwdo2TgI6YIByzi0PI5QvIGcIdFOs1pbSmJW1pnWB7AVh2w==} + + solidity-coverage@0.7.22: + resolution: {integrity: sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw==} + hasBin: true + + solidity-coverage@0.8.15: + resolution: {integrity: sha512-qH7290NKww4/t/qFvnSEePEzON0k025IGVlwc8wo8Q6p+h1Tt6fV2M0k3yfsps3TomZYTROsfPXjx7MSnwD5uA==} + hasBin: true + peerDependencies: + hardhat: ^2.11.0 + + solidity-docgen@0.6.0-beta.36: + resolution: {integrity: sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==} + peerDependencies: + hardhat: ^2.8.0 + + solium-plugin-security@0.1.1: + resolution: {integrity: sha512-kpLirBwIq4mhxk0Y/nn5cQ6qdJTI+U1LO3gpoNIcqNaW+sI058moXBe2UiHs+9wvF9IzYD49jcKhFTxcR9u9SQ==} + peerDependencies: + solium: ^1.0.0 + + solium@1.2.5: + resolution: {integrity: sha512-NuNrm7fp8JcDN/P+SAdM5TVa4wYDtwVtLY/rG4eBOZrC5qItsUhmQKR/YhjszaEW4c8tNUYhkhQcwOsS25znpw==} + hasBin: true + + solparse@2.2.8: + resolution: {integrity: sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==} + hasBin: true + + sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.4.18: + resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} + + source-map-support@0.5.12: + resolution: {integrity: sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.2.0: + resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==} + engines: {node: '>=0.8.0'} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sponge-case@1.0.1: + resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + src-location@1.1.0: + resolution: {integrity: sha512-idBVZgLZGzB3B2Et317AFDQto7yRgp1tOuFd+VKIH2dw1jO1b6p07zNjtQoVhkW+CY6oGTp9Y5UIfbJoZRsoFQ==} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + stream-to-it@0.2.4: + resolution: {integrity: sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==} + + stream-to-pull-stream@1.7.3: + resolution: {integrity: sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + + string-argv@0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-format@2.0.0: + resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==} + + string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + + string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + + supports-color@4.4.0: + resolution: {integrity: sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==} + engines: {node: '>=4'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swap-case@2.0.2: + resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} + + swarm-js@0.1.42: + resolution: {integrity: sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==} + + sync-request@6.1.0: + resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} + engines: {node: '>=8.0.0'} + + sync-rpc@1.3.6: + resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} + + table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} + engines: {node: '>=8.0.0'} + + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + + tape@4.17.0: + resolution: {integrity: sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==} + hasBin: true + + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@4.4.19: + resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} + engines: {node: '>=4.5'} + + tdigest@0.1.2: + resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + terser@5.39.0: + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + test-value@2.1.0: + resolution: {integrity: sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==} + engines: {node: '>=0.10.0'} + + testrpc@0.0.1: + resolution: {integrity: sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==} + deprecated: testrpc has been renamed to ganache-cli, please use this package from now on. + + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + then-request@6.0.2: + resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} + engines: {node: '>=6.0.0'} + + thread-stream@0.13.2: + resolution: {integrity: sha512-woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw==} + + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through2@3.0.2: + resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + + tiny-lru@8.0.2: + resolution: {integrity: sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==} + engines: {node: '>=6'} + + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} + engines: {node: '>=12.0.0'} + + title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.1.0: + resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} + engines: {node: '>=6'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-fast-properties@1.0.3: + resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} + engines: {node: '>=0.10.0'} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-readable-stream@1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + toposort-class@1.0.1: + resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} + + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + trim-right@1.0.1: + resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} + engines: {node: '>=0.10.0'} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + truffle-flattener@1.6.0: + resolution: {integrity: sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==} + hasBin: true + + ts-algebra@1.2.2: + resolution: {integrity: sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-command-line-args@2.5.1: + resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} + hasBin: true + + ts-essentials@1.0.4: + resolution: {integrity: sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==} + + ts-essentials@6.0.7: + resolution: {integrity: sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw==} + peerDependencies: + typescript: '>=3.7.0' + + ts-essentials@7.0.3: + resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} + peerDependencies: + typescript: '>=3.7.0' + + ts-generator@0.1.1: + resolution: {integrity: sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ==} + hasBin: true + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-node@8.10.2: + resolution: {integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==} + engines: {node: '>=6.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tslog@4.9.3: + resolution: {integrity: sha512-oDWuGVONxhVEBtschLf2cs/Jy8i7h1T+CpdkTNWQgdAF7DhRo2G8vMCgILKe7ojdEkLhICWgI1LYSSKaJsRgcw==} + engines: {node: '>=16'} + + tsort@0.0.1: + resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + + typechain@3.0.0: + resolution: {integrity: sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg==} + hasBin: true + + typechain@5.2.0: + resolution: {integrity: sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==} + hasBin: true + peerDependencies: + typescript: '>=4.1.0' + + typechain@7.0.1: + resolution: {integrity: sha512-4c+ecLW4mTiKwTDdofiN8ToDp7TkFC2Bzp2Pt/+qeKzkmELWzy2eDjCiv0IWHswAZhE2y9KXBhTmShzhIzD+LQ==} + hasBin: true + peerDependencies: + typescript: '>=4.1.0' + + typechain@8.3.2: + resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} + hasBin: true + peerDependencies: + typescript: '>=4.3.0' + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript-eslint@7.18.0: + resolution: {integrity: sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + + typewise-core@1.2.0: + resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} + + typewise@1.0.3: + resolution: {integrity: sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==} + + typewiselite@1.0.0: + resolution: {integrity: sha512-J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw==} + + typical@2.6.1: + resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} + + typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + engines: {node: '>=8'} + + typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} + engines: {node: '>=8'} + + u2f-api@0.2.7: + resolution: {integrity: sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==} + + ua-parser-js@1.0.40: + resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + hasBin: true + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + uint8arrays@1.1.0: + resolution: {integrity: sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==} + + uint8arrays@2.1.10: + resolution: {integrity: sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==} + + uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + + ultron@1.1.1: + resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + + underscore@1.9.1: + resolution: {integrity: sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + + unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unixify@1.0.0: + resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} + engines: {node: '>=0.10.0'} + + unorm@1.6.0: + resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==} + engines: {node: '>= 0.4.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + + url-set-query@1.0.0: + resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + + usb@1.9.2: + resolution: {integrity: sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==} + engines: {node: '>=10.16.0'} + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util.promisify@1.1.3: + resolution: {integrity: sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw==} + engines: {node: '>= 0.8'} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@2.0.1: + resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + + uuid@3.3.2: + resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validator@13.15.0: + resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} + engines: {node: '>= 0.10'} + + value-or-promise@1.0.12: + resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} + engines: {node: '>=12'} + + varint@5.0.2: + resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web3-bzz@1.10.0: + resolution: {integrity: sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==} + engines: {node: '>=8.0.0'} + + web3-bzz@1.2.11: + resolution: {integrity: sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==} + engines: {node: '>=8.0.0'} + + web3-bzz@1.7.4: + resolution: {integrity: sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q==} + engines: {node: '>=8.0.0'} + + web3-core-helpers@1.10.0: + resolution: {integrity: sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==} + engines: {node: '>=8.0.0'} + + web3-core-helpers@1.2.11: + resolution: {integrity: sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==} + engines: {node: '>=8.0.0'} + + web3-core-helpers@1.7.4: + resolution: {integrity: sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg==} + engines: {node: '>=8.0.0'} + + web3-core-method@1.10.0: + resolution: {integrity: sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==} + engines: {node: '>=8.0.0'} + + web3-core-method@1.2.11: + resolution: {integrity: sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==} + engines: {node: '>=8.0.0'} + + web3-core-method@1.7.4: + resolution: {integrity: sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ==} + engines: {node: '>=8.0.0'} + + web3-core-promievent@1.10.0: + resolution: {integrity: sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==} + engines: {node: '>=8.0.0'} + + web3-core-promievent@1.2.11: + resolution: {integrity: sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==} + engines: {node: '>=8.0.0'} + + web3-core-promievent@1.7.4: + resolution: {integrity: sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA==} + engines: {node: '>=8.0.0'} + + web3-core-requestmanager@1.10.0: + resolution: {integrity: sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==} + engines: {node: '>=8.0.0'} + + web3-core-requestmanager@1.2.11: + resolution: {integrity: sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==} + engines: {node: '>=8.0.0'} + + web3-core-requestmanager@1.7.4: + resolution: {integrity: sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA==} + engines: {node: '>=8.0.0'} + + web3-core-subscriptions@1.10.0: + resolution: {integrity: sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==} + engines: {node: '>=8.0.0'} + + web3-core-subscriptions@1.2.11: + resolution: {integrity: sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==} + engines: {node: '>=8.0.0'} + + web3-core-subscriptions@1.7.4: + resolution: {integrity: sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g==} + engines: {node: '>=8.0.0'} + + web3-core@1.10.0: + resolution: {integrity: sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==} + engines: {node: '>=8.0.0'} + + web3-core@1.2.11: + resolution: {integrity: sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==} + engines: {node: '>=8.0.0'} + + web3-core@1.7.4: + resolution: {integrity: sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q==} + engines: {node: '>=8.0.0'} + + web3-errors@1.3.1: + resolution: {integrity: sha512-w3NMJujH+ZSW4ltIZZKtdbkbyQEvBzyp3JRn59Ckli0Nz4VMsVq8aF1bLWM7A2kuQ+yVEm3ySeNU+7mSRwx7RQ==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-eth-abi@1.10.0: + resolution: {integrity: sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==} + engines: {node: '>=8.0.0'} + + web3-eth-abi@1.2.11: + resolution: {integrity: sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==} + engines: {node: '>=8.0.0'} + + web3-eth-abi@1.7.4: + resolution: {integrity: sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg==} + engines: {node: '>=8.0.0'} + + web3-eth-abi@4.4.1: + resolution: {integrity: sha512-60ecEkF6kQ9zAfbTY04Nc9q4eEYM0++BySpGi8wZ2PD1tw/c0SDvsKhV6IKURxLJhsDlb08dATc3iD6IbtWJmg==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-eth-accounts@1.10.0: + resolution: {integrity: sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==} + engines: {node: '>=8.0.0'} + + web3-eth-accounts@1.2.11: + resolution: {integrity: sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==} + engines: {node: '>=8.0.0'} + + web3-eth-accounts@1.7.4: + resolution: {integrity: sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw==} + engines: {node: '>=8.0.0'} + + web3-eth-contract@1.10.0: + resolution: {integrity: sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==} + engines: {node: '>=8.0.0'} + + web3-eth-contract@1.2.11: + resolution: {integrity: sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==} + engines: {node: '>=8.0.0'} + + web3-eth-contract@1.7.4: + resolution: {integrity: sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ==} + engines: {node: '>=8.0.0'} + + web3-eth-ens@1.10.0: + resolution: {integrity: sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==} + engines: {node: '>=8.0.0'} + + web3-eth-ens@1.2.11: + resolution: {integrity: sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==} + engines: {node: '>=8.0.0'} + + web3-eth-ens@1.7.4: + resolution: {integrity: sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA==} + engines: {node: '>=8.0.0'} + + web3-eth-iban@1.10.0: + resolution: {integrity: sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==} + engines: {node: '>=8.0.0'} + + web3-eth-iban@1.2.11: + resolution: {integrity: sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==} + engines: {node: '>=8.0.0'} + + web3-eth-iban@1.7.4: + resolution: {integrity: sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w==} + engines: {node: '>=8.0.0'} + + web3-eth-personal@1.10.0: + resolution: {integrity: sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==} + engines: {node: '>=8.0.0'} + + web3-eth-personal@1.2.11: + resolution: {integrity: sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==} + engines: {node: '>=8.0.0'} + + web3-eth-personal@1.7.4: + resolution: {integrity: sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g==} + engines: {node: '>=8.0.0'} + + web3-eth@1.10.0: + resolution: {integrity: sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==} + engines: {node: '>=8.0.0'} + + web3-eth@1.2.11: + resolution: {integrity: sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==} + engines: {node: '>=8.0.0'} + + web3-eth@1.7.4: + resolution: {integrity: sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug==} + engines: {node: '>=8.0.0'} + + web3-net@1.10.0: + resolution: {integrity: sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==} + engines: {node: '>=8.0.0'} + + web3-net@1.2.11: + resolution: {integrity: sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==} + engines: {node: '>=8.0.0'} + + web3-net@1.7.4: + resolution: {integrity: sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg==} + engines: {node: '>=8.0.0'} + + web3-provider-engine@14.2.1: + resolution: {integrity: sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==} + deprecated: 'This package has been deprecated, see the README for details: https://github.com/MetaMask/web3-provider-engine' + + web3-providers-http@1.10.0: + resolution: {integrity: sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==} + engines: {node: '>=8.0.0'} + + web3-providers-http@1.2.11: + resolution: {integrity: sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==} + engines: {node: '>=8.0.0'} + + web3-providers-http@1.7.4: + resolution: {integrity: sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA==} + engines: {node: '>=8.0.0'} + + web3-providers-ipc@1.10.0: + resolution: {integrity: sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==} + engines: {node: '>=8.0.0'} + + web3-providers-ipc@1.2.11: + resolution: {integrity: sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==} + engines: {node: '>=8.0.0'} + + web3-providers-ipc@1.7.4: + resolution: {integrity: sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw==} + engines: {node: '>=8.0.0'} + + web3-providers-ws@1.10.0: + resolution: {integrity: sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==} + engines: {node: '>=8.0.0'} + + web3-providers-ws@1.2.11: + resolution: {integrity: sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==} + engines: {node: '>=8.0.0'} + + web3-providers-ws@1.7.4: + resolution: {integrity: sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ==} + engines: {node: '>=8.0.0'} + + web3-shh@1.10.0: + resolution: {integrity: sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==} + engines: {node: '>=8.0.0'} + + web3-shh@1.2.11: + resolution: {integrity: sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==} + engines: {node: '>=8.0.0'} + + web3-shh@1.7.4: + resolution: {integrity: sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A==} + engines: {node: '>=8.0.0'} + + web3-types@1.10.0: + resolution: {integrity: sha512-0IXoaAFtFc8Yin7cCdQfB9ZmjafrbP6BO0f0KT/khMhXKUpoJ6yShrVhiNpyRBo8QQjuOagsWzwSK2H49I7sbw==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-utils@1.10.0: + resolution: {integrity: sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==} + engines: {node: '>=8.0.0'} + + web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} + engines: {node: '>=8.0.0'} + + web3-utils@1.2.11: + resolution: {integrity: sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==} + engines: {node: '>=8.0.0'} + + web3-utils@1.7.4: + resolution: {integrity: sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==} + engines: {node: '>=8.0.0'} + + web3-utils@4.3.3: + resolution: {integrity: sha512-kZUeCwaQm+RNc2Bf1V3BYbF29lQQKz28L0y+FA4G0lS8IxtJVGi5SeDTUkpwqqkdHHC7JcapPDnyyzJ1lfWlOw==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-validator@2.0.6: + resolution: {integrity: sha512-qn9id0/l1bWmvH4XfnG/JtGKKwut2Vokl6YXP5Kfg424npysmtRLe9DgiNBM9Op7QL/aSiaA0TVXibuIuWcizg==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3@1.10.0: + resolution: {integrity: sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==} + engines: {node: '>=8.0.0'} + + web3@1.2.11: + resolution: {integrity: sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==} + engines: {node: '>=8.0.0'} + + web3@1.7.4: + resolution: {integrity: sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A==} + engines: {node: '>=8.0.0'} + + webcrypto-core@1.8.1: + resolution: {integrity: sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + websocket@1.0.32: + resolution: {integrity: sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==} + engines: {node: '>=4.0.0'} + + websocket@1.0.35: + resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} + engines: {node: '>=4.0.0'} + + whatwg-fetch@2.0.4: + resolution: {integrity: sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==} + + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-module@1.0.0: + resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + window-size@0.2.0: + resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} + engines: {node: '>= 0.10.0'} + hasBin: true + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.17.0: + resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==} + engines: {node: '>= 12.0.0'} + + wkx@0.5.0: + resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} + + wonka@4.0.15: + resolution: {integrity: sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==} + + wonka@6.3.5: + resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} + engines: {node: '>=8.0.0'} + + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + + wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@3.3.3: + resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@5.2.4: + resolution: {integrity: sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.2: + resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xhr-request-promise@0.1.3: + resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} + + xhr-request@1.1.0: + resolution: {integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==} + + xhr2-cookies@1.1.0: + resolution: {integrity: sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==} + + xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + + xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + + xtend@2.1.2: + resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==} + engines: {node: '>=0.4'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaeti@0.0.6: + resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} + engines: {node: '>=0.10.32'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@2.4.1: + resolution: {integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@8.1.0: + resolution: {integrity: sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@10.1.2: + resolution: {integrity: sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yargs@4.8.1: + resolution: {integrity: sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-to-json-schema@3.24.5: + resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + peerDependencies: + zod: ^3.24.1 + + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + +snapshots: + + '@adraffy/ens-normalize@1.10.1': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@arbitrum/sdk@3.1.13(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + async-mutex: 0.4.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ardatan/fast-json-stringify@0.0.6(ajv-formats@2.1.1(ajv@8.17.1))(ajv@8.17.1)': + dependencies: + '@fastify/deepmerge': 1.3.0 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + fast-deep-equal: 3.1.3 + rfdc: 1.4.1 + + '@ardatan/relay-compiler@12.0.0(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@babel/core': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/runtime': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + babel-preset-fbjs: 3.4.0(@babel/core@7.27.1) + chalk: 4.1.2 + fb-watchman: 2.0.2 + fbjs: 3.0.5(encoding@0.1.13) + glob: 7.2.3 + graphql: 16.11.0 + immutable: 3.7.6 + invariant: 2.2.4 + nullthrows: 1.1.1 + relay-runtime: 12.0.0(encoding@0.1.13) + signedsource: 1.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@ardatan/sync-fetch@0.0.1(encoding@0.1.13)': + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@aws-crypto/sha256-js@1.2.2': + dependencies: + '@aws-crypto/util': 1.2.2 + '@aws-sdk/types': 3.775.0 + tslib: 1.14.1 + + '@aws-crypto/util@1.2.2': + dependencies: + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-sdk/types@3.775.0': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/util-utf8-browser@3.259.0': + dependencies: + tslib: 2.8.1 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.27.1': {} + + '@babel/core@7.27.1': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/helper-compilation-targets': 7.27.1 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helpers': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + convert-source-map: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.27.1': + dependencies: + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.1': + dependencies: + '@babel/types': 7.27.1 + + '@babel/helper-compilation-targets@7.27.1': + dependencies: + '@babel/compat-data': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.5 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.27.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.27.1': + dependencies: + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.27.1 + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.27.1': + dependencies: + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 + + '@babel/parser@7.27.1': + dependencies: + '@babel/types': 7.27.1 + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.27.1)': + dependencies: + '@babel/compat-data': 7.27.1 + '@babel/core': 7.27.1 + '@babel/helper-compilation-targets': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-compilation-targets': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) + '@babel/traverse': 7.27.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.1 + + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1) + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-compilation-targets': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/runtime@7.27.1': {} + + '@babel/template@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + + '@babel/traverse@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 + debug: 4.4.0(supports-color@9.4.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bytecodealliance/preview2-shim@0.17.0': {} + + '@chainsafe/as-sha256@0.3.1': {} + + '@chainsafe/persistent-merkle-tree@0.4.2': + dependencies: + '@chainsafe/as-sha256': 0.3.1 + + '@chainsafe/persistent-merkle-tree@0.5.0': + dependencies: + '@chainsafe/as-sha256': 0.3.1 + + '@chainsafe/ssz@0.10.2': + dependencies: + '@chainsafe/as-sha256': 0.3.1 + '@chainsafe/persistent-merkle-tree': 0.5.0 + + '@chainsafe/ssz@0.9.4': + dependencies: + '@chainsafe/as-sha256': 0.3.1 + '@chainsafe/persistent-merkle-tree': 0.4.2 + case: 1.6.3 + + '@changesets/apply-release-plan@7.0.12': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.1 + + '@changesets/assemble-release-plan@6.0.7': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.1 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.29.3': + dependencies: + '@changesets/apply-release-plan': 7.0.12 + '@changesets/assemble-release-plan': 6.0.7 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-release-plan': 4.0.11 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.1 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.1.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.3': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.1 + + '@changesets/get-release-plan@4.0.11': + dependencies: + '@changesets/assemble-release-plan': 6.0.7 + '@changesets/config': 3.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.1': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.5': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.1 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.1 + prettier: 2.8.8 + + '@colors/colors@1.5.0': + optional: true + + '@colors/colors@1.6.0': {} + + '@commitlint/cli@16.3.0': + dependencies: + '@commitlint/format': 16.2.1 + '@commitlint/lint': 16.2.4 + '@commitlint/load': 16.3.0 + '@commitlint/read': 16.2.1 + '@commitlint/types': 16.2.1 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/cli@18.6.1(@types/node@22.7.5)(typescript@5.8.3)': + dependencies: + '@commitlint/format': 18.6.1 + '@commitlint/lint': 18.6.1 + '@commitlint/load': 18.6.1(@types/node@22.7.5)(typescript@5.8.3) + '@commitlint/read': 18.6.1 + '@commitlint/types': 18.6.1 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@16.2.4': + dependencies: + conventional-changelog-conventionalcommits: 4.6.3 + + '@commitlint/config-conventional@18.6.3': + dependencies: + '@commitlint/types': 18.6.1 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@16.2.1': + dependencies: + '@commitlint/types': 16.2.1 + ajv: 6.12.6 + + '@commitlint/config-validator@18.6.1': + dependencies: + '@commitlint/types': 18.6.1 + ajv: 8.17.1 + + '@commitlint/ensure@16.2.1': + dependencies: + '@commitlint/types': 16.2.1 + lodash: 4.17.21 + + '@commitlint/ensure@18.6.1': + dependencies: + '@commitlint/types': 18.6.1 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@16.2.1': {} + + '@commitlint/execute-rule@18.6.1': {} + + '@commitlint/format@16.2.1': + dependencies: + '@commitlint/types': 16.2.1 + chalk: 4.1.2 + + '@commitlint/format@18.6.1': + dependencies: + '@commitlint/types': 18.6.1 + chalk: 4.1.2 + + '@commitlint/is-ignored@16.2.4': + dependencies: + '@commitlint/types': 16.2.1 + semver: 7.3.7 + + '@commitlint/is-ignored@18.6.1': + dependencies: + '@commitlint/types': 18.6.1 + semver: 7.6.0 + + '@commitlint/lint@16.2.4': + dependencies: + '@commitlint/is-ignored': 16.2.4 + '@commitlint/parse': 16.2.1 + '@commitlint/rules': 16.2.4 + '@commitlint/types': 16.2.1 + + '@commitlint/lint@18.6.1': + dependencies: + '@commitlint/is-ignored': 18.6.1 + '@commitlint/parse': 18.6.1 + '@commitlint/rules': 18.6.1 + '@commitlint/types': 18.6.1 + + '@commitlint/load@16.3.0': + dependencies: + '@commitlint/config-validator': 16.2.1 + '@commitlint/execute-rule': 16.2.1 + '@commitlint/resolve-extends': 16.2.1 + '@commitlint/types': 16.2.1 + '@types/node': 20.17.32 + chalk: 4.1.2 + cosmiconfig: 7.1.0 + cosmiconfig-typescript-loader: 2.0.2(@types/node@20.17.32)(cosmiconfig@7.1.0)(typescript@4.9.5) + lodash: 4.17.21 + resolve-from: 5.0.0 + typescript: 4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/load@18.6.1(@types/node@22.7.5)(typescript@5.8.3)': + dependencies: + '@commitlint/config-validator': 18.6.1 + '@commitlint/execute-rule': 18.6.1 + '@commitlint/resolve-extends': 18.6.1 + '@commitlint/types': 18.6.1 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.7.5)(cosmiconfig@8.3.6(typescript@5.8.3))(typescript@5.8.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@16.2.1': {} + + '@commitlint/message@18.6.1': {} + + '@commitlint/parse@16.2.1': + dependencies: + '@commitlint/types': 16.2.1 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + + '@commitlint/parse@18.6.1': + dependencies: + '@commitlint/types': 18.6.1 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@16.2.1': + dependencies: + '@commitlint/top-level': 16.2.1 + '@commitlint/types': 16.2.1 + fs-extra: 10.1.0 + git-raw-commits: 2.0.11 + + '@commitlint/read@18.6.1': + dependencies: + '@commitlint/top-level': 18.6.1 + '@commitlint/types': 18.6.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + + '@commitlint/resolve-extends@16.2.1': + dependencies: + '@commitlint/config-validator': 16.2.1 + '@commitlint/types': 16.2.1 + import-fresh: 3.3.1 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + '@commitlint/resolve-extends@18.6.1': + dependencies: + '@commitlint/config-validator': 18.6.1 + '@commitlint/types': 18.6.1 + import-fresh: 3.3.1 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + '@commitlint/rules@16.2.4': + dependencies: + '@commitlint/ensure': 16.2.1 + '@commitlint/message': 16.2.1 + '@commitlint/to-lines': 16.2.1 + '@commitlint/types': 16.2.1 + execa: 5.1.1 + + '@commitlint/rules@18.6.1': + dependencies: + '@commitlint/ensure': 18.6.1 + '@commitlint/message': 18.6.1 + '@commitlint/to-lines': 18.6.1 + '@commitlint/types': 18.6.1 + execa: 5.1.1 + + '@commitlint/to-lines@16.2.1': {} + + '@commitlint/to-lines@18.6.1': {} + + '@commitlint/top-level@16.2.1': + dependencies: + find-up: 5.0.0 + + '@commitlint/top-level@18.6.1': + dependencies: + find-up: 5.0.0 + + '@commitlint/types@16.2.1': + dependencies: + chalk: 4.1.2 + + '@commitlint/types@18.6.1': + dependencies: + chalk: 4.1.2 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@dabh/diagnostics@2.0.3': + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + + '@defi-wonderland/natspec-smells@1.1.6(typescript@5.8.3)(zod@3.24.4)': + dependencies: + fast-glob: 3.3.2 + solc-typed-ast: 18.2.4(typescript@5.8.3)(zod@3.24.4) + yargs: 17.7.2 + transitivePeerDependencies: + - debug + - typescript + - zod + + '@defi-wonderland/smock@2.3.5(@ethersproject/abi@5.8.0)(@ethersproject/abstract-provider@5.8.0)(@ethersproject/abstract-signer@5.8.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@nomicfoundation/ethereumjs-evm': 1.3.2 + '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-vm': 6.4.2 + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + diff: 5.2.0 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.isequal: 4.5.0 + lodash.isequalwith: 4.4.0 + rxjs: 7.8.2 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + '@ensdomains/ens@0.4.5': + dependencies: + bluebird: 3.7.2 + eth-ens-namehash: 2.0.8 + solc: 0.4.26 + testrpc: 0.0.1 + web3-utils: 1.10.4 + + '@ensdomains/resolver@0.2.4': {} + + '@envelop/core@3.0.6': + dependencies: + '@envelop/types': 3.0.2 + tslib: 2.8.1 + + '@envelop/extended-validation@2.0.6(@envelop/core@3.0.6)(graphql@16.11.0)': + dependencies: + '@envelop/core': 3.0.6 + '@graphql-tools/utils': 8.13.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@envelop/types@3.0.2': + dependencies: + tslib: 2.8.1 + + '@envelop/validation-cache@5.1.3(@envelop/core@3.0.6)(graphql@16.11.0)': + dependencies: + '@envelop/core': 3.0.6 + graphql: 16.11.0 + hash-it: 6.0.0 + lru-cache: 6.0.0 + tslib: 2.8.1 + + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.0(supports-color@9.4.0) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@ethereum-waffle/chai@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@ethereum-waffle/provider': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@ethereum-waffle/compiler@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10)': + dependencies: + '@resolver-engine/imports': 0.3.3 + '@resolver-engine/imports-fs': 0.3.3 + '@typechain/ethers-v5': 2.0.0(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@3.0.0(typescript@4.9.5)) + '@types/mkdirp': 0.5.2 + '@types/node-fetch': 2.6.12 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + mkdirp: 0.5.6 + node-fetch: 2.7.0(encoding@0.1.13) + solc: 0.6.12 + ts-generator: 0.1.1 + typechain: 3.0.0(typescript@4.9.5) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - typescript + - utf-8-validate + + '@ethereum-waffle/compiler@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@resolver-engine/imports': 0.3.3 + '@resolver-engine/imports-fs': 0.3.3 + '@typechain/ethers-v5': 2.0.0(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@3.0.0(typescript@5.8.3)) + '@types/mkdirp': 0.5.2 + '@types/node-fetch': 2.6.12 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + mkdirp: 0.5.6 + node-fetch: 2.7.0(encoding@0.1.13) + solc: 0.6.12 + ts-generator: 0.1.1 + typechain: 3.0.0(typescript@5.8.3) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - typescript + - utf-8-validate + + '@ethereum-waffle/ens@3.4.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ensdomains/ens': 0.4.5 + '@ensdomains/resolver': 0.2.4 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethereum-waffle/mock-contract@3.4.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/abi': 5.8.0 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethereum-waffle/provider@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@ethereum-waffle/ens': 3.4.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ganache-core: 2.13.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + patch-package: 6.5.1 + postinstall-postinstall: 2.1.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@ethereumjs/common@2.5.0': + dependencies: + crc-32: 1.2.2 + ethereumjs-util: 7.1.5 + + '@ethereumjs/common@2.6.5': + dependencies: + crc-32: 1.2.2 + ethereumjs-util: 7.1.5 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/rlp@5.0.2': {} + + '@ethereumjs/tx@3.3.2': + dependencies: + '@ethereumjs/common': 2.5.0 + ethereumjs-util: 7.1.5 + + '@ethereumjs/tx@3.5.2': + dependencies: + '@ethereumjs/common': 2.6.5 + ethereumjs-util: 7.1.5 + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@ethereumjs/util@9.1.0': + dependencies: + '@ethereumjs/rlp': 5.0.2 + ethereum-cryptography: 2.2.1 + + '@ethersproject/abi@5.0.0-beta.153': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + optional: true + + '@ethersproject/abi@5.6.0': + dependencies: + '@ethersproject/address': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/hash': 5.6.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/strings': 5.6.0 + + '@ethersproject/abi@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/abi@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/abstract-provider@5.6.0': + dependencies: + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/networks': 5.6.1 + '@ethersproject/properties': 5.6.0 + '@ethersproject/transactions': 5.6.0 + '@ethersproject/web': 5.6.0 + + '@ethersproject/abstract-provider@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.0 + + '@ethersproject/abstract-provider@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + + '@ethersproject/abstract-signer@5.6.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + + '@ethersproject/abstract-signer@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/abstract-signer@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + + '@ethersproject/address@5.6.0': + dependencies: + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/rlp': 5.6.0 + + '@ethersproject/address@5.6.1': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 + + '@ethersproject/address@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + '@ethersproject/address@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 + + '@ethersproject/base64@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + + '@ethersproject/base64@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + + '@ethersproject/base64@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + + '@ethersproject/basex@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.6.0 + + '@ethersproject/basex@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/basex@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.8.0 + + '@ethersproject/bignumber@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + bn.js: 4.12.2 + + '@ethersproject/bignumber@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.2 + + '@ethersproject/bignumber@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + bn.js: 5.2.2 + + '@ethersproject/bytes@5.6.1': + dependencies: + '@ethersproject/logger': 5.6.0 + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/bytes@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/constants@5.6.0': + dependencies: + '@ethersproject/bignumber': 5.6.0 + + '@ethersproject/constants@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + + '@ethersproject/constants@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + + '@ethersproject/contracts@5.6.0': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/transactions': 5.6.0 + + '@ethersproject/contracts@5.7.0': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + + '@ethersproject/contracts@5.8.0': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + + '@ethersproject/experimental@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/web': 5.8.0 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + scrypt-js: 3.0.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/hardware-wallets@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ledgerhq/hw-app-eth': 5.27.2 + '@ledgerhq/hw-transport': 5.26.0 + '@ledgerhq/hw-transport-u2f': 5.26.0 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + '@ledgerhq/hw-transport-node-hid': 5.26.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/hash@5.6.0': + dependencies: + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/strings': 5.6.0 + + '@ethersproject/hash@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/hash@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/hdnode@5.6.0': + dependencies: + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/basex': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/pbkdf2': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/sha2': 5.6.0 + '@ethersproject/signing-key': 5.6.0 + '@ethersproject/strings': 5.6.0 + '@ethersproject/transactions': 5.6.0 + '@ethersproject/wordlists': 5.6.0 + + '@ethersproject/hdnode@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + + '@ethersproject/hdnode@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 + + '@ethersproject/json-wallets@5.6.0': + dependencies: + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hdnode': 5.6.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/pbkdf2': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/random': 5.6.0 + '@ethersproject/strings': 5.6.0 + '@ethersproject/transactions': 5.6.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + + '@ethersproject/json-wallets@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + + '@ethersproject/json-wallets@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + + '@ethersproject/keccak256@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/keccak256@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/keccak256@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.6.0': {} + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/logger@5.8.0': {} + + '@ethersproject/networks@5.6.1': + dependencies: + '@ethersproject/logger': 5.6.0 + + '@ethersproject/networks@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/networks@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/pbkdf2@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/sha2': 5.6.0 + + '@ethersproject/pbkdf2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/sha2': 5.7.0 + + '@ethersproject/pbkdf2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/sha2': 5.8.0 + + '@ethersproject/properties@5.6.0': + dependencies: + '@ethersproject/logger': 5.6.0 + + '@ethersproject/properties@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/properties@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/providers@5.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/basex': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/hash': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/networks': 5.6.1 + '@ethersproject/properties': 5.6.0 + '@ethersproject/random': 5.6.0 + '@ethersproject/rlp': 5.6.0 + '@ethersproject/sha2': 5.6.0 + '@ethersproject/strings': 5.6.0 + '@ethersproject/transactions': 5.6.0 + '@ethersproject/web': 5.6.0 + bech32: 1.1.4 + ws: 7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/providers@5.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.0 + bech32: 1.1.4 + ws: 7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + bech32: 1.1.4 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/random@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + + '@ethersproject/random@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/random@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/rlp@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + + '@ethersproject/rlp@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/rlp@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/sha2@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + hash.js: 1.1.7 + + '@ethersproject/sha2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + + '@ethersproject/sha2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + bn.js: 4.12.2 + elliptic: 6.5.4 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.2 + elliptic: 6.5.4 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + bn.js: 5.2.2 + elliptic: 6.6.1 + hash.js: 1.1.7 + + '@ethersproject/solidity@5.6.0': + dependencies: + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/sha2': 5.6.0 + '@ethersproject/strings': 5.6.0 + + '@ethersproject/solidity@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/solidity@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/strings@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/logger': 5.6.0 + + '@ethersproject/strings@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/strings@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/transactions@5.6.0': + dependencies: + '@ethersproject/address': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/rlp': 5.6.0 + '@ethersproject/signing-key': 5.6.0 + + '@ethersproject/transactions@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + '@ethersproject/transactions@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + + '@ethersproject/units@5.6.0': + dependencies: + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/constants': 5.6.0 + '@ethersproject/logger': 5.6.0 + + '@ethersproject/units@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/units@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/wallet@5.6.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.6.0 + '@ethersproject/hdnode': 5.6.0 + '@ethersproject/json-wallets': 5.6.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/random': 5.6.0 + '@ethersproject/signing-key': 5.6.0 + '@ethersproject/transactions': 5.6.0 + '@ethersproject/wordlists': 5.6.0 + + '@ethersproject/wallet@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + + '@ethersproject/wallet@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/json-wallets': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/random': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wordlists': 5.8.0 + + '@ethersproject/web@5.6.0': + dependencies: + '@ethersproject/base64': 5.6.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/strings': 5.6.0 + + '@ethersproject/web@5.7.0': + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/web@5.8.0': + dependencies: + '@ethersproject/base64': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/wordlists@5.6.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/strings': 5.6.0 + + '@ethersproject/wordlists@5.7.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/wordlists@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@fastify/busboy@2.1.1': {} + + '@fastify/deepmerge@1.3.0': {} + + '@graphprotocol/client-add-source-name@1.0.20(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + graphql: 16.11.0 + lodash: 4.17.21 + tslib: 2.8.1 + + '@graphprotocol/client-auto-pagination@1.1.18(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + graphql: 16.11.0 + lodash: 4.17.21 + tslib: 2.8.1 + + '@graphprotocol/client-auto-type-merging@1.0.25(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@graphql-mesh/transform-type-merging': 0.93.1(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@graphql-mesh/utils' + + '@graphprotocol/client-block-tracking@1.0.14(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + ? '@graphprotocol/client-cli@2.2.22(@babel/core@7.27.1)(@envelop/core@3.0.6)(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/merge@8.4.2(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)' + : dependencies: + '@graphprotocol/client-add-source-name': 1.0.20(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(graphql@16.11.0) + '@graphprotocol/client-auto-pagination': 1.1.18(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@graphql-tools/wrap@9.4.2(graphql@16.11.0))(graphql@16.11.0) + '@graphprotocol/client-auto-type-merging': 1.0.25(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(graphql@16.11.0) + '@graphprotocol/client-block-tracking': 1.0.14(@graphql-tools/delegate@9.0.35(graphql@16.11.0))(graphql@16.11.0) + '@graphprotocol/client-polling-live': 1.1.1(@envelop/core@3.0.6)(@graphql-tools/merge@8.4.2(graphql@16.11.0))(graphql@16.11.0) + '@graphql-mesh/cli': 0.82.35(@babel/core@7.27.1)(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@graphql-mesh/graphql': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(tslib@2.8.1)(utf-8-validate@5.0.10) + graphql: 16.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@babel/core' + - '@envelop/core' + - '@graphql-mesh/cross-helpers' + - '@graphql-mesh/store' + - '@graphql-mesh/types' + - '@graphql-mesh/utils' + - '@graphql-tools/delegate' + - '@graphql-tools/merge' + - '@graphql-tools/utils' + - '@graphql-tools/wrap' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - encoding + - graphql-tag + - react-native + - react-native-windows + - supports-color + - utf-8-validate + + '@graphprotocol/client-polling-live@1.1.1(@envelop/core@3.0.6)(@graphql-tools/merge@8.4.2(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@envelop/core': 3.0.6 + '@graphql-tools/merge': 8.4.2(graphql@16.11.0) + '@repeaterjs/repeater': 3.0.6 + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphprotocol/common-ts@1.8.7(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@graphprotocol/contracts': 2.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/pino-sentry-simple': 0.7.1 + '@urql/core': 2.4.4(graphql@16.3.0) + '@urql/exchange-execute': 1.2.2(graphql@16.3.0) + body-parser: 1.19.1 + bs58: 4.0.1 + cors: 2.8.5 + cross-fetch: 3.1.5(encoding@0.1.13) + ethers: 5.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + express: 4.17.3 + graphql: 16.3.0 + graphql-tag: 2.12.6(graphql@16.3.0) + helmet: 5.0.2 + morgan: 1.10.0 + ngeohash: 0.6.3 + pg: 8.7.3 + pg-hstore: 2.3.4 + pino: 7.6.0 + pino-multi-stream: 6.0.0 + prom-client: 14.0.1 + sequelize: 6.19.0(pg-hstore@2.3.4)(pg@8.7.3) + transitivePeerDependencies: + - bufferutil + - encoding + - ibm_db + - mariadb + - mysql2 + - pg-native + - snowflake-sdk + - sqlite3 + - supports-color + - tedious + - utf-8-validate + + '@graphprotocol/common-ts@2.0.11(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@graphprotocol/contracts': 5.3.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/pino-sentry-simple': 0.7.1 + '@urql/core': 3.1.0(graphql@16.8.0) + '@urql/exchange-execute': 2.1.0(graphql@16.8.0) + body-parser: 1.20.2 + bs58: 5.0.0 + cors: 2.8.5 + cross-fetch: 4.0.0(encoding@0.1.13) + ethers: 5.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + express: 4.18.2 + graphql: 16.8.0 + graphql-tag: 2.12.6(graphql@16.8.0) + helmet: 7.0.0 + morgan: 1.10.0 + ngeohash: 0.6.3 + pg: 8.11.3 + pg-hstore: 2.3.4 + pino: 7.6.0 + pino-multi-stream: 6.0.0 + prom-client: 14.2.0 + sequelize: 6.33.0(pg-hstore@2.3.4)(pg@8.11.3) + transitivePeerDependencies: + - bufferutil + - encoding + - ibm_db + - mariadb + - mysql2 + - oracledb + - pg-native + - snowflake-sdk + - sqlite3 + - supports-color + - tedious + - utf-8-validate + + '@graphprotocol/contracts@2.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + console-table-printer: 2.12.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@graphprotocol/contracts@5.3.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + console-table-printer: 2.12.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@graphprotocol/pino-sentry-simple@0.7.1': + dependencies: + '@sentry/node': 5.30.0 + pumpify: 2.0.1 + split2: 3.2.2 + through2: 3.0.2 + transitivePeerDependencies: + - supports-color + + '@graphprotocol/sdk@0.5.4(bufferutil@4.0.9)(encoding@0.1.13)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@arbitrum/sdk': 3.1.13(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/experimental': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/common-ts': 2.0.11(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.0(supports-color@9.4.0) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-secure-accounts: 0.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + inquirer: 8.0.0 + lodash: 4.17.21 + yaml: 1.10.2 + transitivePeerDependencies: + - bufferutil + - encoding + - ibm_db + - mariadb + - mysql2 + - oracledb + - pg-native + - snowflake-sdk + - sqlite3 + - supports-color + - tedious + - ts-node + - typescript + - utf-8-validate + + '@graphql-codegen/core@3.1.0(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.5.3 + + '@graphql-codegen/plugin-helpers@2.7.2(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 8.13.1(graphql@16.11.0) + change-case-all: 1.0.14 + common-tags: 1.8.2 + graphql: 16.11.0 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.4.1 + + '@graphql-codegen/plugin-helpers@3.1.2(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + change-case-all: 1.0.15 + common-tags: 1.8.2 + graphql: 16.11.0 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.4.1 + + '@graphql-codegen/plugin-helpers@4.2.0(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + change-case-all: 1.0.15 + common-tags: 1.8.2 + graphql: 16.11.0 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.5.3 + + '@graphql-codegen/schema-ast@3.0.1(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.5.3 + + '@graphql-codegen/typed-document-node@4.0.1(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 3.1.1(encoding@0.1.13)(graphql@16.11.0) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + graphql: 16.11.0 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript-generic-sdk@3.1.0(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 2.13.1(encoding@0.1.13)(graphql@16.11.0) + auto-bind: 4.0.0 + graphql: 16.11.0 + graphql-tag: 2.12.6(graphql@16.11.0) + tslib: 2.4.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript-operations@3.0.4(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-codegen/typescript': 3.0.4(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 3.1.1(encoding@0.1.13)(graphql@16.11.0) + auto-bind: 4.0.0 + graphql: 16.11.0 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript-resolvers@3.2.1(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-codegen/typescript': 3.0.4(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 3.1.1(encoding@0.1.13)(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + auto-bind: 4.0.0 + graphql: 16.11.0 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/typescript@3.0.4(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-codegen/schema-ast': 3.0.1(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 3.1.1(encoding@0.1.13)(graphql@16.11.0) + auto-bind: 4.0.0 + graphql: 16.11.0 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/visitor-plugin-common@2.13.1(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.11.0) + '@graphql-tools/optimize': 1.4.0(graphql@16.11.0) + '@graphql-tools/relay-operation-optimizer': 6.5.18(encoding@0.1.13)(graphql@16.11.0) + '@graphql-tools/utils': 8.13.1(graphql@16.11.0) + auto-bind: 4.0.0 + change-case-all: 1.0.14 + dependency-graph: 0.11.0 + graphql: 16.11.0 + graphql-tag: 2.12.6(graphql@16.11.0) + parse-filepath: 1.0.2 + tslib: 2.4.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-codegen/visitor-plugin-common@3.1.1(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) + '@graphql-tools/optimize': 1.4.0(graphql@16.11.0) + '@graphql-tools/relay-operation-optimizer': 6.5.18(encoding@0.1.13)(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + dependency-graph: 0.11.0 + graphql: 16.11.0 + graphql-tag: 2.12.6(graphql@16.11.0) + parse-filepath: 1.0.2 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-inspector/core@3.3.0(graphql@16.11.0)': + dependencies: + dependency-graph: 0.11.0 + graphql: 16.11.0 + object-inspect: 1.10.3 + tslib: 2.8.1 + + '@graphql-mesh/cache-localforage@0.93.1(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + graphql: 16.11.0 + localforage: 1.10.0 + tslib: 2.8.1 + + '@graphql-mesh/cli@0.82.35(@babel/core@7.27.1)(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@graphql-codegen/core': 3.1.0(graphql@16.11.0) + '@graphql-codegen/typed-document-node': 4.0.1(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript': 3.0.4(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript-generic-sdk': 3.1.0(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.11.0))(graphql@16.11.0) + '@graphql-codegen/typescript-operations': 3.0.4(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript-resolvers': 3.2.1(encoding@0.1.13)(graphql@16.11.0) + '@graphql-mesh/config': 0.93.1(@babel/core@7.27.1)(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/runtime@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/http': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/runtime@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/store': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + ajv: 8.17.1 + change-case: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.8.3) + dnscache: 1.0.2 + dotenv: 16.5.0 + graphql: 16.11.0 + graphql-import-node: 0.0.5(graphql@16.11.0) + graphql-ws: 5.16.2(graphql@16.11.0) + json-bigint-patch: 0.0.8 + json5: 2.2.3 + mkdirp: 3.0.1 + open: 7.4.2 + pascal-case: 3.1.2 + rimraf: 5.0.10 + ts-node: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + tsconfig-paths: 4.2.0 + tslib: 2.8.1 + typescript: 5.8.3 + ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - encoding + - graphql-tag + - react-native + - react-native-windows + - supports-color + - utf-8-validate + + ? '@graphql-mesh/config@0.93.1(@babel/core@7.27.1)(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/runtime@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)' + : dependencies: + '@envelop/core': 3.0.6 + '@graphql-mesh/cache-localforage': 0.93.1(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/merger-bare': 0.93.1(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/merger-stitching': 0.93.1(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/runtime': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/store': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.27.1)(graphql@16.11.0) + '@graphql-tools/graphql-file-loader': 7.5.17(graphql@16.11.0) + '@graphql-tools/load': 7.8.14(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@whatwg-node/fetch': 0.8.8 + camel-case: 4.1.2 + graphql: 16.11.0 + param-case: 3.0.4 + pascal-case: 3.1.2 + tslib: 2.8.1 + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + path-browserify: 1.0.1 + react-native-fs: 2.20.0(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + react-native-path: 0.0.5 + transitivePeerDependencies: + - react-native + - react-native-windows + + ? '@graphql-mesh/graphql@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(tslib@2.8.1)(utf-8-validate@5.0.10)' + : dependencies: + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/store': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/string-interpolation': 0.4.4(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/url-loader': 7.17.18(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + graphql: 16.11.0 + lodash.get: 4.4.2 + tslib: 2.8.1 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + + ? '@graphql-mesh/http@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/runtime@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1)' + : dependencies: + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/runtime': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + fets: 0.1.5 + graphql: 16.11.0 + graphql-yoga: 3.9.1(graphql@16.11.0) + tslib: 2.8.1 + + '@graphql-mesh/merger-bare@0.93.1(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/merger-stitching': 0.93.1(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@graphql-mesh/store' + + '@graphql-mesh/merger-stitching@0.93.1(@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/store': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/stitch': 8.7.50(graphql@16.11.0) + '@graphql-tools/stitching-directives': 2.3.34(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-mesh/runtime@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@envelop/core': 3.0.6 + '@envelop/extended-validation': 2.0.6(@envelop/core@3.0.6)(graphql@16.11.0) + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/string-interpolation': 0.4.4(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/batch-delegate': 8.4.27(graphql@16.11.0) + '@graphql-tools/batch-execute': 8.5.22(graphql@16.11.0) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + '@whatwg-node/fetch': 0.8.8 + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-mesh/store@0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-inspector/core': 3.3.0(graphql@16.11.0) + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-mesh/string-interpolation@0.4.4(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + dayjs: 1.11.7 + graphql: 16.11.0 + json-pointer: 0.6.2 + lodash.get: 4.4.2 + tslib: 2.8.1 + + '@graphql-mesh/transform-type-merging@0.93.1(@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/utils': 0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/stitching-directives': 2.3.34(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-mesh/types@0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/store': 0.93.1(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-mesh/utils@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/batch-delegate': 8.4.27(graphql@16.11.0) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-mesh/utils@0.93.2(@graphql-mesh/cross-helpers@0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@graphql-mesh/types@0.93.2)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1)': + dependencies: + '@graphql-mesh/cross-helpers': 0.3.4(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)) + '@graphql-mesh/string-interpolation': 0.4.4(graphql@16.11.0)(tslib@2.8.1) + '@graphql-mesh/types': 0.93.2(@graphql-mesh/store@0.93.1)(@graphql-tools/utils@9.2.1(graphql@16.11.0))(graphql@16.11.0)(tslib@2.8.1) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + dset: 3.1.4 + graphql: 16.11.0 + js-yaml: 4.1.0 + lodash.get: 4.4.2 + lodash.topath: 4.5.2 + tiny-lru: 8.0.2 + tslib: 2.8.1 + + '@graphql-tools/batch-delegate@8.4.27(graphql@16.11.0)': + dependencies: + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + dataloader: 2.2.2 + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/batch-execute@8.5.22(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + dataloader: 2.2.3 + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.27.1)(graphql@16.11.0)': + dependencies: + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.27.1)(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + globby: 11.1.0 + graphql: 16.11.0 + tslib: 2.8.1 + unixify: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@graphql-tools/delegate@9.0.35(graphql@16.11.0)': + dependencies: + '@graphql-tools/batch-execute': 8.5.22(graphql@16.11.0) + '@graphql-tools/executor': 0.0.20(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + dataloader: 2.2.3 + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/executor-graphql-ws@0.0.14(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@repeaterjs/repeater': 3.0.4 + '@types/ws': 8.18.1 + graphql: 16.11.0 + graphql-ws: 5.12.1(graphql@16.11.0) + isomorphic-ws: 5.0.0(ws@8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + tslib: 2.8.1 + ws: 8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@graphql-tools/executor-http@0.1.10(@types/node@20.17.32)(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/fetch': 0.8.8 + dset: 3.1.4 + extract-files: 11.0.0 + graphql: 16.11.0 + meros: 1.3.0(@types/node@20.17.32) + tslib: 2.8.1 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + + '@graphql-tools/executor-legacy-ws@0.0.11(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@types/ws': 8.18.1 + graphql: 16.11.0 + isomorphic-ws: 5.0.0(ws@8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + tslib: 2.8.1 + ws: 8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@graphql-tools/executor@0.0.18(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) + '@repeaterjs/repeater': 3.0.4 + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/executor@0.0.20(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) + '@repeaterjs/repeater': 3.0.6 + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/graphql-file-loader@7.5.17(graphql@16.11.0)': + dependencies: + '@graphql-tools/import': 6.7.18(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + globby: 11.1.0 + graphql: 16.11.0 + tslib: 2.8.1 + unixify: 1.0.0 + + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.27.1)(graphql@16.11.0)': + dependencies: + '@babel/parser': 7.27.1 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.1) + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@graphql-tools/import@6.7.18(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + resolve-from: 5.0.0 + tslib: 2.8.1 + + '@graphql-tools/load@7.8.14(graphql@16.11.0)': + dependencies: + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + p-limit: 3.1.0 + tslib: 2.8.1 + + '@graphql-tools/merge@8.4.2(graphql@16.11.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-tools/optimize@1.4.0(graphql@16.11.0)': + dependencies: + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-tools/relay-operation-optimizer@6.5.18(encoding@0.1.13)(graphql@16.11.0)': + dependencies: + '@ardatan/relay-compiler': 12.0.0(encoding@0.1.13)(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@graphql-tools/schema@9.0.19(graphql@16.11.0)': + dependencies: + '@graphql-tools/merge': 8.4.2(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/stitch@8.7.50(graphql@16.11.0)': + dependencies: + '@graphql-tools/batch-delegate': 8.4.27(graphql@16.11.0) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/executor': 0.0.20(graphql@16.11.0) + '@graphql-tools/merge': 8.4.2(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/stitching-directives@2.3.34(graphql@16.11.0)': + dependencies: + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-tools/url-loader@7.17.18(@types/node@20.17.32)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10)': + dependencies: + '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/executor-graphql-ws': 0.0.14(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/executor-http': 0.1.10(@types/node@20.17.32)(graphql@16.11.0) + '@graphql-tools/executor-legacy-ws': 0.0.11(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-tools/wrap': 9.4.2(graphql@16.11.0) + '@types/ws': 8.18.1 + '@whatwg-node/fetch': 0.8.8 + graphql: 16.11.0 + isomorphic-ws: 5.0.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + tslib: 2.8.1 + value-or-promise: 1.0.12 + ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + + '@graphql-tools/utils@8.13.1(graphql@16.11.0)': + dependencies: + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-tools/utils@9.2.1(graphql@16.11.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + + '@graphql-tools/wrap@9.4.2(graphql@16.11.0)': + dependencies: + '@graphql-tools/delegate': 9.0.35(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + graphql: 16.11.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.11.0)': + dependencies: + graphql: 16.11.0 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.3.0)': + dependencies: + graphql: 16.3.0 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.8.0)': + dependencies: + graphql: 16.8.0 + + '@graphql-yoga/logger@0.0.1': + dependencies: + tslib: 2.8.1 + + '@graphql-yoga/subscription@3.1.0': + dependencies: + '@graphql-yoga/typed-event-target': 1.0.0 + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/events': 0.0.2 + tslib: 2.8.1 + + '@graphql-yoga/typed-event-target@1.0.0': + dependencies: + '@repeaterjs/repeater': 3.0.6 + tslib: 2.8.1 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/ttlcache@1.4.1': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.32 + jest-mock: 29.7.0 + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.17.32 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.27.1 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.17.32 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@ledgerhq/cryptoassets@5.53.0': + dependencies: + invariant: 2.2.4 + + '@ledgerhq/devices@5.51.1': + dependencies: + '@ledgerhq/errors': 5.50.0 + '@ledgerhq/logs': 5.50.0 + rxjs: 6.6.7 + semver: 7.7.1 + + '@ledgerhq/errors@5.50.0': {} + + '@ledgerhq/hw-app-eth@5.27.2': + dependencies: + '@ledgerhq/cryptoassets': 5.53.0 + '@ledgerhq/errors': 5.50.0 + '@ledgerhq/hw-transport': 5.51.1 + bignumber.js: 9.1.2 + rlp: 2.2.7 + + '@ledgerhq/hw-transport-node-hid-noevents@5.51.1': + dependencies: + '@ledgerhq/devices': 5.51.1 + '@ledgerhq/errors': 5.50.0 + '@ledgerhq/hw-transport': 5.51.1 + '@ledgerhq/logs': 5.50.0 + node-hid: 2.1.1 + optional: true + + '@ledgerhq/hw-transport-node-hid@5.26.0': + dependencies: + '@ledgerhq/devices': 5.51.1 + '@ledgerhq/errors': 5.50.0 + '@ledgerhq/hw-transport': 5.51.1 + '@ledgerhq/hw-transport-node-hid-noevents': 5.51.1 + '@ledgerhq/logs': 5.50.0 + lodash: 4.17.21 + node-hid: 1.3.0 + usb: 1.9.2 + optional: true + + '@ledgerhq/hw-transport-u2f@5.26.0': + dependencies: + '@ledgerhq/errors': 5.50.0 + '@ledgerhq/hw-transport': 5.51.1 + '@ledgerhq/logs': 5.50.0 + u2f-api: 0.2.7 + + '@ledgerhq/hw-transport@5.26.0': + dependencies: + '@ledgerhq/devices': 5.51.1 + '@ledgerhq/errors': 5.50.0 + events: 3.3.0 + + '@ledgerhq/hw-transport@5.51.1': + dependencies: + '@ledgerhq/devices': 5.51.1 + '@ledgerhq/errors': 5.50.0 + events: 3.3.0 + + '@ledgerhq/logs@5.50.0': {} + + '@ljharb/resumer@0.0.1': + dependencies: + '@ljharb/through': 2.3.14 + + '@ljharb/through@2.3.14': + dependencies: + call-bind: 1.0.8 + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.27.1 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.27.1 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@metamask/eth-sig-util@4.0.1': + dependencies: + ethereumjs-abi: 0.6.8 + ethereumjs-util: 6.2.1 + ethjs-util: 0.1.6 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + '@multiformats/base-x@4.0.1': {} + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + + '@noble/curves@1.4.2': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/curves@1.8.2': + dependencies: + '@noble/hashes': 1.7.2 + + '@noble/hashes@1.2.0': {} + + '@noble/hashes@1.3.2': {} + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.7.2': {} + + '@noble/hashes@1.8.0': {} + + '@noble/secp256k1@1.7.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@nomicfoundation/edr-darwin-arm64@0.10.0': {} + + '@nomicfoundation/edr-darwin-x64@0.10.0': {} + + '@nomicfoundation/edr-linux-arm64-gnu@0.10.0': {} + + '@nomicfoundation/edr-linux-arm64-musl@0.10.0': {} + + '@nomicfoundation/edr-linux-x64-gnu@0.10.0': {} + + '@nomicfoundation/edr-linux-x64-musl@0.10.0': {} + + '@nomicfoundation/edr-win32-x64-msvc@0.10.0': {} + + '@nomicfoundation/edr@0.10.0': + dependencies: + '@nomicfoundation/edr-darwin-arm64': 0.10.0 + '@nomicfoundation/edr-darwin-x64': 0.10.0 + '@nomicfoundation/edr-linux-arm64-gnu': 0.10.0 + '@nomicfoundation/edr-linux-arm64-musl': 0.10.0 + '@nomicfoundation/edr-linux-x64-gnu': 0.10.0 + '@nomicfoundation/edr-linux-x64-musl': 0.10.0 + '@nomicfoundation/edr-win32-x64-msvc': 0.10.0 + + '@nomicfoundation/ethereumjs-block@4.2.2': + dependencies: + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-trie': 5.0.5 + '@nomicfoundation/ethereumjs-tx': 4.1.2 + '@nomicfoundation/ethereumjs-util': 8.0.6 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-block@5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-trie': 6.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + ethereum-cryptography: 0.1.3 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@nomicfoundation/ethereumjs-blockchain@6.2.2': + dependencies: + '@nomicfoundation/ethereumjs-block': 4.2.2 + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-ethash': 2.0.5 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-trie': 5.0.5 + '@nomicfoundation/ethereumjs-util': 8.0.6 + abstract-level: 1.0.4 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + level: 8.0.1 + lru-cache: 5.1.1 + memory-level: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ethereumjs-blockchain@7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/ethereumjs-block': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-ethash': 3.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-trie': 6.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + abstract-level: 1.0.4 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + level: 8.0.1 + lru-cache: 5.1.1 + memory-level: 1.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ethereumjs-common@3.1.2': + dependencies: + '@nomicfoundation/ethereumjs-util': 8.0.6 + crc-32: 1.2.2 + + '@nomicfoundation/ethereumjs-common@4.0.1': + dependencies: + '@nomicfoundation/ethereumjs-util': 9.0.1 + crc-32: 1.2.2 + + '@nomicfoundation/ethereumjs-ethash@2.0.5': + dependencies: + '@nomicfoundation/ethereumjs-block': 4.2.2 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-util': 8.0.6 + abstract-level: 1.0.4 + bigint-crypto-utils: 3.3.0 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-ethash@3.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/ethereumjs-block': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-util': 9.0.1 + abstract-level: 1.0.4 + bigint-crypto-utils: 3.3.0 + ethereum-cryptography: 0.1.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@nomicfoundation/ethereumjs-evm@1.3.2': + dependencies: + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-util': 8.0.6 + '@types/async-eventemitter': 0.2.4 + async-eventemitter: 0.2.4 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + mcl-wasm: 0.7.9 + rustbn.js: 0.2.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ethereumjs-evm@2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + mcl-wasm: 0.7.9 + rustbn.js: 0.2.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ethereumjs-rlp@4.0.3': {} + + '@nomicfoundation/ethereumjs-rlp@5.0.1': {} + + '@nomicfoundation/ethereumjs-statemanager@1.0.5': + dependencies: + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-trie': 5.0.5 + '@nomicfoundation/ethereumjs-util': 8.0.6 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + functional-red-black-tree: 1.0.1 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ethereumjs-statemanager@2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + js-sdsl: 4.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ethereumjs-trie@5.0.5': + dependencies: + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-util': 8.0.6 + ethereum-cryptography: 0.1.3 + readable-stream: 3.6.2 + + '@nomicfoundation/ethereumjs-trie@6.0.1': + dependencies: + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-util': 9.0.1 + '@types/readable-stream': 2.3.15 + ethereum-cryptography: 0.1.3 + readable-stream: 3.6.2 + + '@nomicfoundation/ethereumjs-tx@4.1.2': + dependencies: + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-util': 8.0.6 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-tx@5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@chainsafe/ssz': 0.9.4 + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-util': 9.0.1 + ethereum-cryptography: 0.1.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@nomicfoundation/ethereumjs-util@8.0.6': + dependencies: + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-util@9.0.1': + dependencies: + '@chainsafe/ssz': 0.10.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + ethereum-cryptography: 0.1.3 + + '@nomicfoundation/ethereumjs-vm@6.4.2': + dependencies: + '@nomicfoundation/ethereumjs-block': 4.2.2 + '@nomicfoundation/ethereumjs-blockchain': 6.2.2 + '@nomicfoundation/ethereumjs-common': 3.1.2 + '@nomicfoundation/ethereumjs-evm': 1.3.2 + '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@nomicfoundation/ethereumjs-statemanager': 1.0.5 + '@nomicfoundation/ethereumjs-trie': 5.0.5 + '@nomicfoundation/ethereumjs-tx': 4.1.2 + '@nomicfoundation/ethereumjs-util': 8.0.6 + '@types/async-eventemitter': 0.2.4 + async-eventemitter: 0.2.4 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + functional-red-black-tree: 1.0.1 + mcl-wasm: 0.7.9 + rustbn.js: 0.2.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ethereumjs-vm@7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/ethereumjs-block': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-blockchain': 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-evm': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-statemanager': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-trie': 6.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + debug: 4.4.0(supports-color@9.4.0) + ethereum-cryptography: 0.1.3 + mcl-wasm: 0.7.9 + rustbn.js: 0.2.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@types/chai-as-promised': 7.1.8 + chai: 4.5.0 + chai-as-promised: 7.1.2(chai@4.5.0) + deep-eql: 4.1.4 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + ordinal: 1.0.3 + + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-foundry@1.1.3(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + picocolors: 1.1.1 + + '@nomicfoundation/hardhat-ignition-ethers@0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ignition': 0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@nomicfoundation/ignition-core': 0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@nomicfoundation/hardhat-verify': 2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/ignition-core': 0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ignition-ui': 0.15.11 + chalk: 4.1.2 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 10.1.0 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + json5: 2.2.3 + prompts: 2.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + ethereumjs-util: 7.1.5 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + ethereumjs-util: 7.1.5 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + ? '@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@20.17.32)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)' + : dependencies: + '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-verify': 2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3)) + '@types/chai': 4.3.20 + '@types/mocha': 10.0.10 + '@types/node': 20.17.32 + chai: 4.5.0 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-gas-reporter: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + solidity-coverage: 0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + ts-node: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typechain: 8.3.2(typescript@5.8.3) + typescript: 5.8.3 + + '@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + debug: 4.4.0(supports-color@9.4.0) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + picocolors: 1.1.1 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + debug: 4.4.0(supports-color@9.4.0) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + picocolors: 1.1.1 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/ignition-core@0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/address': 5.6.1 + '@nomicfoundation/solidity-analyzer': 0.1.2 + cbor: 9.0.2 + debug: 4.4.0(supports-color@9.4.0) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + fs-extra: 10.1.0 + immer: 10.0.2 + lodash: 4.17.21 + ndjson: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ignition-ui@0.15.11': {} + + '@nomicfoundation/slang@0.18.3': + dependencies: + '@bytecodealliance/preview2-shim': 0.17.0 + + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + optional: true + + '@nomicfoundation/solidity-analyzer@0.1.2': + optionalDependencies: + '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.2 + '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 + + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))': + dependencies: + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + lodash: 4.17.21 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + + '@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash: 4.17.21 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + + '@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + chalk: 2.4.2 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash: 4.17.21 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + + '@nomiclabs/hardhat-waffle@2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@types/sinon-chai': 3.2.12 + '@types/web3': 1.0.19 + ethereum-waffle: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + + '@nomiclabs/hardhat-waffle@2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@types/sinon-chai': 3.2.12 + '@types/web3': 1.0.19 + ethereum-waffle: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@nomiclabs/hardhat-waffle@2.0.3(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@types/sinon-chai': 3.2.12 + '@types/web3': 1.0.19 + ethereum-waffle: 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + '@openzeppelin/contracts-upgradeable@3.4.2': {} + + '@openzeppelin/contracts-upgradeable@5.3.0(@openzeppelin/contracts@5.3.0)': + dependencies: + '@openzeppelin/contracts': 5.3.0 + + '@openzeppelin/contracts@3.4.2': {} + + '@openzeppelin/contracts@4.9.6': {} + + '@openzeppelin/contracts@5.3.0': {} + + '@openzeppelin/defender-admin-client@1.54.6(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + axios: 1.9.0(debug@4.4.0) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lodash: 4.17.21 + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@openzeppelin/defender-base-client@1.54.6(debug@4.4.0)(encoding@0.1.13)': + dependencies: + amazon-cognito-identity-js: 6.3.15(encoding@0.1.13) + async-retry: 1.3.3 + axios: 1.9.0(debug@4.4.0) + lodash: 4.17.21 + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - debug + - encoding + + '@openzeppelin/hardhat-defender@1.9.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + dependencies: + '@openzeppelin/defender-admin-client': 1.54.6(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/hardhat-upgrades': 1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + ethereumjs-util: 7.1.5 + transitivePeerDependencies: + - '@nomiclabs/hardhat-ethers' + - '@nomiclabs/hardhat-etherscan' + - '@nomiclabs/harhdat-etherscan' + - bufferutil + - debug + - encoding + - ethers + - hardhat + - supports-color + - utf-8-validate + + '@openzeppelin/hardhat-upgrades@1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': 3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/platform-deploy-client': 0.8.0(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/upgrades-core': 1.44.0 + chalk: 4.1.2 + debug: 4.4.0(supports-color@9.4.0) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + proper-lockfile: 4.1.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@openzeppelin/hardhat-upgrades@1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': 3.1.8(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/platform-deploy-client': 0.8.0(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/upgrades-core': 1.44.0 + chalk: 4.1.2 + debug: 4.4.0(supports-color@9.4.0) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + proper-lockfile: 4.1.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@openzeppelin/hardhat-upgrades@1.28.0(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(encoding@0.1.13)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': 3.1.8(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/platform-deploy-client': 0.8.0(debug@4.4.0)(encoding@0.1.13) + '@openzeppelin/upgrades-core': 1.44.0 + chalk: 4.1.2 + debug: 4.4.0(supports-color@9.4.0) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + proper-lockfile: 4.1.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@openzeppelin/platform-deploy-client@0.8.0(debug@4.4.0)(encoding@0.1.13)': + dependencies: + '@ethersproject/abi': 5.8.0 + '@openzeppelin/defender-base-client': 1.54.6(debug@4.4.0)(encoding@0.1.13) + axios: 0.21.4(debug@4.4.0) + lodash: 4.17.21 + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - debug + - encoding + + '@openzeppelin/upgrades-core@1.44.0': + dependencies: + '@nomicfoundation/slang': 0.18.3 + bignumber.js: 9.1.2 + cbor: 10.0.3 + chalk: 4.1.2 + compare-versions: 6.1.1 + debug: 4.4.0(supports-color@9.4.0) + ethereumjs-util: 7.1.5 + minimatch: 9.0.5 + minimist: 1.2.8 + proper-lockfile: 4.1.2 + solidity-ast: 0.4.60 + transitivePeerDependencies: + - supports-color + + '@peculiar/asn1-schema@2.3.15': + dependencies: + asn1js: 3.0.6 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/json-schema@1.1.12': + dependencies: + tslib: 2.8.1 + + '@peculiar/webcrypto@1.5.0': + dependencies: + '@peculiar/asn1-schema': 2.3.15 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.6 + tslib: 2.8.1 + webcrypto-core: 1.8.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@prettier/sync@0.3.0(prettier@3.5.3)': + dependencies: + prettier: 3.5.3 + + '@react-native/assets-registry@0.79.2': {} + + '@react-native/codegen@0.79.2(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + glob: 7.2.3 + hermes-parser: 0.25.1 + invariant: 2.2.4 + nullthrows: 1.1.1 + yargs: 17.7.2 + + '@react-native/community-cli-plugin@0.79.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@react-native/dev-middleware': 0.79.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + chalk: 4.1.2 + debug: 2.6.9 + invariant: 2.2.4 + metro: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + metro-config: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + metro-core: 0.82.2 + semver: 7.7.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/debugger-frontend@0.79.2': {} + + '@react-native/dev-middleware@0.79.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.79.2 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 2.6.9 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.2 + ws: 6.2.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/gradle-plugin@0.79.2': {} + + '@react-native/js-polyfills@0.79.2': {} + + '@react-native/normalize-colors@0.79.2': {} + + '@react-native/virtualized-lists@0.79.2(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 19.1.0 + react-native: 0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10) + + '@repeaterjs/repeater@3.0.4': {} + + '@repeaterjs/repeater@3.0.6': {} + + '@resolver-engine/core@0.2.1': + dependencies: + debug: 3.2.7 + request: 2.88.2 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/core@0.3.3': + dependencies: + debug: 3.2.7 + is-url: 1.2.4 + request: 2.88.2 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/fs@0.2.1': + dependencies: + '@resolver-engine/core': 0.2.1 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/fs@0.3.3': + dependencies: + '@resolver-engine/core': 0.3.3 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/imports-fs@0.2.2': + dependencies: + '@resolver-engine/fs': 0.2.1 + '@resolver-engine/imports': 0.2.2 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/imports-fs@0.3.3': + dependencies: + '@resolver-engine/fs': 0.3.3 + '@resolver-engine/imports': 0.3.3 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/imports@0.2.2': + dependencies: + '@resolver-engine/core': 0.2.1 + debug: 3.2.7 + hosted-git-info: 2.8.9 + transitivePeerDependencies: + - supports-color + + '@resolver-engine/imports@0.3.3': + dependencies: + '@resolver-engine/core': 0.3.3 + debug: 3.2.7 + hosted-git-info: 2.8.9 + path-browserify: 1.0.1 + url: 0.11.4 + transitivePeerDependencies: + - supports-color + + '@scure/base@1.1.9': {} + + '@scure/base@1.2.5': {} + + '@scure/bip32@1.1.5': + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/base': 1.1.9 + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.1.1': + dependencies: + '@noble/hashes': 1.2.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@sentry/core@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/hub@5.30.0': + dependencies: + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/minimal@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/types': 5.30.0 + tslib: 1.14.1 + + '@sentry/node@5.30.0': + dependencies: + '@sentry/core': 5.30.0 + '@sentry/hub': 5.30.0 + '@sentry/tracing': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + + '@sentry/tracing@5.30.0': + dependencies: + '@sentry/hub': 5.30.0 + '@sentry/minimal': 5.30.0 + '@sentry/types': 5.30.0 + '@sentry/utils': 5.30.0 + tslib: 1.14.1 + + '@sentry/types@5.30.0': {} + + '@sentry/utils@5.30.0': + dependencies: + '@sentry/types': 5.30.0 + tslib: 1.14.1 + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@0.14.0': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/is@5.6.0': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@smithy/types@4.2.0': + dependencies: + tslib: 2.8.1 + + '@solidity-parser/parser@0.14.5': + dependencies: + antlr4ts: 0.5.0-alpha.4 + + '@solidity-parser/parser@0.16.2': + dependencies: + antlr4ts: 0.5.0-alpha.4 + + '@solidity-parser/parser@0.18.0': {} + + '@solidity-parser/parser@0.19.0': {} + + '@solidity-parser/parser@0.20.1': {} + + '@stylistic/eslint-plugin-js@1.8.1(eslint@8.57.1)': + dependencies: + '@types/eslint': 8.56.12 + acorn: 8.14.1 + escape-string-regexp: 4.0.0 + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + + '@stylistic/eslint-plugin-jsx@1.8.1(eslint@8.57.1)': + dependencies: + '@stylistic/eslint-plugin-js': 1.8.1(eslint@8.57.1) + '@types/eslint': 8.56.12 + eslint: 8.57.1 + estraverse: 5.3.0 + picomatch: 4.0.2 + + '@stylistic/eslint-plugin-plus@1.8.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@types/eslint': 8.56.12 + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin-ts@1.8.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@stylistic/eslint-plugin-js': 1.8.1(eslint@8.57.1) + '@types/eslint': 8.56.12 + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin@1.8.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@stylistic/eslint-plugin-js': 1.8.1(eslint@8.57.1) + '@stylistic/eslint-plugin-jsx': 1.8.1(eslint@8.57.1) + '@stylistic/eslint-plugin-plus': 1.8.1(eslint@8.57.1)(typescript@5.8.3) + '@stylistic/eslint-plugin-ts': 1.8.1(eslint@8.57.1)(typescript@5.8.3) + '@types/eslint': 8.56.12 + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@szmarczak/http-timer@1.1.2': + dependencies: + defer-to-connect: 1.1.3 + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@tenderly/api-client@1.1.0(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)': + dependencies: + axios: 0.27.2 + cli-table3: 0.6.5 + commander: 9.5.0 + dotenv: 16.5.0 + js-yaml: 4.1.0 + open: 8.4.2 + prompts: 2.4.2 + tslog: 4.9.3 + optionalDependencies: + ts-node: 10.9.2(@types/node@17.0.45)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - debug + + '@tenderly/hardhat-tenderly@1.0.13(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))': + dependencies: + axios: 0.21.4(debug@4.4.0) + fs-extra: 9.1.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + js-yaml: 3.14.1 + transitivePeerDependencies: + - debug + + '@tenderly/hardhat-tenderly@1.0.13(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + axios: 0.21.4(debug@4.4.0) + fs-extra: 9.1.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + js-yaml: 3.14.1 + transitivePeerDependencies: + - debug + + '@truffle/error@0.1.1': {} + + '@truffle/interface-adapter@0.5.37(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + bn.js: 5.2.2 + ethers: 4.0.49 + web3: 1.10.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@truffle/provider@0.2.64(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + dependencies: + '@truffle/error': 0.1.1 + '@truffle/interface-adapter': 0.5.37(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + debug: 4.4.0(supports-color@9.4.0) + web3: 1.7.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@typechain/ethers-v5@2.0.0(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@3.0.0(typescript@4.9.5))': + dependencies: + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + typechain: 3.0.0(typescript@4.9.5) + + '@typechain/ethers-v5@2.0.0(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@3.0.0(typescript@5.8.3))': + dependencies: + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + typechain: 3.0.0(typescript@5.8.3) + + '@typechain/ethers-v5@7.2.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@5.2.0(typescript@5.8.3))(typescript@5.8.3)': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.8.3) + typechain: 5.2.0(typescript@5.8.3) + typescript: 5.8.3 + + '@typechain/ethers-v5@9.0.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/providers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@7.0.1(typescript@4.9.5))(typescript@4.9.5)': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@4.9.5) + typechain: 7.0.1(typescript@4.9.5) + typescript: 4.9.5 + + '@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)': + dependencies: + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.8.3) + typechain: 8.3.2(typescript@5.8.3) + typescript: 5.8.3 + + '@typechain/hardhat@2.3.1(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@5.2.0(typescript@5.8.3))': + dependencies: + fs-extra: 9.1.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash: 4.17.21 + typechain: 5.2.0(typescript@5.8.3) + + '@typechain/hardhat@2.3.1(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@5.2.0(typescript@5.8.3))': + dependencies: + fs-extra: 9.1.0 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash: 4.17.21 + typechain: 5.2.0(typescript@5.8.3) + + '@typechain/hardhat@4.0.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))(lodash@4.17.21)(typechain@7.0.1(typescript@4.9.5))': + dependencies: + fs-extra: 9.1.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + lodash: 4.17.21 + typechain: 7.0.1(typescript@4.9.5) + + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))': + dependencies: + '@typechain/ethers-v6': 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + fs-extra: 9.1.0 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + typechain: 8.3.2(typescript@5.8.3) + + '@types/async-eventemitter@0.2.4': + dependencies: + '@types/events': 3.0.3 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.7 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.27.1 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + + '@types/babel__traverse@7.20.7': + dependencies: + '@babel/types': 7.27.1 + + '@types/bn.js@4.11.6': + dependencies: + '@types/node': 20.17.32 + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 20.17.32 + + '@types/bs58@4.0.4': + dependencies: + '@types/node': 20.17.32 + base-x: 3.0.11 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 20.17.32 + '@types/responselike': 1.0.3 + + '@types/chai-as-promised@7.1.8': + dependencies: + '@types/chai': 4.3.20 + + '@types/chai@4.3.20': {} + + '@types/chai@4.3.4': {} + + '@types/concat-stream@1.6.1': + dependencies: + '@types/node': 20.17.32 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/eslint@8.56.12': + dependencies: + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 9.6.1 + + '@types/estree@1.0.7': {} + + '@types/events@3.0.3': {} + + '@types/form-data@0.0.33': + dependencies: + '@types/node': 20.17.32 + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.17.32 + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 20.17.32 + + '@types/http-cache-semantics@4.0.4': {} + + '@types/inquirer@7.3.3': + dependencies: + '@types/through': 0.0.33 + rxjs: 6.6.7 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/json5@2.2.0': + dependencies: + json5: 2.2.3 + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 20.17.32 + + '@types/lru-cache@5.1.1': {} + + '@types/minimatch@5.1.2': {} + + '@types/minimist@1.2.5': {} + + '@types/mkdirp@0.5.2': + dependencies: + '@types/node': 20.17.32 + + '@types/mocha@10.0.10': {} + + '@types/mocha@8.2.3': {} + + '@types/mocha@9.1.1': {} + + '@types/ms@2.1.0': {} + + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 20.17.32 + form-data: 4.0.2 + + '@types/node@10.17.60': {} + + '@types/node@12.20.55': {} + + '@types/node@17.0.45': {} + + '@types/node@20.17.32': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + + '@types/node@8.10.66': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/parse-json@4.0.2': {} + + '@types/pbkdf2@3.1.2': + dependencies: + '@types/node': 20.17.32 + + '@types/prettier@2.7.3': {} + + '@types/qs@6.9.18': {} + + '@types/readable-stream@2.3.15': + dependencies: + '@types/node': 20.17.32 + safe-buffer: 5.1.2 + + '@types/resolve@0.0.8': + dependencies: + '@types/node': 20.17.32 + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 20.17.32 + + '@types/secp256k1@4.0.6': + dependencies: + '@types/node': 20.17.32 + + '@types/semver@7.7.0': {} + + '@types/sinon-chai@3.2.12': + dependencies: + '@types/chai': 4.3.20 + '@types/sinon': 17.0.4 + + '@types/sinon@17.0.4': + dependencies: + '@types/sinonjs__fake-timers': 8.1.5 + + '@types/sinonjs__fake-timers@8.1.5': {} + + '@types/stack-utils@2.0.3': {} + + '@types/through@0.0.33': + dependencies: + '@types/node': 20.17.32 + + '@types/triple-beam@1.3.5': {} + + '@types/underscore@1.13.0': {} + + '@types/validator@13.15.0': {} + + '@types/web3@1.0.19': + dependencies: + '@types/bn.js': 5.1.6 + '@types/underscore': 1.13.0 + + '@types/winston@2.4.4': + dependencies: + winston: 3.17.0 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 20.17.32 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@16.0.9': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.8.3) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.8.3) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.8.3) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.8.3) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) + eslint: 8.57.1 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + '@urql/core@2.4.4(graphql@16.3.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.3.0) + graphql: 16.3.0 + wonka: 4.0.15 + + '@urql/core@2.6.1(graphql@16.3.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.3.0) + graphql: 16.3.0 + wonka: 4.0.15 + + '@urql/core@2.6.1(graphql@16.8.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.0) + graphql: 16.8.0 + wonka: 4.0.15 + + '@urql/core@3.1.0(graphql@16.8.0)': + dependencies: + graphql: 16.8.0 + wonka: 6.3.5 + + '@urql/exchange-execute@1.2.2(graphql@16.3.0)': + dependencies: + '@urql/core': 2.6.1(graphql@16.3.0) + graphql: 16.3.0 + wonka: 4.0.15 + + '@urql/exchange-execute@2.1.0(graphql@16.8.0)': + dependencies: + '@urql/core': 3.1.0(graphql@16.8.0) + graphql: 16.8.0 + wonka: 6.3.5 + + '@whatwg-node/cookie-store@0.0.1': + dependencies: + '@whatwg-node/events': 0.0.3 + tslib: 2.8.1 + + '@whatwg-node/events@0.0.2': {} + + '@whatwg-node/events@0.0.3': {} + + '@whatwg-node/fetch@0.8.8': + dependencies: + '@peculiar/webcrypto': 1.5.0 + '@whatwg-node/node-fetch': 0.3.6 + busboy: 1.6.0 + urlpattern-polyfill: 8.0.2 + web-streams-polyfill: 3.3.3 + + '@whatwg-node/node-fetch@0.3.6': + dependencies: + '@whatwg-node/events': 0.0.3 + busboy: 1.6.0 + fast-querystring: 1.1.2 + fast-url-parser: 1.1.3 + tslib: 2.8.1 + + '@whatwg-node/server@0.7.7': + dependencies: + '@whatwg-node/fetch': 0.8.8 + tslib: 2.8.1 + + '@yarnpkg/lockfile@1.1.0': {} + + '@zxing/text-encoding@0.9.0': + optional: true + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abbrev@1.0.9: {} + + abitype@0.7.1(typescript@5.8.3)(zod@3.24.4): + dependencies: + typescript: 5.8.3 + optionalDependencies: + zod: 3.24.4 + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + abortcontroller-polyfill@1.7.8: {} + + abstract-level@1.0.4: + dependencies: + buffer: 6.0.3 + catering: 2.1.1 + is-buffer: 2.0.5 + level-supports: 4.0.1 + level-transcoder: 1.0.1 + module-error: 1.0.2 + queue-microtask: 1.2.3 + + abstract-leveldown@2.6.3: + dependencies: + xtend: 4.0.2 + + abstract-leveldown@2.7.2: + dependencies: + xtend: 4.0.2 + + abstract-leveldown@3.0.0: + dependencies: + xtend: 4.0.2 + + abstract-leveldown@5.0.0: + dependencies: + xtend: 4.0.2 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.1 + + acorn@8.14.1: {} + + address@1.2.2: {} + + adm-zip@0.4.16: {} + + aes-js@3.0.0: {} + + aes-js@3.1.2: + optional: true + + aes-js@4.0.0-beta.5: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + agent-base@7.1.3: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv@5.5.2: + dependencies: + co: 4.6.0 + fast-deep-equal: 1.1.0 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.3.1 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + amazon-cognito-identity-js@6.3.15(encoding@0.1.13): + dependencies: + '@aws-crypto/sha256-js': 1.2.2 + buffer: 4.9.2 + fast-base64-decode: 1.0.0 + isomorphic-unfetch: 3.1.0(encoding@0.1.13) + js-cookie: 2.2.1 + transitivePeerDependencies: + - encoding + + amdefine@1.0.1: + optional: true + + anser@1.4.10: {} + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@2.1.1: {} + + ansi-regex@3.0.1: {} + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@2.2.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + antlr4@4.13.2: {} + + antlr4ts@0.5.0-alpha.4: {} + + any-signal@1.2.0: + dependencies: + abort-controller: 3.0.0 + + anymatch@1.3.2: + dependencies: + micromatch: 2.3.11 + normalize-path: 2.1.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + aproba@1.2.0: + optional: true + + arbos-precompiles@1.0.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - ts-node + - typescript + - utf-8-validate + + are-we-there-yet@1.1.7: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.8 + optional: true + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + arr-diff@2.0.0: + dependencies: + arr-flatten: 1.1.0 + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-back@1.0.4: + dependencies: + typical: 2.6.1 + + array-back@2.0.0: + dependencies: + typical: 2.6.1 + + array-back@3.1.0: {} + + array-back@4.0.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-flatten@1.1.1: {} + + array-ify@1.0.0: {} + + array-union@2.1.0: {} + + array-uniq@1.0.3: {} + + array-unique@0.2.1: {} + + array-unique@0.3.2: {} + + array.prototype.reduce@1.0.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + is-string: 1.1.1 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + arrify@1.0.1: {} + + asap@2.0.6: {} + + asn1.js@4.10.1: + dependencies: + bn.js: 4.12.2 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + asn1js@3.0.6: + dependencies: + pvtsutils: 1.3.6 + pvutils: 1.1.3 + tslib: 2.8.1 + + assert-plus@1.0.0: {} + + assertion-error@1.1.0: {} + + assign-symbols@1.0.0: {} + + ast-parents@0.0.1: {} + + astral-regex@2.0.0: {} + + async-each@1.0.6: {} + + async-eventemitter@0.2.4: + dependencies: + async: 2.6.4 + + async-function@1.0.0: {} + + async-limiter@1.0.1: {} + + async-mutex@0.4.1: + dependencies: + tslib: 2.8.1 + + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + + async@1.5.2: {} + + async@2.6.2: + dependencies: + lodash: 4.17.21 + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + atob@2.1.2: {} + + atomic-sleep@1.0.0: {} + + auto-bind@4.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + aws-sign2@0.7.0: {} + + aws4@1.13.2: {} + + axios@0.21.4(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + transitivePeerDependencies: + - debug + + axios@0.27.2: + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + form-data: 4.0.2 + transitivePeerDependencies: + - debug + + axios@1.9.0(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + babel-code-frame@6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + + babel-core@6.26.3: + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.1 + babel-helpers: 6.24.1 + babel-messages: 6.23.0 + babel-register: 6.26.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + convert-source-map: 1.9.0 + debug: 2.6.9 + json5: 0.5.1 + lodash: 4.17.21 + minimatch: 3.1.2 + path-is-absolute: 1.0.1 + private: 0.1.8 + slash: 1.0.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + + babel-generator@6.26.1: + dependencies: + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + detect-indent: 4.0.0 + jsesc: 1.3.0 + lodash: 4.17.21 + source-map: 0.5.7 + trim-right: 1.0.1 + + babel-helper-builder-binary-assignment-operator-visitor@6.24.1: + dependencies: + babel-helper-explode-assignable-expression: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helper-call-delegate@6.24.1: + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helper-define-map@6.26.0: + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + + babel-helper-explode-assignable-expression@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helper-function-name@6.24.1: + dependencies: + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helper-get-function-arity@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-helper-hoist-variables@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-helper-optimise-call-expression@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-helper-regex@6.26.0: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + + babel-helper-remap-async-to-generator@6.24.1: + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helper-replace-supers@6.24.1: + dependencies: + babel-helper-optimise-call-expression: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-helpers@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-jest@29.7.0(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.27.1) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-messages@6.23.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-check-es2015-constants@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.7 + + babel-plugin-syntax-async-functions@6.13.0: {} + + babel-plugin-syntax-exponentiation-operator@6.13.0: {} + + babel-plugin-syntax-hermes-parser@0.25.1: + dependencies: + hermes-parser: 0.25.1 + + babel-plugin-syntax-trailing-function-commas@6.22.0: {} + + babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} + + babel-plugin-transform-async-to-generator@6.24.1: + dependencies: + babel-helper-remap-async-to-generator: 6.24.1 + babel-plugin-syntax-async-functions: 6.13.0 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-arrow-functions@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-block-scoped-functions@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-block-scoping@6.26.0: + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-classes@6.24.1: + dependencies: + babel-helper-define-map: 6.26.0 + babel-helper-function-name: 6.24.1 + babel-helper-optimise-call-expression: 6.24.1 + babel-helper-replace-supers: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-computed-properties@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-destructuring@6.23.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-duplicate-keys@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-plugin-transform-es2015-for-of@6.23.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-function-name@6.24.1: + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-literals@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-modules-amd@6.24.1: + dependencies: + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-modules-commonjs@6.26.2: + dependencies: + babel-plugin-transform-strict-mode: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-modules-systemjs@6.24.1: + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-modules-umd@6.24.1: + dependencies: + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-object-super@6.24.1: + dependencies: + babel-helper-replace-supers: 6.24.1 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-parameters@6.24.1: + dependencies: + babel-helper-call-delegate: 6.24.1 + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-es2015-shorthand-properties@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-plugin-transform-es2015-spread@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-sticky-regex@6.24.1: + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-plugin-transform-es2015-template-literals@6.22.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-typeof-symbol@6.23.0: + dependencies: + babel-runtime: 6.26.0 + + babel-plugin-transform-es2015-unicode-regex@6.24.1: + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + regexpu-core: 2.0.0 + + babel-plugin-transform-exponentiation-operator@6.24.1: + dependencies: + babel-helper-builder-binary-assignment-operator-visitor: 6.24.1 + babel-plugin-syntax-exponentiation-operator: 6.13.0 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-transform-regenerator@6.26.0: + dependencies: + regenerator-transform: 0.10.1 + + babel-plugin-transform-strict-mode@6.24.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + + babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1) + + babel-preset-env@1.7.0: + dependencies: + babel-plugin-check-es2015-constants: 6.22.0 + babel-plugin-syntax-trailing-function-commas: 6.22.0 + babel-plugin-transform-async-to-generator: 6.24.1 + babel-plugin-transform-es2015-arrow-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoped-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoping: 6.26.0 + babel-plugin-transform-es2015-classes: 6.24.1 + babel-plugin-transform-es2015-computed-properties: 6.24.1 + babel-plugin-transform-es2015-destructuring: 6.23.0 + babel-plugin-transform-es2015-duplicate-keys: 6.24.1 + babel-plugin-transform-es2015-for-of: 6.23.0 + babel-plugin-transform-es2015-function-name: 6.24.1 + babel-plugin-transform-es2015-literals: 6.22.0 + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-plugin-transform-es2015-modules-systemjs: 6.24.1 + babel-plugin-transform-es2015-modules-umd: 6.24.1 + babel-plugin-transform-es2015-object-super: 6.24.1 + babel-plugin-transform-es2015-parameters: 6.24.1 + babel-plugin-transform-es2015-shorthand-properties: 6.24.1 + babel-plugin-transform-es2015-spread: 6.22.0 + babel-plugin-transform-es2015-sticky-regex: 6.24.1 + babel-plugin-transform-es2015-template-literals: 6.22.0 + babel-plugin-transform-es2015-typeof-symbol: 6.23.0 + babel-plugin-transform-es2015-unicode-regex: 6.24.1 + babel-plugin-transform-exponentiation-operator: 6.24.1 + babel-plugin-transform-regenerator: 6.26.0 + browserslist: 3.2.8 + invariant: 2.2.4 + semver: 5.7.2 + transitivePeerDependencies: + - supports-color + + babel-preset-fbjs@3.4.0(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.27.1) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1) + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.1) + babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + transitivePeerDependencies: + - supports-color + + babel-preset-jest@29.6.3(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.1) + + babel-register@6.26.0: + dependencies: + babel-core: 6.26.3 + babel-runtime: 6.26.0 + core-js: 2.6.12 + home-or-tmp: 2.0.0 + lodash: 4.17.21 + mkdirp: 0.5.6 + source-map-support: 0.4.18 + transitivePeerDependencies: + - supports-color + + babel-runtime@6.26.0: + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + + babel-template@6.26.0: + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + + babel-traverse@6.26.0: + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9 + globals: 9.18.0 + invariant: 2.2.4 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + + babel-types@6.26.0: + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.3 + lodash: 4.17.21 + to-fast-properties: 1.0.3 + + babelify@7.3.0: + dependencies: + babel-core: 6.26.3 + object-assign: 4.1.1 + transitivePeerDependencies: + - supports-color + + babylon@6.18.0: {} + + backoff@2.5.0: + dependencies: + precond: 0.2.3 + + balanced-match@1.0.2: {} + + base-64@0.1.0: {} + + base-x@3.0.11: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.1: {} + + base64-js@1.5.1: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + bech32@1.1.4: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + bigint-crypto-utils@3.3.0: {} + + bignumber.js@9.1.2: {} + + binary-extensions@1.13.1: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + optional: true + + bintrees@1.0.2: {} + + bip39@2.5.0: + dependencies: + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + unorm: 1.6.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + blakejs@1.2.1: {} + + blob-to-it@0.0.2: + dependencies: + browser-readablestream-to-it: 0.0.2 + + bluebird@3.7.2: {} + + bn.js@4.11.6: {} + + bn.js@4.12.2: {} + + bn.js@5.2.2: {} + + body-parser@1.19.1: + dependencies: + bytes: 3.1.1 + content-type: 1.0.5 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.9.6 + raw-body: 2.4.2 + type-is: 1.6.18 + transitivePeerDependencies: + - supports-color + + body-parser@1.19.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.9.7 + raw-body: 2.4.3 + type-is: 1.6.18 + transitivePeerDependencies: + - supports-color + + body-parser@1.20.1: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + body-parser@1.20.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + borc@2.1.2: + dependencies: + bignumber.js: 9.1.2 + buffer: 5.7.1 + commander: 2.20.3 + ieee754: 1.2.1 + iso-url: 0.4.7 + json-text-sequence: 0.1.1 + readable-stream: 3.6.2 + + boxen@5.1.2: + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@1.8.5: + dependencies: + expand-range: 1.8.2 + preserve: 0.2.0 + repeat-element: 1.1.4 + + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + browser-level@1.0.1: + dependencies: + abstract-level: 1.0.4 + catering: 2.1.1 + module-error: 1.0.2 + run-parallel-limit: 1.1.0 + + browser-readablestream-to-it@0.0.2: {} + + browser-stdout@1.3.0: {} + + browser-stdout@1.3.1: {} + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.6 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-cipher@1.0.1: + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + browserify-des@1.0.2: + dependencies: + cipher-base: 1.0.6 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-rsa@4.1.1: + dependencies: + bn.js: 5.2.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + browserify-sign@4.2.3: + dependencies: + bn.js: 5.2.2 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.6.1 + hash-base: 3.0.5 + inherits: 2.0.4 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + browserslist@3.2.8: + dependencies: + caniuse-lite: 1.0.30001717 + electron-to-chromium: 1.5.150 + + browserslist@4.24.5: + dependencies: + caniuse-lite: 1.0.30001717 + electron-to-chromium: 1.5.150 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.5) + + bs58@4.0.1: + dependencies: + base-x: 3.0.11 + + bs58@5.0.0: + dependencies: + base-x: 4.0.1 + + bs58check@2.1.2: + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + buffer-to-arraybuffer@0.0.5: {} + + buffer-writer@2.0.0: {} + + buffer-xor@1.0.3: {} + + buffer-xor@2.0.2: + dependencies: + safe-buffer: 5.2.1 + + buffer@4.9.2: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.9: + dependencies: + node-gyp-build: 4.8.4 + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + bytes@3.1.1: {} + + bytes@3.1.2: {} + + bytewise-core@1.2.3: + dependencies: + typewise-core: 1.2.0 + + bytewise@1.1.0: + dependencies: + bytewise-core: 1.2.3 + typewise: 1.0.3 + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + cacheable-lookup@5.0.4: {} + + cacheable-lookup@6.1.0: {} + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 + + cacheable-request@6.1.0: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + cachedown@1.0.0: + dependencies: + abstract-leveldown: 2.7.2 + lru-cache: 3.2.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + caller-callsite@2.0.0: + dependencies: + callsites: 2.0.0 + + caller-path@2.0.0: + dependencies: + caller-callsite: 2.0.0 + + callsites@2.0.0: {} + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.1 + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@3.0.0: {} + + camelcase@4.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001717: {} + + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + + case@1.6.3: {} + + caseless@0.12.0: {} + + catering@2.1.1: {} + + cbor@10.0.3: + dependencies: + nofilter: 3.1.0 + + cbor@8.1.0: + dependencies: + nofilter: 3.1.0 + + cbor@9.0.2: + dependencies: + nofilter: 3.1.0 + + chai-as-promised@7.1.2(chai@4.3.4): + dependencies: + chai: 4.3.4 + check-error: 1.0.3 + + chai-as-promised@7.1.2(chai@4.5.0): + dependencies: + chai: 4.5.0 + check-error: 1.0.3 + + chai@4.3.4: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 3.0.1 + get-func-name: 2.0.2 + pathval: 1.1.1 + type-detect: 4.1.0 + + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chalk@1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + change-case-all@1.0.14: + dependencies: + change-case: 4.1.2 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lower-case: 2.0.2 + lower-case-first: 2.0.2 + sponge-case: 1.0.1 + swap-case: 2.0.2 + title-case: 3.0.3 + upper-case: 2.0.2 + upper-case-first: 2.0.2 + + change-case-all@1.0.15: + dependencies: + change-case: 4.1.2 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lower-case: 2.0.2 + lower-case-first: 2.0.2 + sponge-case: 1.0.1 + swap-case: 2.0.2 + title-case: 3.0.3 + upper-case: 2.0.2 + upper-case-first: 2.0.2 + + change-case@4.1.2: + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.8.1 + + chardet@0.7.0: {} + + charenc@0.0.2: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + checkpoint-store@1.1.0: + dependencies: + functional-red-black-tree: 1.0.1 + + chokidar@1.7.0: + dependencies: + anymatch: 1.3.2 + async-each: 1.0.6 + glob-parent: 2.0.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 2.0.1 + path-is-absolute: 1.0.1 + readdirp: 2.2.1 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chownr@1.1.4: {} + + chrome-launcher@0.15.2: + dependencies: + '@types/node': 20.17.32 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + + chromium-edge-launcher@0.2.0: + dependencies: + '@types/node': 20.17.32 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + + ci-info@2.0.0: {} + + ci-info@3.9.0: {} + + cids@0.7.5: + dependencies: + buffer: 5.7.1 + class-is: 1.1.0 + multibase: 0.6.1 + multicodec: 1.0.4 + multihashes: 0.4.21 + + cids@1.1.9: + dependencies: + multibase: 4.0.6 + multicodec: 3.2.1 + multihashes: 4.0.3 + uint8arrays: 3.1.1 + + cipher-base@1.0.6: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + class-is@1.1.0: {} + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + classic-level@1.4.1: + dependencies: + abstract-level: 1.0.4 + catering: 2.1.1 + module-error: 1.0.2 + napi-macros: 2.2.2 + node-gyp-build: 4.8.4 + + clean-stack@2.2.0: {} + + cli-boxes@2.2.1: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-table3@0.5.1: + dependencies: + object-assign: 4.1.1 + string-width: 2.1.1 + optionalDependencies: + colors: 1.4.0 + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-table@0.3.11: + dependencies: + colors: 1.0.3 + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + + cli-truncate@3.1.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cli-width@3.0.0: {} + + cliui@3.2.0: + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + + cliui@4.1.0: + dependencies: + string-width: 2.1.1 + strip-ansi: 4.0.0 + wrap-ansi: 2.1.0 + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + clone@2.1.2: {} + + co@4.6.0: {} + + code-point-at@1.1.0: {} + + coingecko-api@1.0.10: {} + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@3.2.1: + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + + colorette@2.0.20: {} + + colors@1.0.3: {} + + colors@1.4.0: {} + + colorspace@1.1.4: + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + command-exists@1.2.9: {} + + command-line-args@4.0.7: + dependencies: + array-back: 2.0.0 + find-replace: 1.0.3 + typical: 2.6.1 + + command-line-args@5.2.1: + dependencies: + array-back: 3.1.0 + find-replace: 3.0.0 + lodash.camelcase: 4.3.0 + typical: 4.0.0 + + command-line-usage@6.1.3: + dependencies: + array-back: 4.0.2 + chalk: 2.4.2 + table-layout: 1.0.2 + typical: 5.2.0 + + commander@10.0.1: {} + + commander@11.1.0: {} + + commander@12.1.0: {} + + commander@13.1.0: {} + + commander@2.11.0: {} + + commander@2.20.3: {} + + commander@3.0.2: {} + + commander@6.2.1: {} + + commander@8.3.0: {} + + commander@9.5.0: {} + + common-tags@1.8.2: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + compare-versions@6.1.1: {} + + component-emitter@1.3.1: {} + + concat-map@0.0.1: {} + + concat-stream@1.6.2: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + consola@2.15.3: {} + + console-control-strings@1.1.0: + optional: true + + console-table-printer@2.12.1: + dependencies: + simple-wcswidth: 1.0.1 + + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case: 2.0.2 + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-hash@2.5.2: + dependencies: + cids: 0.7.5 + multicodec: 0.5.7 + multihashes: 0.4.21 + + content-type@1.0.5: {} + + conventional-changelog-angular@5.0.13: + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@4.6.3: + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-commits-parser@3.2.4: + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.4.2: {} + + cookie@0.5.0: {} + + cookie@0.7.1: {} + + cookiejar@2.1.4: {} + + copy-descriptor@0.1.1: {} + + core-js-pure@3.42.0: {} + + core-js@2.6.12: {} + + core-util-is@1.0.2: {} + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig-typescript-loader@2.0.2(@types/node@20.17.32)(cosmiconfig@7.1.0)(typescript@4.9.5): + dependencies: + '@types/node': 20.17.32 + cosmiconfig: 7.1.0 + ts-node: 10.9.2(@types/node@20.17.32)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + cosmiconfig-typescript-loader@5.1.0(@types/node@22.7.5)(cosmiconfig@8.3.6(typescript@5.8.3))(typescript@5.8.3): + dependencies: + '@types/node': 22.7.5 + cosmiconfig: 8.3.6(typescript@5.8.3) + jiti: 1.21.7 + typescript: 5.8.3 + + cosmiconfig@5.2.1: + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + cosmiconfig@8.3.6(typescript@4.9.5): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 4.9.5 + + cosmiconfig@8.3.6(typescript@5.8.3): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.8.3 + + crc-32@1.2.2: {} + + create-ecdh@4.0.4: + dependencies: + bn.js: 4.12.2 + elliptic: 6.6.1 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.6 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.6 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + create-require@1.1.1: {} + + cross-fetch@2.2.6(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + whatwg-fetch: 2.0.4 + transitivePeerDependencies: + - encoding + + cross-fetch@3.1.5(encoding@0.1.13): + dependencies: + node-fetch: 2.6.7(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + cross-fetch@3.2.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + cross-fetch@4.0.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + cross-spawn@5.1.0: + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@6.0.6: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypt@0.0.2: {} + + crypto-browserify@3.12.0: + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.3 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + + d@1.0.2: + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 + + dargs@7.0.0: {} + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dataloader@2.2.2: {} + + dataloader@2.2.3: {} + + dayjs@1.11.7: {} + + death@1.1.0: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.1.0(supports-color@4.4.0): + dependencies: + ms: 2.0.0 + optionalDependencies: + supports-color: 4.4.0 + + debug@3.2.6: + dependencies: + ms: 2.1.3 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + debug@4.4.0(supports-color@9.4.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decamelize@4.0.0: {} + + decimal.js@10.5.0: {} + + decode-uri-component@0.2.2: {} + + decompress-response@3.3.0: + dependencies: + mimic-response: 1.0.1 + + decompress-response@4.2.1: + dependencies: + mimic-response: 2.1.0 + optional: true + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + dedent@0.7.0: {} + + deep-eql@3.0.1: + dependencies: + type-detect: 4.1.0 + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-equal@1.1.2: + dependencies: + is-arguments: 1.2.0 + is-date-object: 1.1.0 + is-regex: 1.1.4 + object-is: 1.1.6 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.4 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + defer-to-connect@1.1.3: {} + + defer-to-connect@2.0.1: {} + + deferred-leveldown@1.2.2: + dependencies: + abstract-leveldown: 2.6.3 + + deferred-leveldown@4.0.2: + dependencies: + abstract-leveldown: 5.0.0 + inherits: 2.0.4 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + defined@1.0.1: {} + + delayed-stream@1.0.0: {} + + delegates@1.0.0: + optional: true + + delete-empty@3.0.0: + dependencies: + ansi-colors: 4.1.3 + minimist: 1.2.8 + path-starts-with: 2.0.1 + rimraf: 2.7.1 + + delimit-stream@0.1.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + dependency-graph@0.11.0: {} + + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + destroy@1.0.4: {} + + destroy@1.2.0: {} + + detect-file@1.0.0: {} + + detect-indent@4.0.0: + dependencies: + repeating: 2.0.1 + + detect-indent@6.1.0: {} + + detect-libc@1.0.3: + optional: true + + detect-port@1.6.1: + dependencies: + address: 1.2.2 + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + diff@3.3.1: {} + + diff@3.5.0: {} + + diff@4.0.2: {} + + diff@5.2.0: {} + + diffie-hellman@5.0.3: + dependencies: + bn.js: 4.12.2 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + + difflib@0.2.4: + dependencies: + heap: 0.2.7 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-over-http-resolver@1.2.3(node-fetch@2.7.0(encoding@0.1.13)): + dependencies: + debug: 4.4.0(supports-color@9.4.0) + native-fetch: 3.0.0(node-fetch@2.7.0(encoding@0.1.13)) + receptacle: 1.3.2 + transitivePeerDependencies: + - node-fetch + - supports-color + + dnscache@1.0.2: + dependencies: + asap: 2.0.6 + lodash.clone: 4.5.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-walk@0.1.2: {} + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + dotenv@16.5.0: {} + + dotenv@9.0.2: {} + + dotignore@0.1.2: + dependencies: + minimatch: 3.1.2 + + dottie@2.0.6: {} + + dset@3.1.4: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer3@0.1.5: {} + + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + + eastasianwidth@0.2.0: {} + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.150: {} + + elliptic@6.5.4: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enabled@2.0.0: {} + + encode-utf8@1.0.3: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + encoding-down@5.0.4: + dependencies: + abstract-leveldown: 5.0.0 + inherits: 2.0.4 + level-codec: 9.0.2 + level-errors: 2.0.1 + xtend: 4.0.2 + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + env-paths@2.2.1: {} + + environment@1.1.0: {} + + eol@0.9.1: {} + + err-code@2.0.3: {} + + err-code@3.0.1: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + + es-array-method-boxes-properly@1.0.0: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es5-ext@0.10.64: + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + + es6-iterator@2.0.3: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + + es6-promise@4.2.8: {} + + es6-symbol@3.1.4: + dependencies: + d: 1.0.2 + ext: 1.7.0 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escodegen@1.8.1: + dependencies: + esprima: 2.7.3 + estraverse: 1.9.3 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.2.0 + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-no-secrets@0.8.9(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0(supports-color@9.4.0) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + esniff@2.0.1: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + + espree@9.6.1: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 3.4.3 + + esprima@2.7.3: {} + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@1.9.3: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + eth-block-tracker@3.0.1: + dependencies: + eth-query: 2.1.2 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.1 + ethjs-util: 0.1.6 + json-rpc-engine: 3.8.0 + pify: 2.3.0 + tape: 4.17.0 + transitivePeerDependencies: + - supports-color + + eth-ens-namehash@2.0.8: + dependencies: + idna-uts46-hx: 2.3.1 + js-sha3: 0.5.7 + + eth-gas-reporter@0.2.27(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@solidity-parser/parser': 0.14.5 + axios: 1.9.0(debug@4.4.0) + cli-table3: 0.5.1 + colors: 1.4.0 + ethereum-cryptography: 1.2.0 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + fs-readdir-recursive: 1.1.0 + lodash: 4.17.21 + markdown-table: 1.1.3 + mocha: 10.8.2 + req-cwd: 2.0.0 + sha1: 1.1.1 + sync-request: 6.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + eth-json-rpc-infura@3.2.1(encoding@0.1.13): + dependencies: + cross-fetch: 2.2.6(encoding@0.1.13) + eth-json-rpc-middleware: 1.6.0 + json-rpc-engine: 3.8.0 + json-rpc-error: 2.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + eth-json-rpc-middleware@1.6.0: + dependencies: + async: 2.6.2 + eth-query: 2.1.2 + eth-tx-summary: 3.2.4 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.1 + ethereumjs-vm: 2.6.0 + fetch-ponyfill: 4.1.0 + json-rpc-engine: 3.8.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.3.0 + promise-to-callback: 1.0.0 + tape: 4.17.0 + transitivePeerDependencies: + - supports-color + + eth-lib@0.1.29(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + bn.js: 4.12.2 + elliptic: 6.6.1 + nano-json-stream-parser: 0.1.2 + servify: 0.1.12 + ws: 3.3.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + xhr-request-promise: 0.1.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + eth-lib@0.2.8: + dependencies: + bn.js: 4.12.2 + elliptic: 6.6.1 + xhr-request-promise: 0.1.3 + + eth-query@2.1.2: + dependencies: + json-rpc-random-id: 1.0.1 + xtend: 4.0.2 + + eth-sig-util@1.4.2: + dependencies: + ethereumjs-abi: https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0 + ethereumjs-util: 5.2.1 + + eth-sig-util@3.0.0: + dependencies: + buffer: 5.7.1 + elliptic: 6.6.1 + ethereumjs-abi: 0.6.5 + ethereumjs-util: 5.2.1 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + eth-tx-summary@3.2.4: + dependencies: + async: 2.6.2 + clone: 2.1.2 + concat-stream: 1.6.2 + end-of-stream: 1.4.4 + eth-query: 2.1.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.1 + ethereumjs-vm: 2.6.0 + through2: 2.0.5 + + ethashjs@0.0.8: + dependencies: + async: 2.6.2 + buffer-xor: 2.0.2 + ethereumjs-util: 7.1.5 + miller-rabin: 4.0.1 + + ethereum-bloom-filters@1.2.0: + dependencies: + '@noble/hashes': 1.8.0 + + ethereum-common@0.0.18: {} + + ethereum-common@0.2.0: {} + + ethereum-cryptography@0.1.3: + dependencies: + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 + blakejs: 1.2.1 + browserify-aes: 1.2.0 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + hash.js: 1.1.7 + keccak: 3.0.4 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.4 + setimmediate: 1.0.5 + + ethereum-cryptography@1.2.0: + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/bip32': 1.1.5 + '@scure/bip39': 1.1.1 + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + + ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10): + dependencies: + '@ethereum-waffle/chai': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@ethereum-waffle/compiler': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@4.9.5)(utf-8-validate@5.0.10) + '@ethereum-waffle/mock-contract': 3.4.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethereum-waffle/provider': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - typescript + - utf-8-validate + + ethereum-waffle@3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethereum-waffle/chai': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@ethereum-waffle/compiler': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@ethereum-waffle/mock-contract': 3.4.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethereum-waffle/provider': 3.4.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - typescript + - utf-8-validate + + ethereumjs-abi@0.6.5: + dependencies: + bn.js: 4.12.2 + ethereumjs-util: 4.5.1 + + ethereumjs-abi@0.6.8: + dependencies: + bn.js: 4.12.2 + ethereumjs-util: 6.2.1 + + ethereumjs-abi@https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0: + dependencies: + bn.js: 4.12.2 + ethereumjs-util: 6.2.1 + + ethereumjs-account@2.0.5: + dependencies: + ethereumjs-util: 5.2.1 + rlp: 2.2.7 + safe-buffer: 5.2.1 + + ethereumjs-account@3.0.0: + dependencies: + ethereumjs-util: 6.2.1 + rlp: 2.2.7 + safe-buffer: 5.2.1 + + ethereumjs-block@1.7.1: + dependencies: + async: 2.6.2 + ethereum-common: 0.2.0 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.1 + merkle-patricia-tree: 2.3.2 + + ethereumjs-block@2.2.2: + dependencies: + async: 2.6.2 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 5.2.1 + merkle-patricia-tree: 2.3.2 + + ethereumjs-blockchain@4.0.4: + dependencies: + async: 2.6.2 + ethashjs: 0.0.8 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-util: 6.2.1 + flow-stoplight: 1.0.0 + level-mem: 3.0.1 + lru-cache: 5.1.1 + rlp: 2.2.7 + semaphore: 1.1.0 + + ethereumjs-common@1.5.0: {} + + ethereumjs-tx@1.3.7: + dependencies: + ethereum-common: 0.0.18 + ethereumjs-util: 5.2.1 + + ethereumjs-tx@2.1.2: + dependencies: + ethereumjs-common: 1.5.0 + ethereumjs-util: 6.2.1 + + ethereumjs-util@4.5.1: + dependencies: + bn.js: 4.12.2 + create-hash: 1.2.0 + elliptic: 6.6.1 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + + ethereumjs-util@5.2.1: + dependencies: + bn.js: 4.12.2 + create-hash: 1.2.0 + elliptic: 6.6.1 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + safe-buffer: 5.2.1 + + ethereumjs-util@6.2.1: + dependencies: + '@types/bn.js': 4.11.6 + bn.js: 4.12.2 + create-hash: 1.2.0 + elliptic: 6.6.1 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + + ethereumjs-util@7.1.5: + dependencies: + '@types/bn.js': 5.1.6 + bn.js: 5.2.2 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + + ethereumjs-vm@2.6.0: + dependencies: + async: 2.6.2 + async-eventemitter: 0.2.4 + ethereumjs-account: 2.0.5 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-util: 6.2.1 + fake-merkle-patricia-tree: 1.0.1 + functional-red-black-tree: 1.0.1 + merkle-patricia-tree: 2.3.2 + rustbn.js: 0.2.0 + safe-buffer: 5.2.1 + + ethereumjs-vm@4.2.0: + dependencies: + async: 2.6.2 + async-eventemitter: 0.2.4 + core-js-pure: 3.42.0 + ethereumjs-account: 3.0.0 + ethereumjs-block: 2.2.2 + ethereumjs-blockchain: 4.0.4 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 6.2.1 + fake-merkle-patricia-tree: 1.0.1 + functional-red-black-tree: 1.0.1 + merkle-patricia-tree: 2.3.2 + rustbn.js: 0.2.0 + safe-buffer: 5.2.1 + util.promisify: 1.1.3 + + ethereumjs-wallet@0.6.5: + dependencies: + aes-js: 3.1.2 + bs58check: 2.1.2 + ethereum-cryptography: 0.1.3 + ethereumjs-util: 6.2.1 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scryptsy: 1.2.1 + utf8: 3.0.0 + uuid: 3.4.0 + optional: true + + ethers@4.0.49: + dependencies: + aes-js: 3.0.0 + bn.js: 4.12.2 + elliptic: 6.5.4 + hash.js: 1.1.3 + js-sha3: 0.5.7 + scrypt-js: 2.0.4 + setimmediate: 1.0.4 + uuid: 2.0.1 + xmlhttprequest: 1.8.0 + + ethers@5.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.6.0 + '@ethersproject/abstract-provider': 5.6.0 + '@ethersproject/abstract-signer': 5.6.0 + '@ethersproject/address': 5.6.0 + '@ethersproject/base64': 5.6.0 + '@ethersproject/basex': 5.6.0 + '@ethersproject/bignumber': 5.6.0 + '@ethersproject/bytes': 5.6.1 + '@ethersproject/constants': 5.6.0 + '@ethersproject/contracts': 5.6.0 + '@ethersproject/hash': 5.6.0 + '@ethersproject/hdnode': 5.6.0 + '@ethersproject/json-wallets': 5.6.0 + '@ethersproject/keccak256': 5.6.0 + '@ethersproject/logger': 5.6.0 + '@ethersproject/networks': 5.6.1 + '@ethersproject/pbkdf2': 5.6.0 + '@ethersproject/properties': 5.6.0 + '@ethersproject/providers': 5.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/random': 5.6.0 + '@ethersproject/rlp': 5.6.0 + '@ethersproject/sha2': 5.6.0 + '@ethersproject/signing-key': 5.6.0 + '@ethersproject/solidity': 5.6.0 + '@ethersproject/strings': 5.6.0 + '@ethersproject/transactions': 5.6.0 + '@ethersproject/units': 5.6.0 + '@ethersproject/wallet': 5.6.0 + '@ethersproject/web': 5.6.0 + '@ethersproject/wordlists': 5.6.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethers@5.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/units': 5.7.0 + '@ethersproject/wallet': 5.7.0 + '@ethersproject/web': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/basex': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/contracts': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/hdnode': 5.8.0 + '@ethersproject/json-wallets': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/pbkdf2': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/random': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/sha2': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + '@ethersproject/solidity': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/units': 5.8.0 + '@ethersproject/wallet': 5.8.0 + '@ethersproject/web': 5.8.0 + '@ethersproject/wordlists': 5.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 22.7.5 + aes-js: 4.0.0-beta.5 + tslib: 2.7.0 + ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethjs-unit@0.1.6: + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + + ethjs-util@0.1.6: + dependencies: + is-hex-prefixed: 1.0.0 + strip-hex-prefix: 1.0.0 + + ethlint@1.2.5(solium@1.2.5): + dependencies: + ajv: 5.5.2 + chokidar: 1.7.0 + colors: 1.4.0 + commander: 2.20.3 + diff: 3.5.0 + eol: 0.9.1 + js-string-escape: 1.0.1 + lodash: 4.17.21 + sol-digger: 0.0.2 + sol-explore: 1.6.1 + solium-plugin-security: 0.1.1(solium@1.2.5) + solparse: 2.2.8 + text-table: 0.2.0 + transitivePeerDependencies: + - solium + - supports-color + + event-emitter@0.3.5: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.4: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + events@3.3.0: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + execa@0.7.0: + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + execa@4.1.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expand-brackets@0.1.5: + dependencies: + is-posix-bracket: 0.1.1 + + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + expand-range@1.8.2: + dependencies: + fill-range: 2.2.4 + + expand-template@2.0.3: + optional: true + + expand-tilde@2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + + exponential-backoff@3.1.2: {} + + express@4.17.3: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.19.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.4.2 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 1.1.2 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.1.2 + fresh: 0.5.2 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.3.0 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.9.7 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.17.2 + serve-static: 1.14.2 + setprototypeof: 1.2.0 + statuses: 1.5.0 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + express@4.18.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + ext@1.7.0: + dependencies: + type: 2.7.3 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + extend@3.0.2: {} + + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extglob@0.3.2: + dependencies: + is-extglob: 1.0.0 + + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + extract-files@11.0.0: {} + + extsprintf@1.3.0: {} + + fake-merkle-patricia-tree@1.0.1: + dependencies: + checkpoint-store: 1.1.0 + + fast-base64-decode@1.0.0: {} + + fast-decode-uri-component@1.0.1: {} + + fast-deep-equal@1.1.0: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-fifo@1.3.2: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-redact@3.5.0: {} + + fast-uri@3.0.6: {} + + fast-url-parser@1.1.3: + dependencies: + punycode: 1.4.1 + + fastify-warning@0.2.0: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fbjs-css-vars@1.0.2: {} + + fbjs@3.0.5(encoding@0.1.13): + dependencies: + cross-fetch: 3.2.0(encoding@0.1.13) + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.40 + transitivePeerDependencies: + - encoding + + fdir@6.4.4(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fecha@4.2.3: {} + + fetch-ponyfill@4.1.0: + dependencies: + node-fetch: 1.7.3 + + fets@0.1.5: + dependencies: + '@ardatan/fast-json-stringify': 0.0.6(ajv-formats@2.1.1(ajv@8.17.1))(ajv@8.17.1) + '@whatwg-node/cookie-store': 0.0.1 + '@whatwg-node/fetch': 0.8.8 + '@whatwg-node/server': 0.7.7 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + hotscript: 1.0.13 + json-schema-to-ts: 2.12.0 + openapi-types: 12.1.3 + tslib: 2.8.1 + zod: 3.24.4 + zod-to-json-schema: 3.24.5(zod@3.24.4) + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-uri-to-path@1.0.0: + optional: true + + filename-regex@2.0.1: {} + + fill-range@2.2.4: + dependencies: + is-number: 2.1.0 + isobject: 2.1.0 + randomatic: 3.1.1 + repeat-element: 1.1.4 + repeat-string: 1.6.1 + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-replace@1.0.3: + dependencies: + array-back: 1.0.4 + test-value: 2.1.0 + + find-replace@3.0.0: + dependencies: + array-back: 3.1.0 + + find-up@1.1.2: + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-yarn-workspace-root@1.2.1: + dependencies: + fs-extra: 4.0.3 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + + find-yarn-workspace-root@2.0.0: + dependencies: + micromatch: 4.0.8 + + findup-sync@5.0.0: + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.8 + resolve-dir: 1.0.1 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat@5.0.2: {} + + flatted@3.3.3: {} + + flow-enums-runtime@0.0.6: {} + + flow-stoplight@1.0.0: {} + + fmix@0.1.0: + dependencies: + imul: 1.0.1 + + fn.name@1.1.0: {} + + follow-redirects@1.15.9(debug@4.4.0): + optionalDependencies: + debug: 4.4.0(supports-color@9.4.0) + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + for-in@1.0.2: {} + + for-own@0.1.5: + dependencies: + for-in: 1.0.2 + + foreach@2.0.6: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + forever-agent@0.6.1: {} + + form-data-encoder@1.7.1: {} + + form-data-encoder@2.1.4: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + form-data@2.5.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + safe-buffer: 5.2.1 + + form-data@3.0.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fp-ts@1.19.3: {} + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + fresh@0.5.2: {} + + fs-constants@1.0.0: + optional: true + + fs-extra@0.30.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 2.4.0 + klaw: 1.3.1 + path-is-absolute: 1.0.1 + rimraf: 2.7.1 + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@4.0.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@1.2.7: + dependencies: + minipass: 2.9.0 + + fs-readdir-recursive@1.1.0: {} + + fs.realpath@1.0.0: {} + + fsevents@1.2.13: + dependencies: + bindings: 1.5.0 + nan: 2.22.2 + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functional-red-black-tree@1.0.1: {} + + functions-have-names@1.2.3: {} + + ganache-core@2.13.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): + dependencies: + abstract-leveldown: 3.0.0 + async: 2.6.2 + bip39: 2.5.0 + cachedown: 1.0.0 + clone: 2.1.2 + debug: 3.2.6 + encoding-down: 5.0.4 + eth-sig-util: 3.0.0 + ethereumjs-abi: 0.6.8 + ethereumjs-account: 3.0.0 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 6.2.1 + ethereumjs-vm: 4.2.0 + heap: 0.2.6 + level-sublevel: 6.6.4 + levelup: 3.1.1 + lodash: 4.17.20 + lru-cache: 5.1.1 + merkle-patricia-tree: 3.0.0 + patch-package: 6.2.2 + seedrandom: 3.0.1 + source-map-support: 0.5.12 + tmp: 0.1.0 + web3-provider-engine: 14.2.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + websocket: 1.0.32 + optionalDependencies: + ethereumjs-wallet: 0.6.5 + web3: 1.2.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + gauge@2.7.4: + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.5 + optional: true + + gensync@1.0.0-beta.2: {} + + get-caller-file@1.0.3: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-iterator@1.0.2: {} + + get-own-enumerable-property-symbols@3.0.2: {} + + get-package-type@0.1.0: {} + + get-port@3.2.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@3.0.0: {} + + get-stream@4.1.0: + dependencies: + pump: 3.0.2 + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-value@2.0.6: {} + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + + ghost-testrpc@0.0.2: + dependencies: + chalk: 2.4.2 + node-emoji: 1.11.0 + + git-raw-commits@2.0.11: + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + + github-from-package@0.0.0: + optional: true + + glob-base@0.3.0: + dependencies: + glob-parent: 2.0.0 + is-glob: 2.0.1 + + glob-parent@2.0.0: + dependencies: + is-glob: 2.0.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.2: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + glob@5.0.15: + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.1.2: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + + global-modules@1.0.0: + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@1.0.2: + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + global@4.4.0: + dependencies: + min-document: 2.19.0 + process: 0.11.10 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@16.0.0: {} + + globals@9.18.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@10.0.2: + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + glob: 7.2.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + got@12.1.0: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 5.0.1 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 6.1.0 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + form-data-encoder: 1.7.1 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 2.0.1 + + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + got@9.6.0: + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + graphql-import-node@0.0.5(graphql@16.11.0): + dependencies: + graphql: 16.11.0 + + graphql-tag@2.12.6(graphql@16.11.0): + dependencies: + graphql: 16.11.0 + tslib: 2.8.1 + + graphql-tag@2.12.6(graphql@16.3.0): + dependencies: + graphql: 16.3.0 + tslib: 2.8.1 + + graphql-tag@2.12.6(graphql@16.8.0): + dependencies: + graphql: 16.8.0 + tslib: 2.8.1 + + graphql-ws@5.12.1(graphql@16.11.0): + dependencies: + graphql: 16.11.0 + + graphql-ws@5.16.2(graphql@16.11.0): + dependencies: + graphql: 16.11.0 + + graphql-yoga@3.9.1(graphql@16.11.0): + dependencies: + '@envelop/core': 3.0.6 + '@envelop/validation-cache': 5.1.3(@envelop/core@3.0.6)(graphql@16.11.0) + '@graphql-tools/executor': 0.0.18(graphql@16.11.0) + '@graphql-tools/schema': 9.0.19(graphql@16.11.0) + '@graphql-tools/utils': 9.2.1(graphql@16.11.0) + '@graphql-yoga/logger': 0.0.1 + '@graphql-yoga/subscription': 3.1.0 + '@whatwg-node/fetch': 0.8.8 + '@whatwg-node/server': 0.7.7 + dset: 3.1.4 + graphql: 16.11.0 + lru-cache: 7.18.3 + tslib: 2.8.1 + + graphql@16.11.0: {} + + graphql@16.3.0: {} + + graphql@16.8.0: {} + + growl@1.10.3: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + hard-rejection@2.1.0: {} + + hardhat-abi-exporter@2.11.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)): + dependencies: + '@ethersproject/abi': 5.8.0 + delete-empty: 3.0.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + + hardhat-abi-exporter@2.11.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@ethersproject/abi': 5.8.0 + delete-empty: 3.0.0 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + hardhat-abi-exporter@2.11.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@ethersproject/abi': 5.8.0 + delete-empty: 3.0.0 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + hardhat-contract-sizer@2.10.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10)): + dependencies: + chalk: 4.1.2 + cli-table3: 0.6.5 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + strip-ansi: 6.0.1 + + hardhat-contract-sizer@2.10.0(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + chalk: 4.1.2 + cli-table3: 0.6.5 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + strip-ansi: 6.0.1 + + hardhat-contract-sizer@2.10.0(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + chalk: 4.1.2 + cli-table3: 0.6.5 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + strip-ansi: 6.0.1 + + hardhat-deploy@0.7.11(@ethersproject/hardware-wallets@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/contracts': 5.8.0 + '@ethersproject/hardware-wallets': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/solidity': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wallet': 5.8.0 + '@types/qs': 6.9.18 + axios: 0.21.4(debug@4.4.0) + chalk: 4.1.2 + chokidar: 3.6.0 + debug: 4.4.0(supports-color@9.4.0) + form-data: 3.0.3 + fs-extra: 9.1.0 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + match-all: 1.2.7 + murmur-128: 0.2.1 + qs: 6.14.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + array-uniq: 1.0.3 + eth-gas-reporter: 0.2.27(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10) + sha1: 1.1.1 + transitivePeerDependencies: + - '@codechecks/client' + - bufferutil + - debug + - utf-8-validate + + hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + array-uniq: 1.0.3 + eth-gas-reporter: 0.2.27(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + sha1: 1.1.1 + transitivePeerDependencies: + - '@codechecks/client' + - bufferutil + - debug + - utf-8-validate + + hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + array-uniq: 1.0.3 + eth-gas-reporter: 0.2.27(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + sha1: 1.1.1 + transitivePeerDependencies: + - '@codechecks/client' + - bufferutil + - debug + - utf-8-validate + + hardhat-secure-accounts@0.0.5(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + prompt-sync: 4.2.0 + transitivePeerDependencies: + - supports-color + + hardhat-secure-accounts@0.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + prompt-sync: 4.2.0 + transitivePeerDependencies: + - supports-color + + hardhat-secure-accounts@1.0.5(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + prompt-sync: 4.2.0 + transitivePeerDependencies: + - supports-color + + hardhat-secure-accounts@1.0.5(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + prompt-sync: 4.2.0 + transitivePeerDependencies: + - supports-color + + hardhat-storage-layout@0.1.6(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + console-table-printer: 2.12.1 + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + hardhat-tracer@1.3.0(chalk@5.4.1)(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + chalk: 5.4.1 + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + + hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5))(typescript@4.9.5)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.8.0 + '@metamask/eth-sig-util': 4.0.1 + '@nomicfoundation/ethereumjs-block': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-blockchain': 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-evm': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-statemanager': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-trie': 6.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + '@nomicfoundation/ethereumjs-vm': 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + abort-controller: 3.0.0 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + chalk: 2.4.2 + chokidar: 3.6.0 + ci-info: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + ethereumjs-abi: 0.6.8 + find-up: 2.1.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + glob: 7.2.0 + immutable: 4.3.7 + io-ts: 1.10.4 + keccak: 3.0.4 + lodash: 4.17.21 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + qs: 6.14.0 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.7.3(debug@4.4.0) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@17.0.45)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat@2.14.1(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.8.0 + '@metamask/eth-sig-util': 4.0.1 + '@nomicfoundation/ethereumjs-block': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-blockchain': 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-common': 4.0.1 + '@nomicfoundation/ethereumjs-evm': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-rlp': 5.0.1 + '@nomicfoundation/ethereumjs-statemanager': 2.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-trie': 6.0.1 + '@nomicfoundation/ethereumjs-tx': 5.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/ethereumjs-util': 9.0.1 + '@nomicfoundation/ethereumjs-vm': 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + abort-controller: 3.0.0 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + chalk: 2.4.2 + chokidar: 3.6.0 + ci-info: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + ethereumjs-abi: 0.6.8 + find-up: 2.1.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + glob: 7.2.0 + immutable: 4.3.7 + io-ts: 1.10.4 + keccak: 3.0.4 + lodash: 4.17.21 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + qs: 6.14.0 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.7.3(debug@4.4.0) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethereumjs/util': 9.1.0 + '@ethersproject/abi': 5.8.0 + '@nomicfoundation/edr': 0.10.0 + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chokidar: 4.0.3 + ci-info: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + find-up: 5.0.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + immutable: 4.3.7 + io-ts: 1.10.4 + json-stream-stringify: 3.1.6 + keccak: 3.0.4 + lodash: 4.17.21 + micro-eth-signer: 0.14.0 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + picocolors: 1.1.1 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.8.26(debug@4.4.0) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.13 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@20.17.32)(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethereumjs/util': 9.1.0 + '@ethersproject/abi': 5.8.0 + '@nomicfoundation/edr': 0.10.0 + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chokidar: 4.0.3 + ci-info: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + find-up: 5.0.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + immutable: 4.3.7 + io-ts: 1.10.4 + json-stream-stringify: 3.1.6 + keccak: 3.0.4 + lodash: 4.17.21 + micro-eth-signer: 0.14.0 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + picocolors: 1.1.1 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.8.26(debug@4.4.0) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.13 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@22.7.5)(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat@2.23.0(bufferutil@4.0.9)(ts-node@8.10.2(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethereumjs/util': 9.1.0 + '@ethersproject/abi': 5.8.0 + '@nomicfoundation/edr': 0.10.0 + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chokidar: 4.0.3 + ci-info: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + find-up: 5.0.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + immutable: 4.3.7 + io-ts: 1.10.4 + json-stream-stringify: 3.1.6 + keccak: 3.0.4 + lodash: 4.17.21 + micro-eth-signer: 0.14.0 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + picocolors: 1.1.1 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.8.26(debug@4.4.0) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.13 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 8.10.2(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + has-ansi@2.0.0: + dependencies: + ansi-regex: 2.1.1 + + has-bigints@1.1.0: {} + + has-flag@1.0.0: {} + + has-flag@2.0.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-unicode@2.0.1: + optional: true + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + has@1.0.4: {} + + hash-base@3.0.5: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + hash-base@3.1.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + hash-it@6.0.0: {} + + hash.js@1.1.3: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.1.1: {} + + he@1.2.0: {} + + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.8.1 + + heap@0.2.6: {} + + heap@0.2.7: {} + + helmet@5.0.2: {} + + helmet@7.0.0: {} + + hermes-estree@0.25.1: {} + + hermes-estree@0.28.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + hermes-parser@0.28.1: + dependencies: + hermes-estree: 0.28.1 + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + home-or-tmp@2.0.0: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + + homedir-polyfill@1.0.3: + dependencies: + parse-passwd: 1.0.0 + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + hotscript@1.0.13: {} + + http-basic@8.1.3: + dependencies: + caseless: 0.12.0 + concat-stream: 1.6.2 + http-response-object: 3.0.2 + parse-cache-control: 1.0.1 + + http-cache-semantics@4.1.1: {} + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-https@1.0.0: {} + + http-response-object@3.0.2: + dependencies: + '@types/node': 10.17.60 + + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + human-id@4.1.1: {} + + human-signals@1.1.1: {} + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + husky@7.0.4: {} + + husky@8.0.3: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + idna-uts46-hx@2.3.1: + dependencies: + punycode: 2.1.0 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + image-size@1.2.1: + dependencies: + queue: 6.0.2 + + immediate@3.0.6: {} + + immediate@3.2.3: {} + + immediate@3.3.0: {} + + immer@10.0.2: {} + + immutable@3.7.6: {} + + immutable@4.3.7: {} + + import-fresh@2.0.0: + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-from@4.0.0: {} + + imul@1.0.1: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflection@1.13.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + inquirer@8.0.0: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + interpret@1.4.0: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + invert-kv@1.0.0: {} + + io-ts@1.10.4: + dependencies: + fp-ts: 1.19.3 + + ip-regex@4.3.0: {} + + ipaddr.js@1.9.1: {} + + ipfs-core-utils@0.4.0(encoding@0.1.13): + dependencies: + blob-to-it: 0.0.2 + browser-readablestream-to-it: 0.0.2 + cids: 1.1.9 + err-code: 2.0.3 + ipfs-utils: 3.0.0(encoding@0.1.13) + it-all: 1.0.6 + it-map: 1.0.6 + it-peekable: 0.0.1 + uint8arrays: 1.1.0 + transitivePeerDependencies: + - encoding + + ipfs-http-client@47.0.1(encoding@0.1.13): + dependencies: + abort-controller: 3.0.0 + any-signal: 1.2.0 + bignumber.js: 9.1.2 + cids: 1.1.9 + debug: 4.4.0(supports-color@9.4.0) + form-data: 3.0.3 + ipfs-core-utils: 0.4.0(encoding@0.1.13) + ipfs-utils: 3.0.0(encoding@0.1.13) + ipld-block: 0.10.1 + ipld-dag-cbor: 0.17.1 + ipld-dag-pb: 0.20.0 + ipld-raw: 6.0.0 + iso-url: 0.4.7 + it-last: 1.0.6 + it-map: 1.0.6 + it-tar: 1.2.2 + it-to-buffer: 1.0.5 + it-to-stream: 0.1.2 + merge-options: 2.0.0 + multiaddr: 8.1.2(node-fetch@2.7.0(encoding@0.1.13)) + multiaddr-to-uri: 6.0.0(node-fetch@2.7.0(encoding@0.1.13)) + multibase: 3.1.2 + multicodec: 2.1.3 + multihashes: 3.1.2 + nanoid: 3.3.11 + node-fetch: 2.7.0(encoding@0.1.13) + parse-duration: 0.4.4 + stream-to-it: 0.2.4 + uint8arrays: 1.1.0 + transitivePeerDependencies: + - encoding + - supports-color + + ipfs-utils@3.0.0(encoding@0.1.13): + dependencies: + abort-controller: 3.0.0 + any-signal: 1.2.0 + buffer: 5.7.1 + err-code: 2.0.3 + fs-extra: 9.1.0 + is-electron: 2.2.2 + iso-url: 0.4.7 + it-glob: 0.0.8 + merge-options: 2.0.0 + nanoid: 3.3.11 + node-fetch: 2.7.0(encoding@0.1.13) + stream-to-it: 0.2.4 + transitivePeerDependencies: + - encoding + + ipld-block@0.10.1: + dependencies: + cids: 1.1.9 + class-is: 1.1.0 + + ipld-dag-cbor@0.17.1: + dependencies: + borc: 2.1.2 + cids: 1.1.9 + is-circular: 1.0.2 + multicodec: 3.2.1 + multihashing-async: 2.1.4 + uint8arrays: 2.1.10 + + ipld-dag-pb@0.20.0: + dependencies: + cids: 1.1.9 + class-is: 1.1.0 + multicodec: 2.1.3 + multihashing-async: 2.1.4 + protons: 2.0.3 + reset: 0.1.0 + run: 1.5.0 + stable: 0.1.8 + uint8arrays: 1.1.0 + + ipld-raw@6.0.0: + dependencies: + cids: 1.1.9 + multicodec: 2.1.3 + multihashing-async: 2.1.4 + + is-absolute@1.0.0: + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@1.0.1: + dependencies: + binary-extensions: 1.13.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-buffer@1.1.6: {} + + is-buffer@2.0.5: {} + + is-callable@1.2.7: {} + + is-ci@2.0.0: + dependencies: + ci-info: 2.0.0 + + is-circular@1.0.2: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-directory@0.3.1: {} + + is-docker@2.2.1: {} + + is-dotfile@1.0.3: {} + + is-electron@2.2.2: {} + + is-equal-shallow@0.1.3: + dependencies: + is-primitive: 2.0.0 + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@1.0.0: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-finite@1.1.0: {} + + is-fn@1.0.0: {} + + is-fullwidth-code-point@1.0.0: + dependencies: + number-is-nan: 1.0.1 + + is-fullwidth-code-point@2.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + + is-function@1.0.2: {} + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@2.0.1: + dependencies: + is-extglob: 1.0.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hex-prefixed@1.0.0: {} + + is-ip@3.1.0: + dependencies: + ip-regex: 4.3.0 + + is-lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + is-map@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@2.1.0: + dependencies: + kind-of: 3.2.2 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@4.0.0: {} + + is-number@7.0.0: {} + + is-obj@1.0.1: {} + + is-obj@2.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@1.1.0: {} + + is-plain-obj@2.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-posix-bracket@0.1.1: {} + + is-primitive@2.0.0: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.8 + has-tostringtag: 1.0.2 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-regexp@1.0.0: {} + + is-relative@1.0.0: + dependencies: + is-unc-path: 1.0.0 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@1.1.0: {} + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-text-path@1.0.1: + dependencies: + text-extensions: 1.9.0 + + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.19 + + is-typedarray@1.0.0: {} + + is-unc-path@1.0.0: + dependencies: + unc-path-regex: 0.1.2 + + is-unicode-supported@0.1.0: {} + + is-upper-case@2.0.2: + dependencies: + tslib: 2.8.1 + + is-url@1.2.4: {} + + is-utf8@0.2.1: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iso-constants@0.1.2: {} + + iso-url@0.4.7: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + isomorphic-fetch@3.0.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + whatwg-fetch: 3.6.20 + transitivePeerDependencies: + - encoding + + isomorphic-unfetch@3.1.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + + isomorphic-ws@5.0.0(ws@8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + + isomorphic-ws@5.0.0(ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + + isstream@0.1.2: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.27.1 + '@babel/parser': 7.27.1 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + it-all@1.0.6: {} + + it-concat@1.0.3: + dependencies: + bl: 4.1.0 + + it-glob@0.0.8: + dependencies: + fs-extra: 8.1.0 + minimatch: 3.1.2 + + it-last@1.0.6: {} + + it-map@1.0.6: {} + + it-peekable@0.0.1: {} + + it-reader@2.1.0: + dependencies: + bl: 4.1.0 + + it-tar@1.2.2: + dependencies: + bl: 4.1.0 + buffer: 5.7.1 + iso-constants: 0.1.2 + it-concat: 1.0.3 + it-reader: 2.1.0 + p-defer: 3.0.0 + + it-to-buffer@1.0.5: + dependencies: + buffer: 5.7.1 + + it-to-stream@0.1.2: + dependencies: + buffer: 5.7.1 + fast-fifo: 1.3.2 + get-iterator: 1.0.2 + p-defer: 3.0.0 + p-fifo: 1.0.0 + readable-stream: 3.6.2 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.1.0: + dependencies: + '@isaacs/cliui': 8.0.2 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.32 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.17.32 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.32 + jest-util: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.32 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-worker@29.7.0: + dependencies: + '@types/node': 20.17.32 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jiti@1.21.7: {} + + js-cookie@2.2.1: {} + + js-sdsl@4.4.2: {} + + js-sha3@0.5.7: {} + + js-sha3@0.8.0: {} + + js-string-escape@1.0.1: {} + + js-tokens@3.0.2: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbn@0.1.1: {} + + jsc-safe-url@0.2.4: {} + + jsel@1.1.6: {} + + jsesc@0.5.0: {} + + jsesc@1.3.0: {} + + jsesc@3.1.0: {} + + json-bigint-patch@0.0.8: {} + + json-buffer@3.0.0: {} + + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-pointer@0.6.2: + dependencies: + foreach: 2.0.6 + + json-rpc-engine@3.8.0: + dependencies: + async: 2.6.2 + babel-preset-env: 1.7.0 + babelify: 7.3.0 + json-rpc-error: 2.0.0 + promise-to-callback: 1.0.0 + safe-event-emitter: 1.0.1 + transitivePeerDependencies: + - supports-color + + json-rpc-error@2.0.0: + dependencies: + inherits: 2.0.4 + + json-rpc-random-id@1.0.1: {} + + json-schema-to-ts@2.12.0: + dependencies: + '@babel/runtime': 7.27.1 + '@types/json-schema': 7.0.15 + ts-algebra: 1.2.2 + + json-schema-traverse@0.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stable-stringify@1.3.0: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + + json-stream-stringify@3.1.6: {} + + json-stringify-safe@5.0.1: {} + + json-text-sequence@0.1.1: + dependencies: + delimit-stream: 0.1.0 + + json5@0.5.1: {} + + json5@2.2.3: {} + + jsonfile@2.4.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonify@0.0.1: {} + + jsonparse@1.3.1: {} + + jsonschema@1.5.0: {} + + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.4 + readable-stream: 3.6.2 + + keyv@3.1.0: + dependencies: + json-buffer: 3.0.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@6.0.3: {} + + klaw-sync@6.0.0: + dependencies: + graceful-fs: 4.2.11 + + klaw@1.3.1: + optionalDependencies: + graceful-fs: 4.2.11 + + kleur@3.0.3: {} + + kuler@2.0.0: {} + + latest-version@7.0.0: + dependencies: + package-json: 8.1.1 + + lcid@1.0.0: + dependencies: + invert-kv: 1.0.0 + + level-codec@7.0.1: {} + + level-codec@9.0.2: + dependencies: + buffer: 5.7.1 + + level-errors@1.0.5: + dependencies: + errno: 0.1.8 + + level-errors@2.0.1: + dependencies: + errno: 0.1.8 + + level-iterator-stream@1.3.1: + dependencies: + inherits: 2.0.4 + level-errors: 1.0.5 + readable-stream: 1.1.14 + xtend: 4.0.2 + + level-iterator-stream@2.0.3: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + + level-iterator-stream@3.0.1: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + + level-mem@3.0.1: + dependencies: + level-packager: 4.0.1 + memdown: 3.0.0 + + level-packager@4.0.1: + dependencies: + encoding-down: 5.0.4 + levelup: 3.1.1 + + level-post@1.0.7: + dependencies: + ltgt: 2.1.3 + + level-sublevel@6.6.4: + dependencies: + bytewise: 1.1.0 + level-codec: 9.0.2 + level-errors: 2.0.1 + level-iterator-stream: 2.0.3 + ltgt: 2.1.3 + pull-defer: 0.2.3 + pull-level: 2.0.4 + pull-stream: 3.7.0 + typewiselite: 1.0.0 + xtend: 4.0.2 + + level-supports@4.0.1: {} + + level-transcoder@1.0.1: + dependencies: + buffer: 6.0.3 + module-error: 1.0.2 + + level-ws@0.0.0: + dependencies: + readable-stream: 1.0.34 + xtend: 2.1.2 + + level-ws@1.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + + level@8.0.1: + dependencies: + abstract-level: 1.0.4 + browser-level: 1.0.1 + classic-level: 1.4.1 + + levelup@1.3.9: + dependencies: + deferred-leveldown: 1.2.2 + level-codec: 7.0.1 + level-errors: 1.0.5 + level-iterator-stream: 1.3.1 + prr: 1.0.1 + semver: 5.4.1 + xtend: 4.0.2 + + levelup@3.1.1: + dependencies: + deferred-leveldown: 4.0.2 + level-errors: 2.0.1 + level-iterator-stream: 3.0.1 + xtend: 4.0.2 + + leven@3.1.0: {} + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.1.1: + dependencies: + immediate: 3.0.6 + + lighthouse-logger@1.4.2: + dependencies: + debug: 2.6.9 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + lilconfig@2.0.5: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + lint-staged@10.5.4: + dependencies: + chalk: 4.1.2 + cli-truncate: 2.1.0 + commander: 6.2.1 + cosmiconfig: 7.1.0 + debug: 4.4.0(supports-color@9.4.0) + dedent: 0.7.0 + enquirer: 2.4.1 + execa: 4.1.0 + listr2: 3.14.0(enquirer@2.4.1) + log-symbols: 4.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + please-upgrade-node: 3.2.0 + string-argv: 0.3.1 + stringify-object: 3.3.0 + transitivePeerDependencies: + - supports-color + + lint-staged@12.5.0(enquirer@2.4.1): + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + commander: 9.5.0 + debug: 4.4.0(supports-color@9.4.0) + execa: 5.1.1 + lilconfig: 2.0.5 + listr2: 4.0.5(enquirer@2.4.1) + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-inspect: 1.13.4 + pidtree: 0.5.0 + string-argv: 0.3.2 + supports-color: 9.4.0 + yaml: 1.10.2 + transitivePeerDependencies: + - enquirer + + lint-staged@15.5.1: + dependencies: + chalk: 5.4.1 + commander: 13.1.0 + debug: 4.4.0(supports-color@9.4.0) + execa: 8.0.1 + lilconfig: 3.1.3 + listr2: 8.3.2 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.7.1 + transitivePeerDependencies: + - supports-color + + listr2@3.14.0(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.4.1 + rxjs: 7.8.2 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + + listr2@4.0.5(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.4.1 + rxjs: 7.8.2 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + + listr2@8.3.2: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + load-json-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + + localforage@1.10.0: + dependencies: + lie: 3.1.1 + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.assign@4.2.0: {} + + lodash.camelcase@4.3.0: {} + + lodash.clone@4.5.0: {} + + lodash.clonedeep@4.5.0: {} + + lodash.get@4.4.2: {} + + lodash.isequal@4.5.0: {} + + lodash.isequalwith@4.4.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash.throttle@4.1.1: {} + + lodash.topath@4.5.2: {} + + lodash.truncate@4.4.2: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + + lodash@4.17.20: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + looper@2.0.0: {} + + looper@3.0.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lower-case-first@2.0.2: + dependencies: + tslib: 2.8.1 + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lowercase-keys@1.0.1: {} + + lowercase-keys@2.0.0: {} + + lowercase-keys@3.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@11.1.0: {} + + lru-cache@3.2.0: + dependencies: + pseudomap: 1.0.2 + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.18.3: {} + + lru_map@0.3.3: {} + + ltgt@2.1.3: {} + + ltgt@2.2.1: {} + + make-error@1.3.6: {} + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + map-cache@0.2.2: {} + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + markdown-table@1.1.3: {} + + marky@1.3.0: {} + + match-all@1.2.7: {} + + math-intrinsics@1.1.0: {} + + math-random@1.0.4: {} + + mcl-wasm@0.7.9: {} + + md5.js@1.3.5: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + media-typer@0.3.0: {} + + mem@1.1.0: + dependencies: + mimic-fn: 1.2.0 + + memdown@1.4.1: + dependencies: + abstract-leveldown: 2.7.2 + functional-red-black-tree: 1.0.1 + immediate: 3.3.0 + inherits: 2.0.4 + ltgt: 2.2.1 + safe-buffer: 5.1.2 + + memdown@3.0.0: + dependencies: + abstract-leveldown: 5.0.0 + functional-red-black-tree: 1.0.1 + immediate: 3.2.3 + inherits: 2.0.4 + ltgt: 2.2.1 + safe-buffer: 5.1.2 + + memoize-one@5.2.1: {} + + memory-level@1.0.0: + dependencies: + abstract-level: 1.0.4 + functional-red-black-tree: 1.0.1 + module-error: 1.0.2 + + memorystream@0.3.1: {} + + meow@12.1.1: {} + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + merge-descriptors@1.0.1: {} + + merge-descriptors@1.0.3: {} + + merge-options@2.0.0: + dependencies: + is-plain-obj: 2.1.0 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + merkle-patricia-tree@2.3.2: + dependencies: + async: 1.5.2 + ethereumjs-util: 5.2.1 + level-ws: 0.0.0 + levelup: 1.3.9 + memdown: 1.4.1 + readable-stream: 2.3.8 + rlp: 2.2.7 + semaphore: 1.1.0 + + merkle-patricia-tree@3.0.0: + dependencies: + async: 2.6.2 + ethereumjs-util: 5.2.1 + level-mem: 3.0.1 + level-ws: 1.0.0 + readable-stream: 3.6.2 + rlp: 2.2.7 + semaphore: 1.1.0 + + meros@1.3.0(@types/node@20.17.32): + optionalDependencies: + '@types/node': 20.17.32 + + methods@1.1.2: {} + + metro-babel-transformer@0.82.2: + dependencies: + '@babel/core': 7.27.1 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.28.1 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache@0.82.2: + dependencies: + exponential-backoff: 3.1.2 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.82.2 + transitivePeerDependencies: + - supports-color + + metro-config@0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + connect: 3.7.0 + cosmiconfig: 5.2.1 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + metro-cache: 0.82.2 + metro-core: 0.82.2 + metro-runtime: 0.82.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-core@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.82.2 + + metro-file-map@0.82.2: + dependencies: + debug: 4.4.0(supports-color@9.4.0) + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.39.0 + + metro-resolver@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-runtime@0.82.2: + dependencies: + '@babel/runtime': 7.27.1 + flow-enums-runtime: 0.0.6 + + metro-source-map@0.82.2: + dependencies: + '@babel/traverse': 7.27.1 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.27.1' + '@babel/types': 7.27.1 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-symbolicate: 0.82.2 + nullthrows: 1.1.1 + ob1: 0.82.2 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.82.2 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.82.2: + dependencies: + '@babel/core': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + flow-enums-runtime: 0.0.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-transform-worker@0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@babel/core': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 + flow-enums-runtime: 0.0.6 + metro: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.82.2 + metro-cache: 0.82.2 + metro-cache-key: 0.82.2 + metro-minify-terser: 0.82.2 + metro-source-map: 0.82.2 + metro-transform-plugins: 0.82.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.0(supports-color@9.4.0) + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.28.1 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.82.2 + metro-cache: 0.82.2 + metro-cache-key: 0.82.2 + metro-config: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + metro-core: 0.82.2 + metro-file-map: 0.82.2 + metro-resolver: 0.82.2 + metro-runtime: 0.82.2 + metro-source-map: 0.82.2 + metro-symbolicate: 0.82.2 + metro-transform-plugins: 0.82.2 + metro-transform-worker: 0.82.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + micro-eth-signer@0.14.0: + dependencies: + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + micro-packed: 0.7.3 + + micro-ftch@0.3.1: {} + + micro-packed@0.7.3: + dependencies: + '@scure/base': 1.2.5 + + micromatch@2.3.11: + dependencies: + arr-diff: 2.0.0 + array-unique: 0.2.1 + braces: 1.8.5 + expand-brackets: 0.1.5 + extglob: 0.3.2 + filename-regex: 2.0.1 + is-extglob: 1.0.0 + is-glob: 2.0.1 + kind-of: 3.2.2 + normalize-path: 2.1.1 + object.omit: 2.0.1 + parse-glob: 3.0.4 + regex-cache: 0.4.4 + + micromatch@3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + miller-rabin@4.0.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mimic-fn@1.2.0: {} + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + mimic-response@1.0.1: {} + + mimic-response@2.1.0: + optional: true + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + min-document@2.19.0: + dependencies: + dom-walk: 0.1.2 + + min-indent@1.0.1: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@0.0.8: {} + + minimist@1.2.8: {} + + minipass@2.9.0: + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + + minipass@7.1.2: {} + + minizlib@1.3.3: + dependencies: + minipass: 2.9.0 + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mkdirp-classic@0.5.3: + optional: true + + mkdirp-promise@5.0.1: + dependencies: + mkdirp: 3.0.1 + + mkdirp@0.5.1: + dependencies: + minimist: 0.0.8 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mkdirp@3.0.1: {} + + mnemonist@0.38.5: + dependencies: + obliterator: 2.0.5 + + mocha@10.8.2: + dependencies: + ansi-colors: 4.1.3 + browser-stdout: 1.3.1 + chokidar: 3.6.0 + debug: 4.4.0(supports-color@8.1.1) + diff: 5.2.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 8.1.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.1.6 + ms: 2.1.3 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.5.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + yargs-unparser: 2.0.0 + + mocha@4.1.0: + dependencies: + browser-stdout: 1.3.0 + commander: 2.11.0 + debug: 3.1.0(supports-color@4.4.0) + diff: 3.3.1 + escape-string-regexp: 1.0.5 + glob: 7.1.2 + growl: 1.10.3 + he: 1.1.1 + mkdirp: 0.5.1 + supports-color: 4.4.0 + + mock-fs@4.14.0: {} + + mock-property@1.0.3: + dependencies: + define-data-property: 1.1.4 + functions-have-names: 1.2.3 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + hasown: 2.0.2 + isarray: 2.0.5 + + module-error@1.0.2: {} + + moment-timezone@0.5.48: + dependencies: + moment: 2.30.1 + + moment@2.30.1: {} + + morgan@1.10.0: + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color + + mri@1.2.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + multiaddr-to-uri@6.0.0(node-fetch@2.7.0(encoding@0.1.13)): + dependencies: + multiaddr: 8.1.2(node-fetch@2.7.0(encoding@0.1.13)) + transitivePeerDependencies: + - node-fetch + - supports-color + + multiaddr@8.1.2(node-fetch@2.7.0(encoding@0.1.13)): + dependencies: + cids: 1.1.9 + class-is: 1.1.0 + dns-over-http-resolver: 1.2.3(node-fetch@2.7.0(encoding@0.1.13)) + err-code: 2.0.3 + is-ip: 3.1.0 + multibase: 3.1.2 + uint8arrays: 1.1.0 + varint: 5.0.2 + transitivePeerDependencies: + - node-fetch + - supports-color + + multibase@0.6.1: + dependencies: + base-x: 3.0.11 + buffer: 5.7.1 + + multibase@0.7.0: + dependencies: + base-x: 3.0.11 + buffer: 5.7.1 + + multibase@3.1.2: + dependencies: + '@multiformats/base-x': 4.0.1 + web-encoding: 1.1.5 + + multibase@4.0.6: + dependencies: + '@multiformats/base-x': 4.0.1 + + multicodec@0.5.7: + dependencies: + varint: 5.0.2 + + multicodec@1.0.4: + dependencies: + buffer: 5.7.1 + varint: 5.0.2 + + multicodec@2.1.3: + dependencies: + uint8arrays: 1.1.0 + varint: 6.0.0 + + multicodec@3.2.1: + dependencies: + uint8arrays: 3.1.1 + varint: 6.0.0 + + multiformats@9.9.0: {} + + multihashes@0.4.21: + dependencies: + buffer: 5.7.1 + multibase: 0.7.0 + varint: 5.0.2 + + multihashes@3.1.2: + dependencies: + multibase: 3.1.2 + uint8arrays: 2.1.10 + varint: 6.0.0 + + multihashes@4.0.3: + dependencies: + multibase: 4.0.6 + uint8arrays: 3.1.1 + varint: 5.0.2 + + multihashing-async@2.1.4: + dependencies: + blakejs: 1.2.1 + err-code: 3.0.1 + js-sha3: 0.8.0 + multihashes: 4.0.3 + murmurhash3js-revisited: 3.0.0 + uint8arrays: 3.1.1 + + murmur-128@0.2.1: + dependencies: + encode-utf8: 1.0.3 + fmix: 0.1.0 + imul: 1.0.1 + + murmurhash3js-revisited@3.0.0: {} + + mute-stream@0.0.8: {} + + nan@2.22.2: + optional: true + + nano-json-stream-parser@0.1.2: {} + + nanoid@3.3.11: {} + + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + napi-build-utils@1.0.2: + optional: true + + napi-macros@2.2.2: {} + + native-fetch@3.0.0(node-fetch@2.7.0(encoding@0.1.13)): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + + natural-compare@1.4.0: {} + + ndjson@2.0.0: + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.8 + readable-stream: 3.6.2 + split2: 3.2.2 + through2: 4.0.2 + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + next-tick@1.1.0: {} + + ngeohash@0.6.3: {} + + nice-try@1.0.5: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-abi@2.30.1: + dependencies: + semver: 5.7.2 + optional: true + + node-addon-api@2.0.2: {} + + node-addon-api@3.2.1: + optional: true + + node-addon-api@4.3.0: + optional: true + + node-addon-api@5.1.0: {} + + node-emoji@1.11.0: + dependencies: + lodash: 4.17.21 + + node-fetch@1.7.3: + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 + + node-fetch@2.6.7(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-gyp-build@4.8.4: {} + + node-hid@1.3.0: + dependencies: + bindings: 1.5.0 + nan: 2.22.2 + node-abi: 2.30.1 + prebuild-install: 5.3.6 + optional: true + + node-hid@2.1.1: + dependencies: + bindings: 1.5.0 + node-addon-api: 3.2.1 + prebuild-install: 6.1.4 + optional: true + + node-int64@0.4.0: {} + + node-releases@2.0.19: {} + + nofilter@3.1.0: {} + + noop-logger@0.1.1: + optional: true + + nopt@3.0.6: + dependencies: + abbrev: 1.0.9 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.7.1 + validate-npm-package-license: 3.0.4 + + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + + normalize-path@3.0.0: {} + + normalize-url@4.5.1: {} + + normalize-url@6.1.0: {} + + normalize-url@8.0.1: {} + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npmlog@4.1.2: + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + optional: true + + nullthrows@1.1.1: {} + + number-is-nan@1.0.1: {} + + number-to-bn@1.7.0: + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + + oauth-sign@0.9.0: {} + + ob1@0.82.2: + dependencies: + flow-enums-runtime: 0.0.6 + + object-assign@4.1.1: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-inspect@1.10.3: {} + + object-inspect@1.12.3: {} + + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@0.4.0: {} + + object-keys@1.1.1: {} + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.getownpropertydescriptors@2.1.8: + dependencies: + array.prototype.reduce: 1.0.8 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + gopd: 1.2.0 + safe-array-concat: 1.1.3 + + object.omit@2.0.1: + dependencies: + for-own: 0.1.5 + is-extendable: 0.1.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + obliterator@2.0.5: {} + + oboe@2.1.4: + dependencies: + http-https: 1.0.0 + optional: true + + oboe@2.1.5: + dependencies: + http-https: 1.0.0 + + on-exit-leak-free@0.2.0: {} + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + openapi-types@12.1.3: {} + + optionator@0.8.3: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ordinal@1.0.3: {} + + os-homedir@1.0.2: {} + + os-locale@1.4.0: + dependencies: + lcid: 1.0.0 + + os-locale@2.1.0: + dependencies: + execa: 0.7.0 + lcid: 1.0.0 + mem: 1.1.0 + + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-cancelable@1.1.0: {} + + p-cancelable@2.1.1: {} + + p-cancelable@3.0.0: {} + + p-defer@3.0.0: {} + + p-fifo@1.0.0: + dependencies: + fast-fifo: 1.3.2 + p-defer: 3.0.0 + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-finally@1.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@2.1.0: {} + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-try@1.0.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-json@8.1.1: + dependencies: + got: 12.6.1 + registry-auth-token: 5.1.0 + registry-url: 6.0.1 + semver: 7.7.1 + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.10 + + packet-reader@1.0.0: {} + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-asn1@5.1.7: + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + hash-base: 3.0.5 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + + parse-cache-control@1.0.1: {} + + parse-duration@0.4.4: {} + + parse-filepath@1.0.2: + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + + parse-glob@3.0.4: + dependencies: + glob-base: 0.3.0 + is-dotfile: 1.0.3 + is-extglob: 1.0.0 + is-glob: 2.0.1 + + parse-headers@2.0.6: {} + + parse-json@2.2.0: + dependencies: + error-ex: 1.3.2 + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-passwd@1.0.0: {} + + parseurl@1.3.3: {} + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + pascalcase@0.1.1: {} + + patch-package@6.2.2: + dependencies: + '@yarnpkg/lockfile': 1.1.0 + chalk: 2.4.2 + cross-spawn: 6.0.6 + find-yarn-workspace-root: 1.2.1 + fs-extra: 7.0.1 + is-ci: 2.0.0 + klaw-sync: 6.0.0 + minimist: 1.2.8 + rimraf: 2.7.1 + semver: 5.7.2 + slash: 2.0.0 + tmp: 0.0.33 + transitivePeerDependencies: + - supports-color + + patch-package@6.5.1: + dependencies: + '@yarnpkg/lockfile': 1.1.0 + chalk: 4.1.2 + cross-spawn: 6.0.6 + find-yarn-workspace-root: 2.0.0 + fs-extra: 9.1.0 + is-ci: 2.0.0 + klaw-sync: 6.0.0 + minimist: 1.2.8 + open: 7.4.2 + rimraf: 2.7.1 + semver: 5.7.2 + slash: 2.0.0 + tmp: 0.0.33 + yaml: 1.10.2 + + path-browserify@1.0.1: {} + + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + path-exists@2.1.0: + dependencies: + pinkie-promise: 2.0.1 + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@2.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-root-regex@0.1.2: {} + + path-root@0.1.1: + dependencies: + path-root-regex: 0.1.2 + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + + path-starts-with@2.0.1: {} + + path-to-regexp@0.1.12: {} + + path-to-regexp@0.1.7: {} + + path-type@1.1.0: + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + + path-type@4.0.0: {} + + pathval@1.1.1: {} + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + pegjs@0.10.0: {} + + performance-now@2.1.0: {} + + pg-cloudflare@1.2.5: + optional: true + + pg-connection-string@2.8.5: {} + + pg-hstore@2.3.4: + dependencies: + underscore: 1.13.7 + + pg-int8@1.0.1: {} + + pg-pool@3.9.6(pg@8.11.3): + dependencies: + pg: 8.11.3 + + pg-pool@3.9.6(pg@8.7.3): + dependencies: + pg: 8.7.3 + + pg-protocol@1.9.5: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.11.3: + dependencies: + buffer-writer: 2.0.0 + packet-reader: 1.0.0 + pg-connection-string: 2.8.5 + pg-pool: 3.9.6(pg@8.11.3) + pg-protocol: 1.9.5 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.2.5 + + pg@8.7.3: + dependencies: + buffer-writer: 2.0.0 + packet-reader: 1.0.0 + pg-connection-string: 2.8.5 + pg-pool: 3.9.6(pg@8.7.3) + pg-protocol: 1.9.5 + pg-types: 2.2.0 + pgpass: 1.0.5 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidtree@0.5.0: {} + + pidtree@0.6.0: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + + pino-abstract-transport@0.5.0: + dependencies: + duplexify: 4.1.3 + split2: 4.2.0 + + pino-multi-stream@6.0.0: + dependencies: + pino: 7.6.0 + + pino-std-serializers@4.0.0: {} + + pino@7.6.0: + dependencies: + fast-redact: 3.5.0 + fastify-warning: 0.2.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 2.8.0 + thread-stream: 0.13.2 + + pirates@4.0.7: {} + + please-upgrade-node@3.2.0: + dependencies: + semver-compare: 1.0.0 + + pluralize@8.0.0: {} + + posix-character-classes@0.1.1: {} + + possible-typed-array-names@1.1.0: {} + + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + + postinstall-postinstall@2.1.0: {} + + prebuild-install@5.3.6: + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.30.1 + noop-logger: 0.1.1 + npmlog: 4.1.2 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 3.1.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + which-pm-runs: 1.1.0 + optional: true + + prebuild-install@6.1.4: + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.30.1 + npmlog: 4.1.2 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 3.1.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + optional: true + + precond@0.2.3: {} + + prelude-ls@1.1.2: {} + + prelude-ls@1.2.1: {} + + prepend-http@2.0.0: {} + + preserve@0.2.0: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-solidity@1.4.3(prettier@2.8.8): + dependencies: + '@solidity-parser/parser': 0.20.1 + prettier: 2.8.8 + semver: 7.7.1 + + prettier-plugin-solidity@1.4.3(prettier@3.5.3): + dependencies: + '@solidity-parser/parser': 0.20.1 + prettier: 3.5.3 + semver: 7.7.1 + + prettier@2.8.8: {} + + prettier@3.5.3: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + private@0.1.8: {} + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + prom-client@14.0.1: + dependencies: + tdigest: 0.1.2 + + prom-client@14.2.0: + dependencies: + tdigest: 0.1.2 + + promise-to-callback@1.0.0: + dependencies: + is-fn: 1.0.0 + set-immediate-shim: 1.0.1 + + promise@7.3.1: + dependencies: + asap: 2.0.6 + + promise@8.3.0: + dependencies: + asap: 2.0.6 + + prompt-sync@4.2.0: + dependencies: + strip-ansi: 5.2.0 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + proto-list@1.2.4: {} + + protocol-buffers-schema@3.6.0: {} + + protons@2.0.3: + dependencies: + protocol-buffers-schema: 3.6.0 + signed-varint: 2.0.1 + uint8arrays: 3.1.1 + varint: 5.0.2 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@1.1.0: {} + + prr@1.0.1: {} + + pseudomap@1.0.2: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + public-encrypt@4.0.3: + dependencies: + bn.js: 4.12.2 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + parse-asn1: 5.1.7 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + pull-cat@1.1.11: {} + + pull-defer@0.2.3: {} + + pull-level@2.0.4: + dependencies: + level-post: 1.0.7 + pull-cat: 1.1.11 + pull-live: 1.0.1 + pull-pushable: 2.2.0 + pull-stream: 3.7.0 + pull-window: 2.1.4 + stream-to-pull-stream: 1.7.3 + + pull-live@1.0.1: + dependencies: + pull-cat: 1.1.11 + pull-stream: 3.7.0 + + pull-pushable@2.2.0: {} + + pull-stream@3.7.0: {} + + pull-window@2.1.4: + dependencies: + looper: 2.0.0 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pumpify@2.0.1: + dependencies: + duplexify: 4.1.3 + inherits: 2.0.4 + pump: 3.0.2 + + punycode@1.4.1: {} + + punycode@2.1.0: {} + + punycode@2.3.1: {} + + pvtsutils@1.3.6: + dependencies: + tslib: 2.8.1 + + pvutils@1.1.3: {} + + q@1.5.1: {} + + qs@6.11.0: + dependencies: + side-channel: 1.1.0 + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + qs@6.5.3: {} + + qs@6.9.6: {} + + qs@6.9.7: {} + + quansync@0.2.10: {} + + query-string@5.1.1: + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + + queue-microtask@1.2.3: {} + + queue@6.0.2: + dependencies: + inherits: 2.0.4 + + quick-format-unescaped@4.0.4: {} + + quick-lru@4.0.1: {} + + quick-lru@5.1.1: {} + + randomatic@3.1.1: + dependencies: + is-number: 4.0.0 + kind-of: 6.0.3 + math-random: 1.0.4 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + randomfill@1.0.4: + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.4.2: + dependencies: + bytes: 3.1.1 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + raw-body@2.4.3: + dependencies: + bytes: 3.1.2 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + raw-body@2.5.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-devtools-core@6.1.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + shell-quote: 1.8.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + react-is@18.3.1: {} + + react-native-fs@2.20.0(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)): + dependencies: + base-64: 0.1.0 + react-native: 0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10) + utf8: 3.0.0 + + react-native-path@0.0.5: {} + + react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/assets-registry': 0.79.2 + '@react-native/codegen': 0.79.2(@babel/core@7.27.1) + '@react-native/community-cli-plugin': 0.79.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@react-native/gradle-plugin': 0.79.2 + '@react-native/js-polyfills': 0.79.2 + '@react-native/normalize-colors': 0.79.2 + '@react-native/virtualized-lists': 0.79.2(react-native@0.79.2(@babel/core@7.27.1)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.27.1) + babel-plugin-syntax-hermes-parser: 0.25.1 + base64-js: 1.5.1 + chalk: 4.1.2 + commander: 12.1.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + memoize-one: 5.2.1 + metro-runtime: 0.82.2 + metro-source-map: 0.82.2 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.1.0 + react-devtools-core: 6.1.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.25.0 + semver: 7.7.1 + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + ws: 6.2.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - bufferutil + - supports-color + - utf-8-validate + + react-refresh@0.14.2: {} + + react@19.1.0: {} + + read-pkg-up@1.0.1: + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@1.1.0: + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + readable-stream@1.0.34: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + readable-stream@1.1.14: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@2.2.1: + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10 + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.2: {} + + real-require@0.1.0: {} + + receptacle@1.3.2: + dependencies: + ms: 2.1.3 + + rechoir@0.6.2: + dependencies: + resolve: 1.22.10 + + recursive-readdir@2.2.3: + dependencies: + minimatch: 3.1.2 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + reduce-flatten@2.0.0: {} + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate@1.4.2: {} + + regenerator-runtime@0.11.1: {} + + regenerator-runtime@0.13.11: {} + + regenerator-transform@0.10.1: + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + private: 0.1.8 + + regex-cache@0.4.4: + dependencies: + is-equal-shallow: 0.1.3 + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpu-core@2.0.0: + dependencies: + regenerate: 1.4.2 + regjsgen: 0.2.0 + regjsparser: 0.1.5 + + registry-auth-token@5.1.0: + dependencies: + '@pnpm/npm-conf': 2.3.1 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + regjsgen@0.2.0: {} + + regjsparser@0.1.5: + dependencies: + jsesc: 0.5.0 + + relay-runtime@12.0.0(encoding@0.1.13): + dependencies: + '@babel/runtime': 7.27.1 + fbjs: 3.0.5(encoding@0.1.13) + invariant: 2.2.4 + transitivePeerDependencies: + - encoding + + remove-trailing-separator@1.1.0: {} + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + repeating@2.0.1: + dependencies: + is-finite: 1.1.0 + + req-cwd@2.0.0: + dependencies: + req-from: 2.0.0 + + req-from@2.0.0: + dependencies: + resolve-from: 3.0.0 + + request@2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.2 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + require-directory@2.1.1: {} + + require-from-string@1.2.1: {} + + require-from-string@2.0.2: {} + + require-main-filename@1.0.1: {} + + require-main-filename@2.0.0: {} + + reset@0.1.0: {} + + resolve-alpn@1.2.1: {} + + resolve-dir@1.0.1: + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + + resolve-from@3.0.0: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + + resolve-url@0.2.1: {} + + resolve@1.1.7: {} + + resolve@1.17.0: + dependencies: + path-parse: 1.0.7 + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@1.0.2: + dependencies: + lowercase-keys: 1.0.1 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + ret@0.1.15: {} + + retry-as-promised@5.0.0: {} + + retry-as-promised@7.1.1: {} + + retry@0.12.0: {} + + retry@0.13.1: {} + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + ripemd160@2.0.2: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + rlp@2.2.7: + dependencies: + bn.js: 5.2.2 + + run-async@2.4.1: {} + + run-parallel-limit@1.1.0: + dependencies: + queue-microtask: 1.2.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + run@1.5.0: + dependencies: + minimatch: 10.0.1 + + rustbn.js@0.2.0: {} + + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-event-emitter@1.0.1: + dependencies: + events: 3.3.0 + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + sc-istanbul@0.4.6: + dependencies: + abbrev: 1.0.9 + async: 1.5.2 + escodegen: 1.8.1 + esprima: 2.7.3 + glob: 5.0.15 + handlebars: 4.7.8 + js-yaml: 3.14.1 + mkdirp: 0.5.6 + nopt: 3.0.6 + once: 1.4.0 + resolve: 1.1.7 + supports-color: 3.2.3 + which: 1.3.1 + wordwrap: 1.0.0 + + scheduler@0.25.0: {} + + scrypt-js@2.0.4: {} + + scrypt-js@3.0.1: {} + + scryptsy@1.2.1: + dependencies: + pbkdf2: 3.1.2 + optional: true + + secp256k1@4.0.4: + dependencies: + elliptic: 6.6.1 + node-addon-api: 5.1.0 + node-gyp-build: 4.8.4 + + seedrandom@3.0.1: {} + + semaphore@1.1.0: {} + + semver-compare@1.0.0: {} + + semver@5.4.1: {} + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.3.7: + dependencies: + lru-cache: 6.0.0 + + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 + + semver@7.7.1: {} + + send@0.17.2: + dependencies: + debug: 2.6.9 + depd: 1.1.2 + destroy: 1.0.4 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 1.8.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.3.0 + range-parser: 1.2.1 + statuses: 1.5.0 + transitivePeerDependencies: + - supports-color + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + + sequelize-pool@7.1.0: {} + + sequelize@6.19.0(pg-hstore@2.3.4)(pg@8.7.3): + dependencies: + '@types/debug': 4.1.12 + '@types/validator': 13.15.0 + debug: 4.4.0(supports-color@9.4.0) + dottie: 2.0.6 + inflection: 1.13.4 + lodash: 4.17.21 + moment: 2.30.1 + moment-timezone: 0.5.48 + pg-connection-string: 2.8.5 + retry-as-promised: 5.0.0 + semver: 7.7.1 + sequelize-pool: 7.1.0 + toposort-class: 1.0.1 + uuid: 8.3.2 + validator: 13.15.0 + wkx: 0.5.0 + optionalDependencies: + pg: 8.7.3 + pg-hstore: 2.3.4 + transitivePeerDependencies: + - supports-color + + sequelize@6.33.0(pg-hstore@2.3.4)(pg@8.11.3): + dependencies: + '@types/debug': 4.1.12 + '@types/validator': 13.15.0 + debug: 4.4.0(supports-color@9.4.0) + dottie: 2.0.6 + inflection: 1.13.4 + lodash: 4.17.21 + moment: 2.30.1 + moment-timezone: 0.5.48 + pg-connection-string: 2.8.5 + retry-as-promised: 7.1.1 + semver: 7.7.1 + sequelize-pool: 7.1.0 + toposort-class: 1.0.1 + uuid: 8.3.2 + validator: 13.15.0 + wkx: 0.5.0 + optionalDependencies: + pg: 8.11.3 + pg-hstore: 2.3.4 + transitivePeerDependencies: + - supports-color + + serialize-error@2.1.0: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-static@1.14.2: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.17.2 + transitivePeerDependencies: + - supports-color + + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + servify@0.1.12: + dependencies: + body-parser: 1.20.3 + cors: 2.8.5 + express: 4.21.2 + request: 2.88.2 + xhr: 2.6.0 + transitivePeerDependencies: + - supports-color + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-immediate-shim@1.0.1: {} + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + setimmediate@1.0.4: {} + + setimmediate@1.0.5: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + sha1@1.1.1: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + shell-quote@1.8.2: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + signed-varint@2.0.1: + dependencies: + varint: 5.0.2 + + signedsource@1.0.0: {} + + simple-concat@1.0.1: {} + + simple-get@2.8.2: + dependencies: + decompress-response: 3.3.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-get@3.1.1: + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + simple-wcswidth@1.0.1: {} + + sisteransi@1.0.5: {} + + slash@1.0.0: {} + + slash@2.0.0: {} + + slash@3.0.0: {} + + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + sol-digger@0.0.2: {} + + sol-explore@1.6.1: {} + + solc-typed-ast@18.2.4(typescript@5.8.3)(zod@3.24.4): + dependencies: + axios: 1.9.0(debug@4.4.0) + commander: 12.1.0 + decimal.js: 10.5.0 + findup-sync: 5.0.0 + fs-extra: 11.3.0 + jsel: 1.1.6 + semver: 7.7.1 + solc: 0.8.25 + src-location: 1.1.0 + web3-eth-abi: 4.4.1(typescript@5.8.3)(zod@3.24.4) + transitivePeerDependencies: + - debug + - typescript + - zod + + solc@0.4.26: + dependencies: + fs-extra: 0.30.0 + memorystream: 0.3.1 + require-from-string: 1.2.1 + semver: 5.7.2 + yargs: 4.8.1 + + solc@0.6.12: + dependencies: + command-exists: 1.2.9 + commander: 3.0.2 + fs-extra: 0.30.0 + js-sha3: 0.8.0 + memorystream: 0.3.1 + require-from-string: 2.0.2 + semver: 5.7.2 + tmp: 0.0.33 + + solc@0.7.3(debug@4.4.0): + dependencies: + command-exists: 1.2.9 + commander: 3.0.2 + follow-redirects: 1.15.9(debug@4.4.0) + fs-extra: 0.30.0 + js-sha3: 0.8.0 + memorystream: 0.3.1 + require-from-string: 2.0.2 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + + solc@0.8.25: + dependencies: + command-exists: 1.2.9 + commander: 8.3.0 + follow-redirects: 1.15.9(debug@4.4.0) + js-sha3: 0.8.0 + memorystream: 0.3.1 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + + solc@0.8.26(debug@4.4.0): + dependencies: + command-exists: 1.2.9 + commander: 8.3.0 + follow-redirects: 1.15.9(debug@4.4.0) + js-sha3: 0.8.0 + memorystream: 0.3.1 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + + solhint-community@3.7.0(typescript@5.8.3): + dependencies: + '@solidity-parser/parser': 0.16.2 + ajv: 6.12.6 + antlr4: 4.13.2 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 11.1.0 + cosmiconfig: 8.3.6(typescript@5.8.3) + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.3.2 + js-yaml: 4.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 6.3.1 + strip-ansi: 6.0.1 + table: 6.9.0 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + + solhint-plugin-prettier@0.1.0(prettier-plugin-solidity@1.4.3(prettier@3.5.3))(prettier@3.5.3): + dependencies: + '@prettier/sync': 0.3.0(prettier@3.5.3) + prettier: 3.5.3 + prettier-linter-helpers: 1.0.0 + prettier-plugin-solidity: 1.4.3(prettier@3.5.3) + + solhint@4.5.4(typescript@4.9.5): + dependencies: + '@solidity-parser/parser': 0.18.0 + ajv: 6.12.6 + antlr4: 4.13.2 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.3.6(typescript@4.9.5) + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.3.2 + js-yaml: 4.1.0 + latest-version: 7.0.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.7.1 + strip-ansi: 6.0.1 + table: 6.9.0 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + + solhint@4.5.4(typescript@5.8.3): + dependencies: + '@solidity-parser/parser': 0.18.0 + ajv: 6.12.6 + antlr4: 4.13.2 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.3.6(typescript@5.8.3) + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.3.2 + js-yaml: 4.1.0 + latest-version: 7.0.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.7.1 + strip-ansi: 6.0.1 + table: 6.9.0 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + + solidity-ast@0.4.60: {} + + solidity-coverage@0.7.22(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): + dependencies: + '@solidity-parser/parser': 0.14.5 + '@truffle/provider': 0.2.64(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + chalk: 2.4.2 + death: 1.1.0 + detect-port: 1.6.1 + fs-extra: 8.1.0 + ghost-testrpc: 0.0.2 + global-modules: 2.0.0 + globby: 10.0.2 + jsonschema: 1.5.0 + lodash: 4.17.21 + node-emoji: 1.11.0 + pify: 4.0.1 + recursive-readdir: 2.2.3 + sc-istanbul: 0.4.6 + semver: 7.7.1 + shelljs: 0.8.5 + web3-utils: 1.10.4 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + solidity-coverage@0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@ethersproject/abi': 5.8.0 + '@solidity-parser/parser': 0.19.0 + chalk: 2.4.2 + death: 1.1.0 + difflib: 0.2.4 + fs-extra: 8.1.0 + ghost-testrpc: 0.0.2 + global-modules: 2.0.0 + globby: 10.0.2 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + jsonschema: 1.5.0 + lodash: 4.17.21 + mocha: 10.8.2 + node-emoji: 1.11.0 + pify: 4.0.1 + recursive-readdir: 2.2.3 + sc-istanbul: 0.4.6 + semver: 7.7.1 + shelljs: 0.8.5 + web3-utils: 1.10.4 + + solidity-docgen@0.6.0-beta.36(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + handlebars: 4.7.8 + hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + solidity-ast: 0.4.60 + + solium-plugin-security@0.1.1(solium@1.2.5): + dependencies: + solium: 1.2.5 + + solium@1.2.5: + dependencies: + ajv: 5.5.2 + chokidar: 1.7.0 + colors: 1.4.0 + commander: 2.20.3 + diff: 3.5.0 + eol: 0.9.1 + js-string-escape: 1.0.1 + lodash: 4.17.21 + sol-digger: 0.0.2 + sol-explore: 1.6.1 + solium-plugin-security: 0.1.1(solium@1.2.5) + solparse: 2.2.8 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + solparse@2.2.8: + dependencies: + mocha: 4.1.0 + pegjs: 0.10.0 + yargs: 10.1.2 + + sonic-boom@2.8.0: + dependencies: + atomic-sleep: 1.0.0 + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-support@0.4.18: + dependencies: + source-map: 0.5.7 + + source-map-support@0.5.12: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-url@0.4.1: {} + + source-map@0.2.0: + dependencies: + amdefine: 1.0.1 + optional: true + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + + split2@4.2.0: {} + + sponge-case@1.0.1: + dependencies: + tslib: 2.8.1 + + sprintf-js@1.0.3: {} + + src-location@1.1.0: {} + + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + stable@0.1.8: {} + + stack-trace@0.0.10: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + stackframe@1.3.4: {} + + stacktrace-parser@0.1.11: + dependencies: + type-fest: 0.7.1 + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + stream-shift@1.0.3: {} + + stream-to-it@0.2.4: + dependencies: + get-iterator: 1.0.2 + + stream-to-pull-stream@1.7.3: + dependencies: + looper: 3.0.0 + pull-stream: 3.7.0 + + streamsearch@1.1.0: {} + + strict-uri-encode@1.1.0: {} + + string-argv@0.3.1: {} + + string-argv@0.3.2: {} + + string-format@2.0.0: {} + + string-width@1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + + string-width@2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@0.10.31: {} + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + strip-ansi@4.0.0: + dependencies: + ansi-regex: 3.0.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@2.0.0: + dependencies: + is-utf8: 0.2.1 + + strip-bom@3.0.0: {} + + strip-eof@1.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + supports-color@2.0.0: {} + + supports-color@3.2.3: + dependencies: + has-flag: 1.0.0 + + supports-color@4.4.0: + dependencies: + has-flag: 2.0.0 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-color@9.4.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + swap-case@2.0.2: + dependencies: + tslib: 2.8.1 + + swarm-js@0.1.42(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + bluebird: 3.7.2 + buffer: 5.7.1 + eth-lib: 0.1.29(bufferutil@4.0.9)(utf-8-validate@5.0.10) + fs-extra: 4.0.3 + got: 11.8.6 + mime-types: 2.1.35 + mkdirp-promise: 5.0.1 + mock-fs: 4.14.0 + setimmediate: 1.0.5 + tar: 4.4.19 + xhr-request: 1.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + sync-request@6.1.0: + dependencies: + http-response-object: 3.0.2 + sync-rpc: 1.3.6 + then-request: 6.0.2 + + sync-rpc@1.3.6: + dependencies: + get-port: 3.2.0 + + table-layout@1.0.2: + dependencies: + array-back: 4.0.2 + deep-extend: 0.6.0 + typical: 5.2.0 + wordwrapjs: 4.0.1 + + table@6.9.0: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tape@4.17.0: + dependencies: + '@ljharb/resumer': 0.0.1 + '@ljharb/through': 2.3.14 + call-bind: 1.0.8 + deep-equal: 1.1.2 + defined: 1.0.1 + dotignore: 0.1.2 + for-each: 0.3.5 + glob: 7.2.3 + has: 1.0.4 + inherits: 2.0.4 + is-regex: 1.1.4 + minimist: 1.2.8 + mock-property: 1.0.3 + object-inspect: 1.12.3 + resolve: 1.22.10 + string.prototype.trim: 1.2.10 + + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + optional: true + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + + tar@4.4.19: + dependencies: + chownr: 1.1.4 + fs-minipass: 1.2.7 + minipass: 2.9.0 + minizlib: 1.3.3 + mkdirp: 0.5.6 + safe-buffer: 5.2.1 + yallist: 3.1.1 + + tdigest@0.1.2: + dependencies: + bintrees: 1.0.2 + + term-size@2.2.1: {} + + terser@5.39.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + test-value@2.1.0: + dependencies: + array-back: 1.0.4 + typical: 2.6.1 + + testrpc@0.0.1: {} + + text-extensions@1.9.0: {} + + text-extensions@2.4.0: {} + + text-hex@1.0.0: {} + + text-table@0.2.0: {} + + then-request@6.0.2: + dependencies: + '@types/concat-stream': 1.6.1 + '@types/form-data': 0.0.33 + '@types/node': 8.10.66 + '@types/qs': 6.9.18 + caseless: 0.12.0 + concat-stream: 1.6.2 + form-data: 2.5.3 + http-basic: 8.1.3 + http-response-object: 3.0.2 + promise: 8.3.0 + qs: 6.14.0 + + thread-stream@0.13.2: + dependencies: + real-require: 0.1.0 + + throat@5.0.0: {} + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + through2@3.0.2: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + through@2.3.8: {} + + timed-out@4.0.1: {} + + tiny-lru@8.0.2: {} + + tinyglobby@0.2.13: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + + title-case@3.0.3: + dependencies: + tslib: 2.8.1 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.1.0: + dependencies: + rimraf: 2.7.1 + + tmpl@1.0.5: {} + + to-fast-properties@1.0.3: {} + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-readable-stream@1.0.0: {} + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + toidentifier@1.0.1: {} + + toposort-class@1.0.1: {} + + tough-cookie@2.5.0: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + + tr46@0.0.3: {} + + trim-newlines@3.0.1: {} + + trim-right@1.0.1: {} + + triple-beam@1.4.1: {} + + truffle-flattener@1.6.0: + dependencies: + '@resolver-engine/imports-fs': 0.2.2 + '@solidity-parser/parser': 0.14.5 + find-up: 2.1.0 + mkdirp: 1.0.4 + tsort: 0.0.1 + transitivePeerDependencies: + - supports-color + + ts-algebra@1.2.2: {} + + ts-api-utils@1.4.3(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + + ts-command-line-args@2.5.1: + dependencies: + chalk: 4.1.2 + command-line-args: 5.2.1 + command-line-usage: 6.1.3 + string-format: 2.0.0 + + ts-essentials@1.0.4: {} + + ts-essentials@6.0.7(typescript@4.9.5): + dependencies: + typescript: 4.9.5 + + ts-essentials@6.0.7(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + + ts-essentials@7.0.3(typescript@4.9.5): + dependencies: + typescript: 4.9.5 + + ts-essentials@7.0.3(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + + ts-generator@0.1.1: + dependencies: + '@types/mkdirp': 0.5.2 + '@types/prettier': 2.7.3 + '@types/resolve': 0.0.8 + chalk: 2.4.2 + glob: 7.2.3 + mkdirp: 0.5.6 + prettier: 2.8.8 + resolve: 1.22.10 + ts-essentials: 1.0.4 + + ts-node@10.9.2(@types/node@17.0.45)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 17.0.45 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + ts-node@10.9.2(@types/node@20.17.32)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.17.32 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + ts-node@10.9.2(@types/node@20.17.32)(typescript@5.8.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.17.32 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.7.5 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + + ts-node@8.10.2(typescript@5.8.3): + dependencies: + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + source-map-support: 0.5.21 + typescript: 5.8.3 + yn: 3.1.1 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.4.1: {} + + tslib@2.5.3: {} + + tslib@2.7.0: {} + + tslib@2.8.1: {} + + tslog@4.9.3: {} + + tsort@0.0.1: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl-util@0.15.1: {} + + tweetnacl@0.14.5: {} + + tweetnacl@1.0.3: {} + + type-check@0.3.2: + dependencies: + prelude-ls: 1.1.2 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-detect@4.1.0: {} + + type-fest@0.18.1: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.6.0: {} + + type-fest@0.7.1: {} + + type-fest@0.8.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type@2.7.3: {} + + typechain@3.0.0(typescript@4.9.5): + dependencies: + command-line-args: 4.0.7 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + js-sha3: 0.8.0 + lodash: 4.17.21 + ts-essentials: 6.0.7(typescript@4.9.5) + ts-generator: 0.1.1 + transitivePeerDependencies: + - supports-color + - typescript + + typechain@3.0.0(typescript@5.8.3): + dependencies: + command-line-args: 4.0.7 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + js-sha3: 0.8.0 + lodash: 4.17.21 + ts-essentials: 6.0.7(typescript@5.8.3) + ts-generator: 0.1.1 + transitivePeerDependencies: + - supports-color + - typescript + + typechain@5.2.0(typescript@5.8.3): + dependencies: + '@types/prettier': 2.7.3 + command-line-args: 4.0.7 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + glob: 7.2.3 + js-sha3: 0.8.0 + lodash: 4.17.21 + mkdirp: 1.0.4 + prettier: 2.8.8 + ts-essentials: 7.0.3(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + typechain@7.0.1(typescript@4.9.5): + dependencies: + '@types/prettier': 2.7.3 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + glob: 7.2.3 + js-sha3: 0.8.0 + lodash: 4.17.21 + mkdirp: 1.0.4 + prettier: 2.8.8 + ts-command-line-args: 2.5.1 + ts-essentials: 7.0.3(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + typechain@8.3.2(typescript@5.8.3): + dependencies: + '@types/prettier': 2.7.3 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 7.0.1 + glob: 7.1.7 + js-sha3: 0.8.0 + lodash: 4.17.21 + mkdirp: 1.0.4 + prettier: 2.8.8 + ts-command-line-args: 2.5.1 + ts-essentials: 7.0.3(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + + typedarray@0.0.6: {} + + typescript-eslint@7.18.0(eslint@8.57.1)(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + typescript@4.9.5: {} + + typescript@5.8.3: {} + + typewise-core@1.2.0: {} + + typewise@1.0.3: + dependencies: + typewise-core: 1.2.0 + + typewiselite@1.0.0: {} + + typical@2.6.1: {} + + typical@4.0.0: {} + + typical@5.2.0: {} + + u2f-api@0.2.7: {} + + ua-parser-js@1.0.40: {} + + uglify-js@3.19.3: + optional: true + + uint8arrays@1.1.0: + dependencies: + multibase: 3.1.2 + web-encoding: 1.1.5 + + uint8arrays@2.1.10: + dependencies: + multiformats: 9.9.0 + + uint8arrays@3.1.1: + dependencies: + multiformats: 9.9.0 + + ultron@1.1.1: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + unc-path-regex@0.1.2: {} + + underscore@1.13.7: {} + + underscore@1.9.1: + optional: true + + undici-types@6.19.8: {} + + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + + unfetch@4.2.0: {} + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unixify@1.0.0: + dependencies: + normalize-path: 2.1.1 + + unorm@1.6.0: {} + + unpipe@1.0.0: {} + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + update-browserslist-db@1.1.3(browserslist@4.24.5): + dependencies: + browserslist: 4.24.5 + escalade: 3.2.0 + picocolors: 1.1.1 + + upper-case-first@2.0.2: + dependencies: + tslib: 2.8.1 + + upper-case@2.0.2: + dependencies: + tslib: 2.8.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + url-parse-lax@3.0.0: + dependencies: + prepend-http: 2.0.0 + + url-set-query@1.0.0: {} + + url@0.11.4: + dependencies: + punycode: 1.4.1 + qs: 6.14.0 + + urlpattern-polyfill@8.0.2: {} + + usb@1.9.2: + dependencies: + node-addon-api: 4.3.0 + node-gyp-build: 4.8.4 + optional: true + + use@3.1.1: {} + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + + utf8@3.0.0: {} + + util-deprecate@1.0.2: {} + + util.promisify@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + for-each: 0.3.5 + get-intrinsic: 1.3.0 + has-proto: 1.2.0 + has-symbols: 1.1.0 + object.getownpropertydescriptors: 2.1.8 + safe-array-concat: 1.1.3 + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.19 + + utils-merge@1.0.1: {} + + uuid@2.0.1: {} + + uuid@3.3.2: {} + + uuid@3.4.0: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validator@13.15.0: {} + + value-or-promise@1.0.12: {} + + varint@5.0.2: {} + + varint@6.0.0: {} + + vary@1.1.2: {} + + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + vlq@1.0.1: {} + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + web-encoding@1.1.5: + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + web-streams-polyfill@3.3.3: {} + + web3-bzz@1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/node': 12.20.55 + got: 12.1.0 + swarm-js: 0.1.42(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + web3-bzz@1.2.11(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/node': 12.20.55 + got: 9.6.0 + swarm-js: 0.1.42(bufferutil@4.0.9)(utf-8-validate@5.0.10) + underscore: 1.9.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + web3-bzz@1.7.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/node': 12.20.55 + got: 9.6.0 + swarm-js: 0.1.42(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + web3-core-helpers@1.10.0: + dependencies: + web3-eth-iban: 1.10.0 + web3-utils: 1.10.0 + + web3-core-helpers@1.2.11: + dependencies: + underscore: 1.9.1 + web3-eth-iban: 1.2.11 + web3-utils: 1.2.11 + optional: true + + web3-core-helpers@1.7.4: + dependencies: + web3-eth-iban: 1.7.4 + web3-utils: 1.7.4 + + web3-core-method@1.10.0: + dependencies: + '@ethersproject/transactions': 5.8.0 + web3-core-helpers: 1.10.0 + web3-core-promievent: 1.10.0 + web3-core-subscriptions: 1.10.0 + web3-utils: 1.10.0 + + web3-core-method@1.2.11: + dependencies: + '@ethersproject/transactions': 5.8.0 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-utils: 1.2.11 + optional: true + + web3-core-method@1.7.4: + dependencies: + '@ethersproject/transactions': 5.8.0 + web3-core-helpers: 1.7.4 + web3-core-promievent: 1.7.4 + web3-core-subscriptions: 1.7.4 + web3-utils: 1.7.4 + + web3-core-promievent@1.10.0: + dependencies: + eventemitter3: 4.0.4 + + web3-core-promievent@1.2.11: + dependencies: + eventemitter3: 4.0.4 + optional: true + + web3-core-promievent@1.7.4: + dependencies: + eventemitter3: 4.0.4 + + web3-core-requestmanager@1.10.0(encoding@0.1.13): + dependencies: + util: 0.12.5 + web3-core-helpers: 1.10.0 + web3-providers-http: 1.10.0(encoding@0.1.13) + web3-providers-ipc: 1.10.0 + web3-providers-ws: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-core-requestmanager@1.2.11: + dependencies: + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-providers-http: 1.2.11 + web3-providers-ipc: 1.2.11 + web3-providers-ws: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-core-requestmanager@1.7.4: + dependencies: + util: 0.12.5 + web3-core-helpers: 1.7.4 + web3-providers-http: 1.7.4 + web3-providers-ipc: 1.7.4 + web3-providers-ws: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-core-subscriptions@1.10.0: + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.10.0 + + web3-core-subscriptions@1.2.11: + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + optional: true + + web3-core-subscriptions@1.7.4: + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.7.4 + + web3-core@1.10.0(encoding@0.1.13): + dependencies: + '@types/bn.js': 5.1.6 + '@types/node': 12.20.55 + bignumber.js: 9.1.2 + web3-core-helpers: 1.10.0 + web3-core-method: 1.10.0 + web3-core-requestmanager: 1.10.0(encoding@0.1.13) + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-core@1.2.11: + dependencies: + '@types/bn.js': 4.11.6 + '@types/node': 12.20.55 + bignumber.js: 9.1.2 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-requestmanager: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-core@1.7.4: + dependencies: + '@types/bn.js': 5.1.6 + '@types/node': 12.20.55 + bignumber.js: 9.1.2 + web3-core-helpers: 1.7.4 + web3-core-method: 1.7.4 + web3-core-requestmanager: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-errors@1.3.1: + dependencies: + web3-types: 1.10.0 + + web3-eth-abi@1.10.0: + dependencies: + '@ethersproject/abi': 5.8.0 + web3-utils: 1.10.0 + + web3-eth-abi@1.2.11: + dependencies: + '@ethersproject/abi': 5.0.0-beta.153 + underscore: 1.9.1 + web3-utils: 1.2.11 + optional: true + + web3-eth-abi@1.7.4: + dependencies: + '@ethersproject/abi': 5.8.0 + web3-utils: 1.7.4 + + web3-eth-abi@4.4.1(typescript@5.8.3)(zod@3.24.4): + dependencies: + abitype: 0.7.1(typescript@5.8.3)(zod@3.24.4) + web3-errors: 1.3.1 + web3-types: 1.10.0 + web3-utils: 4.3.3 + web3-validator: 2.0.6 + transitivePeerDependencies: + - typescript + - zod + + web3-eth-accounts@1.10.0(encoding@0.1.13): + dependencies: + '@ethereumjs/common': 2.5.0 + '@ethereumjs/tx': 3.3.2 + eth-lib: 0.2.8 + ethereumjs-util: 7.1.5 + scrypt-js: 3.0.1 + uuid: 9.0.1 + web3-core: 1.10.0(encoding@0.1.13) + web3-core-helpers: 1.10.0 + web3-core-method: 1.10.0 + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-eth-accounts@1.2.11: + dependencies: + crypto-browserify: 3.12.0 + eth-lib: 0.2.8 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + scrypt-js: 3.0.1 + underscore: 1.9.1 + uuid: 3.3.2 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-eth-accounts@1.7.4: + dependencies: + '@ethereumjs/common': 2.6.5 + '@ethereumjs/tx': 3.5.2 + crypto-browserify: 3.12.0 + eth-lib: 0.2.8 + ethereumjs-util: 7.1.5 + scrypt-js: 3.0.1 + uuid: 3.3.2 + web3-core: 1.7.4 + web3-core-helpers: 1.7.4 + web3-core-method: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-eth-contract@1.10.0(encoding@0.1.13): + dependencies: + '@types/bn.js': 5.1.6 + web3-core: 1.10.0(encoding@0.1.13) + web3-core-helpers: 1.10.0 + web3-core-method: 1.10.0 + web3-core-promievent: 1.10.0 + web3-core-subscriptions: 1.10.0 + web3-eth-abi: 1.10.0 + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-eth-contract@1.2.11: + dependencies: + '@types/bn.js': 4.11.6 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-eth-contract@1.7.4: + dependencies: + '@types/bn.js': 5.1.6 + web3-core: 1.7.4 + web3-core-helpers: 1.7.4 + web3-core-method: 1.7.4 + web3-core-promievent: 1.7.4 + web3-core-subscriptions: 1.7.4 + web3-eth-abi: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-eth-ens@1.10.0(encoding@0.1.13): + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + web3-core: 1.10.0(encoding@0.1.13) + web3-core-helpers: 1.10.0 + web3-core-promievent: 1.10.0 + web3-eth-abi: 1.10.0 + web3-eth-contract: 1.10.0(encoding@0.1.13) + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-eth-ens@1.2.11: + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-contract: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-eth-ens@1.7.4: + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + web3-core: 1.7.4 + web3-core-helpers: 1.7.4 + web3-core-promievent: 1.7.4 + web3-eth-abi: 1.7.4 + web3-eth-contract: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-eth-iban@1.10.0: + dependencies: + bn.js: 5.2.2 + web3-utils: 1.10.0 + + web3-eth-iban@1.2.11: + dependencies: + bn.js: 4.12.2 + web3-utils: 1.2.11 + optional: true + + web3-eth-iban@1.7.4: + dependencies: + bn.js: 5.2.2 + web3-utils: 1.7.4 + + web3-eth-personal@1.10.0(encoding@0.1.13): + dependencies: + '@types/node': 12.20.55 + web3-core: 1.10.0(encoding@0.1.13) + web3-core-helpers: 1.10.0 + web3-core-method: 1.10.0 + web3-net: 1.10.0(encoding@0.1.13) + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-eth-personal@1.2.11: + dependencies: + '@types/node': 12.20.55 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-eth-personal@1.7.4: + dependencies: + '@types/node': 12.20.55 + web3-core: 1.7.4 + web3-core-helpers: 1.7.4 + web3-core-method: 1.7.4 + web3-net: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-eth@1.10.0(encoding@0.1.13): + dependencies: + web3-core: 1.10.0(encoding@0.1.13) + web3-core-helpers: 1.10.0 + web3-core-method: 1.10.0 + web3-core-subscriptions: 1.10.0 + web3-eth-abi: 1.10.0 + web3-eth-accounts: 1.10.0(encoding@0.1.13) + web3-eth-contract: 1.10.0(encoding@0.1.13) + web3-eth-ens: 1.10.0(encoding@0.1.13) + web3-eth-iban: 1.10.0 + web3-eth-personal: 1.10.0(encoding@0.1.13) + web3-net: 1.10.0(encoding@0.1.13) + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-eth@1.2.11: + dependencies: + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-accounts: 1.2.11 + web3-eth-contract: 1.2.11 + web3-eth-ens: 1.2.11 + web3-eth-iban: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-eth@1.7.4: + dependencies: + web3-core: 1.7.4 + web3-core-helpers: 1.7.4 + web3-core-method: 1.7.4 + web3-core-subscriptions: 1.7.4 + web3-eth-abi: 1.7.4 + web3-eth-accounts: 1.7.4 + web3-eth-contract: 1.7.4 + web3-eth-ens: 1.7.4 + web3-eth-iban: 1.7.4 + web3-eth-personal: 1.7.4 + web3-net: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-net@1.10.0(encoding@0.1.13): + dependencies: + web3-core: 1.10.0(encoding@0.1.13) + web3-core-method: 1.10.0 + web3-utils: 1.10.0 + transitivePeerDependencies: + - encoding + - supports-color + + web3-net@1.2.11: + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-net@1.7.4: + dependencies: + web3-core: 1.7.4 + web3-core-method: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-provider-engine@14.2.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): + dependencies: + async: 2.6.2 + backoff: 2.5.0 + clone: 2.1.2 + cross-fetch: 2.2.6(encoding@0.1.13) + eth-block-tracker: 3.0.1 + eth-json-rpc-infura: 3.2.1(encoding@0.1.13) + eth-sig-util: 1.4.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.1 + ethereumjs-vm: 2.6.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.3.0 + promise-to-callback: 1.0.0 + readable-stream: 2.3.8 + request: 2.88.2 + semaphore: 1.1.0 + ws: 5.2.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + web3-providers-http@1.10.0(encoding@0.1.13): + dependencies: + abortcontroller-polyfill: 1.7.8 + cross-fetch: 3.2.0(encoding@0.1.13) + es6-promise: 4.2.8 + web3-core-helpers: 1.10.0 + transitivePeerDependencies: + - encoding + + web3-providers-http@1.2.11: + dependencies: + web3-core-helpers: 1.2.11 + xhr2-cookies: 1.1.0 + optional: true + + web3-providers-http@1.7.4: + dependencies: + web3-core-helpers: 1.7.4 + xhr2-cookies: 1.1.0 + + web3-providers-ipc@1.10.0: + dependencies: + oboe: 2.1.5 + web3-core-helpers: 1.10.0 + + web3-providers-ipc@1.2.11: + dependencies: + oboe: 2.1.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + optional: true + + web3-providers-ipc@1.7.4: + dependencies: + oboe: 2.1.5 + web3-core-helpers: 1.7.4 + + web3-providers-ws@1.10.0: + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.10.0 + websocket: 1.0.35 + transitivePeerDependencies: + - supports-color + + web3-providers-ws@1.2.11: + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + websocket: 1.0.32 + transitivePeerDependencies: + - supports-color + optional: true + + web3-providers-ws@1.7.4: + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.7.4 + websocket: 1.0.35 + transitivePeerDependencies: + - supports-color + + web3-shh@1.10.0(encoding@0.1.13): + dependencies: + web3-core: 1.10.0(encoding@0.1.13) + web3-core-method: 1.10.0 + web3-core-subscriptions: 1.10.0 + web3-net: 1.10.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + web3-shh@1.2.11: + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-net: 1.2.11 + transitivePeerDependencies: + - supports-color + optional: true + + web3-shh@1.7.4: + dependencies: + web3-core: 1.7.4 + web3-core-method: 1.7.4 + web3-core-subscriptions: 1.7.4 + web3-net: 1.7.4 + transitivePeerDependencies: + - supports-color + + web3-types@1.10.0: {} + + web3-utils@1.10.0: + dependencies: + bn.js: 5.2.2 + ethereum-bloom-filters: 1.2.0 + ethereumjs-util: 7.1.5 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + web3-utils@1.10.4: + dependencies: + '@ethereumjs/util': 8.1.0 + bn.js: 5.2.2 + ethereum-bloom-filters: 1.2.0 + ethereum-cryptography: 2.2.1 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + web3-utils@1.2.11: + dependencies: + bn.js: 4.12.2 + eth-lib: 0.2.8 + ethereum-bloom-filters: 1.2.0 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + underscore: 1.9.1 + utf8: 3.0.0 + optional: true + + web3-utils@1.7.4: + dependencies: + bn.js: 5.2.2 + ethereum-bloom-filters: 1.2.0 + ethereumjs-util: 7.1.5 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + web3-utils@4.3.3: + dependencies: + ethereum-cryptography: 2.2.1 + eventemitter3: 5.0.1 + web3-errors: 1.3.1 + web3-types: 1.10.0 + web3-validator: 2.0.6 + + web3-validator@2.0.6: + dependencies: + ethereum-cryptography: 2.2.1 + util: 0.12.5 + web3-errors: 1.3.1 + web3-types: 1.10.0 + zod: 3.24.4 + + web3@1.10.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): + dependencies: + web3-bzz: 1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + web3-core: 1.10.0(encoding@0.1.13) + web3-eth: 1.10.0(encoding@0.1.13) + web3-eth-personal: 1.10.0(encoding@0.1.13) + web3-net: 1.10.0(encoding@0.1.13) + web3-shh: 1.10.0(encoding@0.1.13) + web3-utils: 1.10.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + web3@1.2.11(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + web3-bzz: 1.2.11(bufferutil@4.0.9)(utf-8-validate@5.0.10) + web3-core: 1.2.11 + web3-eth: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-shh: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + web3@1.7.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + web3-bzz: 1.7.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + web3-core: 1.7.4 + web3-eth: 1.7.4 + web3-eth-personal: 1.7.4 + web3-net: 1.7.4 + web3-shh: 1.7.4 + web3-utils: 1.7.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + webcrypto-core@1.8.1: + dependencies: + '@peculiar/asn1-schema': 2.3.15 + '@peculiar/json-schema': 1.1.12 + asn1js: 3.0.6 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + webidl-conversions@3.0.1: {} + + websocket@1.0.32: + dependencies: + bufferutil: 4.0.9 + debug: 2.6.9 + es5-ext: 0.10.64 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + + websocket@1.0.35: + dependencies: + bufferutil: 4.0.9 + debug: 2.6.9 + es5-ext: 0.10.64 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + + whatwg-fetch@2.0.4: {} + + whatwg-fetch@3.6.20: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-module@1.0.0: {} + + which-module@2.0.1: {} + + which-pm-runs@1.1.0: + optional: true + + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + optional: true + + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + + window-size@0.2.0: {} + + winston-transport@4.9.0: + dependencies: + logform: 2.7.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + + winston@3.17.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + + wkx@0.5.0: + dependencies: + '@types/node': 20.17.32 + + wonka@4.0.15: {} + + wonka@6.3.5: {} + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wordwrapjs@4.0.1: + dependencies: + reduce-flatten: 2.0.0 + typical: 5.2.0 + + workerpool@6.5.1: {} + + wrap-ansi@2.1.0: + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@3.3.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + async-limiter: 1.0.1 + safe-buffer: 5.1.2 + ultron: 1.1.1 + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@5.2.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + async-limiter: 1.0.1 + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@6.2.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + async-limiter: 1.0.1 + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + xhr-request-promise@0.1.3: + dependencies: + xhr-request: 1.1.0 + + xhr-request@1.1.0: + dependencies: + buffer-to-arraybuffer: 0.0.5 + object-assign: 4.1.1 + query-string: 5.1.1 + simple-get: 2.8.2 + timed-out: 4.0.1 + url-set-query: 1.0.0 + xhr: 2.6.0 + + xhr2-cookies@1.1.0: + dependencies: + cookiejar: 2.1.4 + + xhr@2.6.0: + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.6 + xtend: 4.0.2 + + xmlhttprequest@1.8.0: {} + + xtend@2.1.2: + dependencies: + object-keys: 0.4.0 + + xtend@4.0.2: {} + + y18n@3.2.2: {} + + y18n@4.0.3: {} + + y18n@5.0.8: {} + + yaeti@0.0.6: {} + + yallist@2.1.2: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@1.10.2: {} + + yaml@2.7.1: {} + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs-parser@2.4.1: + dependencies: + camelcase: 3.0.0 + lodash.assign: 4.2.0 + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs-parser@8.1.0: + dependencies: + camelcase: 4.1.0 + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@10.1.2: + dependencies: + cliui: 4.1.0 + decamelize: 1.2.0 + find-up: 2.1.0 + get-caller-file: 1.0.3 + os-locale: 2.1.0 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 2.1.1 + which-module: 2.0.1 + y18n: 3.2.2 + yargs-parser: 8.1.0 + + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yargs@4.8.1: + dependencies: + cliui: 3.2.0 + decamelize: 1.2.0 + get-caller-file: 1.0.3 + lodash.assign: 4.2.0 + os-locale: 1.4.0 + read-pkg-up: 1.0.1 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 1.0.2 + which-module: 1.0.0 + window-size: 0.2.0 + y18n: 3.2.2 + yargs-parser: 2.4.1 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-to-json-schema@3.24.5(zod@3.24.4): + dependencies: + zod: 3.24.4 + + zod@3.24.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..4340350e1 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'packages/*' \ No newline at end of file diff --git a/scripts/build b/scripts/build index e07906ec3..c16aa450e 100755 --- a/scripts/build +++ b/scripts/build @@ -16,9 +16,9 @@ all_packages=( "packages/contracts" "packages/horizon" "packages/subgraph-service" + "packages/toolshed" "packages/hardhat-graph-protocol" "packages/data-edge" - "packages/sdk" "packages/token-distribution" ) @@ -33,7 +33,7 @@ for package in "${packages[@]}"; do cd "$package" || { echo "Failed to navigate to $package"; exit 1; } - if BUILD_RUN=true yarn build; then + if BUILD_RUN=true pnpm build; then echo "Successfully built $package" else echo "Build failed for $package" >&2 diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 5badedf56..000000000 --- a/yarn.lock +++ /dev/null @@ -1,26870 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@0no-co/graphql.web@npm:^1.0.5": - version: 1.0.7 - resolution: "@0no-co/graphql.web@npm:1.0.7" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - checksum: 4744a6c327e0a2d564c8f4720ef08dcece6c3b8373f52208ff29f7086f90e18d211c59cc222c229f1e3241abd1fc6e30377dc1dadac491bbb25706f29dea626a - languageName: node - linkType: hard - -"@adraffy/ens-normalize@npm:1.10.1": - version: 1.10.1 - resolution: "@adraffy/ens-normalize@npm:1.10.1" - checksum: fdd647604e8fac6204921888aaf5a6bc65eabf0d2921bc5f93b64d01f4bc33ead167c1445f7de05468d05cd92ac31b74c68d2be840c62b79d73693308f885c06 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed - languageName: node - linkType: hard - -"@arbitrum/sdk@npm:~3.1.13": - version: 3.1.13 - resolution: "@arbitrum/sdk@npm:3.1.13" - dependencies: - "@ethersproject/address": "npm:^5.0.8" - "@ethersproject/bignumber": "npm:^5.1.1" - "@ethersproject/bytes": "npm:^5.0.8" - async-mutex: "npm:^0.4.0" - ethers: "npm:^5.1.0" - checksum: d314665b9a7e18a9854071f40105053d0b267c74f3b09367a072778333255571523138702d5b2212a7d5b5b4eaf210afd5a6cb7582a4e00c77d3a5af76d4275b - languageName: node - linkType: hard - -"@ardatan/fast-json-stringify@npm:^0.0.6": - version: 0.0.6 - resolution: "@ardatan/fast-json-stringify@npm:0.0.6" - dependencies: - "@fastify/deepmerge": "npm:^1.0.0" - fast-deep-equal: "npm:^3.1.3" - rfdc: "npm:^1.2.0" - peerDependencies: - ajv: ^8.10.0 - ajv-formats: ^2.1.1 - checksum: 45f4f60c2b8d91a2b53a51c8785f4bcf6eeff3fad361a1b5c351ae0c45c2b224e8a3cb358e3445d31bf57f0a1ac04cb2282dd4b1b053cac8a2c081a22d306b26 - languageName: node - linkType: hard - -"@ardatan/relay-compiler@npm:12.0.0": - version: 12.0.0 - resolution: "@ardatan/relay-compiler@npm:12.0.0" - dependencies: - "@babel/core": "npm:^7.14.0" - "@babel/generator": "npm:^7.14.0" - "@babel/parser": "npm:^7.14.0" - "@babel/runtime": "npm:^7.0.0" - "@babel/traverse": "npm:^7.14.0" - "@babel/types": "npm:^7.0.0" - babel-preset-fbjs: "npm:^3.4.0" - chalk: "npm:^4.0.0" - fb-watchman: "npm:^2.0.0" - fbjs: "npm:^3.0.0" - glob: "npm:^7.1.1" - immutable: "npm:~3.7.6" - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - relay-runtime: "npm:12.0.0" - signedsource: "npm:^1.0.0" - yargs: "npm:^15.3.1" - peerDependencies: - graphql: "*" - bin: - relay-compiler: bin/relay-compiler - checksum: 7207d65dd39d3a6202fcee81b03338409642a0ff4e7f799b4a074025429ce2b17b6c71c9579a6328b0f4548763ba4efbff0436cddbcad934af00cc4dbc7ac4e1 - languageName: node - linkType: hard - -"@ardatan/sync-fetch@npm:^0.0.1": - version: 0.0.1 - resolution: "@ardatan/sync-fetch@npm:0.0.1" - dependencies: - node-fetch: "npm:^2.6.1" - checksum: cd69134005ef5ea570d55631c8be59b593e2dda2207f616d30618f948af6ee5d227b857aefd56c535e8f7f3ade47083e4e7795b5ee014a6732011c6e5f9eb08f - languageName: node - linkType: hard - -"@aws-crypto/sha256-js@npm:1.2.2": - version: 1.2.2 - resolution: "@aws-crypto/sha256-js@npm:1.2.2" - dependencies: - "@aws-crypto/util": "npm:^1.2.2" - "@aws-sdk/types": "npm:^3.1.0" - tslib: "npm:^1.11.1" - checksum: f4e8593cfbc48591413f00c744569b21e5ed5fab0e27fa4b59c517f2024ca4f46fab7b3874f2a207ceeef8feefc22d143a82d6c6bfe5303ea717f579d8d7ad0a - languageName: node - linkType: hard - -"@aws-crypto/util@npm:^1.2.2": - version: 1.2.2 - resolution: "@aws-crypto/util@npm:1.2.2" - dependencies: - "@aws-sdk/types": "npm:^3.1.0" - "@aws-sdk/util-utf8-browser": "npm:^3.0.0" - tslib: "npm:^1.11.1" - checksum: ade8843bf13529b1854f64d6bbb23f30b46330743c8866adfd2105d830e30ce837a868eaaf41c4c2381d27e9d225d3a0a7558ee1eee022f0192916e33bfb654c - languageName: node - linkType: hard - -"@aws-sdk/types@npm:^3.1.0": - version: 3.577.0 - resolution: "@aws-sdk/types@npm:3.577.0" - dependencies: - "@smithy/types": "npm:^3.0.0" - tslib: "npm:^2.6.2" - checksum: ae31757b05c2445f52b3f3268d7e9cbae765cae24f088afb8f967c8e3a268b425794a8e99fab3e0428dc6491ccca99b6c57ab5ca69e2d1cc2878ec85ff9643f7 - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.259.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0" - dependencies: - tslib: "npm:^2.3.1" - checksum: ff56ff252c0ea22b760b909ba5bbe9ca59a447066097e73b1e2ae50a6d366631ba560c373ec4e83b3e225d16238eeaf8def210fdbf135070b3dd3ceb1cc2ef9a - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": "npm:^7.24.2" - picocolors: "npm:^1.0.0" - checksum: d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.23.5": - version: 7.24.4 - resolution: "@babel/compat-data@npm:7.24.4" - checksum: 9cd8a9cd28a5ca6db5d0e27417d609f95a8762b655e8c9c97fd2de08997043ae99f0139007083c5e607601c6122e8432c85fe391731b19bf26ad458fa0c60dd3 - languageName: node - linkType: hard - -"@babel/core@npm:^7.14.0": - version: 7.24.5 - resolution: "@babel/core@npm:7.24.5" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.2" - "@babel/generator": "npm:^7.24.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-module-transforms": "npm:^7.24.5" - "@babel/helpers": "npm:^7.24.5" - "@babel/parser": "npm:^7.24.5" - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.5" - "@babel/types": "npm:^7.24.5" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: e26ba810a77bc8e21579a12fc36c79a0a60554404dc9447f2d64eb1f26d181c48d3b97d39d9f158e9911ec7162a8280acfaf2b4b210e975f0dd4bd4dbb1ee159 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/generator@npm:7.24.5" - dependencies: - "@babel/types": "npm:^7.24.5" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 0d64f880150e7dfb92ceff2b4ac865f36aa1e295120920246492ffd0146562dabf79ba8699af1c8833f8a7954818d4d146b7b02f808df4d6024fb99f98b2f78d - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 5a80dc364ddda26b334bbbc0f6426cab647381555ef7d0cd32eb284e35b867c012ce6ce7d52a64672ed71383099c99d32765b3d260626527bb0e3470b0f58e45 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" - dependencies: - "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-validator-option": "npm:^7.23.5" - browserslist: "npm:^4.22.2" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.18.6": - version: 7.24.5 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.5" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-member-expression-to-functions": "npm:^7.24.5" - "@babel/helper-optimise-call-expression": "npm:^7.22.5" - "@babel/helper-replace-supers": "npm:^7.24.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.24.5" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: afc72e8075a249663f8024ef1760de4c0b9252bdde16419ac955fa7e15b8d4096ca1e01f796df4fa8cfdb056708886f60b631ad492242a8e47307974fc305920 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": "npm:^7.22.15" - "@babel/types": "npm:^7.23.0" - checksum: d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.23.0, @babel/helper-member-expression-to-functions@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.5" - dependencies: - "@babel/types": "npm:^7.24.5" - checksum: a3c0276a1ede8648a0e6fd86ad846cd57421d05eddfa29446b8b5a013db650462022b9ec1e65ea32c747d0542d729c80866830697f94fb12d603e87c51f080a5 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/helper-module-imports@npm:7.24.3" - dependencies: - "@babel/types": "npm:^7.24.0" - checksum: 052c188adcd100f5e8b6ff0c9643ddaabc58b6700d3bbbc26804141ad68375a9f97d9d173658d373d31853019e65f62610239e3295cdd58e573bdcb2fded188d - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-module-transforms@npm:7.24.5" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-module-imports": "npm:^7.24.3" - "@babel/helper-simple-access": "npm:^7.24.5" - "@babel/helper-split-export-declaration": "npm:^7.24.5" - "@babel/helper-validator-identifier": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 6e77d72f62b7e87abaea800ea0bccd4d54cde26485750969f5f493c032eb63251eb50c3522cace557781565d51c1d0c4bcc866407d24becfb109c18fb92c978d - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 31b41a764fc3c585196cf5b776b70cf4705c132e4ce9723f39871f215f2ddbfb2e28a62f9917610f67c8216c1080482b9b05f65dd195dae2a52cef461f2ac7b8 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.5, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.24.5 - resolution: "@babel/helper-plugin-utils@npm:7.24.5" - checksum: 4ae40094e6a2f183281213344f4df60c66b16b19a2bc38d2bb11810a6dc0a0e7ec638957d0e433ff8b615775b8f3cd1b7edbf59440d1b50e73c389fc22913377 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-replace-supers@npm:7.24.1" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-member-expression-to-functions": "npm:^7.23.0" - "@babel/helper-optimise-call-expression": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d39a3df7892b7c3c0e307fb229646168a9bd35e26a72080c2530729322600e8cff5f738f44a14860a2358faffa741b6a6a0d6749f113387b03ddbfa0ec10e1a0 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.22.5, @babel/helper-simple-access@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-simple-access@npm:7.24.5" - dependencies: - "@babel/types": "npm:^7.24.5" - checksum: d96a0ab790a400f6c2dcbd9457b9ca74b9ba6d0f67ff9cd5bcc73792c8fbbd0847322a0dddbd8987dd98610ee1637c680938c7d83d3ffce7d06d7519d823d996 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: ab7fa2aa709ab49bb8cd86515a1e715a3108c4bb9a616965ba76b43dc346dee66d1004ccf4d222b596b6224e43e04cbc5c3a34459501b388451f8c589fbc3691 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-split-export-declaration@npm:7.24.5" - dependencies: - "@babel/types": "npm:^7.24.5" - checksum: d7a812d67d031a348f3fb0e6263ce2dbe6038f81536ba7fb16db385383bcd6542b71833194303bf6d3d0e4f7b6b584c9c8fae8772122e2ce68fc9bdf07f4135d - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-string-parser@npm:7.24.1" - checksum: 2f9bfcf8d2f9f083785df0501dbab92770111ece2f90d120352fda6dd2a7d47db11b807d111e6f32aa1ba6d763fe2dc6603d153068d672a5d0ad33ca802632b2 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-validator-identifier@npm:7.24.5" - checksum: 05f957229d89ce95a137d04e27f7d0680d84ae48b6ad830e399db0779341f7d30290f863a93351b4b3bde2166737f73a286ea42856bb07c8ddaa95600d38645c - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helpers@npm:7.24.5" - dependencies: - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.5" - "@babel/types": "npm:^7.24.5" - checksum: 0630b0223c3a9a34027ddc05b3bac54d68d5957f84e92d2d4814b00448a76e12f9188f9c85cfce2011696d82a8ffcbd8189da097c0af0181d32eb27eca34185e - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.2": - version: 7.24.5 - resolution: "@babel/highlight@npm:7.24.5" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.5" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: e98047d3ad24608bfa596d000c861a2cc875af897427f2833b91a4e0d4cead07301a7ec15fa26093dcd61e036e2eed2db338ae54f93016fe0dc785fadc4159db - languageName: node - linkType: hard - -"@babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/parser@npm:7.24.5" - bin: - parser: ./bin/babel-parser.js - checksum: 8333a6ad5328bad34fa0e12bcee147c3345ea9a438c0909e7c68c6cfbea43c464834ffd7eabd1cbc1c62df0a558e22ffade9f5b29440833ba7b33d96a71f88c0 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-properties@npm:^7.0.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.18.6" - "@babel/helper-plugin-utils": "npm:^7.18.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d5172ac6c9948cdfc387e94f3493ad86cb04035cf7433f86b5d358270b1b9752dc25e176db0c5d65892a246aca7bdb4636672e15626d7a7de4bc0bd0040168d9 - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": "npm:^7.20.5" - "@babel/helper-compilation-targets": "npm:^7.20.7" - "@babel/helper-plugin-utils": "npm:^7.20.2" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.20.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b9818749bb49d8095df64c45db682448d04743d96722984cbfd375733b2585c26d807f84b4fdb28474f2d614be6a6ffe3d96ffb121840e9e5345b2ccc0438bd8 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.0.0": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 - languageName: node - linkType: hard - -"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-flow@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 618de04360a96111408abdaafaba2efbaef0d90faad029d50e0281eaad5d7c7bd2ce4420bbac0ee27ad84c2b7bbc3e48f782064f81ed5bc40c398637991004c7 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.20.0": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 72f0340d73e037f0702c61670054e0af66ece7282c5c2f4ba8de059390fee502de282defdf15959cd9f71aa18dc5c5e4e7a0fde317799a0600c6c4e0a656d82b - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.23.3": - version: 7.24.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6cec76fbfe6ca81c9345c2904d8d9a8a0df222f9269f0962ed6eb2eb8f3f10c2f15e993d1ef09dbaf97726bf1792b5851cf5bd9a769f966a19448df6be95d19a - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f44bfacf087dc21b422bab99f4e9344ee7b695b05c947dacae66de05c723ab9d91800be7edc1fa016185e8c819f3aca2b4a5f66d8a4d1e47d9bad80b8fa55b8e - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6fbaa85f5204f34845dfc0bebf62fdd3ac5a286241c85651e59d426001e7a1785ac501f154e093e0b8ee49e1f51e3f8b06575a5ae8d4a9406d43e4816bf18c37 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.0.0": - version: 7.24.5 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85997fc8179b7d26e8af30865aeb91789f3bc1f0cd5643ed25f25891ff9c071460ec1220599b19070b424a3b902422f682e9b02e515872540173eae2e25f760c - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.0.0": - version: 7.24.5 - resolution: "@babel/plugin-transform-classes@npm:7.24.5" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.5" - "@babel/helper-replace-supers": "npm:^7.24.1" - "@babel/helper-split-export-declaration": "npm:^7.24.5" - globals: "npm:^11.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4affcbb7cb01fa4764c7a4b534c30fd24a4b68e680a2d6e242dd7ca8726490f0f1426c44797deff84a38a162e0629718900c68d28daffe2b12adf5b4194156a7 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/template": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8292c508b656b7722e2c2ca0f6f31339852e3ed2b9b80f6e068a4010e961b431ca109ecd467fc906283f4b1574c1e7b1cb68d35a4dea12079d386c15ff7e0eac - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.0.0": - version: 7.24.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6a37953a95f04b335bf3e2118fb93f50dd9593c658d1b2f8918a380a2ee30f1b420139eccf7ec3873c86a8208527895fcf6b7e21c0e734a6ad6e5d5042eace4d - languageName: node - linkType: hard - -"@babel/plugin-transform-flow-strip-types@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/plugin-syntax-flow": "npm:^7.24.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e6aa9cbad0441867598d390d4df65bc8c6b797574673e4eedbdae0cc528e81e00f4b2cd38f7d138b0f04bcdd2540384a9812d5d76af5abfa06aee1c7fc20ca58 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-for-of@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e4bc92b1f334246e62d4bde079938df940794db564742034f6597f2e38bd426e11ae8c5670448e15dd6e45c462f2a9ab3fa87259bddf7c08553ffd9457fc2b2c - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-function-name@npm:7.24.1" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 65c1735ec3b5e43db9b5aebf3c16171c04b3050c92396b9e22dda0d2aaf51f43fdcf147f70a40678fd9a4ee2272a5acec4826e9c21bcf968762f4c184897ad75 - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-literals@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a27cc7d565ee57b5a2bf136fa889c5c2f5988545ae7b3b2c83a7afe5dd37dfac80dca88b1c633c65851ce6af7d2095c04c01228657ce0198f918e64b5ccd01fa - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2af731d02aa4c757ef80c46df42264128cbe45bfd15e1812d1a595265b690a44ad036041c406a73411733540e1c4256d8174705ae6b8cfaf757fc175613993fd - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" - dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-simple-access": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: efb3ea2047604a7eb44a9289311ebb29842fe6510ff8b66a77a60440448c65e1312a60dc48191ed98246bdbd163b5b6f3348a0669bcc0e3809e69c7c776b20fa - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-super@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-replace-supers": "npm:^7.24.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d30e6b9e59a707efd7ed524fc0a8deeea046011a6990250f2e9280516683138e2d13d9c52daf41d78407bdab0378aef7478326f2a15305b773d851cb6e106157 - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7": - version: 7.24.5 - resolution: "@babel/plugin-transform-parameters@npm:7.24.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e08b8c46a24b1b21dde7783cb0aeb56ffe9ef6d6f1795649ce76273657158d3bfa5370c6594200ed7d371983b599c8e194b76108dffed9ab5746fe630ef2e8f5 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3bf3e01f7bb8215a8b6d0081b6f86fea23e3a4543b619e059a264ede028bc58cdfb0acb2c43271271915a74917effa547bc280ac636a9901fa9f2fb45623f87e - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: adf1a3cb0df8134533a558a9072a67e34127fd489dfe431c3348a86dd41f3e74861d5d5134bbb68f61a9cdb3f7e79b2acea1346be94ce4d3328a64e5a9e09be1 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.0.0": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-module-imports": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-jsx": "npm:^7.23.3" - "@babel/types": "npm:^7.23.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8851b3adc515cd91bdb06ff3a23a0f81f0069cfef79dfb3fa744da4b7a82e3555ccb6324c4fa71ecf22508db13b9ff6a0ed96675f95fc87903b9fc6afb699580 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8273347621183aada3cf1f3019d8d5f29467ba13a75b72cb405bc7f23b7e05fd85f4edb1e4d9f0103153dddb61826a42dc24d466480d707f8932c1923a4c25fa - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-spread@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 50a0302e344546d57e5c9f4dea575f88e084352eeac4e9a3e238c41739eef2df1daf4a7ebbb3ccb7acd3447f6a5ce9938405f98bf5f5583deceb8257f5a673c9 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.0.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f73bcda5488eb81c6e7a876498d9e6b72be32fca5a4d9db9053491a2d1300cd27b889b463fd2558f3cd5826a85ed00f61d81b234aa55cb5a0abf1b6fa1bd5026 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.5.5": - version: 7.24.5 - resolution: "@babel/runtime@npm:7.24.5" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 05730e43e8ba6550eae9fd4fb5e7d9d3cb91140379425abcb2a1ff9cebad518a280d82c4c4b0f57ada26a863106ac54a748d90c775790c0e2cd0ddd85ccdf346 - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" - dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - checksum: 9d3dd8d22fe1c36bc3bdef6118af1f4b030aaf6d7d2619f5da203efa818a2185d717523486c111de8d99a8649ddf4bbf6b2a7a64962d8411cf6a8fa89f010e54 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/traverse@npm:7.24.5" - dependencies: - "@babel/code-frame": "npm:^7.24.2" - "@babel/generator": "npm:^7.24.5" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.24.5" - "@babel/parser": "npm:^7.24.5" - "@babel/types": "npm:^7.24.5" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 3f22534bc2b2ed9208e55ef48af3b32939032b23cb9dc4037447cb108640df70bbb0b9fea86e9c58648949fdc2cb14e89aa79ffa3c62a5dd43459a52fe8c01d1 - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.5, @babel/types@npm:^7.8.3": - version: 7.24.5 - resolution: "@babel/types@npm:7.24.5" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.1" - "@babel/helper-validator-identifier": "npm:^7.24.5" - to-fast-properties: "npm:^2.0.0" - checksum: e1284eb046c5e0451b80220d1200e2327e0a8544a2fe45bb62c952e5fdef7099c603d2336b17b6eac3cc046b7a69bfbce67fe56e1c0ea48cd37c65cb88638f2a - languageName: node - linkType: hard - -"@chainsafe/as-sha256@npm:^0.3.1": - version: 0.3.1 - resolution: "@chainsafe/as-sha256@npm:0.3.1" - checksum: 72561fc6552a53e4d1fc28880b7f82ecb7a997670568333cb479f323db9482a6a59dd9d0f915210703e51c3a4ca2701ccdb4c66a0202abab4872d81184c9212e - languageName: node - linkType: hard - -"@chainsafe/persistent-merkle-tree@npm:^0.4.2": - version: 0.4.2 - resolution: "@chainsafe/persistent-merkle-tree@npm:0.4.2" - dependencies: - "@chainsafe/as-sha256": "npm:^0.3.1" - checksum: 9533e478a1a990e8cf8710a2eeb84c6f08c7b61726a43dbe2165316256839c29a2ff17923bce5e5effec446d832de8b0a5bc896ef5db80bce059af5d1bd20d8d - languageName: node - linkType: hard - -"@chainsafe/persistent-merkle-tree@npm:^0.5.0": - version: 0.5.0 - resolution: "@chainsafe/persistent-merkle-tree@npm:0.5.0" - dependencies: - "@chainsafe/as-sha256": "npm:^0.3.1" - checksum: 73c7a7536f49aceab61870fcc1dafef8a8be2ae0bfff2614846bb4b57a21939da75bca7bc5d1959cd312a5133be0acaf0e30fb323410c57592e9ec384758efe0 - languageName: node - linkType: hard - -"@chainsafe/ssz@npm:^0.10.0": - version: 0.10.2 - resolution: "@chainsafe/ssz@npm:0.10.2" - dependencies: - "@chainsafe/as-sha256": "npm:^0.3.1" - "@chainsafe/persistent-merkle-tree": "npm:^0.5.0" - checksum: be427eba9f9c4a542326f9f3c20eb704c1c2500c4f124ba18febf6ffd5bb7bd5755228d99326bf6c4e4d969daa4b6ff2efb743688ec36ef86f20c0c673c0e967 - languageName: node - linkType: hard - -"@chainsafe/ssz@npm:^0.9.2": - version: 0.9.4 - resolution: "@chainsafe/ssz@npm:0.9.4" - dependencies: - "@chainsafe/as-sha256": "npm:^0.3.1" - "@chainsafe/persistent-merkle-tree": "npm:^0.4.2" - case: "npm:^1.6.3" - checksum: 4ce4b867c60dbee98772fe075037c7ef9a7894f97a4fb04f3cfd57e11fa683b8c23a4d80b53592d10fbd4e2abac43c9099181cfaee587619366f49091b9e5fcb - languageName: node - linkType: hard - -"@changesets/apply-release-plan@npm:^7.0.1": - version: 7.0.1 - resolution: "@changesets/apply-release-plan@npm:7.0.1" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/config": "npm:^3.0.0" - "@changesets/get-version-range-type": "npm:^0.4.0" - "@changesets/git": "npm:^3.0.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - detect-indent: "npm:^6.0.0" - fs-extra: "npm:^7.0.1" - lodash.startcase: "npm:^4.4.0" - outdent: "npm:^0.5.0" - prettier: "npm:^2.7.1" - resolve-from: "npm:^5.0.0" - semver: "npm:^7.5.3" - checksum: ca41f84a22a1fd25af4b195956afd393000139581a84528b6d21871e4ce417abf884ad2ef8a8ed7abb49031fed7cbb69226a158df36050aa70ed295636a42369 - languageName: node - linkType: hard - -"@changesets/assemble-release-plan@npm:^6.0.0": - version: 6.0.0 - resolution: "@changesets/assemble-release-plan@npm:6.0.0" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/errors": "npm:^0.2.0" - "@changesets/get-dependents-graph": "npm:^2.0.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - semver: "npm:^7.5.3" - checksum: 7ccff4dba07fd5c7d219b69d6f5e5ec4ea942b3f3482a76be6f9caa072ae5b2128b4d6c561030cb488ca1bc23416a2f8f638daa784f4ae9792c89c9b571231b3 - languageName: node - linkType: hard - -"@changesets/changelog-git@npm:^0.2.0": - version: 0.2.0 - resolution: "@changesets/changelog-git@npm:0.2.0" - dependencies: - "@changesets/types": "npm:^6.0.0" - checksum: d94df555656ac4ac9698d87a173b1955227ac0f1763d59b9b4d4f149ab3f879ca67603e48407b1dfdadaef4e7882ae7bbc7b7be160a45a55f05442004bdc61bd - languageName: node - linkType: hard - -"@changesets/cli@npm:^2.27.1": - version: 2.27.3 - resolution: "@changesets/cli@npm:2.27.3" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/apply-release-plan": "npm:^7.0.1" - "@changesets/assemble-release-plan": "npm:^6.0.0" - "@changesets/changelog-git": "npm:^0.2.0" - "@changesets/config": "npm:^3.0.0" - "@changesets/errors": "npm:^0.2.0" - "@changesets/get-dependents-graph": "npm:^2.0.0" - "@changesets/get-release-plan": "npm:^4.0.0" - "@changesets/git": "npm:^3.0.0" - "@changesets/logger": "npm:^0.1.0" - "@changesets/pre": "npm:^2.0.0" - "@changesets/read": "npm:^0.6.0" - "@changesets/types": "npm:^6.0.0" - "@changesets/write": "npm:^0.3.1" - "@manypkg/get-packages": "npm:^1.1.3" - "@types/semver": "npm:^7.5.0" - ansi-colors: "npm:^4.1.3" - chalk: "npm:^2.1.0" - ci-info: "npm:^3.7.0" - enquirer: "npm:^2.3.0" - external-editor: "npm:^3.1.0" - fs-extra: "npm:^7.0.1" - human-id: "npm:^1.0.2" - meow: "npm:^6.0.0" - outdent: "npm:^0.5.0" - p-limit: "npm:^2.2.0" - preferred-pm: "npm:^3.0.0" - resolve-from: "npm:^5.0.0" - semver: "npm:^7.5.3" - spawndamnit: "npm:^2.0.0" - term-size: "npm:^2.1.0" - tty-table: "npm:^4.1.5" - bin: - changeset: bin.js - checksum: fee10ae204926dbf4847111bf49ca93dc5b43a55b48635e2e08e71ab8442cf414c8165ae11174d6366ef12305274ea1b75beb14ca74b9a766d82b8c32148199b - languageName: node - linkType: hard - -"@changesets/config@npm:^3.0.0": - version: 3.0.0 - resolution: "@changesets/config@npm:3.0.0" - dependencies: - "@changesets/errors": "npm:^0.2.0" - "@changesets/get-dependents-graph": "npm:^2.0.0" - "@changesets/logger": "npm:^0.1.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - fs-extra: "npm:^7.0.1" - micromatch: "npm:^4.0.2" - checksum: c64463a92b99986e42657c3b8804851aab8b592bb64532177ce35769a7fedfad3ce1395ad0e2ab3e357e3029fd23333bff1ce51bc3634e6f43223724398639d3 - languageName: node - linkType: hard - -"@changesets/errors@npm:^0.2.0": - version: 0.2.0 - resolution: "@changesets/errors@npm:0.2.0" - dependencies: - extendable-error: "npm:^0.1.5" - checksum: f2757c752ab04e9733b0dfd7903f1caf873f9e603794c4d9ea2294af4f937c73d07273c24be864ad0c30b6a98424360d5b96a6eab14f97f3cf2cbfd3763b95c1 - languageName: node - linkType: hard - -"@changesets/get-dependents-graph@npm:^2.0.0": - version: 2.0.0 - resolution: "@changesets/get-dependents-graph@npm:2.0.0" - dependencies: - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - chalk: "npm:^2.1.0" - fs-extra: "npm:^7.0.1" - semver: "npm:^7.5.3" - checksum: 68ac8f7f0b7b6f671b9809541238798aebe9250b083f6d9dace1305c436b565a71634412e83f642c6b21ed8656f4d548c92f583d2f4c6bf7a8665f6dddf14309 - languageName: node - linkType: hard - -"@changesets/get-release-plan@npm:^4.0.0": - version: 4.0.0 - resolution: "@changesets/get-release-plan@npm:4.0.0" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/assemble-release-plan": "npm:^6.0.0" - "@changesets/config": "npm:^3.0.0" - "@changesets/pre": "npm:^2.0.0" - "@changesets/read": "npm:^0.6.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - checksum: d77140ca1d45a6e70c3ed8a3859986a7d1ae40c015a8ca85910acec6455e333311c78e3664d9cee02ed540020f7bacde1846d3cff58ec2ffd64edd55bf8a114b - languageName: node - linkType: hard - -"@changesets/get-version-range-type@npm:^0.4.0": - version: 0.4.0 - resolution: "@changesets/get-version-range-type@npm:0.4.0" - checksum: e466208c8383489a383f37958d8b5b9aed38539f9287b47fe155a2e8855973f6960fb1724a1ee33b11580d65e1011059045ee654e8ef51e4783017d8989c9d3f - languageName: node - linkType: hard - -"@changesets/git@npm:^3.0.0": - version: 3.0.0 - resolution: "@changesets/git@npm:3.0.0" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/errors": "npm:^0.2.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - is-subdir: "npm:^1.1.1" - micromatch: "npm:^4.0.2" - spawndamnit: "npm:^2.0.0" - checksum: 75b0ce2d8c52c8141a2d07be1cc05da15463d6f93a8a95351e171c6c3d48345b3134f33bfeb695a11467adbcc51ff3d87487995a61fba99af89063eac4a8ce7a - languageName: node - linkType: hard - -"@changesets/logger@npm:^0.1.0": - version: 0.1.0 - resolution: "@changesets/logger@npm:0.1.0" - dependencies: - chalk: "npm:^2.1.0" - checksum: b40365a4e62be4bf7a75c5900e8f95b1abd8fb9ff9f2cf71a7b567532377ddd5490b0ee1d566189a91e8c8250c9e875d333cfb3e44a34c230a11fd61337f923e - languageName: node - linkType: hard - -"@changesets/parse@npm:^0.4.0": - version: 0.4.0 - resolution: "@changesets/parse@npm:0.4.0" - dependencies: - "@changesets/types": "npm:^6.0.0" - js-yaml: "npm:^3.13.1" - checksum: 8e76f8540aceb2263eb76c97f027c1990fc069bf275321ad0aabf843cb51bc6711b13118eda35c701a30a36d26f48e75f7afc14e9a5c863f8a98091021fd5d61 - languageName: node - linkType: hard - -"@changesets/pre@npm:^2.0.0": - version: 2.0.0 - resolution: "@changesets/pre@npm:2.0.0" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/errors": "npm:^0.2.0" - "@changesets/types": "npm:^6.0.0" - "@manypkg/get-packages": "npm:^1.1.3" - fs-extra: "npm:^7.0.1" - checksum: 3971fb9b3f8b1719a983b82fcd34aab573151d0765ff38ae44f31d66d040ca40d33e80808b3694ae40331ebf6d654d479352c3bc0a964ad553200ebf5d1ec44f - languageName: node - linkType: hard - -"@changesets/read@npm:^0.6.0": - version: 0.6.0 - resolution: "@changesets/read@npm:0.6.0" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/git": "npm:^3.0.0" - "@changesets/logger": "npm:^0.1.0" - "@changesets/parse": "npm:^0.4.0" - "@changesets/types": "npm:^6.0.0" - chalk: "npm:^2.1.0" - fs-extra: "npm:^7.0.1" - p-filter: "npm:^2.1.0" - checksum: ec2914fb89de923145a3482e00a2930b011c9c7a7c5690b053e344e8e8941ab06087bd3fe3b6cc01a651656c0438b5f9b96c616c7df1ad146f87b8751701bf5a - languageName: node - linkType: hard - -"@changesets/types@npm:^4.0.1": - version: 4.1.0 - resolution: "@changesets/types@npm:4.1.0" - checksum: a372ad21f6a1e0d4ce6c19573c1ca269eef1ad53c26751ad9515a24f003e7c49dcd859dbb1fedb6badaf7be956c1559e8798304039e0ec0da2d9a68583f13464 - languageName: node - linkType: hard - -"@changesets/types@npm:^6.0.0": - version: 6.0.0 - resolution: "@changesets/types@npm:6.0.0" - checksum: e755f208792547e3b9ece15ce4da22466267da810c6fd87d927a1b8cec4d7fb7f0eea0d1a7585747676238e3e4ba1ffdabe016ccb05cfa537b4e4b03ec399f41 - languageName: node - linkType: hard - -"@changesets/write@npm:^0.3.1": - version: 0.3.1 - resolution: "@changesets/write@npm:0.3.1" - dependencies: - "@babel/runtime": "npm:^7.20.1" - "@changesets/types": "npm:^6.0.0" - fs-extra: "npm:^7.0.1" - human-id: "npm:^1.0.2" - prettier: "npm:^2.7.1" - checksum: 6c6ef4c12f93ae10706eea96fae73ab05fddeaa1870102681106a29e4e92c37be9643f214c56187141ab5cf3a4cccb4e8a59212d0fa6c7c26083c5d613878c9a - languageName: node - linkType: hard - -"@colors/colors@npm:1.5.0": - version: 1.5.0 - resolution: "@colors/colors@npm:1.5.0" - checksum: eb42729851adca56d19a08e48d5a1e95efd2a32c55ae0323de8119052be0510d4b7a1611f2abcbf28c044a6c11e6b7d38f99fccdad7429300c37a8ea5fb95b44 - languageName: node - linkType: hard - -"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": - version: 1.6.0 - resolution: "@colors/colors@npm:1.6.0" - checksum: 9328a0778a5b0db243af54455b79a69e3fb21122d6c15ef9e9fcc94881d8d17352d8b2b2590f9bdd46fac5c2d6c1636dcfc14358a20c70e22daf89e1a759b629 - languageName: node - linkType: hard - -"@commitlint/cli@npm:^16.2.1": - version: 16.3.0 - resolution: "@commitlint/cli@npm:16.3.0" - dependencies: - "@commitlint/format": "npm:^16.2.1" - "@commitlint/lint": "npm:^16.2.4" - "@commitlint/load": "npm:^16.3.0" - "@commitlint/read": "npm:^16.2.1" - "@commitlint/types": "npm:^16.2.1" - lodash: "npm:^4.17.19" - resolve-from: "npm:5.0.0" - resolve-global: "npm:1.0.0" - yargs: "npm:^17.0.0" - bin: - commitlint: cli.js - checksum: 0111e3e04a89c807fa29f3cb3340a68bcd36fbcbd0b1ed8505e6d79ff887d21f345ac1007ee819d776e562ef51e1f118fa2d34b36d3b3031ee09c5ed629555b6 - languageName: node - linkType: hard - -"@commitlint/cli@npm:^18.4.3": - version: 18.6.1 - resolution: "@commitlint/cli@npm:18.6.1" - dependencies: - "@commitlint/format": "npm:^18.6.1" - "@commitlint/lint": "npm:^18.6.1" - "@commitlint/load": "npm:^18.6.1" - "@commitlint/read": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - execa: "npm:^5.0.0" - lodash.isfunction: "npm:^3.0.9" - resolve-from: "npm:5.0.0" - resolve-global: "npm:1.0.0" - yargs: "npm:^17.0.0" - bin: - commitlint: cli.js - checksum: 4ec3eec2919170aece1295253c70656d48b8f0fcb2a1f2e48819b1913effa1e92a2416a422f1cfa4b90c4b33b7a8b07184b40851bc906ac6b027b11a8927de50 - languageName: node - linkType: hard - -"@commitlint/config-conventional@npm:^16.2.1": - version: 16.2.4 - resolution: "@commitlint/config-conventional@npm:16.2.4" - dependencies: - conventional-changelog-conventionalcommits: "npm:^4.3.1" - checksum: 582888aff9f2089243c3d0677e815c130d10be211bf0f399da3aa85683b2e4b70b8e75f1d457e302f4d2b1a145acb9496c1250d5c11781d968fe00cb148b2309 - languageName: node - linkType: hard - -"@commitlint/config-conventional@npm:^18.4.3": - version: 18.6.3 - resolution: "@commitlint/config-conventional@npm:18.6.3" - dependencies: - "@commitlint/types": "npm:^18.6.1" - conventional-changelog-conventionalcommits: "npm:^7.0.2" - checksum: 047f84598f80f7f793bdb0ffc9cf9059c199da6c5bc12ab87084fa933faee08c9290e3331f6f0d7e07c4f0ffb0b5c678e5036025aeabb8e74af296b9146c6354 - languageName: node - linkType: hard - -"@commitlint/config-validator@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/config-validator@npm:16.2.1" - dependencies: - "@commitlint/types": "npm:^16.2.1" - ajv: "npm:^6.12.6" - checksum: a08c02b65071dbda93cc0b95a98f2f0524d015e07222a1f507518e41356d3a4764ab66195bfbdd99df3a13a8dca81e02f903efc7e2e625d66d3fc90e56b19f8d - languageName: node - linkType: hard - -"@commitlint/config-validator@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/config-validator@npm:18.6.1" - dependencies: - "@commitlint/types": "npm:^18.6.1" - ajv: "npm:^8.11.0" - checksum: 611dec17774e261189b041db180068c7951f6d85d12895497b5fe2408f77eccba32f8cec2bb656a165e99c2b038e806aa2d42e59e68eb0e090eb98b5b3f4e854 - languageName: node - linkType: hard - -"@commitlint/ensure@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/ensure@npm:16.2.1" - dependencies: - "@commitlint/types": "npm:^16.2.1" - lodash: "npm:^4.17.19" - checksum: 7d5f8246008eafbf14b8b4c8219dedc35bb9d6a57c7b726126ff444437d924257682a33a9ee66bb589c8cee560b865bc792e1c9d2a200a6c6f95351a559f781c - languageName: node - linkType: hard - -"@commitlint/ensure@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/ensure@npm:18.6.1" - dependencies: - "@commitlint/types": "npm:^18.6.1" - lodash.camelcase: "npm:^4.3.0" - lodash.kebabcase: "npm:^4.1.1" - lodash.snakecase: "npm:^4.1.1" - lodash.startcase: "npm:^4.4.0" - lodash.upperfirst: "npm:^4.3.1" - checksum: b7fbc70dbf1c3010f47ab76b1115c28be24b11fe0d01d47e2d64666dee801c8e98961076777f10116c3cbfeed676979d702c98934c342feafc4cdce2ef48f62c - languageName: node - linkType: hard - -"@commitlint/execute-rule@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/execute-rule@npm:16.2.1" - checksum: 064f729f9700a1f2dcce87ff397bdaf200ec690ac458d742d86111ecd6fca8b3f2f13979bb6911dc98c757e7889624f9c9d54ab9f9ba8df91449c5e0181bd036 - languageName: node - linkType: hard - -"@commitlint/execute-rule@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/execute-rule@npm:18.6.1" - checksum: cdbf397f533ddaf2d90e457d7917ad16e6d8b78fdc79aff583618c42c758159eaaec33bd92e7f5dfefd0d5c6652c5d36d511b5e73cf5a2de12eb018b1e6be5f0 - languageName: node - linkType: hard - -"@commitlint/format@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/format@npm:16.2.1" - dependencies: - "@commitlint/types": "npm:^16.2.1" - chalk: "npm:^4.0.0" - checksum: 2bd629d82ea8702ae4d87313dca991abb1b383bfa97745894886ab65120501f1b3ca9badcd7ce39cb1b190924a394f0202811bf3f78bf3c56e9d18589e9f07fe - languageName: node - linkType: hard - -"@commitlint/format@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/format@npm:18.6.1" - dependencies: - "@commitlint/types": "npm:^18.6.1" - chalk: "npm:^4.1.0" - checksum: b72d6d75e34e32c7e1db8e46ff4cf27ba0880d7a72d6371a32faa5461a7f993dd14f006a5c6d66e6d0ccb571339fbaa96aa679d7ce332cdf81e2b4762b714ea2 - languageName: node - linkType: hard - -"@commitlint/is-ignored@npm:^16.2.4": - version: 16.2.4 - resolution: "@commitlint/is-ignored@npm:16.2.4" - dependencies: - "@commitlint/types": "npm:^16.2.1" - semver: "npm:7.3.7" - checksum: 13d41f5bee5e40473b6eeb29922da576a677504174d8a928952570d87feeaa2f77e73953a603e8f1286d8d3e5ee5e73d15b7fa3004d11b19e946e9de689fa94d - languageName: node - linkType: hard - -"@commitlint/is-ignored@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/is-ignored@npm:18.6.1" - dependencies: - "@commitlint/types": "npm:^18.6.1" - semver: "npm:7.6.0" - checksum: 9be99142a2e24db8fa67776351d2ab5d4e0ead013a3317e6e011eaf24a030605c312b8fb404092c38563823a21abf213294bf322bf42a0b60ddaaa4fd791e78c - languageName: node - linkType: hard - -"@commitlint/lint@npm:^16.2.4": - version: 16.2.4 - resolution: "@commitlint/lint@npm:16.2.4" - dependencies: - "@commitlint/is-ignored": "npm:^16.2.4" - "@commitlint/parse": "npm:^16.2.1" - "@commitlint/rules": "npm:^16.2.4" - "@commitlint/types": "npm:^16.2.1" - checksum: 939c2765cadda6f270b3fa1afa46c8c4dd752d0887bc7cc32368ee2976aa6284797946fd0ef0b6ceff5763c218e14fe4a585ee0457d6308ed231284dff9e7ddd - languageName: node - linkType: hard - -"@commitlint/lint@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/lint@npm:18.6.1" - dependencies: - "@commitlint/is-ignored": "npm:^18.6.1" - "@commitlint/parse": "npm:^18.6.1" - "@commitlint/rules": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - checksum: a1e1648ee04875c0fdc82adbdcded89cbc645649d817ba069b3b0144ff74090d6ac43c2cf86e46615d1268c33cad7019d967ca769fc7c1e4ebd193b1c2363ee6 - languageName: node - linkType: hard - -"@commitlint/load@npm:^16.3.0": - version: 16.3.0 - resolution: "@commitlint/load@npm:16.3.0" - dependencies: - "@commitlint/config-validator": "npm:^16.2.1" - "@commitlint/execute-rule": "npm:^16.2.1" - "@commitlint/resolve-extends": "npm:^16.2.1" - "@commitlint/types": "npm:^16.2.1" - "@types/node": "npm:>=12" - chalk: "npm:^4.0.0" - cosmiconfig: "npm:^7.0.0" - cosmiconfig-typescript-loader: "npm:^2.0.0" - lodash: "npm:^4.17.19" - resolve-from: "npm:^5.0.0" - typescript: "npm:^4.4.3" - checksum: beedfeb60ddbd3c2f021cd263a6b7ed59cfe478c389dc07f08464d463577df9eba55f51e2620f7541566553cffd360a421468c9a488aa1a4099fc21988cccc81 - languageName: node - linkType: hard - -"@commitlint/load@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/load@npm:18.6.1" - dependencies: - "@commitlint/config-validator": "npm:^18.6.1" - "@commitlint/execute-rule": "npm:^18.6.1" - "@commitlint/resolve-extends": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - chalk: "npm:^4.1.0" - cosmiconfig: "npm:^8.3.6" - cosmiconfig-typescript-loader: "npm:^5.0.0" - lodash.isplainobject: "npm:^4.0.6" - lodash.merge: "npm:^4.6.2" - lodash.uniq: "npm:^4.5.0" - resolve-from: "npm:^5.0.0" - checksum: da4f90c92015016b97bff65b446011185b2701383929ba8f4a6e1307be919cb2c94e3b62906f460edded76c530f0185d13bee8fe20c4a78995bf8f6aae65ae30 - languageName: node - linkType: hard - -"@commitlint/message@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/message@npm:16.2.1" - checksum: fbfe334b902e9e8e64bcc5e67a08ddf41076326b726e14d0013c5fd8399d73315df27e9490848abc00127448fd4bd825a8da951db8f580557d6685c0b60f372b - languageName: node - linkType: hard - -"@commitlint/message@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/message@npm:18.6.1" - checksum: 46a81835961e474a924b219aee93754f80c8e1b3ad7e358667f831e67e8631612eed8227a0065486c32c10be8cacaa78f1dedb45e67aa2e31b677d11d1648cbd - languageName: node - linkType: hard - -"@commitlint/parse@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/parse@npm:16.2.1" - dependencies: - "@commitlint/types": "npm:^16.2.1" - conventional-changelog-angular: "npm:^5.0.11" - conventional-commits-parser: "npm:^3.2.2" - checksum: 057091005e65559319cc8a7cccb6e38324f5e7a6c337677860286ba21deeece2dcc527e0e5173a9298245a7ceca1b8af68fc7daca18e0f02487d85da70e3b669 - languageName: node - linkType: hard - -"@commitlint/parse@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/parse@npm:18.6.1" - dependencies: - "@commitlint/types": "npm:^18.6.1" - conventional-changelog-angular: "npm:^7.0.0" - conventional-commits-parser: "npm:^5.0.0" - checksum: 286bf092436f73730ecd474737b4e53c3c268ade1f01c019a628c54654b3bf3387a151fcb0510dee49dd8d2e4b5ac6f69c62da2183198c0088ee67a06f8ad247 - languageName: node - linkType: hard - -"@commitlint/read@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/read@npm:16.2.1" - dependencies: - "@commitlint/top-level": "npm:^16.2.1" - "@commitlint/types": "npm:^16.2.1" - fs-extra: "npm:^10.0.0" - git-raw-commits: "npm:^2.0.0" - checksum: 11fe789b30d491f947e6f9f87f7f5fc8b90d3fa61df24f0e6a6bf548d2b22d23f6cf415db6dd973d4f7bdbf0120d6dbd66fe0fd14ae5085503189ddb333dbf93 - languageName: node - linkType: hard - -"@commitlint/read@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/read@npm:18.6.1" - dependencies: - "@commitlint/top-level": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - git-raw-commits: "npm:^2.0.11" - minimist: "npm:^1.2.6" - checksum: 92a88348b95ad058a6572484da5593f2471335a784965fed03bec36c786b99a467782aba231127d96c23f03a030d9aed17be197e5392a5f8636b818c3c2907ac - languageName: node - linkType: hard - -"@commitlint/resolve-extends@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/resolve-extends@npm:16.2.1" - dependencies: - "@commitlint/config-validator": "npm:^16.2.1" - "@commitlint/types": "npm:^16.2.1" - import-fresh: "npm:^3.0.0" - lodash: "npm:^4.17.19" - resolve-from: "npm:^5.0.0" - resolve-global: "npm:^1.0.0" - checksum: 5db117ae4eea5ed10e6599d101d0b4b37f94834de14e00a59995218b80d45d5b2a2c11e9c4d2a322130aca221192c310ecb7fb464216fa1e43dd0c65da0db270 - languageName: node - linkType: hard - -"@commitlint/resolve-extends@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/resolve-extends@npm:18.6.1" - dependencies: - "@commitlint/config-validator": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - import-fresh: "npm:^3.0.0" - lodash.mergewith: "npm:^4.6.2" - resolve-from: "npm:^5.0.0" - resolve-global: "npm:^1.0.0" - checksum: 05fbf6742c2b3e719d40c112d37efd3b395aa17daeb1d23913f6a72f1cc2ec3c5ec7f3ba683eef12fe698c7002aa186b05c2fe0d0cefe16ef8e967d10d7c1397 - languageName: node - linkType: hard - -"@commitlint/rules@npm:^16.2.4": - version: 16.2.4 - resolution: "@commitlint/rules@npm:16.2.4" - dependencies: - "@commitlint/ensure": "npm:^16.2.1" - "@commitlint/message": "npm:^16.2.1" - "@commitlint/to-lines": "npm:^16.2.1" - "@commitlint/types": "npm:^16.2.1" - execa: "npm:^5.0.0" - checksum: 2b1e128c1fc98993fc2890668859d4b456c85417c56896c0ee8365d5c2e68f0a875026ad8a08265b89171dd01bd3d60b72ea7edcda24c3f84dcf5ceee62599b9 - languageName: node - linkType: hard - -"@commitlint/rules@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/rules@npm:18.6.1" - dependencies: - "@commitlint/ensure": "npm:^18.6.1" - "@commitlint/message": "npm:^18.6.1" - "@commitlint/to-lines": "npm:^18.6.1" - "@commitlint/types": "npm:^18.6.1" - execa: "npm:^5.0.0" - checksum: 6ba0a70295a3bc46304c4ca4212755751c774dc0e16aea25552e632495a585d595993c308e73710bba14d6908dd72de0a5a267f3604710c61746d6c3c7397c83 - languageName: node - linkType: hard - -"@commitlint/to-lines@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/to-lines@npm:16.2.1" - checksum: cf764c7cac67403f7549700200ee011395fa708d6bb87877468c33faa951dd1cf58a3cce2228f77aafc3eb2e08034bd5d267414b03310ae0a56fb6f5681f2e72 - languageName: node - linkType: hard - -"@commitlint/to-lines@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/to-lines@npm:18.6.1" - checksum: 93c23ed056fb657618ac77b671d40fd6a90c5ecc3e850adb1715b4e4072b7a41575877e890d4c017c9f215f753ee2fd1189914fc2374d5383a4af4c5123a9f57 - languageName: node - linkType: hard - -"@commitlint/top-level@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/top-level@npm:16.2.1" - dependencies: - find-up: "npm:^5.0.0" - checksum: bbda90b28b12e76e9ef5d29196b72b5052dbbf9bceca46d9cfaaeaf9768022937f0cb1dc64511a72edfaeeccfe9ea57b1ccb56b13d87261ebb4fd9c8e95a1896 - languageName: node - linkType: hard - -"@commitlint/top-level@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/top-level@npm:18.6.1" - dependencies: - find-up: "npm:^5.0.0" - checksum: b3fc8ae12267f9c98e19f254e5eed26861c8805937883266e64397d23ef957bbd5826e53fb9c23bde55e3ae73d2963450dfa99c75425d58fec3f151f8f650cbc - languageName: node - linkType: hard - -"@commitlint/types@npm:^16.2.1": - version: 16.2.1 - resolution: "@commitlint/types@npm:16.2.1" - dependencies: - chalk: "npm:^4.0.0" - checksum: 8083c3ed7d4dc84d360b3c309e6dd7046dc46c2f5fd44f1b3f0fbd35938214b7518dc2d30fbd7902c3d15d7832243dd15fc5f502cca333bbfc94d0e071e83c28 - languageName: node - linkType: hard - -"@commitlint/types@npm:^18.6.1": - version: 18.6.1 - resolution: "@commitlint/types@npm:18.6.1" - dependencies: - chalk: "npm:^4.1.0" - checksum: 5728f5cb62bcaad5158dd8982ab5d44c1ea1aee9ac251026cd91b9a4795bb912505c904f75cbd3ae0d1bb7b4dd1e5d84990b76093230018166af8e111b658685 - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": "npm:0.3.9" - checksum: 05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 - languageName: node - linkType: hard - -"@dabh/diagnostics@npm:^2.0.2": - version: 2.0.3 - resolution: "@dabh/diagnostics@npm:2.0.3" - dependencies: - colorspace: "npm:1.1.x" - enabled: "npm:2.0.x" - kuler: "npm:^2.0.0" - checksum: a5133df8492802465ed01f2f0a5784585241a1030c362d54a602ed1839816d6c93d71dde05cf2ddb4fd0796238c19774406bd62fa2564b637907b495f52425fe - languageName: node - linkType: hard - -"@defi-wonderland/natspec-smells@npm:^1.1.6": - version: 1.1.6 - resolution: "@defi-wonderland/natspec-smells@npm:1.1.6" - dependencies: - fast-glob: "npm:3.3.2" - solc-typed-ast: "npm:18.2.4" - yargs: "npm:17.7.2" - bin: - natspec-smells: lib/main.js - checksum: 7c0cad96a7b7885387cd32bc3eb48fad9c8fddb78b42d36fe923d494a09dc18a6ba9951c641ad1c1d94829d6c6f0a759c590235ae208ff5b562a2e9582d02b7b - languageName: node - linkType: hard - -"@defi-wonderland/smock@npm:~2.3.0": - version: 2.3.5 - resolution: "@defi-wonderland/smock@npm:2.3.5" - dependencies: - "@nomicfoundation/ethereumjs-evm": "npm:^1.0.0-rc.3" - "@nomicfoundation/ethereumjs-util": "npm:^8.0.0-rc.3" - "@nomicfoundation/ethereumjs-vm": "npm:^6.0.0-rc.3" - diff: "npm:^5.0.0" - lodash.isequal: "npm:^4.5.0" - lodash.isequalwith: "npm:^4.4.0" - rxjs: "npm:^7.2.0" - semver: "npm:^7.3.5" - peerDependencies: - "@ethersproject/abi": ^5 - "@ethersproject/abstract-provider": ^5 - "@ethersproject/abstract-signer": ^5 - "@nomiclabs/hardhat-ethers": ^2 - ethers: ^5 - hardhat: ^2 - checksum: c831563fe6607841d69f5936011398a492f760f52f9cb17626b2949ff3ef7668729acc4a3a944f739417b2d1b99bc6c83580f236189f27431224021c66ac1821 - languageName: node - linkType: hard - -"@ensdomains/ens@npm:^0.4.4": - version: 0.4.5 - resolution: "@ensdomains/ens@npm:0.4.5" - dependencies: - bluebird: "npm:^3.5.2" - eth-ens-namehash: "npm:^2.0.8" - solc: "npm:^0.4.20" - testrpc: "npm:0.0.1" - web3-utils: "npm:^1.0.0-beta.31" - checksum: 15a77b5db73550546e6684cb6f8105170c9c113e3dc128ee718eabd3c2b1d13fdeb5791fa79c7b149b5b83b6e00040b7320c27796b7970fae66e8d3e5cce6561 - languageName: node - linkType: hard - -"@ensdomains/resolver@npm:^0.2.4": - version: 0.2.4 - resolution: "@ensdomains/resolver@npm:0.2.4" - checksum: 8bd21f82c3f122f56d7198cf671c08204cca2cb531fd5074fd558d625afa8a15828e92738bf80b9961575a92e4fe627208edd3f87a04c6a0fa47531c91ef0639 - languageName: node - linkType: hard - -"@envelop/core@npm:^3.0.4, @envelop/core@npm:^3.0.6": - version: 3.0.6 - resolution: "@envelop/core@npm:3.0.6" - dependencies: - "@envelop/types": "npm:3.0.2" - tslib: "npm:^2.5.0" - checksum: 8196e997f351b7d1630fc6cfb6aa0fb4257dd1769cde12da227418508f1be433ed94271b433c47b5ccd5079728b93cdb7326738afda76d49c791f3ed736d7fc5 - languageName: node - linkType: hard - -"@envelop/extended-validation@npm:^2.0.6": - version: 2.0.6 - resolution: "@envelop/extended-validation@npm:2.0.6" - dependencies: - "@graphql-tools/utils": "npm:^8.8.0" - tslib: "npm:^2.5.0" - peerDependencies: - "@envelop/core": ^3.0.6 - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 0d1cb0184dd876bcbc731a90641fe71089daf13b515d21eb6803871f95ea7cc077195d5b37a70dc65f2de659964c88fbaa849f5f92f603002e9c642416623631 - languageName: node - linkType: hard - -"@envelop/types@npm:3.0.2": - version: 3.0.2 - resolution: "@envelop/types@npm:3.0.2" - dependencies: - tslib: "npm:^2.5.0" - checksum: 1e71237bdb0d65256136760227402306e9d5aec1306f9e437085de2a1a0d8ea007be9302e9e397f96fd455f65da33cb3fe5822757af680ade9cecf218ce42a7c - languageName: node - linkType: hard - -"@envelop/validation-cache@npm:^5.1.2": - version: 5.1.3 - resolution: "@envelop/validation-cache@npm:5.1.3" - dependencies: - hash-it: "npm:^6.0.0" - lru-cache: "npm:^6.0.0" - tslib: "npm:^2.5.0" - peerDependencies: - "@envelop/core": ^3.0.6 - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 4833d4f9fb24a65d728b0aaf8e9892cb3638992dacd41b5fe5e834971d3cec4cb5f238e12dfb833ddb448b9582fbb9d6ad5386ce8654ad14c3780c6242d408d1 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 - languageName: node - linkType: hard - -"@ethereum-waffle/chai@npm:^3.4.4": - version: 3.4.4 - resolution: "@ethereum-waffle/chai@npm:3.4.4" - dependencies: - "@ethereum-waffle/provider": "npm:^3.4.4" - ethers: "npm:^5.5.2" - checksum: 69921adf1d2320e853f7d61b8ce2cf45cdba746666097dc59f7578b22374f821b245e88368c563f3fa58c32d14c981d6025342a90a3cbc005ef84afc87fee807 - languageName: node - linkType: hard - -"@ethereum-waffle/compiler@npm:^3.4.4": - version: 3.4.4 - resolution: "@ethereum-waffle/compiler@npm:3.4.4" - dependencies: - "@resolver-engine/imports": "npm:^0.3.3" - "@resolver-engine/imports-fs": "npm:^0.3.3" - "@typechain/ethers-v5": "npm:^2.0.0" - "@types/mkdirp": "npm:^0.5.2" - "@types/node-fetch": "npm:^2.5.5" - ethers: "npm:^5.0.1" - mkdirp: "npm:^0.5.1" - node-fetch: "npm:^2.6.1" - solc: "npm:^0.6.3" - ts-generator: "npm:^0.1.1" - typechain: "npm:^3.0.0" - checksum: ea54d5e0094fc74ac4ae70d4149f5ee939ff265315ea851615f169447b94aabacb56567e6477518e24758e767084aab8c4ec089ad9442a6a742c279f5883c5d2 - languageName: node - linkType: hard - -"@ethereum-waffle/ens@npm:^3.4.4": - version: 3.4.4 - resolution: "@ethereum-waffle/ens@npm:3.4.4" - dependencies: - "@ensdomains/ens": "npm:^0.4.4" - "@ensdomains/resolver": "npm:^0.2.4" - ethers: "npm:^5.5.2" - checksum: c419924fec2dde755ec0d4a1d0bf2d1317e46370d6b5dec6cc2f85636b31e00f53dc067196d0579be8802c3d0753310f591960b60e15c16968174d4553eece21 - languageName: node - linkType: hard - -"@ethereum-waffle/mock-contract@npm:^3.4.4": - version: 3.4.4 - resolution: "@ethereum-waffle/mock-contract@npm:3.4.4" - dependencies: - "@ethersproject/abi": "npm:^5.5.0" - ethers: "npm:^5.5.2" - checksum: cc91dee6822a772fa7c3aec555225e1dde952b39f2c6f10a2d45f9c908d71ece7e531fd56813aad9a5f9a486b85586865fee30cd30d595311137c87eb931e87d - languageName: node - linkType: hard - -"@ethereum-waffle/provider@npm:^3.4.4": - version: 3.4.4 - resolution: "@ethereum-waffle/provider@npm:3.4.4" - dependencies: - "@ethereum-waffle/ens": "npm:^3.4.4" - ethers: "npm:^5.5.2" - ganache-core: "npm:^2.13.2" - patch-package: "npm:^6.2.2" - postinstall-postinstall: "npm:^2.1.0" - checksum: fb0ccd2a08e8d4af81a7ba20d6c3bc89ad9c70888495a851cfe4c5432c561b87199ab1d6647e2200c35502d1c55b86797eca760536ea5503606d2de4af2e76ed - languageName: node - linkType: hard - -"@ethereumjs/common@npm:2.5.0": - version: 2.5.0 - resolution: "@ethereumjs/common@npm:2.5.0" - dependencies: - crc-32: "npm:^1.2.0" - ethereumjs-util: "npm:^7.1.1" - checksum: 98a11931150ccc4d204f3c5328979cac9928cbc0f73344427dc41561287f100670db8b0296ede04542b598a58a699f4709867fb652a17ab076bab0ef14185816 - languageName: node - linkType: hard - -"@ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.4": - version: 2.6.5 - resolution: "@ethereumjs/common@npm:2.6.5" - dependencies: - crc-32: "npm:^1.2.0" - ethereumjs-util: "npm:^7.1.5" - checksum: 065fc993e390631753e9cbc63987954338c42192d227e15a40d9a074eda9e9597916dca51970b59230c7d3b1294c5956258fe6ea29000b5555bf24fe3ff522c5 - languageName: node - linkType: hard - -"@ethereumjs/rlp@npm:^4.0.1": - version: 4.0.1 - resolution: "@ethereumjs/rlp@npm:4.0.1" - bin: - rlp: bin/rlp - checksum: 78379f288e9d88c584c2159c725c4a667a9742981d638bad760ed908263e0e36bdbd822c0a902003e0701195fd1cbde7adad621cd97fdfbf552c45e835ce022c - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:3.3.2": - version: 3.3.2 - resolution: "@ethereumjs/tx@npm:3.3.2" - dependencies: - "@ethereumjs/common": "npm:^2.5.0" - ethereumjs-util: "npm:^7.1.2" - checksum: 36b38bb56e54293cc86b02cd7146c0e653235c42a765fe704e0efd9aa96c363995c201585ede798e75f974d6d123b6f775845da2c56fbce71d9d099dc03dcb16 - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:^3.3.2": - version: 3.5.2 - resolution: "@ethereumjs/tx@npm:3.5.2" - dependencies: - "@ethereumjs/common": "npm:^2.6.4" - ethereumjs-util: "npm:^7.1.5" - checksum: 768cbe0834eef15f4726b44f2a4c52b6180884d90e58108d5251668c7e89d58572de7375d5e63be9d599e79c09259e643837a2afe876126b09c47ac35386cc20 - languageName: node - linkType: hard - -"@ethereumjs/util@npm:^8.1.0": - version: 8.1.0 - resolution: "@ethereumjs/util@npm:8.1.0" - dependencies: - "@ethereumjs/rlp": "npm:^4.0.1" - ethereum-cryptography: "npm:^2.0.0" - micro-ftch: "npm:^0.3.1" - checksum: 4e6e0449236f66b53782bab3b387108f0ddc050835bfe1381c67a7c038fea27cb85ab38851d98b700957022f0acb6e455ca0c634249cfcce1a116bad76500160 - languageName: node - linkType: hard - -"@ethersproject/abi@npm:5.0.0-beta.153": - version: 5.0.0-beta.153 - resolution: "@ethersproject/abi@npm:5.0.0-beta.153" - dependencies: - "@ethersproject/address": "npm:>=5.0.0-beta.128" - "@ethersproject/bignumber": "npm:>=5.0.0-beta.130" - "@ethersproject/bytes": "npm:>=5.0.0-beta.129" - "@ethersproject/constants": "npm:>=5.0.0-beta.128" - "@ethersproject/hash": "npm:>=5.0.0-beta.128" - "@ethersproject/keccak256": "npm:>=5.0.0-beta.127" - "@ethersproject/logger": "npm:>=5.0.0-beta.129" - "@ethersproject/properties": "npm:>=5.0.0-beta.131" - "@ethersproject/strings": "npm:>=5.0.0-beta.130" - checksum: 56a6b04596f75f5ac11f68963f1a3bef628732fd9e5ccc6d5752b1c1bf8fb8cdfae02aeacf5087cd40cd52d76d63d936850af55cd984e862c6998410031bef54 - languageName: node - linkType: hard - -"@ethersproject/abi@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/abi@npm:5.6.0" - dependencies: - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/hash": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - checksum: 17bfdeade4fed887b64708b409c665a034a94fc0d409b6f95498f0f752dd27306e71f1de55ce231f3fc0034f4579943e572ef742673ec6e5d69c136cbe70d942 - languageName: node - linkType: hard - -"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.0, @ethersproject/abi@npm:^5.0.9, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abi@npm:5.7.0" - dependencies: - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916 - languageName: node - linkType: hard - -"@ethersproject/abstract-provider@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/abstract-provider@npm:5.6.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/networks": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - "@ethersproject/web": "npm:^5.6.0" - checksum: d36fbf1f6098ef6b04a19567b8234620d19256ec77f2537d099c2b7afc666fd85c1bcdb955228fc213bfcd31e3a31e3016e1f824599a27521b81ccae22179e5b - languageName: node - linkType: hard - -"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.6.0, @ethersproject/abstract-provider@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-provider@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/networks": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/web": "npm:^5.7.0" - checksum: a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224 - languageName: node - linkType: hard - -"@ethersproject/abstract-signer@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/abstract-signer@npm:5.6.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - checksum: 8c84e7545fda6b7ebf2115700f5bdd6d41ba89a1547bc7fab51ce3ada4802d6ea84d5c87700c212d999ee6f8f374e8e123b1f67b08ff99dd77bd1defb633e042 - languageName: node - linkType: hard - -"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.0.0, @ethersproject/abstract-signer@npm:^5.6.0, @ethersproject/abstract-signer@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-signer@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - checksum: e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745 - languageName: node - linkType: hard - -"@ethersproject/address@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/address@npm:5.6.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/rlp": "npm:^5.6.0" - checksum: dada2e1d800085ef97d380f84d7a929cfccc78856ead06c122045c2bfb896cd5affb47f01fb31af70cad56172135afc93679051267847d5896f3efcb2cbba216 - languageName: node - linkType: hard - -"@ethersproject/address@npm:5.6.1": - version: 5.6.1 - resolution: "@ethersproject/address@npm:5.6.1" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.2" - "@ethersproject/bytes": "npm:^5.6.1" - "@ethersproject/keccak256": "npm:^5.6.1" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/rlp": "npm:^5.6.1" - checksum: 7ac29a0abcb9970c6f5f9a2d2e8247d3c433ee9a022861cbf4f8d437f095a5293f3d323b8ec3433df622364071232b227248f1ac04c4ddea353bf18e2e4d76cf - languageName: node - linkType: hard - -"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:>=5.0.0-beta.128, @ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.0.8, @ethersproject/address@npm:^5.6.0, @ethersproject/address@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/address@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - checksum: db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908 - languageName: node - linkType: hard - -"@ethersproject/base64@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/base64@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - checksum: 5aa21dfae72a59495823ad89251a56813dd63160d593aa126c2dfc4bd4d650318d81e4000eff6cd1eb8cfce2494300a1bf9a96e2688e2fba642e8bc5bc7a363e - languageName: node - linkType: hard - -"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.6.0, @ethersproject/base64@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/base64@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - checksum: 4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e - languageName: node - linkType: hard - -"@ethersproject/basex@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/basex@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - checksum: db108a14a7a34e538d993c8fcd18444226f9c65af80672670c784ced56b8b8e07348176394525a2675971fb30406a035dc9a3038cd478d05099712b48ba6d87f - languageName: node - linkType: hard - -"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.6.0, @ethersproject/basex@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/basex@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - checksum: 02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d - languageName: node - linkType: hard - -"@ethersproject/bignumber@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/bignumber@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - bn.js: "npm:^4.11.9" - checksum: f8f76238d9e975a849a331f6569621bfb57c0ffb62a736e67fd129a1b1ea29c0542cb8c594fcc4fbb8cd12f2625a891ad87675aeb7f524ca7808818b884721d9 - languageName: node - linkType: hard - -"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:>=5.0.0-beta.130, @ethersproject/bignumber@npm:^5.0.0, @ethersproject/bignumber@npm:^5.1.1, @ethersproject/bignumber@npm:^5.6.0, @ethersproject/bignumber@npm:^5.6.2, @ethersproject/bignumber@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/bignumber@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - bn.js: "npm:^5.2.1" - checksum: 14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2 - languageName: node - linkType: hard - -"@ethersproject/bytes@npm:5.6.1": - version: 5.6.1 - resolution: "@ethersproject/bytes@npm:5.6.1" - dependencies: - "@ethersproject/logger": "npm:^5.6.0" - checksum: 6bc6c8d7eebfe13b2976851920bf11e6b0dcc2ee91a8e013ca6ab9b55a4de7ccf9b3c8f4cdc777547c5ddc795a8ada0bf79ca91482e88d01e3957c901c0fef55 - languageName: node - linkType: hard - -"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:>=5.0.0-beta.129, @ethersproject/bytes@npm:^5.0.0, @ethersproject/bytes@npm:^5.0.8, @ethersproject/bytes@npm:^5.6.0, @ethersproject/bytes@npm:^5.6.1, @ethersproject/bytes@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/bytes@npm:5.7.0" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f - languageName: node - linkType: hard - -"@ethersproject/constants@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/constants@npm:5.6.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.0" - checksum: 61c8b0ceab8a3bdf10b15bd32c16343ea3149ddafaedb6698fb7fcf850e29061323cb3fcf93a00c79f33ba481f3e5e2547e1dc63ace9fe46fcdb48bf69e8d31b - languageName: node - linkType: hard - -"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:>=5.0.0-beta.128, @ethersproject/constants@npm:^5.6.0, @ethersproject/constants@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/constants@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - checksum: 6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273 - languageName: node - linkType: hard - -"@ethersproject/contracts@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/contracts@npm:5.6.0" - dependencies: - "@ethersproject/abi": "npm:^5.6.0" - "@ethersproject/abstract-provider": "npm:^5.6.0" - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - checksum: 1a97c93acef2125cf68b1cd0bdc950188f5231e68216dcce2a81624f438713c1364c994ac600e549491bd889599e948fe96adae5bf6244667cba9d2ba1c83323 - languageName: node - linkType: hard - -"@ethersproject/contracts@npm:5.7.0, @ethersproject/contracts@npm:^5.0.0, @ethersproject/contracts@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/contracts@npm:5.7.0" - dependencies: - "@ethersproject/abi": "npm:^5.7.0" - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - checksum: 97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41 - languageName: node - linkType: hard - -"@ethersproject/experimental@npm:^5.0.7, @ethersproject/experimental@npm:^5.6.0, @ethersproject/experimental@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/experimental@npm:5.7.0" - dependencies: - "@ethersproject/web": "npm:^5.7.0" - ethers: "npm:^5.7.0" - scrypt-js: "npm:3.0.1" - checksum: 0546f8737ca062ce7d4a890d9cb354fde34b10b042b1d6b26e7206810c39d0fdb7ac20e60686a89f3f41faf33cc4c4c7366f49700a2d0978f0457e79759a79a4 - languageName: node - linkType: hard - -"@ethersproject/hash@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/hash@npm:5.6.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - checksum: dd7dae9576dcaff1255ab2a65514e2c5f59a6a66efddc4144dc68d8f45c6bd26fdd8ed528f2cd949082526b64e2d5d8d786b9646812d310af911affc878199b4 - languageName: node - linkType: hard - -"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:>=5.0.0-beta.128, @ethersproject/hash@npm:^5.6.0, @ethersproject/hash@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/hash@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef - languageName: node - linkType: hard - -"@ethersproject/hdnode@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/hdnode@npm:5.6.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/basex": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/pbkdf2": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/sha2": "npm:^5.6.0" - "@ethersproject/signing-key": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - "@ethersproject/wordlists": "npm:^5.6.0" - checksum: 59f19629a8071366dcffae903f32ad8675640a9027541912e880bc225ed61736ebd20f774e44a586e37d79c122cffed42b3e9ec4c35db78d1d025d2e14a060ba - languageName: node - linkType: hard - -"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.6.0, @ethersproject/hdnode@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/hdnode@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/basex": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/pbkdf2": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/wordlists": "npm:^5.7.0" - checksum: 36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d - languageName: node - linkType: hard - -"@ethersproject/json-wallets@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/json-wallets@npm:5.6.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/hdnode": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/pbkdf2": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/random": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - aes-js: "npm:3.0.0" - scrypt-js: "npm:3.0.1" - checksum: 0753e152f892a06736f3c0a8d837005a393b566a6b146d818375b32377f526ee4c79d854e8168e586cf32242a640f1b10b460278fcb8eb7e1fcd5ecda1f1a974 - languageName: node - linkType: hard - -"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.6.0, @ethersproject/json-wallets@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/json-wallets@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hdnode": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/pbkdf2": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - aes-js: "npm:3.0.0" - scrypt-js: "npm:3.0.1" - checksum: f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb - languageName: node - linkType: hard - -"@ethersproject/keccak256@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/keccak256@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - js-sha3: "npm:0.8.0" - checksum: 3f99e3bd7b1125bad4c1ac10c133c2e09b93d7675bc9a54e4b0f608520ebf20df36f6d83dd6804f2cbea3b51ffd800cc9532f7239c5e0803aa58d62d7f0d0d94 - languageName: node - linkType: hard - -"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:>=5.0.0-beta.127, @ethersproject/keccak256@npm:^5.6.0, @ethersproject/keccak256@npm:^5.6.1, @ethersproject/keccak256@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/keccak256@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - js-sha3: "npm:0.8.0" - checksum: 3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033 - languageName: node - linkType: hard - -"@ethersproject/logger@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/logger@npm:5.6.0" - checksum: f4c2610cf25d833cc1bc0a4ce99227c30508f15c8acb423e8a15f12ac25e37f9f86779485e6f79a887b24df831bdbee949249eb5feb75c6b45ca761161739516 - languageName: node - linkType: hard - -"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:>=5.0.0-beta.129, @ethersproject/logger@npm:^5.6.0, @ethersproject/logger@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/logger@npm:5.7.0" - checksum: d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501 - languageName: node - linkType: hard - -"@ethersproject/networks@npm:5.6.1": - version: 5.6.1 - resolution: "@ethersproject/networks@npm:5.6.1" - dependencies: - "@ethersproject/logger": "npm:^5.6.0" - checksum: 3628b2a302dedbcb0c8c36f3e42faa688fdb46c7afe28ce95d02d2a5306a865b2f6c2e72ce6f701c3d15291d09e626d22910c10f39ea9016997ec1977d16a310 - languageName: node - linkType: hard - -"@ethersproject/networks@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/networks@npm:5.7.0" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: ac9f921a196bc8f7816c1ba43262bb22701f00ab599f4af8bd7275a7728b748ff428dd3445d375f7b2abdfe29bf85eff77cf132d25df8c78ff504c6b86c56e6e - languageName: node - linkType: hard - -"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.6.0, @ethersproject/networks@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/networks@npm:5.7.1" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0 - languageName: node - linkType: hard - -"@ethersproject/pbkdf2@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/pbkdf2@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/sha2": "npm:^5.6.0" - checksum: 5dbf03cb20dcd794db08dec21fc2a56feed7d13cf78d2358933ff936d6499b7d3c0169d0fde33cc0bfee31186df0db1dc732fd881499f3274964115be8140dfd - languageName: node - linkType: hard - -"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.6.0, @ethersproject/pbkdf2@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/pbkdf2@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - checksum: e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5 - languageName: node - linkType: hard - -"@ethersproject/properties@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/properties@npm:5.6.0" - dependencies: - "@ethersproject/logger": "npm:^5.6.0" - checksum: a137e1002d1af1e37b81279df370081c5c0fab7492fedc9798a52c10c79c6c792fef30742bc8920570cf73bfff06d6f88e89b1ef68ebbb0360d1d8f1efa8fba9 - languageName: node - linkType: hard - -"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:>=5.0.0-beta.131, @ethersproject/properties@npm:^5.6.0, @ethersproject/properties@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/properties@npm:5.7.0" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373 - languageName: node - linkType: hard - -"@ethersproject/providers@npm:5.6.2": - version: 5.6.2 - resolution: "@ethersproject/providers@npm:5.6.2" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.6.0" - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/basex": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/hash": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/networks": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/random": "npm:^5.6.0" - "@ethersproject/rlp": "npm:^5.6.0" - "@ethersproject/sha2": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - "@ethersproject/web": "npm:^5.6.0" - bech32: "npm:1.1.4" - ws: "npm:7.4.6" - checksum: 9dc8c5ff0227cc7e377e7dac42f3191b9ff4430921069025beb531d0640b93d139ae4499f098711fd3212ad77ec6c0c403780c993fd2101e05ff40e2e9cf24a4 - languageName: node - linkType: hard - -"@ethersproject/providers@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/providers@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/basex": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/networks": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/web": "npm:^5.7.0" - bech32: "npm:1.1.4" - ws: "npm:7.4.6" - checksum: 6da22fc08ee84d4f4ca806ab86d8ea17e031a820767c44190136a5210fb8962ea0531f06eeec5da0ab2d06eef815234be2f98ec017b1d3cac4c7fc511dfb5b4b - languageName: node - linkType: hard - -"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.0.0, @ethersproject/providers@npm:^5.7.1, @ethersproject/providers@npm:^5.7.2": - version: 5.7.2 - resolution: "@ethersproject/providers@npm:5.7.2" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/basex": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/networks": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/web": "npm:^5.7.0" - bech32: "npm:1.1.4" - ws: "npm:7.4.6" - checksum: 4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c - languageName: node - linkType: hard - -"@ethersproject/random@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/random@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - checksum: 85f56fcd572f158a9cbc7ca27d4f139bdb6073b1a5859940cbb6d11ffdb5d9a8b7adf812d726e590947ec2eb99ed7b86c06fcef081e0edb8ed7b7753ee84a02c - languageName: node - linkType: hard - -"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.6.0, @ethersproject/random@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/random@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b - languageName: node - linkType: hard - -"@ethersproject/rlp@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/rlp@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - checksum: f6d505fb0af334332f5a098c6e3969646e91d17a85b68db4e26228dd3866ac439e693c35337c5153e1b9e25f54c1e6c608548062fd0e7b5e9dc30c9ba8c553bd - languageName: node - linkType: hard - -"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.6.0, @ethersproject/rlp@npm:^5.6.1, @ethersproject/rlp@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/rlp@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044 - languageName: node - linkType: hard - -"@ethersproject/sha2@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/sha2@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - hash.js: "npm:1.1.7" - checksum: a56818968c89213146f57cadfc20949157dbb6643fb6d40f4a6cd7fb4b0433d5e679cc5b7b9e2efa5a7c20ae6e7f634ac8f7f560431f158aa94b05d621c3b1f8 - languageName: node - linkType: hard - -"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.6.0, @ethersproject/sha2@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/sha2@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - hash.js: "npm:1.1.7" - checksum: 0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1 - languageName: node - linkType: hard - -"@ethersproject/signing-key@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/signing-key@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - bn.js: "npm:^4.11.9" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.7" - checksum: 23da06746809652486458dc91c7df9f10a1e96653a70df40f8b51330cb1dba26e7f0270212ba029ff70a90cde94c48ef9fd2bae5d24d442e00e0b3f9ace4fd10 - languageName: node - linkType: hard - -"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.6.0, @ethersproject/signing-key@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/signing-key@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - bn.js: "npm:^5.2.1" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.7" - checksum: fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09 - languageName: node - linkType: hard - -"@ethersproject/solidity@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/solidity@npm:5.6.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/sha2": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - checksum: df4dbc47a88783312f783d30a7bde523e55a4007ee5918606cd0178b4ba569cee42b7e6b8f04b8b911b648bb6eda6a51b5fae6e56e0303d69d35bff725417061 - languageName: node - linkType: hard - -"@ethersproject/solidity@npm:5.7.0, @ethersproject/solidity@npm:^5.0.0, @ethersproject/solidity@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/solidity@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6 - languageName: node - linkType: hard - -"@ethersproject/strings@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/strings@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - checksum: bd0fea07ac99365b4da10654419415c88ad319d8229a9b0fbd26632ed9549fb033e6cd491c5504d437718173254247628d223ebcab6d29e3ab9046b66563fdba - languageName: node - linkType: hard - -"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:>=5.0.0-beta.130, @ethersproject/strings@npm:^5.6.0, @ethersproject/strings@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/strings@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1 - languageName: node - linkType: hard - -"@ethersproject/transactions@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/transactions@npm:5.6.0" - dependencies: - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/rlp": "npm:^5.6.0" - "@ethersproject/signing-key": "npm:^5.6.0" - checksum: 23eecd1d9892dd5decd1720fe52ca84c2dda1629834ae1c399582d230130c91aef5d839cc6e67ad2916fe2acfd83cebd5f9dd534e2a808b10cd3360b4032b588 - languageName: node - linkType: hard - -"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.0.0, @ethersproject/transactions@npm:^5.0.0-beta.135, @ethersproject/transactions@npm:^5.6.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/transactions@npm:5.7.0" - dependencies: - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - checksum: aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239 - languageName: node - linkType: hard - -"@ethersproject/units@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/units@npm:5.6.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/constants": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - checksum: cb92acc910e00030009de917d9a7cea72def0536aceaaa9132d3d9fcedf4b39c7645ffc3950e747763a01048bb16ccd34cb0f0d6916d4d6a209ea809180a76be - languageName: node - linkType: hard - -"@ethersproject/units@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/units@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e - languageName: node - linkType: hard - -"@ethersproject/wallet@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/wallet@npm:5.6.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.6.0" - "@ethersproject/abstract-signer": "npm:^5.6.0" - "@ethersproject/address": "npm:^5.6.0" - "@ethersproject/bignumber": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/hash": "npm:^5.6.0" - "@ethersproject/hdnode": "npm:^5.6.0" - "@ethersproject/json-wallets": "npm:^5.6.0" - "@ethersproject/keccak256": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/random": "npm:^5.6.0" - "@ethersproject/signing-key": "npm:^5.6.0" - "@ethersproject/transactions": "npm:^5.6.0" - "@ethersproject/wordlists": "npm:^5.6.0" - checksum: edc566bc2e8fd9201e1739cbc5dd207e902ffd58e8f054e73d631e48e50dd66c517c674fbc2028a830eece7ea08e911ee0a79f3bf19034db5951adf3bffe888a - languageName: node - linkType: hard - -"@ethersproject/wallet@npm:5.7.0, @ethersproject/wallet@npm:^5.0.0, @ethersproject/wallet@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/wallet@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/hdnode": "npm:^5.7.0" - "@ethersproject/json-wallets": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/wordlists": "npm:^5.7.0" - checksum: f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c - languageName: node - linkType: hard - -"@ethersproject/web@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/web@npm:5.6.0" - dependencies: - "@ethersproject/base64": "npm:^5.6.0" - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - checksum: 10fc728c022e664675a4e3d367c56bec465a1f7e8fd987c8eccfae57600276fd4a4fd2a86c2bf303c37939dd4480f9ccdf7249a4789297bc3bae5daee19e33c2 - languageName: node - linkType: hard - -"@ethersproject/web@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/web@npm:5.7.0" - dependencies: - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: c5cc371e7c5d58a8f8b8aaf98df3a1dff451534d49c266a847a9f2956e009fedf77281a5b65ed5f1ea3fb071bbf3f58ec07aa9159082359db063d11b23b886c5 - languageName: node - linkType: hard - -"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.6.0, @ethersproject/web@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/web@npm:5.7.1" - dependencies: - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453 - languageName: node - linkType: hard - -"@ethersproject/wordlists@npm:5.6.0": - version: 5.6.0 - resolution: "@ethersproject/wordlists@npm:5.6.0" - dependencies: - "@ethersproject/bytes": "npm:^5.6.0" - "@ethersproject/hash": "npm:^5.6.0" - "@ethersproject/logger": "npm:^5.6.0" - "@ethersproject/properties": "npm:^5.6.0" - "@ethersproject/strings": "npm:^5.6.0" - checksum: 47aa549e7c25cd7a995863edede77112c9af96e9aed1a9a4213c3f02f8bb025eba3de85e0da50ca7b26542867cd78f492bb1cf9c93803eb765ede54b66ba80ae - languageName: node - linkType: hard - -"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.6.0, @ethersproject/wordlists@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/wordlists@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70 - languageName: node - linkType: hard - -"@fastify/busboy@npm:^2.0.0": - version: 2.1.1 - resolution: "@fastify/busboy@npm:2.1.1" - checksum: 6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 - languageName: node - linkType: hard - -"@fastify/deepmerge@npm:^1.0.0": - version: 1.3.0 - resolution: "@fastify/deepmerge@npm:1.3.0" - checksum: 8115ed7b891189ee4ebba554a105cb69111615bdb2961f8c58a80872fac9d7b74b2c6317d545a7d378325d094ce73a91fc9c5d7d6189476779cd5a5493cb1351 - languageName: node - linkType: hard - -"@graphprotocol/client-add-source-name@npm:^1.0.20": - version: 1.0.20 - resolution: "@graphprotocol/client-add-source-name@npm:1.0.20" - dependencies: - lodash: "npm:^4.17.21" - tslib: "npm:^2.4.0" - peerDependencies: - "@graphql-mesh/types": ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 - "@graphql-tools/delegate": ^9.0.32 - "@graphql-tools/utils": ^9.2.1 - "@graphql-tools/wrap": ^9.4.2 - graphql: ^15.2.0 || ^16.0.0 - checksum: abe068a25115840ad673564eea2818622f9dc815dba1678bf665b57dbd13bfbdd34cf50a71a1e0ab9f1c7f913143935d9b06942a22a71516b6f2445d2d8be263 - languageName: node - linkType: hard - -"@graphprotocol/client-auto-pagination@npm:^1.1.18": - version: 1.1.18 - resolution: "@graphprotocol/client-auto-pagination@npm:1.1.18" - dependencies: - lodash: "npm:^4.17.21" - tslib: "npm:^2.4.0" - peerDependencies: - "@graphql-mesh/types": ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 - "@graphql-tools/delegate": ^9.0.32 - "@graphql-tools/utils": ^9.2.1 - "@graphql-tools/wrap": ^9.4.2 - graphql: ^15.2.0 || ^16.0.0 - checksum: 7e67592c28fe81452cccc43645b88ebc2f7cb44b632b69b4130a98dcd63fae42070875bd9f0ba4b40c1f3636e22168d2a6caba37b7846d4943d8af63c1a94c06 - languageName: node - linkType: hard - -"@graphprotocol/client-auto-type-merging@npm:^1.0.25": - version: 1.0.25 - resolution: "@graphprotocol/client-auto-type-merging@npm:1.0.25" - dependencies: - "@graphql-mesh/transform-type-merging": "npm:^0.93.0" - tslib: "npm:^2.4.0" - peerDependencies: - "@graphql-mesh/types": ^0.78.0 || ^0.79.0 || ^0.80.0 || ^0.81.0 || ^0.82.0 || ^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.89.0 || ^0.90.0 || ^0.91.0 || ^0.93.0 - "@graphql-tools/delegate": ^9.0.32 - graphql: ^15.2.0 || ^16.0.0 - checksum: 023330de8328c191acc6a874f976652f588f86fc0aeed7160143abfd28309101e9c06f4f48925cb33a6c9b1f0f0efee11914a12631c169914f72e0740038ab34 - languageName: node - linkType: hard - -"@graphprotocol/client-block-tracking@npm:^1.0.14": - version: 1.0.14 - resolution: "@graphprotocol/client-block-tracking@npm:1.0.14" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - "@graphql-tools/delegate": ^9.0.32 - graphql: ^15.2.0 || ^16.0.0 - checksum: 3468dabc76c4f062b060cae74ad26c826968a328ca4690c55a53d71f726784f63562f6b2eab9edf9a4a1318c62b90cc90745b8ca0ea8ea169876294603e5afcb - languageName: node - linkType: hard - -"@graphprotocol/client-cli@npm:^2.0.2": - version: 2.2.22 - resolution: "@graphprotocol/client-cli@npm:2.2.22" - dependencies: - "@graphprotocol/client-add-source-name": "npm:^1.0.20" - "@graphprotocol/client-auto-pagination": "npm:^1.1.18" - "@graphprotocol/client-auto-type-merging": "npm:^1.0.25" - "@graphprotocol/client-block-tracking": "npm:^1.0.14" - "@graphprotocol/client-polling-live": "npm:^1.1.1" - "@graphql-mesh/cli": "npm:^0.82.33" - "@graphql-mesh/graphql": "npm:^0.93.0" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - bin: - graphclient: cjs/bin.js - checksum: 4ea8473f902c73ce1b3d76f653814ae0dced279150f15de6123e750d1609a45326455b622818e9000aeb939ba6dd48e4b8c1efac8ee151e885dd1182450d0e87 - languageName: node - linkType: hard - -"@graphprotocol/client-polling-live@npm:^1.1.1": - version: 1.1.1 - resolution: "@graphprotocol/client-polling-live@npm:1.1.1" - dependencies: - "@repeaterjs/repeater": "npm:^3.0.4" - tslib: "npm:^2.4.0" - peerDependencies: - "@envelop/core": ^2.4.2 || ^3.0.0 - "@graphql-tools/merge": ^8.3.14 - graphql: ^15.2.0 || ^16.0.0 - checksum: 48552eca3ac5d84e8ee23a84877a6bb5dbbc06214974a311f7d7eeae1c880c0d41f56871934c2d278a260188444698299414152bde9fc4088c1abf07b7c7cf80 - languageName: node - linkType: hard - -"@graphprotocol/common-ts@npm:^1.8.3": - version: 1.8.7 - resolution: "@graphprotocol/common-ts@npm:1.8.7" - dependencies: - "@graphprotocol/contracts": "npm:2.1.0" - "@graphprotocol/pino-sentry-simple": "npm:0.7.1" - "@urql/core": "npm:2.4.4" - "@urql/exchange-execute": "npm:1.2.2" - body-parser: "npm:1.19.1" - bs58: "npm:4.0.1" - cors: "npm:2.8.5" - cross-fetch: "npm:3.1.5" - ethers: "npm:5.6.2" - express: "npm:4.17.3" - graphql: "npm:16.3.0" - graphql-tag: "npm:2.12.6" - helmet: "npm:5.0.2" - morgan: "npm:1.10.0" - ngeohash: "npm:0.6.3" - pg: "npm:8.7.3" - pg-hstore: "npm:2.3.4" - pino: "npm:7.6.0" - pino-multi-stream: "npm:6.0.0" - prom-client: "npm:14.0.1" - sequelize: "npm:6.19.0" - checksum: 64a974245e47bc0937ee1e7905886530786ae61fcea4e1566193466446c1bc0a18f7a7570826a1defb6c05edddb7b82f3da7a33ab5e2ce4df90340eb5d78a0ce - languageName: node - linkType: hard - -"@graphprotocol/common-ts@npm:^2.0.7": - version: 2.0.9 - resolution: "@graphprotocol/common-ts@npm:2.0.9" - dependencies: - "@graphprotocol/contracts": "npm:5.3.3" - "@graphprotocol/pino-sentry-simple": "npm:0.7.1" - "@urql/core": "npm:2.4.4" - "@urql/exchange-execute": "npm:1.2.2" - body-parser: "npm:1.20.2" - bs58: "npm:5.0.0" - cors: "npm:2.8.5" - cross-fetch: "npm:4.0.0" - ethers: "npm:5.7.0" - express: "npm:4.18.2" - graphql: "npm:16.8.0" - graphql-tag: "npm:2.12.6" - helmet: "npm:7.0.0" - morgan: "npm:1.10.0" - ngeohash: "npm:0.6.3" - pg: "npm:8.11.3" - pg-hstore: "npm:2.3.4" - pino: "npm:7.6.0" - pino-multi-stream: "npm:6.0.0" - prom-client: "npm:14.2.0" - sequelize: "npm:6.33.0" - checksum: b0009fbfcd0eb86f411627ef4cb974b1cee33922610f7636833e4b56cb9ca5652161115072e880b06e2ab500c34068d3d2f193395d0b16f69a5562d2b7585c74 - languageName: node - linkType: hard - -"@graphprotocol/contracts-monorepo@workspace:.": - version: 0.0.0-use.local - resolution: "@graphprotocol/contracts-monorepo@workspace:." - dependencies: - "@changesets/cli": "npm:^2.27.1" - "@commitlint/cli": "npm:^18.4.3" - "@commitlint/config-conventional": "npm:^18.4.3" - husky: "npm:^8.0.3" - languageName: unknown - linkType: soft - -"@graphprotocol/contracts@npm:2.1.0": - version: 2.1.0 - resolution: "@graphprotocol/contracts@npm:2.1.0" - dependencies: - console-table-printer: "npm:^2.11.1" - ethers: "npm:^5.6.0" - checksum: 948c7f667b9e7efb83b06e06fd7218d044b8a1c8fed37a555f784d9ef2ef6c840306d64163dd1d82657d61d2edb563eff35af9b96bb2ef9e76ea59a6b46b6282 - languageName: node - linkType: hard - -"@graphprotocol/contracts@npm:5.3.3": - version: 5.3.3 - resolution: "@graphprotocol/contracts@npm:5.3.3" - dependencies: - console-table-printer: "npm:^2.11.1" - ethers: "npm:^5.6.0" - checksum: 00d5fd682e829da8747eaebc65645b660e7551234fbd8a05f72b7b75ce6537dbfe51e410d84eeaa4dfe7dc87c16c276b50c30fcb6d528c83fa42698acc306af3 - languageName: node - linkType: hard - -"@graphprotocol/contracts@workspace:^7.0.0, @graphprotocol/contracts@workspace:packages/contracts": - version: 0.0.0-use.local - resolution: "@graphprotocol/contracts@workspace:packages/contracts" - dependencies: - "@arbitrum/sdk": "npm:~3.1.13" - "@defi-wonderland/smock": "npm:~2.3.0" - "@ethersproject/experimental": "npm:^5.6.0" - "@graphprotocol/common-ts": "npm:^1.8.3" - "@graphprotocol/sdk": "workspace:^0.5.0" - "@nomiclabs/hardhat-ethers": "npm:^2.2.3" - "@nomiclabs/hardhat-etherscan": "npm:^3.1.7" - "@nomiclabs/hardhat-waffle": "npm:2.0.3" - "@openzeppelin/contracts": "npm:^3.4.1" - "@openzeppelin/contracts-upgradeable": "npm:3.4.2" - "@openzeppelin/hardhat-defender": "npm:^1.8.1" - "@openzeppelin/hardhat-upgrades": "npm:^1.6.0" - "@tenderly/hardhat-tenderly": "npm:1.0.13" - "@typechain/ethers-v5": "npm:^7.0.0" - "@typechain/hardhat": "npm:^2.0.0" - "@types/bs58": "npm:^4.0.1" - "@types/chai-as-promised": "npm:^7.1.5" - "@types/dotenv": "npm:^8.2.0" - "@types/glob": "npm:^7.2.0" - "@types/inquirer": "npm:^7.3.1" - "@types/minimist": "npm:^1.2.1" - "@types/mocha": "npm:^8.2.2" - "@types/node": "npm:^20.9.0" - "@types/sinon-chai": "npm:^3.2.12" - "@types/winston": "npm:^2.4.4" - "@types/yargs": "npm:^16.0.0" - "@urql/core": "npm:^2.1.3" - arbos-precompiles: "npm:^1.0.2" - bignumber.js: "npm:^9.0.0" - chai: "npm:^4.3.4" - chai-as-promised: "npm:^7.1.1" - cli-table: "npm:^0.3.6" - console-table-printer: "npm:^2.11.1" - dotenv: "npm:^9.0.0" - eslint: "npm:^8.57.0" - eslint-graph-config: "workspace:^0.0.1" - ethereum-waffle: "npm:^3.2.0" - ethers: "npm:^5.7.2" - form-data: "npm:^4.0.0" - glob: "npm:^8.0.3" - graphql-tag: "npm:^2.12.4" - hardhat: "npm:~2.14.0" - hardhat-abi-exporter: "npm:^2.2.0" - hardhat-contract-sizer: "npm:^2.0.3" - hardhat-gas-reporter: "npm:^1.0.4" - hardhat-secure-accounts: "npm:0.0.5" - hardhat-storage-layout: "npm:0.1.6" - hardhat-tracer: "npm:^1.0.0-alpha.6" - inquirer: "npm:^8.0.0" - ipfs-http-client: "npm:47.0.1" - isomorphic-fetch: "npm:^3.0.0" - lint-staged: "npm:^10.5.4" - p-queue: "npm:^6.6.1" - prettier: "npm:^3.2.5" - prettier-plugin-solidity: "npm:^1.3.1" - solhint: "npm:^4.1.1" - solhint-graph-config: "workspace:^0.0.1" - solhint-plugin-graph: "workspace:^0.0.1" - solidity-coverage: "npm:^0.7.16" - ts-node: "npm:^10.9.1" - typechain: "npm:^5.0.0" - typescript: "npm:^5.2.2" - winston: "npm:^3.3.3" - yaml: "npm:^1.10.2" - yargs: "npm:^17.0.0" - languageName: unknown - linkType: soft - -"@graphprotocol/data-edge@workspace:packages/data-edge": - version: 0.0.0-use.local - resolution: "@graphprotocol/data-edge@workspace:packages/data-edge" - dependencies: - "@commitlint/cli": "npm:^16.2.1" - "@commitlint/config-conventional": "npm:^16.2.1" - "@nomiclabs/hardhat-ethers": "npm:^2.0.2" - "@nomiclabs/hardhat-etherscan": "npm:^3.1.2" - "@nomiclabs/hardhat-waffle": "npm:^2.0.1" - "@openzeppelin/contracts": "npm:^4.5.0" - "@openzeppelin/hardhat-upgrades": "npm:^1.8.2" - "@tenderly/hardhat-tenderly": "npm:^1.0.13" - "@typechain/ethers-v5": "npm:^9.0.0" - "@typechain/hardhat": "npm:^4.0.0" - "@types/mocha": "npm:^9.0.0" - "@types/node": "npm:^17.0.0" - chai: "npm:^4.2.0" - dotenv: "npm:^16.0.0" - eslint: "npm:^8.57.0" - eslint-graph-config: "workspace:^0.0.1" - ethereum-waffle: "npm:^3.0.2" - ethers: "npm:^5.1.3" - ethlint: "npm:^1.2.5" - hardhat: "npm:~2.14.0" - hardhat-abi-exporter: "npm:^2.2.0" - hardhat-contract-sizer: "npm:^2.0.3" - hardhat-gas-reporter: "npm:^1.0.4" - husky: "npm:^7.0.4" - lint-staged: "npm:^12.3.5" - prettier: "npm:^2.1.1" - prettier-plugin-solidity: "npm:^1.0.0-alpha.56" - solhint: "npm:^4.5.2" - solhint-graph-config: "workspace:^0.0.1" - solidity-coverage: "npm:^0.7.10" - truffle-flattener: "npm:^1.4.4" - ts-node: "npm:^10.5.0" - typechain: "npm:^7.0.0" - typescript: "npm:^4.0.2" - languageName: unknown - linkType: soft - -"@graphprotocol/horizon@workspace:^0.0.1, @graphprotocol/horizon@workspace:packages/horizon": - version: 0.0.0-use.local - resolution: "@graphprotocol/horizon@workspace:packages/horizon" - dependencies: - "@defi-wonderland/natspec-smells": "npm:^1.1.6" - "@graphprotocol/contracts": "workspace:^7.0.0" - "@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.9" - "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.9" - "@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.9" - "@openzeppelin/contracts": "npm:^5.0.2" - "@openzeppelin/contracts-upgradeable": "npm:^5.0.2" - "@typechain/ethers-v6": "npm:^0.5.0" - "@typechain/hardhat": "npm:^9.0.0" - "@types/chai": "npm:^4.2.0" - "@types/mocha": "npm:>=9.1.0" - "@types/node": "npm:>=16.0.0" - chai: "npm:^4.2.0" - eslint: "npm:^8.56.0" - eslint-graph-config: "workspace:^0.0.1" - ethers: "npm:^6.13.4" - hardhat: "npm:^2.22.18" - hardhat-contract-sizer: "npm:^2.10.0" - hardhat-gas-reporter: "npm:^1.0.8" - hardhat-graph-protocol: "workspace:^0.0.1" - hardhat-secure-accounts: "npm:^1.0.5" - hardhat-storage-layout: "npm:^0.1.7" - lint-staged: "npm:^15.2.2" - prettier: "npm:^3.2.5" - prettier-plugin-solidity: "npm:^1.3.1" - solhint: "npm:^4.5.2" - solhint-graph-config: "workspace:^0.0.1" - solhint-plugin-graph: "workspace:^0.0.1" - solidity-coverage: "npm:^0.8.0" - ts-node: "npm:>=8.0.0" - typechain: "npm:^8.3.0" - typescript: "npm:^5.6.3" - languageName: unknown - linkType: soft - -"@graphprotocol/pino-sentry-simple@npm:0.7.1": - version: 0.7.1 - resolution: "@graphprotocol/pino-sentry-simple@npm:0.7.1" - dependencies: - "@sentry/node": "npm:^5.21.1" - pumpify: "npm:^2.0.1" - split2: "npm:^3.1.1" - through2: "npm:^3.0.1" - checksum: 4aad42ecc41ebc7a447f03e351ce10034619da119f1d427231f7abc329050bbe34b44d88f92c0e7f41e879541bc747c1814b3fe3a32d3b8fdafb7acfc7635202 - languageName: node - linkType: hard - -"@graphprotocol/sdk@workspace:^0.5.0, @graphprotocol/sdk@workspace:packages/sdk": - version: 0.0.0-use.local - resolution: "@graphprotocol/sdk@workspace:packages/sdk" - dependencies: - "@arbitrum/sdk": "npm:~3.1.13" - "@ethersproject/experimental": "npm:^5.7.0" - "@graphprotocol/common-ts": "npm:^2.0.7" - "@graphprotocol/contracts": "workspace:^7.0.0" - "@nomicfoundation/hardhat-network-helpers": "npm:^1.0.9" - "@nomiclabs/hardhat-ethers": "npm:^2.2.3" - "@types/chai": "npm:^4.3.9" - "@types/chai-as-promised": "npm:^7.1.7" - "@types/debug": "npm:^4.1.10" - "@types/inquirer": "npm:^8.0.0" - "@types/lodash": "npm:^4.14.200" - "@types/mocha": "npm:^10.0.3" - "@types/node": "npm:^20.8.7" - "@typescript-eslint/eslint-plugin": "npm:^6.8.0" - "@typescript-eslint/parser": "npm:^6.8.0" - chai: "npm:^4.3.10" - chai-as-promised: "npm:^7.1.1" - debug: "npm:^4.3.4" - eslint: "npm:^8.52.0" - eslint-config-prettier: "npm:^9.0.0" - eslint-plugin-no-only-tests: "npm:^3.1.0" - eslint-plugin-prettier: "npm:^5.0.1" - ethers: "npm:^5.7.0" - hardhat: "npm:~2.14.0" - hardhat-secure-accounts: "npm:^0.0.6" - inquirer: "npm:^8.0.0" - lodash: "npm:^4.17.21" - prettier: "npm:^3.0.3" - ts-node: "npm:^10.9.1" - typescript: "npm:^5.1.6" - yaml: "npm:^1.10.2" - languageName: unknown - linkType: soft - -"@graphprotocol/subgraph-service@workspace:^0.0.1, @graphprotocol/subgraph-service@workspace:packages/subgraph-service": - version: 0.0.0-use.local - resolution: "@graphprotocol/subgraph-service@workspace:packages/subgraph-service" - dependencies: - "@defi-wonderland/natspec-smells": "npm:^1.1.6" - "@graphprotocol/contracts": "workspace:^7.0.0" - "@graphprotocol/horizon": "workspace:^0.0.1" - "@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.9" - "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.9" - "@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.9" - "@openzeppelin/contracts": "npm:^5.0.2" - "@openzeppelin/contracts-upgradeable": "npm:^5.0.2" - "@typechain/ethers-v6": "npm:^0.5.0" - "@typechain/hardhat": "npm:^9.0.0" - "@types/chai": "npm:^4.2.0" - "@types/mocha": "npm:>=9.1.0" - "@types/node": "npm:>=16.0.0" - chai: "npm:^4.2.0" - eslint: "npm:^8.56.0" - eslint-graph-config: "workspace:^0.0.1" - ethers: "npm:^6.13.4" - hardhat: "npm:^2.22.18" - hardhat-contract-sizer: "npm:^2.10.0" - hardhat-gas-reporter: "npm:^1.0.8" - hardhat-graph-protocol: "workspace:^0.0.1" - hardhat-secure-accounts: "npm:^1.0.5" - 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" - solhint: "npm:^4.5.4" - solhint-graph-config: "workspace:^0.0.1" - solhint-plugin-graph: "workspace:^0.0.1" - solidity-coverage: "npm:^0.8.0" - solidity-docgen: "npm:^0.6.0-beta.36" - ts-node: "npm:>=8.0.0" - typechain: "npm:^8.3.0" - typescript: "npm:^5.3.3" - languageName: unknown - linkType: soft - -"@graphprotocol/token-distribution@workspace:packages/token-distribution": - version: 0.0.0-use.local - resolution: "@graphprotocol/token-distribution@workspace:packages/token-distribution" - dependencies: - "@ethersproject/experimental": "npm:^5.0.7" - "@graphprotocol/client-cli": "npm:^2.0.2" - "@graphprotocol/contracts": "workspace:^7.0.0" - "@nomiclabs/hardhat-ethers": "npm:^2.0.0" - "@nomiclabs/hardhat-etherscan": "npm:^3.1.7" - "@nomiclabs/hardhat-waffle": "npm:^2.0.0" - "@openzeppelin/contracts": "npm:^3.3.0-solc-0.7" - "@openzeppelin/contracts-upgradeable": "npm:3.4.2" - "@openzeppelin/hardhat-upgrades": "npm:^1.22.1" - "@typechain/ethers-v5": "npm:^7.0.0" - "@typechain/hardhat": "npm:^2.0.0" - "@types/mocha": "npm:^9.1.0" - "@types/node": "npm:^20.4.2" - chai: "npm:^4.2.0" - coingecko-api: "npm:^1.0.10" - consola: "npm:^2.15.0" - dotenv: "npm:^16.0.0" - eslint: "npm:^8.56.0" - eslint-graph-config: "workspace:^" - ethereum-waffle: "npm:^3.1.1" - ethers: "npm:^5.0.18" - graphql: "npm:^16.5.0" - hardhat: "npm:^2.6.1" - hardhat-abi-exporter: "npm:^2.0.1" - hardhat-contract-sizer: "npm:^2.0.1" - hardhat-deploy: "npm:^0.7.0-beta.9" - hardhat-gas-reporter: "npm:^1.0.1" - inquirer: "npm:8.0.0" - p-queue: "npm:^6.6.2" - prettier: "npm:^3.2.5" - prettier-plugin-solidity: "npm:^1.3.1" - solhint-community: "npm:^3.7.0" - solhint-graph-config: "workspace:^0.0.1" - solhint-plugin-prettier: "npm:^0.1.0" - ts-node: "npm:^10.9.1" - typechain: "npm:^5.0.0" - typescript: "npm:^5.2.2" - languageName: unknown - linkType: soft - -"@graphql-codegen/core@npm:^3.1.0": - version: 3.1.0 - resolution: "@graphql-codegen/core@npm:3.1.0" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.1.0" - "@graphql-tools/schema": "npm:^9.0.0" - "@graphql-tools/utils": "npm:^9.1.1" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 822be191eba5cc9f1882936501941054adfc517cb7f32e32c85843253eec268eca20d24f2ba04d9575719e36e3a5cd0df059715f3fd78d32f12f7d79c7198e79 - languageName: node - linkType: hard - -"@graphql-codegen/plugin-helpers@npm:^2.7.2": - version: 2.7.2 - resolution: "@graphql-codegen/plugin-helpers@npm:2.7.2" - dependencies: - "@graphql-tools/utils": "npm:^8.8.0" - change-case-all: "npm:1.0.14" - common-tags: "npm:1.8.2" - import-from: "npm:4.0.0" - lodash: "npm:~4.17.0" - tslib: "npm:~2.4.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: b4abce50a751d938a48b2b7ff57aa1671df1ae9d54196ccd60237077aef2e2b528b45244cb786d1b2eeb1f464c48eb7626553fdc5cf3a9013455ed27ef3ef7d2 - languageName: node - linkType: hard - -"@graphql-codegen/plugin-helpers@npm:^3.0.0": - version: 3.1.2 - resolution: "@graphql-codegen/plugin-helpers@npm:3.1.2" - dependencies: - "@graphql-tools/utils": "npm:^9.0.0" - change-case-all: "npm:1.0.15" - common-tags: "npm:1.8.2" - import-from: "npm:4.0.0" - lodash: "npm:~4.17.0" - tslib: "npm:~2.4.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: fbe326270aef17792b326ad8d8ae3e82acf1b60f3137a4d99eb605c0c8d709830537fec112705484b5fd2c9ee1d0588fbf4269f31c9a5852567c5d4c0c7057b7 - languageName: node - linkType: hard - -"@graphql-codegen/plugin-helpers@npm:^4.1.0, @graphql-codegen/plugin-helpers@npm:^4.2.0": - version: 4.2.0 - resolution: "@graphql-codegen/plugin-helpers@npm:4.2.0" - dependencies: - "@graphql-tools/utils": "npm:^9.0.0" - change-case-all: "npm:1.0.15" - common-tags: "npm:1.8.2" - import-from: "npm:4.0.0" - lodash: "npm:~4.17.0" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: cc4a63eb6cd015c9b26f6ff115257ff9c7b87c352a23b3f0622536c6df693e647ff627daef6f370c629fc515ddfdb2f7e3190f5e8cd6490a1ea513835cc358c3 - languageName: node - linkType: hard - -"@graphql-codegen/schema-ast@npm:^3.0.1": - version: 3.0.1 - resolution: "@graphql-codegen/schema-ast@npm:3.0.1" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.1.0" - "@graphql-tools/utils": "npm:^9.0.0" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: cc4602e5b97876181e6a8e3e0241e336715e489d1721121037a0a28b49d3bd800de9a331c8db2e9449c3c237e842c05db93a2c834cfcc7e3cd68a15c96a8e204 - languageName: node - linkType: hard - -"@graphql-codegen/typed-document-node@npm:^4.0.1": - version: 4.0.1 - resolution: "@graphql-codegen/typed-document-node@npm:4.0.1" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.2.0" - "@graphql-codegen/visitor-plugin-common": "npm:3.1.1" - auto-bind: "npm:~4.0.0" - change-case-all: "npm:1.0.15" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: ffa1416f7958c50845f24b59e91da488e7010d23ec2eddfb602822e08d420e7a1805eebcb2aa1eb14928515b6099410cee4c172ec3fa54496a052d0f839b9f3b - languageName: node - linkType: hard - -"@graphql-codegen/typescript-generic-sdk@npm:^3.1.0": - version: 3.1.0 - resolution: "@graphql-codegen/typescript-generic-sdk@npm:3.1.0" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^3.0.0" - "@graphql-codegen/visitor-plugin-common": "npm:2.13.1" - auto-bind: "npm:~4.0.0" - tslib: "npm:~2.4.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-tag: ^2.0.0 - checksum: 9423c37e5d01b862026a76c8b52e6d27395a60169caa509179107396df03d9cadaca0f1e875be9e42acb771af598c58104a2fce7ff75952632ee03b381903ccf - languageName: node - linkType: hard - -"@graphql-codegen/typescript-operations@npm:^3.0.4": - version: 3.0.4 - resolution: "@graphql-codegen/typescript-operations@npm:3.0.4" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.2.0" - "@graphql-codegen/typescript": "npm:^3.0.4" - "@graphql-codegen/visitor-plugin-common": "npm:3.1.1" - auto-bind: "npm:~4.0.0" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 4ea5c955e0b12b1f6aa4d6ad46b217c56e802ff5508b939a3a218c53208d03bbd308bb3dfbfbc30fe7c4bd0be4c9c51c76b0fe65c6238618ed482874c869f801 - languageName: node - linkType: hard - -"@graphql-codegen/typescript-resolvers@npm:^3.2.1": - version: 3.2.1 - resolution: "@graphql-codegen/typescript-resolvers@npm:3.2.1" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.2.0" - "@graphql-codegen/typescript": "npm:^3.0.4" - "@graphql-codegen/visitor-plugin-common": "npm:3.1.1" - "@graphql-tools/utils": "npm:^9.0.0" - auto-bind: "npm:~4.0.0" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: f87383d0f145b1b6cc8c7382f932bdbf6dd37f3f2526e1f17b73ee9f0bf9a6db8d7db04867712dd6f5839d5b967823ca3e534462335d8fd389b2bfda4aa0cb2e - languageName: node - linkType: hard - -"@graphql-codegen/typescript@npm:^3.0.4": - version: 3.0.4 - resolution: "@graphql-codegen/typescript@npm:3.0.4" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.2.0" - "@graphql-codegen/schema-ast": "npm:^3.0.1" - "@graphql-codegen/visitor-plugin-common": "npm:3.1.1" - auto-bind: "npm:~4.0.0" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 6fbf7cfda19fe8b02ab34a948c0d2cf58b68a26f8c31c03cbb097ef2196c1071d986bba6660d5da516c36c9f184e8bbef014cf851bf706aba81138a423cda250 - languageName: node - linkType: hard - -"@graphql-codegen/visitor-plugin-common@npm:2.13.1": - version: 2.13.1 - resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.1" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^2.7.2" - "@graphql-tools/optimize": "npm:^1.3.0" - "@graphql-tools/relay-operation-optimizer": "npm:^6.5.0" - "@graphql-tools/utils": "npm:^8.8.0" - auto-bind: "npm:~4.0.0" - change-case-all: "npm:1.0.14" - dependency-graph: "npm:^0.11.0" - graphql-tag: "npm:^2.11.0" - parse-filepath: "npm:^1.0.2" - tslib: "npm:~2.4.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 9dfc4893599721eba988103d4456345f915cab75c9a754e78a21bd7d05c49b00a01f38ffb70355d758626da0396ae3bb6d44fc98d5c8f9f36a1b122aea0063c4 - languageName: node - linkType: hard - -"@graphql-codegen/visitor-plugin-common@npm:3.1.1": - version: 3.1.1 - resolution: "@graphql-codegen/visitor-plugin-common@npm:3.1.1" - dependencies: - "@graphql-codegen/plugin-helpers": "npm:^4.2.0" - "@graphql-tools/optimize": "npm:^1.3.0" - "@graphql-tools/relay-operation-optimizer": "npm:^6.5.0" - "@graphql-tools/utils": "npm:^9.0.0" - auto-bind: "npm:~4.0.0" - change-case-all: "npm:1.0.15" - dependency-graph: "npm:^0.11.0" - graphql-tag: "npm:^2.11.0" - parse-filepath: "npm:^1.0.2" - tslib: "npm:~2.5.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 4a393276f091de20cc3b8c3af07c772592328ed1c304835db533ab39dfeba4f7411040480404db21b677a85c055699cdd2992139a89456ec71492df6fa4ae9bf - languageName: node - linkType: hard - -"@graphql-inspector/core@npm:3.3.0": - version: 3.3.0 - resolution: "@graphql-inspector/core@npm:3.3.0" - dependencies: - dependency-graph: "npm:0.11.0" - object-inspect: "npm:1.10.3" - tslib: "npm:^2.0.0" - peerDependencies: - graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 4a770985d66a389d00f7101d29bf91cb3e579ef2b2480c47fd6ecf48487131bd258c953e923996dc45e30dec84dccf0e031b1c16af7bd69203ab7220da21c860 - languageName: node - linkType: hard - -"@graphql-mesh/cache-localforage@npm:^0.93.1": - version: 0.93.1 - resolution: "@graphql-mesh/cache-localforage@npm:0.93.1" - dependencies: - localforage: "npm:1.10.0" - peerDependencies: - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - graphql: "*" - tslib: ^2.4.0 - checksum: aff34c39ebac62ea4c8a79e35e058beb791144b2da8d1ab7b225e8f24c3bd93fa80697c37c8b3caaaa036563a9b853e807c1d30fdc90eb4cca9000e3ad025384 - languageName: node - linkType: hard - -"@graphql-mesh/cli@npm:^0.82.33": - version: 0.82.35 - resolution: "@graphql-mesh/cli@npm:0.82.35" - dependencies: - "@graphql-codegen/core": "npm:^3.1.0" - "@graphql-codegen/typed-document-node": "npm:^4.0.1" - "@graphql-codegen/typescript": "npm:^3.0.4" - "@graphql-codegen/typescript-generic-sdk": "npm:^3.1.0" - "@graphql-codegen/typescript-operations": "npm:^3.0.4" - "@graphql-codegen/typescript-resolvers": "npm:^3.2.1" - "@graphql-mesh/config": "npm:^0.93.1" - "@graphql-mesh/cross-helpers": "npm:^0.3.4" - "@graphql-mesh/http": "npm:^0.93.1" - "@graphql-mesh/runtime": "npm:^0.93.1" - "@graphql-mesh/store": "npm:^0.93.1" - "@graphql-mesh/types": "npm:^0.93.1" - "@graphql-mesh/utils": "npm:^0.93.1" - "@graphql-tools/utils": "npm:^9.2.1" - ajv: "npm:^8.12.0" - change-case: "npm:^4.1.2" - cosmiconfig: "npm:^8.1.3" - dnscache: "npm:^1.0.2" - dotenv: "npm:^16.0.3" - graphql-import-node: "npm:^0.0.5" - graphql-ws: "npm:^5.12.1" - json-bigint-patch: "npm:^0.0.8" - json5: "npm:^2.2.3" - mkdirp: "npm:^3.0.0" - open: "npm:^7.4.2" - pascal-case: "npm:^3.1.2" - rimraf: "npm:^5.0.0" - ts-node: "npm:^10.9.1" - tsconfig-paths: "npm:^4.2.0" - tslib: "npm:^2.4.0" - typescript: "npm:^5.0.4" - ws: "npm:^8.13.0" - yargs: "npm:^17.7.1" - peerDependencies: - graphql: "*" - bin: - gql-mesh: cjs/bin.js - graphql-mesh: cjs/bin.js - graphql-mesh-esm: esm/bin.js - mesh: cjs/bin.js - checksum: 8d26fb52c8e295aeff376cac1b493e0a322899da7b8f4e8358bba50a7509dbb353c803b2926755faf3db69b0fb4531a2d1ab3df40a3ffc273be2032c08eb2cfa - languageName: node - linkType: hard - -"@graphql-mesh/config@npm:^0.93.1": - version: 0.93.1 - resolution: "@graphql-mesh/config@npm:0.93.1" - dependencies: - "@envelop/core": "npm:^3.0.6" - "@graphql-mesh/cache-localforage": "npm:^0.93.1" - "@graphql-mesh/merger-bare": "npm:^0.93.1" - "@graphql-mesh/merger-stitching": "npm:^0.93.1" - "@graphql-tools/code-file-loader": "npm:^7.3.22" - "@graphql-tools/graphql-file-loader": "npm:^7.5.17" - "@graphql-tools/load": "npm:^7.8.14" - "@whatwg-node/fetch": "npm:^0.8.3" - camel-case: "npm:^4.1.2" - param-case: "npm:^3.0.4" - pascal-case: "npm:^3.1.2" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/runtime": ^0.93.1 - "@graphql-mesh/store": ^0.93.1 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: 76eb81e5095f3ed08501c635da4e96ade693d0669f26c9a9c1f2d612e7cacf6cdfb6f6fea264a1010d4dcfc91c7cdfd8b0567d1db4f9f4b704fc740ef71fec37 - languageName: node - linkType: hard - -"@graphql-mesh/cross-helpers@npm:^0.3.4": - version: 0.3.4 - resolution: "@graphql-mesh/cross-helpers@npm:0.3.4" - dependencies: - path-browserify: "npm:1.0.1" - react-native-fs: "npm:2.20.0" - react-native-path: "npm:0.0.5" - peerDependencies: - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - checksum: ae9b067312242c9d5fd9e554e4c2314b200e6ca4c07894fe27b20f0b070acbe08658d2afbfcde7ac9853aab9583c6aa6c80dfe7fdd1fd1ee05257f43ebce76b1 - languageName: node - linkType: hard - -"@graphql-mesh/graphql@npm:^0.93.0": - version: 0.93.1 - resolution: "@graphql-mesh/graphql@npm:0.93.1" - dependencies: - "@graphql-mesh/string-interpolation": "npm:^0.4.4" - "@graphql-tools/delegate": "npm:^9.0.32" - "@graphql-tools/url-loader": "npm:^7.17.18" - "@graphql-tools/wrap": "npm:^9.4.2" - lodash.get: "npm:^4.4.2" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/store": ^0.93.1 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: a2bbe8fa602d4f0dcff5c5a02fe087f1679919c32cc6f2a05a79be5819f36ea29134ce6d20ccf17f37f0d1c3f428d5071b392ce0a001226e1a81cb72427a8eba - languageName: node - linkType: hard - -"@graphql-mesh/http@npm:^0.93.1": - version: 0.93.2 - resolution: "@graphql-mesh/http@npm:0.93.2" - dependencies: - fets: "npm:^0.1.1" - graphql-yoga: "npm:^3.9.1" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/runtime": ^0.93.2 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - graphql: "*" - tslib: ^2.4.0 - checksum: b943d4b87aad1f4c77abe9aabbf3ab6519215327c9daaf81f099970596f87fb1dc5f2dbcf6a3147de3a1645d6c777ec1a0acebd97daf3002b6560acf79297985 - languageName: node - linkType: hard - -"@graphql-mesh/merger-bare@npm:^0.93.1": - version: 0.93.1 - resolution: "@graphql-mesh/merger-bare@npm:0.93.1" - dependencies: - "@graphql-mesh/merger-stitching": "npm:0.93.1" - "@graphql-tools/schema": "npm:9.0.19" - peerDependencies: - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: a7530d11dbed7fa27e270c92b1c08c5198adc47f1c843571912851ac20c28230e00006b15c45f697d86d9e3d8da1c928c0afce2253894a71a374ee2c4163b57b - languageName: node - linkType: hard - -"@graphql-mesh/merger-stitching@npm:0.93.1, @graphql-mesh/merger-stitching@npm:^0.93.1": - version: 0.93.1 - resolution: "@graphql-mesh/merger-stitching@npm:0.93.1" - dependencies: - "@graphql-tools/delegate": "npm:^9.0.32" - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/stitch": "npm:^8.7.48" - "@graphql-tools/stitching-directives": "npm:^2.3.34" - peerDependencies: - "@graphql-mesh/store": ^0.93.1 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: ca99c35abfcec0f480fdcd973e2ce489e61cb48f7b0357a1214d6a768dcf758c3acfaffadd6eb2bc1be62cf60f1e6f9496fb7898638c6204fead83bafde8699d - languageName: node - linkType: hard - -"@graphql-mesh/runtime@npm:^0.93.1": - version: 0.93.2 - resolution: "@graphql-mesh/runtime@npm:0.93.2" - dependencies: - "@envelop/core": "npm:^3.0.6" - "@envelop/extended-validation": "npm:^2.0.6" - "@graphql-mesh/string-interpolation": "npm:^0.4.4" - "@graphql-tools/batch-delegate": "npm:^8.4.25" - "@graphql-tools/batch-execute": "npm:^8.5.19" - "@graphql-tools/delegate": "npm:^9.0.32" - "@graphql-tools/wrap": "npm:^9.4.2" - "@whatwg-node/fetch": "npm:^0.8.3" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: d07f2756e8e39f989f4d5beade8156a84d0d5ca862eceb4f778f5e689afbc1b15ba42a3f9040208d2e97753cbf1a31186cfcba9c35e78f2b2251bbbfd48e6bab - languageName: node - linkType: hard - -"@graphql-mesh/store@npm:^0.93.1": - version: 0.93.1 - resolution: "@graphql-mesh/store@npm:0.93.1" - dependencies: - "@graphql-inspector/core": "npm:3.3.0" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: 4578530d418f0d96f90455836b773863affac2fd8de17417c9dc08f47524d30a6c2e287c9e03159e2d5d526cc4e42498d7edc346325d98efd9c06359ca470076 - languageName: node - linkType: hard - -"@graphql-mesh/string-interpolation@npm:^0.4.4": - version: 0.4.4 - resolution: "@graphql-mesh/string-interpolation@npm:0.4.4" - dependencies: - dayjs: "npm:1.11.7" - json-pointer: "npm:0.6.2" - lodash.get: "npm:4.4.2" - peerDependencies: - graphql: "*" - tslib: ^2.4.0 - checksum: 5c39c1e5955b0de3048f55c29f26a20fbf25e595b02c6fb157d0fff75198277a960947bb2768f2ab94444cc590e796f264093a0d12c03759ed037b8febf7c558 - languageName: node - linkType: hard - -"@graphql-mesh/transform-type-merging@npm:^0.93.0": - version: 0.93.1 - resolution: "@graphql-mesh/transform-type-merging@npm:0.93.1" - dependencies: - "@graphql-tools/delegate": "npm:^9.0.32" - "@graphql-tools/stitching-directives": "npm:^2.3.34" - peerDependencies: - "@graphql-mesh/types": ^0.93.1 - "@graphql-mesh/utils": ^0.93.1 - graphql: "*" - tslib: ^2.4.0 - checksum: e57855f091267898783dc195dff16c9d0ac8e0c3dc4cbfff0e3f622d137dd45f3f982c92c5f74c3445fd5683b54ee762e25ac7a576393c363c99b83f33099b18 - languageName: node - linkType: hard - -"@graphql-mesh/types@npm:^0.93.1": - version: 0.93.2 - resolution: "@graphql-mesh/types@npm:0.93.2" - dependencies: - "@graphql-tools/batch-delegate": "npm:^8.4.25" - "@graphql-tools/delegate": "npm:^9.0.32" - "@graphql-typed-document-node/core": "npm:^3.2.0" - peerDependencies: - "@graphql-mesh/store": ^0.93.1 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: 4f8494cb84f0412c9ac6272ea4374e55b7ce722bc4037389118b080362533985c16f4bdd7ca558439949c1cf3b13e754c8dfdbd350aa8ceb37fc5af939b9a7a0 - languageName: node - linkType: hard - -"@graphql-mesh/utils@npm:^0.93.1": - version: 0.93.2 - resolution: "@graphql-mesh/utils@npm:0.93.2" - dependencies: - "@graphql-mesh/string-interpolation": "npm:^0.4.4" - "@graphql-tools/delegate": "npm:^9.0.32" - dset: "npm:^3.1.2" - js-yaml: "npm:^4.1.0" - lodash.get: "npm:^4.4.2" - lodash.topath: "npm:^4.5.2" - tiny-lru: "npm:^8.0.2" - peerDependencies: - "@graphql-mesh/cross-helpers": ^0.3.4 - "@graphql-mesh/types": ^0.93.2 - "@graphql-tools/utils": ^9.2.1 - graphql: "*" - tslib: ^2.4.0 - checksum: 13752b9baf563e367a7c88362686b0abbe8b9e59ec20e91aa0081232466a9765988e6e130cd5aed56909c890a7be7ca0957b8aa654f0d90a58e4aee3f290ebb0 - languageName: node - linkType: hard - -"@graphql-tools/batch-delegate@npm:^8.4.25, @graphql-tools/batch-delegate@npm:^8.4.27": - version: 8.4.27 - resolution: "@graphql-tools/batch-delegate@npm:8.4.27" - dependencies: - "@graphql-tools/delegate": "npm:^9.0.35" - "@graphql-tools/utils": "npm:^9.2.1" - dataloader: "npm:2.2.2" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 86e840667f707d87dd5932d918b1df72d0df43d9edff76486ab1eb5ca9ba875d8bce66816abf42a67b91168dbd76efa6337323efbd510eaa564a7b2e7e4e6580 - languageName: node - linkType: hard - -"@graphql-tools/batch-execute@npm:^8.5.19, @graphql-tools/batch-execute@npm:^8.5.22": - version: 8.5.22 - resolution: "@graphql-tools/batch-execute@npm:8.5.22" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - dataloader: "npm:^2.2.2" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: ff5ad8f36844cfa823061e6aa4cb0e5c4e2ebbd716c02c04bc1fdf637799fea760abd9f53083e9ebb038a0aa61263cf6360535776610dbfb9b0981e1deb1fb8a - languageName: node - linkType: hard - -"@graphql-tools/code-file-loader@npm:^7.3.22": - version: 7.3.23 - resolution: "@graphql-tools/code-file-loader@npm:7.3.23" - dependencies: - "@graphql-tools/graphql-tag-pluck": "npm:7.5.2" - "@graphql-tools/utils": "npm:^9.2.1" - globby: "npm:^11.0.3" - tslib: "npm:^2.4.0" - unixify: "npm:^1.0.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: c7a59c9422c20b3deecdaa227a73c900581487f3f13dc4105ffe2e32f4d740b9d9409d4aed2a8f8c78f659f5181f93a20cfbb963994c9902261a1df7486c9bd4 - languageName: node - linkType: hard - -"@graphql-tools/delegate@npm:^9.0.31, @graphql-tools/delegate@npm:^9.0.32, @graphql-tools/delegate@npm:^9.0.35": - version: 9.0.35 - resolution: "@graphql-tools/delegate@npm:9.0.35" - dependencies: - "@graphql-tools/batch-execute": "npm:^8.5.22" - "@graphql-tools/executor": "npm:^0.0.20" - "@graphql-tools/schema": "npm:^9.0.19" - "@graphql-tools/utils": "npm:^9.2.1" - dataloader: "npm:^2.2.2" - tslib: "npm:^2.5.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 1199ad14ffa1f0e8d6b12102bd78f7b0451ebe802f4bb7b4332a6fc27acf26b5d092b9dc6d656c7595efb0f7fc3bc247ba7fe1bb5317892443f42b27af4c54fc - languageName: node - linkType: hard - -"@graphql-tools/executor-graphql-ws@npm:^0.0.14": - version: 0.0.14 - resolution: "@graphql-tools/executor-graphql-ws@npm:0.0.14" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - "@repeaterjs/repeater": "npm:3.0.4" - "@types/ws": "npm:^8.0.0" - graphql-ws: "npm:5.12.1" - isomorphic-ws: "npm:5.0.0" - tslib: "npm:^2.4.0" - ws: "npm:8.13.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 35619da6da45320ea53433018c4e2aa3ceab5fed097b9b51b6151007817139c9cb9f554d44a6fc51185d3ba829824cad9758f6cd98ead052a75d3d757306400f - languageName: node - linkType: hard - -"@graphql-tools/executor-http@npm:^0.1.7": - version: 0.1.10 - resolution: "@graphql-tools/executor-http@npm:0.1.10" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - "@repeaterjs/repeater": "npm:^3.0.4" - "@whatwg-node/fetch": "npm:^0.8.1" - dset: "npm:^3.1.2" - extract-files: "npm:^11.0.0" - meros: "npm:^1.2.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: db2bb80e10bde0e6e34c3c86ed30c4f3082ba332fba5700d182045c4eb40453e670ea2277426fea31167481ed0b89446644ff106848e397b83e17c61d73218f3 - languageName: node - linkType: hard - -"@graphql-tools/executor-legacy-ws@npm:^0.0.11": - version: 0.0.11 - resolution: "@graphql-tools/executor-legacy-ws@npm:0.0.11" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - "@types/ws": "npm:^8.0.0" - isomorphic-ws: "npm:5.0.0" - tslib: "npm:^2.4.0" - ws: "npm:8.13.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: caf03080b125a9c3291a09a19747ffd7d16c99bfa378ee26bbd82d7613efcaa516d684ed74139a70267c68d8b4ff071541a4db4c9a3e9d2ea944d2bf912b6f50 - languageName: node - linkType: hard - -"@graphql-tools/executor@npm:^0.0.18": - version: 0.0.18 - resolution: "@graphql-tools/executor@npm:0.0.18" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - "@graphql-typed-document-node/core": "npm:3.2.0" - "@repeaterjs/repeater": "npm:3.0.4" - tslib: "npm:^2.4.0" - value-or-promise: "npm:1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: f3eb05d17a25f1b8e405fc473d394d0d4e8fa8533bbeb47915a2e714b60b3bd4eb34dcbb60fc631729842e05a628191ff209e57cf3ebc450289547757511de40 - languageName: node - linkType: hard - -"@graphql-tools/executor@npm:^0.0.20": - version: 0.0.20 - resolution: "@graphql-tools/executor@npm:0.0.20" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - "@graphql-typed-document-node/core": "npm:3.2.0" - "@repeaterjs/repeater": "npm:^3.0.4" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: c9300ac118040ea1da18f4cc79613292d91b6e5edc312763c5b8a9da79cc3581bc7d43a292120c7b4c71367613c4b21da3e656985dce827fae0503a5fcbcbc71 - languageName: node - linkType: hard - -"@graphql-tools/graphql-file-loader@npm:^7.5.17": - version: 7.5.17 - resolution: "@graphql-tools/graphql-file-loader@npm:7.5.17" - dependencies: - "@graphql-tools/import": "npm:6.7.18" - "@graphql-tools/utils": "npm:^9.2.1" - globby: "npm:^11.0.3" - tslib: "npm:^2.4.0" - unixify: "npm:^1.0.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: f737f14357731ad01da57755e1cf26ce375b475209d6ab7e4b656b56191a8979d2ab7dd5d1c54a1f11e04374f7a373fa95ea5ec6a001d0cef913ea208fadc65b - languageName: node - linkType: hard - -"@graphql-tools/graphql-tag-pluck@npm:7.5.2": - version: 7.5.2 - resolution: "@graphql-tools/graphql-tag-pluck@npm:7.5.2" - dependencies: - "@babel/parser": "npm:^7.16.8" - "@babel/plugin-syntax-import-assertions": "npm:^7.20.0" - "@babel/traverse": "npm:^7.16.8" - "@babel/types": "npm:^7.16.8" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 86d9558cdd64526dd8ff8c3fdcb8c242c00911fac856ea7c8d6e437a13a1ee38aea44a55c586bcba13481928f45cd3e2006712cc750a8ba5a3d43e7be6097ea8 - languageName: node - linkType: hard - -"@graphql-tools/import@npm:6.7.18": - version: 6.7.18 - resolution: "@graphql-tools/import@npm:6.7.18" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - resolve-from: "npm:5.0.0" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: d33e37a1879dd43ac2851c9bac2f2873c58bb3687f1c06e159760dbb5e540ef074d688df70cc6dbd3ee5de48d437878df8f65a7c65ae80bd025bf98f2d615732 - languageName: node - linkType: hard - -"@graphql-tools/load@npm:^7.8.14": - version: 7.8.14 - resolution: "@graphql-tools/load@npm:7.8.14" - dependencies: - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/utils": "npm:^9.2.1" - p-limit: "npm:3.1.0" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 1fa036ac596ccf48f350aa545d108c173184d9b53247f9e21c0d4ba96c5cba4a0b44281f9154f122e1e8e9d9d6eab93a5b2618ca8a797969bde1e75c1d45e786 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:^8.4.1, @graphql-tools/merge@npm:^8.4.2": - version: 8.4.2 - resolution: "@graphql-tools/merge@npm:8.4.2" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 2df55222b48e010e683572f456cf265aabae5748c59f7c1260c66dec9794b7a076d3706f04da969b77f0a32c7ccb4551fee30125931d3fe9c98a8806aae9a3f4 - languageName: node - linkType: hard - -"@graphql-tools/optimize@npm:^1.3.0": - version: 1.4.0 - resolution: "@graphql-tools/optimize@npm:1.4.0" - dependencies: - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10be773b0082fe54b9505469a89925f1a5e33f866453b88cd411261951e8718f8720451e07c56cbfb762970b56b9b45c7c748d62afcdcf9414ec64533e94e543 - languageName: node - linkType: hard - -"@graphql-tools/relay-operation-optimizer@npm:^6.5.0": - version: 6.5.18 - resolution: "@graphql-tools/relay-operation-optimizer@npm:6.5.18" - dependencies: - "@ardatan/relay-compiler": "npm:12.0.0" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 9d74d65da8bf474e256ff0cfb77afb442a968451ded6a92b8348d8ac1bca3b2c13a578ab29ac869d10d53e0101219fe8283d485fff920aa7abcc68fcbbdd9a36 - languageName: node - linkType: hard - -"@graphql-tools/schema@npm:9.0.19, @graphql-tools/schema@npm:^9.0.0, @graphql-tools/schema@npm:^9.0.18, @graphql-tools/schema@npm:^9.0.19": - version: 9.0.19 - resolution: "@graphql-tools/schema@npm:9.0.19" - dependencies: - "@graphql-tools/merge": "npm:^8.4.1" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 42fd8ca8d3c8d60b583077c201980518482ff0cd5ed0c1f14bd9b835a2689ad41d02cbd3478f7d7dea7aec1227f7639fd5deb5e6360852a2e542b96b44bfb7a4 - languageName: node - linkType: hard - -"@graphql-tools/stitch@npm:^8.7.48": - version: 8.7.50 - resolution: "@graphql-tools/stitch@npm:8.7.50" - dependencies: - "@graphql-tools/batch-delegate": "npm:^8.4.27" - "@graphql-tools/delegate": "npm:^9.0.35" - "@graphql-tools/executor": "npm:^0.0.20" - "@graphql-tools/merge": "npm:^8.4.2" - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/utils": "npm:^9.2.1" - "@graphql-tools/wrap": "npm:^9.4.2" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.11" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 806b9a9d6ef66d86bf85241ad3d7dd9c0c4c7af98d4a1ba56f048a2525946f3197f00e7b173741c258389be751fb698c28c9fbca521eea47d8b3df7e29a2b171 - languageName: node - linkType: hard - -"@graphql-tools/stitching-directives@npm:^2.3.34": - version: 2.3.34 - resolution: "@graphql-tools/stitching-directives@npm:2.3.34" - dependencies: - "@graphql-tools/delegate": "npm:^9.0.31" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: d24a9a6606f7fd551c6b597e0a2a6c22ab9235aacda1339bb6406720875b674dd32b409989c9767cb1e8fe6249fc3f8f9a3f35ad4482ec911f387b2bd819ad18 - languageName: node - linkType: hard - -"@graphql-tools/url-loader@npm:^7.17.18": - version: 7.17.18 - resolution: "@graphql-tools/url-loader@npm:7.17.18" - dependencies: - "@ardatan/sync-fetch": "npm:^0.0.1" - "@graphql-tools/delegate": "npm:^9.0.31" - "@graphql-tools/executor-graphql-ws": "npm:^0.0.14" - "@graphql-tools/executor-http": "npm:^0.1.7" - "@graphql-tools/executor-legacy-ws": "npm:^0.0.11" - "@graphql-tools/utils": "npm:^9.2.1" - "@graphql-tools/wrap": "npm:^9.4.2" - "@types/ws": "npm:^8.0.0" - "@whatwg-node/fetch": "npm:^0.8.0" - isomorphic-ws: "npm:^5.0.0" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.11" - ws: "npm:^8.12.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 963153fde3389f3e44de63c8bca3ce43c85c6ef0f9c5feb56b24d9146f4bf4fef84bebe44a961acc0e0aa0a48081add24684404b83b84bbb9f5e3fcdbc131cae - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:^8.8.0": - version: 8.13.1 - resolution: "@graphql-tools/utils@npm:8.13.1" - dependencies: - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: f9bab1370aa91e706abec4c8ea980e15293cb78bd4effba53ad2365dc39d81148db7667b3ef89b35f0a0b0ad58081ffdac4264b7125c69fa8393590ae5025745 - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1, @graphql-tools/utils@npm:^9.2.1": - version: 9.2.1 - resolution: "@graphql-tools/utils@npm:9.2.1" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 37a7bd7e14d28ff1bacc007dca84bc6cef2d7d7af9a547b5dbe52fcd134afddd6d4a7b2148cfbaff5ddba91a868453d597da77bd0457fb0be15928f916901606 - languageName: node - linkType: hard - -"@graphql-tools/wrap@npm:^9.4.2": - version: 9.4.2 - resolution: "@graphql-tools/wrap@npm:9.4.2" - dependencies: - "@graphql-tools/delegate": "npm:^9.0.31" - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 6b0aa1a78af8280c7356e2841156a6708a9a147e5991afae9586046ef000b8d08e6d0405dceb10ffbfb0c208a97a527a16d5f04ee2fbf99f6eefe98fe6037292 - languageName: node - linkType: hard - -"@graphql-typed-document-node/core@npm:3.2.0, @graphql-typed-document-node/core@npm:^3.1.1, @graphql-typed-document-node/core@npm:^3.2.0": - version: 3.2.0 - resolution: "@graphql-typed-document-node/core@npm:3.2.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 94e9d75c1f178bbae8d874f5a9361708a3350c8def7eaeb6920f2c820e82403b7d4f55b3735856d68e145e86c85cbfe2adc444fdc25519cd51f108697e99346c - languageName: node - linkType: hard - -"@graphql-yoga/logger@npm:^0.0.1": - version: 0.0.1 - resolution: "@graphql-yoga/logger@npm:0.0.1" - dependencies: - tslib: "npm:^2.3.1" - checksum: 9d786cf0de21230310874d29987695b510749f0ff3a92ded3565e837e9d141588ac8fc8669a3ab235ec0dffe4ffe920e7546004858c7d06af8ee85bdd4d09c05 - languageName: node - linkType: hard - -"@graphql-yoga/subscription@npm:^3.1.0": - version: 3.1.0 - resolution: "@graphql-yoga/subscription@npm:3.1.0" - dependencies: - "@graphql-yoga/typed-event-target": "npm:^1.0.0" - "@repeaterjs/repeater": "npm:^3.0.4" - "@whatwg-node/events": "npm:0.0.2" - tslib: "npm:^2.3.1" - checksum: 03f112b615ebc2ccd538bbbb7ac0362ffee79b23c5f5cffedb7f0a4b5bfbcc661e528a366b987fafef3193de22f828b4f76338fb5798e87fbb41955fef8070c1 - languageName: node - linkType: hard - -"@graphql-yoga/typed-event-target@npm:^1.0.0": - version: 1.0.0 - resolution: "@graphql-yoga/typed-event-target@npm:1.0.0" - dependencies: - "@repeaterjs/repeater": "npm:^3.0.4" - tslib: "npm:^2.3.1" - checksum: baf9115148db27e05b06d8394f9a4344bc66c41cc389d529d7cd5eb5100b21bab973635ae2e497c329e14305d5d9a68c9c700ad63afaa7c9642814582b3e28a3 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": "npm:^1.2.1" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: 0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.0.3" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - checksum: fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.1.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 - languageName: node - linkType: hard - -"@ljharb/resumer@npm:~0.0.1": - version: 0.0.1 - resolution: "@ljharb/resumer@npm:0.0.1" - dependencies: - "@ljharb/through": "npm:^2.3.9" - checksum: 94fbd5afa92df97cef9c149f74338b521e23297aba74a5ad87d34ee5717877f496379f502698ac04b3db24601f05c971d1824579cd6011b9e011d7e20af552b2 - languageName: node - linkType: hard - -"@ljharb/through@npm:^2.3.9, @ljharb/through@npm:~2.3.9": - version: 2.3.13 - resolution: "@ljharb/through@npm:2.3.13" - dependencies: - call-bind: "npm:^1.0.7" - checksum: fb60b2fb2c674a674d8ebdb8972ccf52f8a62a9c1f5a2ac42557bc0273231c65d642aa2d7627cbb300766a25ae4642acd0f95fba2f8a1ff891086f0cb15807c3 - languageName: node - linkType: hard - -"@manypkg/find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "@manypkg/find-root@npm:1.1.0" - dependencies: - "@babel/runtime": "npm:^7.5.5" - "@types/node": "npm:^12.7.1" - find-up: "npm:^4.1.0" - fs-extra: "npm:^8.1.0" - checksum: 0ee907698e6c73d6f1821ff630f3fec6dcf38260817c8752fec8991ac38b95ba431ab11c2773ddf9beb33d0e057f1122b00e8ffc9b8411b3fd24151413626fa6 - languageName: node - linkType: hard - -"@manypkg/get-packages@npm:^1.1.3": - version: 1.1.3 - resolution: "@manypkg/get-packages@npm:1.1.3" - dependencies: - "@babel/runtime": "npm:^7.5.5" - "@changesets/types": "npm:^4.0.1" - "@manypkg/find-root": "npm:^1.1.0" - fs-extra: "npm:^8.1.0" - globby: "npm:^11.0.0" - read-yaml-file: "npm:^1.1.0" - checksum: f05907d1174ae28861eaa06d0efdc144f773d9a4b8b65e1e7cdc01eb93361d335351b4a336e05c6aac02661be39e8809a3f7ad28bc67b6b338071434ab442130 - languageName: node - linkType: hard - -"@metamask/eth-sig-util@npm:^4.0.0": - version: 4.0.1 - resolution: "@metamask/eth-sig-util@npm:4.0.1" - dependencies: - ethereumjs-abi: "npm:^0.6.8" - ethereumjs-util: "npm:^6.2.1" - ethjs-util: "npm:^0.1.6" - tweetnacl: "npm:^1.0.3" - tweetnacl-util: "npm:^0.15.1" - checksum: 957fa16e8f0454ad45203a8416e77181853de1c9e33697f1a1582d46f18da1cca26c803a4e08bee7091a697609fc8916f399210fd5d3d2fccc34bfd0a58715f0 - languageName: node - linkType: hard - -"@multiformats/base-x@npm:^4.0.1": - version: 4.0.1 - resolution: "@multiformats/base-x@npm:4.0.1" - checksum: f6d16d2d7793ea371206fc17853a0932a7e697ddc739a6b63421a7ee090ee8ab28224c3c7e4401899d0a343bc95284a5f0aa7502edadfb5ad21967f9cbd6a9d2 - languageName: node - linkType: hard - -"@noble/curves@npm:1.2.0": - version: 1.2.0 - resolution: "@noble/curves@npm:1.2.0" - dependencies: - "@noble/hashes": "npm:1.3.2" - checksum: 0bac7d1bbfb3c2286910b02598addd33243cb97c3f36f987ecc927a4be8d7d88e0fcb12b0f0ef8a044e7307d1844dd5c49bb724bfa0a79c8ec50ba60768c97f6 - languageName: node - linkType: hard - -"@noble/curves@npm:1.3.0, @noble/curves@npm:~1.3.0": - version: 1.3.0 - resolution: "@noble/curves@npm:1.3.0" - dependencies: - "@noble/hashes": "npm:1.3.3" - checksum: 704bf8fda8e1365a9bb9e9945bd06645ef4ce85aa2fac5594abe09f19889197518152319481b89a271e0ee011787bd2ee87202441500bca7ca587a2c3ac10b01 - languageName: node - linkType: hard - -"@noble/hashes@npm:1.2.0, @noble/hashes@npm:~1.2.0": - version: 1.2.0 - resolution: "@noble/hashes@npm:1.2.0" - checksum: 8bd3edb7bb6a9068f806a9a5a208cc2144e42940a21c049d8e9a0c23db08bef5cf1cfd844a7e35489b5ab52c6fa6299352075319e7f531e0996d459c38cfe26a - languageName: node - linkType: hard - -"@noble/hashes@npm:1.3.2": - version: 1.3.2 - resolution: "@noble/hashes@npm:1.3.2" - checksum: 2482cce3bce6a596626f94ca296e21378e7a5d4c09597cbc46e65ffacc3d64c8df73111f2265444e36a3168208628258bbbaccba2ef24f65f58b2417638a20e7 - languageName: node - linkType: hard - -"@noble/hashes@npm:1.3.3, @noble/hashes@npm:~1.3.2": - version: 1.3.3 - resolution: "@noble/hashes@npm:1.3.3" - checksum: 23c020b33da4172c988e44100e33cd9f8f6250b68b43c467d3551f82070ebd9716e0d9d2347427aa3774c85934a35fa9ee6f026fca2117e3fa12db7bedae7668 - languageName: node - linkType: hard - -"@noble/hashes@npm:^1.4.0": - version: 1.4.0 - resolution: "@noble/hashes@npm:1.4.0" - checksum: 8c3f005ee72e7b8f9cff756dfae1241485187254e3f743873e22073d63906863df5d4f13d441b7530ea614b7a093f0d889309f28b59850f33b66cb26a779a4a5 - languageName: node - linkType: hard - -"@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:~1.7.0": - version: 1.7.1 - resolution: "@noble/secp256k1@npm:1.7.1" - checksum: 48091801d39daba75520012027d0ff0b1719338d96033890cfe0d287ad75af00d82769c0194a06e7e4fbd816ae3f204f4a59c9e26f0ad16b429f7e9b5403ccd5 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-arm64@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-darwin-arm64@npm:0.3.8" - checksum: 98298ddd1dd1d513245be57dc89aad51a0ff6da2f1227c32085a8d49c0d3cbc311981539037c3030b652e1008253d6e72081f019d44cf47c6aa8f14175505554 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-arm64@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-darwin-arm64@npm:0.6.5" - checksum: 1ed23f670f280834db7b0cc144d8287b3a572639917240beb6c743ff0f842fadf200eb3e226a13f0650d8a611f5092ace093679090ceb726d97fb4c6023073e6 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-arm64@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-darwin-arm64@npm:0.7.0" - checksum: 7a643fe1c2a1e907699e0b2469672f9d88510c399bd6ef893e480b601189da6daf654e73537bb811f160a397a28ce1b4fe0e36ba763919ac7ee0922a62d09d51 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-x64@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-darwin-x64@npm:0.3.8" - checksum: a09fb0030b5dc7e202e7d42aae9f52af86090999a50cbfd9a4b3197b9c7fc8c7325c01d67fdd88b7037a8831e0e89ecf131155edf2c98c453c28f37c6da346f4 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-x64@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-darwin-x64@npm:0.6.5" - checksum: 298810fe1ed61568beeb4e4a8ddfb4d3e3cf49d51f89578d5edb5817a7d131069c371d07ea000b246daa2fd57fa4853ab983e3a2e2afc9f27005156e5abfa500 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-x64@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-darwin-x64@npm:0.7.0" - checksum: c33a0320fc4f4e27ef6718a678cfc6ff9fe5b03d3fc604cb503a7291e5f9999da1b4e45ebeff77e24031c4dd53e6defecb3a0d475c9f51d60ea6f48e78f74d8e - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-gnu@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-linux-arm64-gnu@npm:0.3.8" - checksum: 20766169cb3425202a45812f01f9e49560f7cedfb797ea548759136fb8078d6179c11557b69fab8514e7f21a3f3f856dec0ba7a1584d5b431ac1440142f2012e - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-linux-arm64-gnu@npm:0.6.5" - checksum: 695850a75dda9ad00899ca2bd150c72c6b7a2470c352348540791e55459dc6f87ff88b3b647efe07dfe24d4b6aa9d9039724a9761ffc7a557e3e75a784c302a1 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-gnu@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-linux-arm64-gnu@npm:0.7.0" - checksum: 8347524cecca3a41ecb6e05581f386ccc6d7e831d4080eca5723724c4307c30ee787a944c70028360cb280a7f61d4967c152ff7b319ccfe08eadf1583a15d018 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-musl@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-linux-arm64-musl@npm:0.3.8" - checksum: dabd1ee8fc5f45382e8d58770138ba0cd6536915aa5f99459404d27dec046c76e427a0971ed705da83a6aa65e9272ac84b86b14313bd83ea4fea2c81c2d3f1e5 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-linux-arm64-musl@npm:0.6.5" - checksum: 9a6e01a545491b12673334628b6e1601c7856cb3973451ba1a4c29cf279e9a4874b5e5082fc67d899af7930b6576565e2c7e3dbe67824bfe454bf9ce87435c56 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-musl@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-linux-arm64-musl@npm:0.7.0" - checksum: ace6d7691058250341dc0d0a2915c2020cc563ab70627f816e06abca7f0181e93941e5099d4a7ca0e6f8f225caff8be2c6563ad7ab8eeaf9124cb2cc53b9d9ac - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-gnu@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-linux-x64-gnu@npm:0.3.8" - checksum: 060aaa197a8401b0142d07042e72159703c6e61ef866e98548c00ff2512deb75d179536d63a89ce6cd0866269d22b2823459be730c2766c95b73645f7d4d1afc - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-gnu@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-linux-x64-gnu@npm:0.6.5" - checksum: 959b62520cc9375284fcc1ae2ad67c5711d387912216e0b0ab7a3d087ef03967e2c8c8bd2e87697a3b1369fc6a96ec60399e3d71317a8be0cb8864d456a30e36 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-gnu@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-linux-x64-gnu@npm:0.7.0" - checksum: 11a0eb76a628772ec28fe000b3014e83081f216b0f89568eb42f46c1d3d6ee10015d897857f372087e95651aeeea5cf525c161070f2068bd5e4cf3ccdd4b0201 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-musl@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-linux-x64-musl@npm:0.3.8" - checksum: 49a7cb73b833a694744e2f5323d7268009eb1961e01ceb91f9137cf843e54571636b89418f204222d5f40b9122dd1c0e058b6efd368a438bc3bdb50205ea70d9 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-musl@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-linux-x64-musl@npm:0.6.5" - checksum: d91153a8366005e6a6124893a1da377568157709a147e6c9a18fe6dacae21d3847f02d2e9e89794dc6cb8dbdcd7ee7e49e6c9d3dc74c8dc80cea44e4810752da - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-musl@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-linux-x64-musl@npm:0.7.0" - checksum: 5559718b3ec00b9f6c9a6cfa6c60540b8f277728482db46183aa907d60f169bc7c8908551b5790c8bad2b0d618ade5ede15b94bdd209660cf1ce707b1fe99fd6 - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-x64-msvc@npm:0.3.8": - version: 0.3.8 - resolution: "@nomicfoundation/edr-win32-x64-msvc@npm:0.3.8" - checksum: b7dfea0f01fd034ff6b48c44f75836f4dda84975f49c3655c97e76f2535945ed532756e7f2c22fa31035c4a29ce26d9546051f993ce553a8c4d570298525f55c - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-x64-msvc@npm:0.6.5": - version: 0.6.5 - resolution: "@nomicfoundation/edr-win32-x64-msvc@npm:0.6.5" - checksum: 96c2f68393b517f9b45cb4e777eb594a969abc3fea10bf11756cd050a7e8cefbe27808bd44d8e8a16dc9c425133a110a2ad186e1e6d29b49f234811db52a1edb - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-x64-msvc@npm:0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr-win32-x64-msvc@npm:0.7.0" - checksum: 19c10fa99245397556bf70971cc7d68544dc4a63ec7cc087fd09b2541729ec57d03166592837394b0fad903fbb20b1428ec67eed29926227155aa5630a249306 - languageName: node - linkType: hard - -"@nomicfoundation/edr@npm:^0.3.7": - version: 0.3.8 - resolution: "@nomicfoundation/edr@npm:0.3.8" - dependencies: - "@nomicfoundation/edr-darwin-arm64": "npm:0.3.8" - "@nomicfoundation/edr-darwin-x64": "npm:0.3.8" - "@nomicfoundation/edr-linux-arm64-gnu": "npm:0.3.8" - "@nomicfoundation/edr-linux-arm64-musl": "npm:0.3.8" - "@nomicfoundation/edr-linux-x64-gnu": "npm:0.3.8" - "@nomicfoundation/edr-linux-x64-musl": "npm:0.3.8" - "@nomicfoundation/edr-win32-x64-msvc": "npm:0.3.8" - checksum: 56f4debf1d736783f498624fc2d647b075a56baedc6daf593a3e9627c99724e3fbf665245daa321a6f1db74694c11c2d70585d84fd13ecc90bf5632f503e1f04 - languageName: node - linkType: hard - -"@nomicfoundation/edr@npm:^0.6.4": - version: 0.6.5 - resolution: "@nomicfoundation/edr@npm:0.6.5" - dependencies: - "@nomicfoundation/edr-darwin-arm64": "npm:0.6.5" - "@nomicfoundation/edr-darwin-x64": "npm:0.6.5" - "@nomicfoundation/edr-linux-arm64-gnu": "npm:0.6.5" - "@nomicfoundation/edr-linux-arm64-musl": "npm:0.6.5" - "@nomicfoundation/edr-linux-x64-gnu": "npm:0.6.5" - "@nomicfoundation/edr-linux-x64-musl": "npm:0.6.5" - "@nomicfoundation/edr-win32-x64-msvc": "npm:0.6.5" - checksum: 4344efbc7173119bd69dd37c5e60a232ab8307153e9cc329014df95a60f160026042afdd4dc34188f29fc8e8c926f0a3abdf90fb69bed92be031a206da3a6df5 - languageName: node - linkType: hard - -"@nomicfoundation/edr@npm:^0.7.0": - version: 0.7.0 - resolution: "@nomicfoundation/edr@npm:0.7.0" - dependencies: - "@nomicfoundation/edr-darwin-arm64": "npm:0.7.0" - "@nomicfoundation/edr-darwin-x64": "npm:0.7.0" - "@nomicfoundation/edr-linux-arm64-gnu": "npm:0.7.0" - "@nomicfoundation/edr-linux-arm64-musl": "npm:0.7.0" - "@nomicfoundation/edr-linux-x64-gnu": "npm:0.7.0" - "@nomicfoundation/edr-linux-x64-musl": "npm:0.7.0" - "@nomicfoundation/edr-win32-x64-msvc": "npm:0.7.0" - checksum: 7dc0ae7533a9b57bfdee5275e08d160ff01cba1496cc7341a2782706b40f43e5c448ea0790b47dd1cf2712fa08295f271329109ed2313d9c7ff074ca3ae303e0 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-block@npm:4.2.2": - version: 4.2.2 - resolution: "@nomicfoundation/ethereumjs-block@npm:4.2.2" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-trie": "npm:5.0.5" - "@nomicfoundation/ethereumjs-tx": "npm:4.1.2" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - ethereum-cryptography: "npm:0.1.3" - checksum: 1c211294b3064d2bbfcf33b460438f01fb9cd77429314a90a5e2ffce5162019a384f4ae7d3825cfd386a140db191b251b475427562c53f85beffc786156f817e - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-block@npm:5.0.1": - version: 5.0.1 - resolution: "@nomicfoundation/ethereumjs-block@npm:5.0.1" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-trie": "npm:6.0.1" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - ethereum-cryptography: "npm:0.1.3" - ethers: "npm:^5.7.1" - checksum: e9e61b689f8fb6357a4d6bd1e0bd2488b8e1e549ccefd9aaea0ffa9b243191e868eb18a4017dba07bed579e5dcba06a0726a361f085f4647481a9dd4c0369905 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-blockchain@npm:6.2.2": - version: 6.2.2 - resolution: "@nomicfoundation/ethereumjs-blockchain@npm:6.2.2" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:4.2.2" - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-ethash": "npm:2.0.5" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-trie": "npm:5.0.5" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - abstract-level: "npm:^1.0.3" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - level: "npm:^8.0.0" - lru-cache: "npm:^5.1.1" - memory-level: "npm:^1.0.0" - checksum: 6fe6e315900e1d6a29d59be41f566bdfd5ffdf82ab0fe081b1999dcc4eec3a248ab080d359a56e8cde4e473ca90349b0c50fa1ab707aa3e275fb1c478237e5e2 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-blockchain@npm:7.0.1": - version: 7.0.1 - resolution: "@nomicfoundation/ethereumjs-blockchain@npm:7.0.1" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:5.0.1" - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-ethash": "npm:3.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-trie": "npm:6.0.1" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - abstract-level: "npm:^1.0.3" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - level: "npm:^8.0.0" - lru-cache: "npm:^5.1.1" - memory-level: "npm:^1.0.0" - checksum: d7dfd4584990c84fe1c5f8258839898ad6941a5ab437d2e27e98a02fe12c32e1f8e721a62f545139c7f840945048aa702010ac5aea8013b71dc4275cf9b8f73e - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-common@npm:3.1.2": - version: 3.1.2 - resolution: "@nomicfoundation/ethereumjs-common@npm:3.1.2" - dependencies: - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - crc-32: "npm:^1.2.0" - checksum: 90910630025b5bb503f36125c45395cc9f875ffdd8137a83e9c1d566678edcc8db40f8ce1dff9da1ef2c91c7d6b6d1fa75c41a9579a5d3a8f0ae669fcea244b1 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-common@npm:4.0.1": - version: 4.0.1 - resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.1" - dependencies: - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - crc-32: "npm:^1.2.0" - checksum: f082a31713bc7bc9142ea0eb09b14b450549260e9cceda85c90b87735e1c0c4ae770781e6e0bbf85393dea7ba29bb1ce04749410f9a7cabeeaf957dca64d2406 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-common@npm:4.0.4": - version: 4.0.4 - resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.4" - dependencies: - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - checksum: efaaebe41c2a3fe8b50bf12d9d134dc7611907f6eb2118f7822eaa375c54bc71bf6f6a3b2e22c754867f2cd28d619afd892b1eaa26cf1c886e0f793bda481070 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-ethash@npm:2.0.5": - version: 2.0.5 - resolution: "@nomicfoundation/ethereumjs-ethash@npm:2.0.5" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:4.2.2" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - abstract-level: "npm:^1.0.3" - bigint-crypto-utils: "npm:^3.0.23" - ethereum-cryptography: "npm:0.1.3" - checksum: 7a90ef53ae4c1ac5a314c3447966fdbefcc96481ae3a05d59e881053350c55be7c841708c61c79a2af40bbb0181d6e0db42601592f17a4db1611b199d49e8544 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-ethash@npm:3.0.1": - version: 3.0.1 - resolution: "@nomicfoundation/ethereumjs-ethash@npm:3.0.1" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:5.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - abstract-level: "npm:^1.0.3" - bigint-crypto-utils: "npm:^3.0.23" - ethereum-cryptography: "npm:0.1.3" - checksum: a4db5358e7eb28b8613bbdb3b42bd9bede093706744711aa4ca3bbefe7284bfa15b49d931d63f33afcc3de13826fe6cd40ebd78d53032db1199c0c516904dbcb - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-evm@npm:1.3.2, @nomicfoundation/ethereumjs-evm@npm:^1.0.0-rc.3": - version: 1.3.2 - resolution: "@nomicfoundation/ethereumjs-evm@npm:1.3.2" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - "@types/async-eventemitter": "npm:^0.2.1" - async-eventemitter: "npm:^0.2.4" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - mcl-wasm: "npm:^0.7.1" - rustbn.js: "npm:~0.2.0" - checksum: 4aa14d7dce597a91c25bec5975022348741cebf6ed20cda028ddcbebe739ba2e6f4c879fa1ebe849bd5c78d3fd2443ebbb7d57e1fca5a98fbe88fc9ce15d9fd6 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-evm@npm:2.0.1": - version: 2.0.1 - resolution: "@nomicfoundation/ethereumjs-evm@npm:2.0.1" - dependencies: - "@ethersproject/providers": "npm:^5.7.1" - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - mcl-wasm: "npm:^0.7.1" - rustbn.js: "npm:~0.2.0" - checksum: 3984f69022eb49c7689d70c058d95042149926fcddfcb9888cc635751beeb6e3f2401625f8e244a0cfb30d0341643cc60345b86160bd2bc9055fe1339ed1a630 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-rlp@npm:4.0.3": - version: 4.0.3 - resolution: "@nomicfoundation/ethereumjs-rlp@npm:4.0.3" - bin: - rlp: bin/rlp - checksum: 3e3c07abf53ff5832afbbdf3f3687e11e2e829699348eea1ae465084c72e024559d97e351e8f0fb27f32c7896633c7dd50b19d8de486e89cde777fd5447381cd - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-rlp@npm:5.0.1": - version: 5.0.1 - resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.1" - bin: - rlp: bin/rlp - checksum: 2b78cfb3f6da6d89a0df9913bf8960a545606b61d9a5b9f02680847b4a94ba2e1dd4ce5bc7a60bbc02c45bf2ee0c5d906f6dc86088c571895b3d05af0355b964 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-rlp@npm:5.0.4": - version: 5.0.4 - resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.4" - bin: - rlp: bin/rlp.cjs - checksum: 58e276c190f5f33e12ff4a2c7fe4c3c71cb139029eddd9b46488e23e168c422bc0b55368c0b7805ca8b09e9ea6b8298cd74c63f5c2ed4b6fb447635ed7a317f7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-statemanager@npm:1.0.5": - version: 1.0.5 - resolution: "@nomicfoundation/ethereumjs-statemanager@npm:1.0.5" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-trie": "npm:5.0.5" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - functional-red-black-tree: "npm:^1.0.1" - checksum: 4a05b7a86a1bbc8fd409416edf437d99d9d4498c438e086c30250cb3dc92ff00086f9ff959f469c72d46178e831104dc15f10465e27fbbf0ca97da27d6889a0c - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-statemanager@npm:2.0.1": - version: 2.0.1 - resolution: "@nomicfoundation/ethereumjs-statemanager@npm:2.0.1" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - ethers: "npm:^5.7.1" - js-sdsl: "npm:^4.1.4" - checksum: a2077f959056d4b2f85fa50ee691e00c33c5044fb3604743524135b9ce7c3d73fda5a81397a7dfb46378cc762afb71394fbc542b4026ece6fb7e319709ad17f4 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-trie@npm:5.0.5": - version: 5.0.5 - resolution: "@nomicfoundation/ethereumjs-trie@npm:5.0.5" - dependencies: - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - ethereum-cryptography: "npm:0.1.3" - readable-stream: "npm:^3.6.0" - checksum: cab544fef4bcdc3acef1bfb4ee9f2fde44b66a22b2329bfd67515facdf115a318961f8bc0e38befded838e8fc513974f90f340b53a98b8469e54960b15cd857a - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-trie@npm:6.0.1": - version: 6.0.1 - resolution: "@nomicfoundation/ethereumjs-trie@npm:6.0.1" - dependencies: - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - "@types/readable-stream": "npm:^2.3.13" - ethereum-cryptography: "npm:0.1.3" - readable-stream: "npm:^3.6.0" - checksum: a3395d79059f9666a52c3604c8e2fd83494986922f407a7f865fc9a006483838be4ff5a996b72fa8795a17b65b433ab058f772a45d4470f2a7f61c58ab2217f1 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-tx@npm:4.1.2": - version: 4.1.2 - resolution: "@nomicfoundation/ethereumjs-tx@npm:4.1.2" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - ethereum-cryptography: "npm:0.1.3" - checksum: cb569c882d3ce922acff1a4238864f11109ac5a30dfa481b1ed9c7043c2b773f3a5fc88a3f4fefb62b11c448305296533f555f93d1d969a5abd3c2a13c80ed74 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-tx@npm:5.0.1": - version: 5.0.1 - resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.1" - dependencies: - "@chainsafe/ssz": "npm:^0.9.2" - "@ethersproject/providers": "npm:^5.7.2" - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - ethereum-cryptography: "npm:0.1.3" - checksum: 1c02446dc03016cadff4c5952d43c99086aae166e8ac111a927cded819570cb7e91392d396ef9d2c782bd20e5dad8e2d13bac224255a0aef1bc3beaf714d8963 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-tx@npm:5.0.4": - version: 5.0.4 - resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.4" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - ethereum-cryptography: "npm:0.1.3" - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - checksum: 1e4ba6d7d6aa8d44a807e3332e98e8fbea70c1aa91be3b39b581c4b498554ee380eec21442d737d2b646c722da306dd1179a5e37747b285b93690aab041d52a7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-util@npm:8.0.6, @nomicfoundation/ethereumjs-util@npm:^8.0.0-rc.3": - version: 8.0.6 - resolution: "@nomicfoundation/ethereumjs-util@npm:8.0.6" - dependencies: - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - ethereum-cryptography: "npm:0.1.3" - checksum: 647006f4dfa962f61cec54c34ff9939468042cf762ff3b2cf80c8362558f21750348a3cda63dc9890b1cb2ba664f97dc4a892afca5f5d6f95b3ba4d56be5a33b - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-util@npm:9.0.1": - version: 9.0.1 - resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.1" - dependencies: - "@chainsafe/ssz": "npm:^0.10.0" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - ethereum-cryptography: "npm:0.1.3" - checksum: b020278ba3c6226b7754109a9e1af08316db25c9a0a7060fb8d2a16375ab1f3bf9e6a2f5b56faddd07383461380264a2344994784c1cdaa6f19ba42396a2b8c7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-util@npm:9.0.4": - version: 9.0.4 - resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.4" - dependencies: - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.4" - ethereum-cryptography: "npm:0.1.3" - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - checksum: 228e8cb018ce6b487a0eb65c585d692b56bb306a26df3f6f063cdf87feea6174b005b25f2dc4547b940f76d0d6c4bcaa8ffbbcce482091168cdf3c6fe2f8b5da - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-vm@npm:7.0.1": - version: 7.0.1 - resolution: "@nomicfoundation/ethereumjs-vm@npm:7.0.1" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:5.0.1" - "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.1" - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-evm": "npm:2.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.1" - "@nomicfoundation/ethereumjs-trie": "npm:6.0.1" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - mcl-wasm: "npm:^0.7.1" - rustbn.js: "npm:~0.2.0" - checksum: bd4425a5ea5b07b600db57d8bb3fdaf94f76718ea310d04c2d26a5427e31afff15a6d375e52dedda86397fb6c572e337f0bdee74c84d191e0c9c03878c247610 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-vm@npm:^6.0.0-rc.3": - version: 6.4.2 - resolution: "@nomicfoundation/ethereumjs-vm@npm:6.4.2" - dependencies: - "@nomicfoundation/ethereumjs-block": "npm:4.2.2" - "@nomicfoundation/ethereumjs-blockchain": "npm:6.2.2" - "@nomicfoundation/ethereumjs-common": "npm:3.1.2" - "@nomicfoundation/ethereumjs-evm": "npm:1.3.2" - "@nomicfoundation/ethereumjs-rlp": "npm:4.0.3" - "@nomicfoundation/ethereumjs-statemanager": "npm:1.0.5" - "@nomicfoundation/ethereumjs-trie": "npm:5.0.5" - "@nomicfoundation/ethereumjs-tx": "npm:4.1.2" - "@nomicfoundation/ethereumjs-util": "npm:8.0.6" - "@types/async-eventemitter": "npm:^0.2.1" - async-eventemitter: "npm:^0.2.4" - debug: "npm:^4.3.3" - ethereum-cryptography: "npm:0.1.3" - functional-red-black-tree: "npm:^1.0.1" - mcl-wasm: "npm:^0.7.1" - rustbn.js: "npm:~0.2.0" - checksum: 78e4b0ba20e8fa4ef112bae88f432746647ed48b41918b34855fe08269be3aaff84f95c08b6c61475fb70f24a28ba73612bd2bcd19b3c007c8bf9e11a43fa8e0 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-chai-matchers@npm:^2.0.0": - version: 2.0.6 - resolution: "@nomicfoundation/hardhat-chai-matchers@npm:2.0.6" - dependencies: - "@types/chai-as-promised": "npm:^7.1.3" - chai-as-promised: "npm:^7.1.1" - deep-eql: "npm:^4.0.1" - ordinal: "npm:^1.0.3" - peerDependencies: - "@nomicfoundation/hardhat-ethers": ^3.0.0 - chai: ^4.2.0 - ethers: ^6.1.0 - hardhat: ^2.9.4 - checksum: 0d65a0b0a552391ee3b20db9ffc9559138c02bc9c9cdd30106c9b5247d5a9e9b412480772faecab210a8cade0dfcddce3b04f5d3f3371e80085d6883a917dfe5 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-ethers@npm:^3.0.8": - version: 3.0.8 - resolution: "@nomicfoundation/hardhat-ethers@npm:3.0.8" - dependencies: - debug: "npm:^4.1.1" - lodash.isequal: "npm:^4.5.0" - peerDependencies: - ethers: ^6.1.0 - hardhat: ^2.0.0 - checksum: 478b5d9607e7fc50377bec45ecebbf74240719c76aa08c81052d2a2174eee6f422db8cfd3f13fd17a080d8ff1046fac50dfffa3a2e57c9e3ed466932239e4af2 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-foundry@npm:^1.1.1": - version: 1.1.2 - resolution: "@nomicfoundation/hardhat-foundry@npm:1.1.2" - dependencies: - chalk: "npm:^2.4.2" - peerDependencies: - hardhat: ^2.17.2 - checksum: 54cad1a0d1fc3c2137722a1b213dcbd18f77e63778bda9593052e6090868b2fb7bf8087c10404c6b181fa631e75f7e70490b5b97c3e4eba8f52ef449131dada0 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-ignition-ethers@npm:^0.15.9": - version: 0.15.9 - resolution: "@nomicfoundation/hardhat-ignition-ethers@npm:0.15.9" - peerDependencies: - "@nomicfoundation/hardhat-ethers": ^3.0.4 - "@nomicfoundation/hardhat-ignition": ^0.15.9 - "@nomicfoundation/ignition-core": ^0.15.9 - ethers: ^6.7.0 - hardhat: ^2.18.0 - checksum: 3e5ebe4b0eeea2ddefeaac3ef8db474399cf9688547ef8e39780cb7af3bbb4fb2db9e73ec665f071bb7203cb667e7a9587c86b94c8bdd6346630a263c57b3056 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-ignition@npm:^0.15.9": - version: 0.15.9 - resolution: "@nomicfoundation/hardhat-ignition@npm:0.15.9" - dependencies: - "@nomicfoundation/ignition-core": "npm:^0.15.9" - "@nomicfoundation/ignition-ui": "npm:^0.15.9" - 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: b8d6b3f92a0183d6d3bb7b3f9919860ba001dc8d0995d74ad1a324110b93d4dfbdbfb685e8a4a3bec6da5870750325d63ebe014653a7248366adac02ff142841 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-network-helpers@npm:^1.0.0, @nomicfoundation/hardhat-network-helpers@npm:^1.0.9": - version: 1.0.10 - resolution: "@nomicfoundation/hardhat-network-helpers@npm:1.0.10" - dependencies: - ethereumjs-util: "npm:^7.1.4" - peerDependencies: - hardhat: ^2.9.5 - checksum: ff41875b2ece46ae33d144d83e8f43fbef18c7387d069a939cdbce1581cae83f415ca3477799e26dabe5e8faea7aadee4c4b4a90460f06b5b5e5aa02f9a2e4dd - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-toolbox@npm:^4.0.0": - version: 4.0.0 - resolution: "@nomicfoundation/hardhat-toolbox@npm:4.0.0" - peerDependencies: - "@nomicfoundation/hardhat-chai-matchers": ^2.0.0 - "@nomicfoundation/hardhat-ethers": ^3.0.0 - "@nomicfoundation/hardhat-network-helpers": ^1.0.0 - "@nomicfoundation/hardhat-verify": ^2.0.0 - "@typechain/ethers-v6": ^0.5.0 - "@typechain/hardhat": ^9.0.0 - "@types/chai": ^4.2.0 - "@types/mocha": ">=9.1.0" - "@types/node": ">=16.0.0" - chai: ^4.2.0 - ethers: ^6.4.0 - hardhat: ^2.11.0 - hardhat-gas-reporter: ^1.0.8 - solidity-coverage: ^0.8.1 - ts-node: ">=8.0.0" - typechain: ^8.3.0 - typescript: ">=4.5.0" - checksum: 9de2511cee509754afd4631f5f1497160bf4d3ecea741e9deeb22a6e662e16ce7ba37cffe836d30a958f08719c0c5906decc3c73df6a5d90c248b4654c8b15d1 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-verify@npm:^2.0.10": - version: 2.0.10 - resolution: "@nomicfoundation/hardhat-verify@npm:2.0.10" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@ethersproject/address": "npm:^5.0.2" - cbor: "npm:^8.1.0" - chalk: "npm:^2.4.2" - debug: "npm:^4.1.1" - lodash.clonedeep: "npm:^4.5.0" - semver: "npm:^6.3.0" - table: "npm:^6.8.0" - undici: "npm:^5.14.0" - peerDependencies: - hardhat: ^2.0.4 - checksum: c5b8e214f2dcdda0530dbb338f65e01bbb6e6b0f96930a88c01b1d1cf2def3f470e0bdb362807bb9a7dbe8216f937b55d14ab251d3cccd2208d6b60cebf2c358 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-verify@npm:^2.0.12": - version: 2.0.12 - resolution: "@nomicfoundation/hardhat-verify@npm:2.0.12" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@ethersproject/address": "npm:^5.0.2" - cbor: "npm:^8.1.0" - debug: "npm:^4.1.1" - lodash.clonedeep: "npm:^4.5.0" - picocolors: "npm:^1.1.0" - semver: "npm:^6.3.0" - table: "npm:^6.8.0" - undici: "npm:^5.14.0" - peerDependencies: - hardhat: ^2.0.4 - checksum: 551f11346480175362023807b4cebbdacc5627db70e2b4fb0afa04d8ec2c26c3b05d2e74821503e881ba745ec6e2c3a678af74206364099ec14e584a811b2564 - languageName: node - linkType: hard - -"@nomicfoundation/ignition-core@npm:^0.15.9": - version: 0.15.9 - resolution: "@nomicfoundation/ignition-core@npm:0.15.9" - dependencies: - "@ethersproject/address": "npm:5.6.1" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.1" - cbor: "npm:^9.0.0" - debug: "npm:^4.3.2" - ethers: "npm:^6.7.0" - fs-extra: "npm:^10.0.0" - immer: "npm:10.0.2" - lodash: "npm:4.17.21" - ndjson: "npm:2.0.0" - checksum: fe02e3f4a981ef338e3acf75cf2e05535c2aba21f4c5b5831b1430fcaa7bbb42b16bd8ac4bb0b9f036d0b9eb1aede5fa57890f0c3863c4ae173d45ac3e484ed8 - languageName: node - linkType: hard - -"@nomicfoundation/ignition-ui@npm:^0.15.9": - version: 0.15.9 - resolution: "@nomicfoundation/ignition-ui@npm:0.15.9" - checksum: 88097576c4186bfdf365f4864463386e7a345be1f8c0b8eebe589267e782735f8cec55e1c5af6c0f0872ba111d79616422552dc7e26c643d01b1768a2b0fb129 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.2" - checksum: ef3b13bb2133fea6621db98f991036a3a84d2b240160edec50beafa6ce821fe2f0f5cd4aa61adb9685aff60cd0425982ffd15e0b868b7c768e90e26b8135b825 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.2" - checksum: 3cb6a00cd200b94efd6f59ed626c705c6f773b92ccf8b90471285cd0e81b35f01edb30c1aa5a4633393c2adb8f20fd34e90c51990dc4e30658e8a67c026d16c9 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.2" - checksum: cb9725e7bdc3ba9c1feaef96dbf831c1a59c700ca633a9929fd97debdcb5ce06b5d7b4e6dbc076279978707214d01e2cd126d8e3f4cabc5c16525c031a47b95c - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.2" - checksum: 82a90b1d09ad266ddc510ece2e397f51fdaf29abf7263d2a3a85accddcba2ac24cceb670a3120800611cdcc552eed04919d071e259fdda7564818359ed541f5d - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.1" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.2" - checksum: d1f20d4d55683bd041ead957e5461b2e43a39e959f905e8866de1d65f8d96118e9b861e994604d9002cb7f056be0844e36c241a6bb531c336b399609977c0998 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.1" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.2" - checksum: 6c17f9af3aaf184c0a217cf723076051c502d85e731dbc97f34b838f9ae1b597577abac54a2af49b3fd986b09131c52fa21fd5393b22d05e1ec7fee96a8249c2 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.2": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.2" - checksum: da198464f5ee0d19b6decdfaa65ee0df3097b8960b8483bb7080931968815a5d60f27191229d47a198955784d763d5996f0b92bfde3551612ad972c160b0b000 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer@npm:^0.1.0": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.1" - dependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-darwin-x64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-freebsd-x64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "npm:0.1.1" - dependenciesMeta: - "@nomicfoundation/solidity-analyzer-darwin-arm64": - optional: true - "@nomicfoundation/solidity-analyzer-darwin-x64": - optional: true - "@nomicfoundation/solidity-analyzer-freebsd-x64": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": - optional: true - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": - optional: true - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": - optional: true - checksum: 1feee48a9506125d7736e3d1200d997cd07777f52ee6c71f7fad7d50b6705f7d3e028894968b449ca6e950991e726e9464ee5dc0c52d1066d127632be29667b4 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer@npm:^0.1.1": - version: 0.1.2 - resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.2" - dependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-darwin-x64": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "npm:0.1.2" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "npm:0.1.2" - dependenciesMeta: - "@nomicfoundation/solidity-analyzer-darwin-arm64": - optional: true - "@nomicfoundation/solidity-analyzer-darwin-x64": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": - optional: true - checksum: e4f503e9287e18967535af669ca7e26e2682203c45a34ea85da53122da1dee1278f2b8c76c20c67fadd7c1b1a98eeecffd2cbc136860665e3afa133817c0de54 - languageName: node - linkType: hard - -"@nomiclabs/hardhat-ethers@npm:^2.0.0, @nomiclabs/hardhat-ethers@npm:^2.0.2, @nomiclabs/hardhat-ethers@npm:^2.1.1, @nomiclabs/hardhat-ethers@npm:^2.2.3": - version: 2.2.3 - resolution: "@nomiclabs/hardhat-ethers@npm:2.2.3" - peerDependencies: - ethers: ^5.0.0 - hardhat: ^2.0.0 - checksum: cae46d1966108ab02b50fabe7945c8987fa1e9d5d0a7a06f79afc274ff1abc312e8a82375191a341b28571b897c22433d3a2826eb30077ed88d5983d01e381d0 - languageName: node - linkType: hard - -"@nomiclabs/hardhat-etherscan@npm:^3.1.2, @nomiclabs/hardhat-etherscan@npm:^3.1.7": - version: 3.1.8 - resolution: "@nomiclabs/hardhat-etherscan@npm:3.1.8" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@ethersproject/address": "npm:^5.0.2" - cbor: "npm:^8.1.0" - chalk: "npm:^2.4.2" - debug: "npm:^4.1.1" - fs-extra: "npm:^7.0.1" - lodash: "npm:^4.17.11" - semver: "npm:^6.3.0" - table: "npm:^6.8.0" - undici: "npm:^5.14.0" - peerDependencies: - hardhat: ^2.0.4 - checksum: 7869e14506794f4ca2da147b99e0775a1e7d1afc3fd35fae53d65a1a01df67748a583e99fd4ef557af2cba4ed59ed1400510ef72b0728d64de67dbbc5742746f - languageName: node - linkType: hard - -"@nomiclabs/hardhat-waffle@npm:2.0.3": - version: 2.0.3 - resolution: "@nomiclabs/hardhat-waffle@npm:2.0.3" - dependencies: - "@types/sinon-chai": "npm:^3.2.3" - "@types/web3": "npm:1.0.19" - peerDependencies: - "@nomiclabs/hardhat-ethers": ^2.0.0 - ethereum-waffle: ^3.2.0 - ethers: ^5.0.0 - hardhat: ^2.0.0 - checksum: 0efc174607c074b6452cfbe6f25a47eb3e0f1e91b5ba99ffd1d8cb04c06b6d1310d0de7624d1c525f909e6dac4e40f0b6bce3a34be43520ee59137a1b21d2a21 - languageName: node - linkType: hard - -"@nomiclabs/hardhat-waffle@npm:^2.0.0, @nomiclabs/hardhat-waffle@npm:^2.0.1": - version: 2.0.6 - resolution: "@nomiclabs/hardhat-waffle@npm:2.0.6" - peerDependencies: - "@nomiclabs/hardhat-ethers": ^2.0.0 - "@types/sinon-chai": ^3.2.3 - ethereum-waffle: "*" - ethers: ^5.0.0 - hardhat: ^2.0.0 - checksum: 9614ab1e76959cfccc586842d990de4c2aa74cea8e82a838d017d91d4c696df931af4a77af9c16325e037ec8438a8c98c9bae5d9e4d0d0fcdaa147c86bce01b5 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: "npm:^7.3.5" - checksum: c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 - languageName: node - linkType: hard - -"@openzeppelin/contracts-upgradeable@npm:3.4.2": - version: 3.4.2 - resolution: "@openzeppelin/contracts-upgradeable@npm:3.4.2" - checksum: 30b34b1877b5aa441f5ba25159e2a73fd743d46956a2b32fa8b3c27cff204a6457bd1a1208e01023f8c7e8ca315322cb63d53fedb38d3c4c550cb6931ab943a2 - languageName: node - linkType: hard - -"@openzeppelin/contracts-upgradeable@npm:^5.0.2": - version: 5.0.2 - resolution: "@openzeppelin/contracts-upgradeable@npm:5.0.2" - peerDependencies: - "@openzeppelin/contracts": 5.0.2 - checksum: 0bd47a4fa0ba8084c1df9573968ff02387bc21514d846b5feb4ad42f90f3ba26bb1e40f17f03e4fa24ffbe473b9ea06c137283297884ab7d5b98d2c112904dc9 - languageName: node - linkType: hard - -"@openzeppelin/contracts@npm:^3.3.0-solc-0.7, @openzeppelin/contracts@npm:^3.4.1": - version: 3.4.2 - resolution: "@openzeppelin/contracts@npm:3.4.2" - checksum: 92e7047d889d9beb6675951d07f4bde8c0ca4f20d93d50c7f7b6bb1cd7dd072c88bf71c4f0be8ad9a28ad1031b8e471463fb338936914514e74cd32bf287ad1f - languageName: node - linkType: hard - -"@openzeppelin/contracts@npm:^4.5.0": - version: 4.9.6 - resolution: "@openzeppelin/contracts@npm:4.9.6" - checksum: f834b000778f634a260ed5507827cc67c0922557a1f57e1d76cf7ace061fea171aaf16640ba2e54fd7ed2cc629a9d706bc671a9692d2bb9a9469ea6154de6e8c - languageName: node - linkType: hard - -"@openzeppelin/contracts@npm:^5.0.2": - version: 5.0.2 - resolution: "@openzeppelin/contracts@npm:5.0.2" - checksum: d042661db7bb2f3a4b9ef30bba332e86ac20907d171f2ebfccdc9255cc69b62786fead8d6904b8148a8f26946bc7c15eead91b95f75db0c193a99d52e528663e - languageName: node - linkType: hard - -"@openzeppelin/defender-admin-client@npm:^1.46.0": - version: 1.54.4 - resolution: "@openzeppelin/defender-admin-client@npm:1.54.4" - dependencies: - "@openzeppelin/defender-base-client": "npm:1.54.4" - axios: "npm:^1.4.0" - ethers: "npm:^5.7.2" - lodash: "npm:^4.17.19" - node-fetch: "npm:^2.6.0" - checksum: a44439ebde420aa35b36db7c2845978dd099e0fb6edc394e7b65be67ec1135e99ccc8059e78cb70c8a8fd5598ba40d082648664af95f9cb97a7673c075f64abb - languageName: node - linkType: hard - -"@openzeppelin/defender-base-client@npm:1.54.4, @openzeppelin/defender-base-client@npm:^1.46.0": - version: 1.54.4 - resolution: "@openzeppelin/defender-base-client@npm:1.54.4" - dependencies: - amazon-cognito-identity-js: "npm:^6.0.1" - async-retry: "npm:^1.3.3" - axios: "npm:^1.4.0" - lodash: "npm:^4.17.19" - node-fetch: "npm:^2.6.0" - checksum: 636614a8012cfbbe065b8ccc3ef6a16635e2f1b48f7421242de81f74def99a51795464e9a2bd02e7305ff32b339a8847d7733452e6fe7810d4badd0c2086c38f - languageName: node - linkType: hard - -"@openzeppelin/hardhat-defender@npm:^1.8.1": - version: 1.9.0 - resolution: "@openzeppelin/hardhat-defender@npm:1.9.0" - dependencies: - "@openzeppelin/defender-admin-client": "npm:^1.46.0" - "@openzeppelin/defender-base-client": "npm:^1.46.0" - "@openzeppelin/hardhat-upgrades": "npm:^1.20.0" - ethereumjs-util: "npm:^7.1.5" - checksum: 62d5bab8e69baac5f1e10a83ce8dbbf23ec55f4394bdebb484836cc523a71685e20e46c7cfcc3a07dbf6b19ec4d25cafd99a8e25eafbbb1215f9d1cb4c3e138c - languageName: node - linkType: hard - -"@openzeppelin/hardhat-upgrades@npm:^1.20.0, @openzeppelin/hardhat-upgrades@npm:^1.22.1, @openzeppelin/hardhat-upgrades@npm:^1.6.0, @openzeppelin/hardhat-upgrades@npm:^1.8.2": - version: 1.28.0 - resolution: "@openzeppelin/hardhat-upgrades@npm:1.28.0" - dependencies: - "@openzeppelin/defender-base-client": "npm:^1.46.0" - "@openzeppelin/platform-deploy-client": "npm:^0.8.0" - "@openzeppelin/upgrades-core": "npm:^1.27.0" - chalk: "npm:^4.1.0" - debug: "npm:^4.1.1" - proper-lockfile: "npm:^4.1.1" - peerDependencies: - "@nomiclabs/hardhat-ethers": ^2.0.0 - "@nomiclabs/hardhat-etherscan": ^3.1.0 - ethers: ^5.0.5 - hardhat: ^2.0.2 - peerDependenciesMeta: - "@nomiclabs/harhdat-etherscan": - optional: true - bin: - migrate-oz-cli-project: dist/scripts/migrate-oz-cli-project.js - checksum: 8cd6c52ab966aac09435e58c8d5a80747adbd34ffbe3808205c30d6851a7e4ef35272a36f8c837da4841b4643ac3df8ea1d982218f38b99144df16e68ada3b9f - languageName: node - linkType: hard - -"@openzeppelin/platform-deploy-client@npm:^0.8.0": - version: 0.8.0 - resolution: "@openzeppelin/platform-deploy-client@npm:0.8.0" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - "@openzeppelin/defender-base-client": "npm:^1.46.0" - axios: "npm:^0.21.2" - lodash: "npm:^4.17.19" - node-fetch: "npm:^2.6.0" - checksum: 7a85c19fd94b268386fdcef5951218467ea146e7047fd4e0536f8044138a7867c904358e681cd6a56bf1e0d1a82ffe7172df4b291b4278c54094925c8890d35a - languageName: node - linkType: hard - -"@openzeppelin/upgrades-core@npm:^1.27.0": - version: 1.33.1 - resolution: "@openzeppelin/upgrades-core@npm:1.33.1" - dependencies: - cbor: "npm:^9.0.0" - chalk: "npm:^4.1.0" - compare-versions: "npm:^6.0.0" - debug: "npm:^4.1.1" - ethereumjs-util: "npm:^7.0.3" - minimist: "npm:^1.2.7" - proper-lockfile: "npm:^4.1.1" - solidity-ast: "npm:^0.4.51" - bin: - openzeppelin-upgrades-core: dist/cli/cli.js - checksum: 96fbed78baec7502709a38f5a00180750c24e96aa047a438b34c0d9895dc4ffed47b7e4fedab57cabfd733a3c079e78c98eec23a6df61f3fb4c8b2c9d096bcba - languageName: node - linkType: hard - -"@peculiar/asn1-schema@npm:^2.3.8": - version: 2.3.8 - resolution: "@peculiar/asn1-schema@npm:2.3.8" - dependencies: - asn1js: "npm:^3.0.5" - pvtsutils: "npm:^1.3.5" - tslib: "npm:^2.6.2" - checksum: 65f16b2a7eb91365b6dac47730ffcad4617ef04b821e0a4286c379ac7283588b0a6744032ee686e0914a0886c2a055108ed945b9c4d22821a3b123640b61f3b2 - languageName: node - linkType: hard - -"@peculiar/json-schema@npm:^1.1.12": - version: 1.1.12 - resolution: "@peculiar/json-schema@npm:1.1.12" - dependencies: - tslib: "npm:^2.0.0" - checksum: 202132c66dcc6b6aca5d0af971c015be2e163da2f7f992910783c5d39c8a7db59b6ec4f4ce419459a1f954b7e1d17b6b253f0e60072c1b3d254079f4eaebc311 - languageName: node - linkType: hard - -"@peculiar/webcrypto@npm:^1.4.0": - version: 1.4.6 - resolution: "@peculiar/webcrypto@npm:1.4.6" - dependencies: - "@peculiar/asn1-schema": "npm:^2.3.8" - "@peculiar/json-schema": "npm:^1.1.12" - pvtsutils: "npm:^1.3.5" - tslib: "npm:^2.6.2" - webcrypto-core: "npm:^1.7.9" - checksum: b9c80b1a0a3e3ebbf045bd5167fe99ec4a83b170e9aa15a5952a9138afc278210d772306dcc57101d9407c3f9c70dbf6bfb4d8b3f20996ad35c650bb0fe6a90c - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd - languageName: node - linkType: hard - -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8 - languageName: node - linkType: hard - -"@pnpm/config.env-replace@npm:^1.1.0": - version: 1.1.0 - resolution: "@pnpm/config.env-replace@npm:1.1.0" - checksum: 4cfc4a5c49ab3d0c6a1f196cfd4146374768b0243d441c7de8fa7bd28eaab6290f514b98490472cc65dbd080d34369447b3e9302585e1d5c099befd7c8b5e55f - languageName: node - linkType: hard - -"@pnpm/network.ca-file@npm:^1.0.1": - version: 1.0.2 - resolution: "@pnpm/network.ca-file@npm:1.0.2" - dependencies: - graceful-fs: "npm:4.2.10" - checksum: 95f6e0e38d047aca3283550719155ce7304ac00d98911e4ab026daedaf640a63bd83e3d13e17c623fa41ac72f3801382ba21260bcce431c14fbbc06430ecb776 - languageName: node - linkType: hard - -"@pnpm/npm-conf@npm:^2.1.0": - version: 2.2.2 - resolution: "@pnpm/npm-conf@npm:2.2.2" - dependencies: - "@pnpm/config.env-replace": "npm:^1.1.0" - "@pnpm/network.ca-file": "npm:^1.0.1" - config-chain: "npm:^1.1.11" - checksum: 71393dcfce85603fddd8484b486767163000afab03918303253ae97992615b91d25942f83751366cb40ad2ee32b0ae0a033561de9d878199a024286ff98b0296 - languageName: node - linkType: hard - -"@prettier/sync@npm:^0.3.0": - version: 0.3.0 - resolution: "@prettier/sync@npm:0.3.0" - peerDependencies: - prettier: ^3.0.0 - checksum: 54f2522da9ee2192d89c7fb15e6c362adc8a4d834be1c3c38a14b5fd5a02239a74ef3adc50df9b6794d9e76b0bb66be2bcc8d30017f85232b7cdb98d5e140b1c - languageName: node - linkType: hard - -"@repeaterjs/repeater@npm:3.0.4": - version: 3.0.4 - resolution: "@repeaterjs/repeater@npm:3.0.4" - checksum: 9a2928d70f2be4a8f72857f8f7553810015ac970f174b4b20f07289644379af57fa68947601d67e557c1a7c33ddf805e787cf2a1d5e9037ba485d24075a81b6b - languageName: node - linkType: hard - -"@repeaterjs/repeater@npm:^3.0.4": - version: 3.0.6 - resolution: "@repeaterjs/repeater@npm:3.0.6" - checksum: c3915e2603927c7d6a9eb09673bc28fc49ab3a86947ec191a74663b33deebee2fcc4b03c31cc663ff27bd6db9e6c9487639b6935e265d601ce71b8c497f5f4a8 - languageName: node - linkType: hard - -"@resolver-engine/core@npm:^0.2.1": - version: 0.2.1 - resolution: "@resolver-engine/core@npm:0.2.1" - dependencies: - debug: "npm:^3.1.0" - request: "npm:^2.85.0" - checksum: fa2c219402d27e1ee336cab4fdad045ecd8b82be4b674965c07303dd2ce72ada3bb1bf277861866eae890a690455c53058b38798aed39ba11bc6f00f4feafd93 - languageName: node - linkType: hard - -"@resolver-engine/core@npm:^0.3.3": - version: 0.3.3 - resolution: "@resolver-engine/core@npm:0.3.3" - dependencies: - debug: "npm:^3.1.0" - is-url: "npm:^1.2.4" - request: "npm:^2.85.0" - checksum: a562d412b2976b36be85878112518e85cb32a024334bb191f9657adb7e38f264c0b91429a954e7e097bb5c8fc54c6df76840cd43590c73be4dc7932150eb6e01 - languageName: node - linkType: hard - -"@resolver-engine/fs@npm:^0.2.1": - version: 0.2.1 - resolution: "@resolver-engine/fs@npm:0.2.1" - dependencies: - "@resolver-engine/core": "npm:^0.2.1" - debug: "npm:^3.1.0" - checksum: 5027b128f345ab6b578161bfb451c618784e887b5a42ba6b12a1d31701996efa9d540dfda36c5244662bfa8d0a40d7dc7814a21fe93ba24969db07c0220b3dae - languageName: node - linkType: hard - -"@resolver-engine/fs@npm:^0.3.3": - version: 0.3.3 - resolution: "@resolver-engine/fs@npm:0.3.3" - dependencies: - "@resolver-engine/core": "npm:^0.3.3" - debug: "npm:^3.1.0" - checksum: 4f21e8633eb5225aeb24ca3f0ebf74129cbb497d704ed473c5f49bfc3d4b7c33a4a02decc966b7b4d654b517a4a88661cc2b84784cf6d394c1e1e5d49f371cc7 - languageName: node - linkType: hard - -"@resolver-engine/imports-fs@npm:^0.2.2": - version: 0.2.2 - resolution: "@resolver-engine/imports-fs@npm:0.2.2" - dependencies: - "@resolver-engine/fs": "npm:^0.2.1" - "@resolver-engine/imports": "npm:^0.2.2" - debug: "npm:^3.1.0" - checksum: d65d86cacfb59741e43ff67cedc401ba259b0708b519071caa70800307e066f94c4aad4eca15e7c14fdde986607aa2ecdcaf35f5892cec8417b86f665f1055d4 - languageName: node - linkType: hard - -"@resolver-engine/imports-fs@npm:^0.3.3": - version: 0.3.3 - resolution: "@resolver-engine/imports-fs@npm:0.3.3" - dependencies: - "@resolver-engine/fs": "npm:^0.3.3" - "@resolver-engine/imports": "npm:^0.3.3" - debug: "npm:^3.1.0" - checksum: bcbd1e11f10550353ba4b82f29a5d9026d9f6cb625ccaaaf52898542fee832d11fc3eedaaf5089a5f6b0e3213c810233209f8e345b19c6a9994f58d6fec1adeb - languageName: node - linkType: hard - -"@resolver-engine/imports@npm:^0.2.2": - version: 0.2.2 - resolution: "@resolver-engine/imports@npm:0.2.2" - dependencies: - "@resolver-engine/core": "npm:^0.2.1" - debug: "npm:^3.1.0" - hosted-git-info: "npm:^2.6.0" - checksum: a829b3fa17620a545a46a5c1bf7d6cbd874292c856f56bb955806fd5fa663b3a62c37f259a375594657b24c5e5795d81e35a9ee0e6463fc6e6a1c4d6c8fffc82 - languageName: node - linkType: hard - -"@resolver-engine/imports@npm:^0.3.3": - version: 0.3.3 - resolution: "@resolver-engine/imports@npm:0.3.3" - dependencies: - "@resolver-engine/core": "npm:^0.3.3" - debug: "npm:^3.1.0" - hosted-git-info: "npm:^2.6.0" - path-browserify: "npm:^1.0.0" - url: "npm:^0.11.0" - checksum: efdb3996ebaac05702edfa35ff4a9f53e4ef141e91ea534ce84becc65371638091b0c2e912f020ee5b654fb32a60b29591a3ea769af9ed70b9f8039bd278f571 - languageName: node - linkType: hard - -"@scure/base@npm:~1.1.0, @scure/base@npm:~1.1.4": - version: 1.1.6 - resolution: "@scure/base@npm:1.1.6" - checksum: 237a46a1f45391fc57719154f14295db936a0b1562ea3e182dd42d7aca082dbb7062a28d6c49af16a7e478b12dae8a0fe678d921ea5056bcc30238d29eb05c55 - languageName: node - linkType: hard - -"@scure/bip32@npm:1.1.5": - version: 1.1.5 - resolution: "@scure/bip32@npm:1.1.5" - dependencies: - "@noble/hashes": "npm:~1.2.0" - "@noble/secp256k1": "npm:~1.7.0" - "@scure/base": "npm:~1.1.0" - checksum: d0521f6de28278e06f2d517307b4de6c9bcb3dbdf9a5844bb57a6e4916a180e4136129ccab295c27bd1196ef77757608255afcd7cf927e03baec4479b3df74fc - languageName: node - linkType: hard - -"@scure/bip32@npm:1.3.3": - version: 1.3.3 - resolution: "@scure/bip32@npm:1.3.3" - dependencies: - "@noble/curves": "npm:~1.3.0" - "@noble/hashes": "npm:~1.3.2" - "@scure/base": "npm:~1.1.4" - checksum: 48fa04ebf0e3b56e3d086f029ae207ea753d8d8a1b3564f3c80fafea63dc3ee4edbd21e44eadb79bd4de4afffb075cbbbcb258fd5030a9680065cb524424eb83 - languageName: node - linkType: hard - -"@scure/bip39@npm:1.1.1": - version: 1.1.1 - resolution: "@scure/bip39@npm:1.1.1" - dependencies: - "@noble/hashes": "npm:~1.2.0" - "@scure/base": "npm:~1.1.0" - checksum: 821dc9d5be8362a32277390526db064860c2216a079ba51d63def9289c2b290599e93681ebbeebf0e93540799eec35784c1dfcf5167d0b280ef148e5023ce01b - languageName: node - linkType: hard - -"@scure/bip39@npm:1.2.2": - version: 1.2.2 - resolution: "@scure/bip39@npm:1.2.2" - dependencies: - "@noble/hashes": "npm:~1.3.2" - "@scure/base": "npm:~1.1.4" - checksum: be38bc1dc10b9a763d8b02d91dc651a4f565c822486df6cb1d3cc84896c1aab3ef6acbf7b3dc7e4a981bc9366086a4d72020aa21e11a692734a750de049c887c - languageName: node - linkType: hard - -"@sentry/core@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/core@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/minimal": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 6407b9c2a6a56f90c198f5714b3257df24d89d1b4ca6726bd44760d0adabc25798b69fef2c88ccea461c7e79e3c78861aaebfd51fd3cb892aee656c3f7e11801 - languageName: node - linkType: hard - -"@sentry/hub@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/hub@npm:5.30.0" - dependencies: - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 386c91d06aa44be0465fc11330d748a113e464d41cd562a9e1d222a682cbcb14e697a3e640953e7a0239997ad8a02b223a0df3d9e1d8816cb823fd3613be3e2f - languageName: node - linkType: hard - -"@sentry/minimal@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/minimal@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 34ec05503de46d01f98c94701475d5d89cc044892c86ccce30e01f62f28344eb23b718e7cf573815e46f30a4ac9da3129bed9b3d20c822938acfb40cbe72437b - languageName: node - linkType: hard - -"@sentry/node@npm:^5.18.1, @sentry/node@npm:^5.21.1": - version: 5.30.0 - resolution: "@sentry/node@npm:5.30.0" - dependencies: - "@sentry/core": "npm:5.30.0" - "@sentry/hub": "npm:5.30.0" - "@sentry/tracing": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - cookie: "npm:^0.4.1" - https-proxy-agent: "npm:^5.0.0" - lru_map: "npm:^0.3.3" - tslib: "npm:^1.9.3" - checksum: c50db7c81ace57cac17692245c2ab3c84a6149183f81d5f2dfd157eaa7b66eb4d6a727dd13a754bb129c96711389eec2944cd94126722ee1d8b11f2b627b830d - languageName: node - linkType: hard - -"@sentry/tracing@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/tracing@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/minimal": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 46830265bc54a3203d7d9f0d8d9f2f7d9d2c6a977e07ccdae317fa3ea29c388b904b3bef28f7a0ba9c074845d67feab63c6d3c0ddce9aeb275b6c966253fb415 - languageName: node - linkType: hard - -"@sentry/types@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/types@npm:5.30.0" - checksum: 99c6e55c0a82c8ca95be2e9dbb35f581b29e4ff7af74b23bc62b690de4e35febfa15868184a2303480ef86babd4fea5273cf3b5ddf4a27685b841a72f13a0c88 - languageName: node - linkType: hard - -"@sentry/utils@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/utils@npm:5.30.0" - dependencies: - "@sentry/types": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: ca8eebfea7ac7db6d16f6c0b8a66ac62587df12a79ce9d0d8393f4d69880bb8d40d438f9810f7fb107a9880fe0d68bbf797b89cbafd113e89a0829eb06b205f8 - languageName: node - linkType: hard - -"@sindresorhus/is@npm:^0.14.0": - version: 0.14.0 - resolution: "@sindresorhus/is@npm:0.14.0" - checksum: 7247aa9314d4fc3df9b3f63d8b5b962a89c7600a5db1f268546882bfc4d31a975a899f5f42a09dd41a11e58636e6402f7c40f92df853aee417247bb11faee9a0 - languageName: node - linkType: hard - -"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": - version: 4.6.0 - resolution: "@sindresorhus/is@npm:4.6.0" - checksum: 33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e - languageName: node - linkType: hard - -"@sindresorhus/is@npm:^5.2.0": - version: 5.6.0 - resolution: "@sindresorhus/is@npm:5.6.0" - checksum: 66727344d0c92edde5760b5fd1f8092b717f2298a162a5f7f29e4953e001479927402d9d387e245fb9dc7d3b37c72e335e93ed5875edfc5203c53be8ecba1b52 - languageName: node - linkType: hard - -"@smithy/types@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/types@npm:3.0.0" - dependencies: - tslib: "npm:^2.6.2" - checksum: 9f6eefa4f715a8f0bfd79787f82156b4785baaa1524496abe9fc3db96c36f7c782fb962353601d8bd2bba3b449d999d48a09b2b25405bfcd7fb5e1d1c935f1fb - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.14.0, @solidity-parser/parser@npm:^0.14.1": - version: 0.14.5 - resolution: "@solidity-parser/parser@npm:0.14.5" - dependencies: - antlr4ts: "npm:^0.5.0-alpha.4" - checksum: d5c689d8925a18e1ceb2f6449a8263915b1676117856109b7793eda8f7dafc975b6ed0d0d73fc08257903cac383484e4c8f8cf47b069621e81ba368c4ea4cf6a - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.16.0": - version: 0.16.2 - resolution: "@solidity-parser/parser@npm:0.16.2" - dependencies: - antlr4ts: "npm:^0.5.0-alpha.4" - checksum: f0612b36f9a25def75188b44ce06d7cb286b4f843c54b3f0e8836bdd48438663aafea7839890d54f9ccdbc6fa2c1e1247cae2ab734713463e21e4bd656e526a7 - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.17.0": - version: 0.17.0 - resolution: "@solidity-parser/parser@npm:0.17.0" - checksum: de606abd2f603b8056828c772de3f26b0d92913d0e8ebe4f2c149485f548e1b7af308c54c569542b3fc8e03d3219a9fb0a318f56b92b3042074c8074c1da53f2 - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.18.0": - version: 0.18.0 - resolution: "@solidity-parser/parser@npm:0.18.0" - checksum: c54b4c9ba10e1fd1cd45894040135a39b9bc527f0ac40bec732d8628b0c0c7cb7ec2b7e816b408d613ab1d71c04f9555111ccc83b6dbaed2e39ff4ef7d000e25 - languageName: node - linkType: hard - -"@stylistic/eslint-plugin-js@npm:1.8.1, @stylistic/eslint-plugin-js@npm:^1.8.1": - version: 1.8.1 - resolution: "@stylistic/eslint-plugin-js@npm:1.8.1" - dependencies: - "@types/eslint": "npm:^8.56.10" - acorn: "npm:^8.11.3" - escape-string-regexp: "npm:^4.0.0" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - peerDependencies: - eslint: ">=8.40.0" - checksum: 0f5aa5f4afd0a0120a7675f5f0abb2d6fc5ee6197390613a69dcf510644964f1eb8ef8c060be2cf8c1885863a507bdf42e74954f886dca4102e49acfee50c577 - languageName: node - linkType: hard - -"@stylistic/eslint-plugin-jsx@npm:1.8.1": - version: 1.8.1 - resolution: "@stylistic/eslint-plugin-jsx@npm:1.8.1" - dependencies: - "@stylistic/eslint-plugin-js": "npm:^1.8.1" - "@types/eslint": "npm:^8.56.10" - estraverse: "npm:^5.3.0" - picomatch: "npm:^4.0.2" - peerDependencies: - eslint: ">=8.40.0" - checksum: 3bf9a543c1dc661bbe1fb939a46a8cc9543f8c2fbd53b39c05861e042e28c7483cf318152c5cbf1dbc6022e0e211375931f707c5d9a7a63f83a74f857f7b28b4 - languageName: node - linkType: hard - -"@stylistic/eslint-plugin-plus@npm:1.8.1": - version: 1.8.1 - resolution: "@stylistic/eslint-plugin-plus@npm:1.8.1" - dependencies: - "@types/eslint": "npm:^8.56.10" - "@typescript-eslint/utils": "npm:^6.21.0" - peerDependencies: - eslint: "*" - checksum: 644cf23179b69df12bc798357ae0193eed2dd68a6e5e8dd11f5c8ecad0898eb58b5dac68fafd31c52b852b0800cb21ce457397d4d94cb60549311283540a2dd4 - languageName: node - linkType: hard - -"@stylistic/eslint-plugin-ts@npm:1.8.1": - version: 1.8.1 - resolution: "@stylistic/eslint-plugin-ts@npm:1.8.1" - dependencies: - "@stylistic/eslint-plugin-js": "npm:1.8.1" - "@types/eslint": "npm:^8.56.10" - "@typescript-eslint/utils": "npm:^6.21.0" - peerDependencies: - eslint: ">=8.40.0" - checksum: 1bd0bb220998b7ebd3a7e788b8bafc6674291160604825eea547cfd1a9530b02777ffe5775ddce932388044d7e932c9693be8c30fa989b03ee0ddf98ebc3d40d - languageName: node - linkType: hard - -"@stylistic/eslint-plugin@npm:^1.6.2": - version: 1.8.1 - resolution: "@stylistic/eslint-plugin@npm:1.8.1" - dependencies: - "@stylistic/eslint-plugin-js": "npm:1.8.1" - "@stylistic/eslint-plugin-jsx": "npm:1.8.1" - "@stylistic/eslint-plugin-plus": "npm:1.8.1" - "@stylistic/eslint-plugin-ts": "npm:1.8.1" - "@types/eslint": "npm:^8.56.10" - peerDependencies: - eslint: ">=8.40.0" - checksum: 036e4e9dcc4674810bd36b22404234b6a34b79b762fe8275470916ce5a3d3b10e5ef9ba86fb786fcbb39b801a6757079915c1cdd57d07c88ed472fdff5192cc4 - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^1.1.2": - version: 1.1.2 - resolution: "@szmarczak/http-timer@npm:1.1.2" - dependencies: - defer-to-connect: "npm:^1.0.1" - checksum: 0594140e027ce4e98970c6d176457fcbff80900b1b3101ac0d08628ca6d21d70e0b94c6aaada94d4f76c1423fcc7195af83da145ce0fd556fc0595ca74a17b8b - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^4.0.5": - version: 4.0.6 - resolution: "@szmarczak/http-timer@npm:4.0.6" - dependencies: - defer-to-connect: "npm:^2.0.0" - checksum: 73946918c025339db68b09abd91fa3001e87fc749c619d2e9c2003a663039d4c3cb89836c98a96598b3d47dec2481284ba85355392644911f5ecd2336536697f - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^5.0.1": - version: 5.0.1 - resolution: "@szmarczak/http-timer@npm:5.0.1" - dependencies: - defer-to-connect: "npm:^2.0.1" - checksum: 4629d2fbb2ea67c2e9dc03af235c0991c79ebdddcbc19aed5d5732fb29ce01c13331e9b1a491584b9069bd6ecde6581dcbf871f11b7eefdebbab34de6cf2197e - languageName: node - linkType: hard - -"@tenderly/hardhat-tenderly@npm:1.0.13": - version: 1.0.13 - resolution: "@tenderly/hardhat-tenderly@npm:1.0.13" - dependencies: - axios: "npm:^0.21.1" - fs-extra: "npm:^9.0.1" - js-yaml: "npm:^3.14.0" - peerDependencies: - hardhat: ^2.0.3 - checksum: ab3da17c06b3b14f43da035038babef43fe726aed8833a8fbc6f3dc27bc40161653d9492eca19d7733fbe429debb273be04bc852992aa6c6a24817f76dde2e89 - languageName: node - linkType: hard - -"@tenderly/hardhat-tenderly@npm:^1.0.13": - version: 1.8.0 - resolution: "@tenderly/hardhat-tenderly@npm:1.8.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@nomiclabs/hardhat-ethers": "npm:^2.1.1" - axios: "npm:^0.27.2" - ethers: "npm:^5.7.0" - fs-extra: "npm:^10.1.0" - hardhat-deploy: "npm:^0.11.14" - js-yaml: "npm:^4.1.0" - tenderly: "npm:^0.6.0" - tslog: "npm:^4.3.1" - peerDependencies: - hardhat: ^2.10.2 - checksum: e5d7441fddc6dc69963cd4e46d61758c67922fab2a2848a88738e4dff2a8e5c274f746f316206205eda14edbfc2cf058f3e6e05e66400d1b8cd3bc56964d8034 - languageName: node - linkType: hard - -"@truffle/error@npm:^0.1.1": - version: 0.1.1 - resolution: "@truffle/error@npm:0.1.1" - checksum: 9f23c5d704ca9ab4e3ae25138c47053121b1e25d0d9cf080ca4a1d1240fc87fe7d3198189886be9301d0cdeaa7aeddc7a06e859c38db4be09fc8c57164bf6993 - languageName: node - linkType: hard - -"@truffle/interface-adapter@npm:^0.5.25": - version: 0.5.37 - resolution: "@truffle/interface-adapter@npm:0.5.37" - dependencies: - bn.js: "npm:^5.1.3" - ethers: "npm:^4.0.32" - web3: "npm:1.10.0" - checksum: b9aea09b8baea150abf793ca91db0e5f9d8f55b77187a433e14c7521c672627eb54993543f4ae6127c0e2b472501514d3c1c637b7c8dc2774da8cd4dee81450b - languageName: node - linkType: hard - -"@truffle/provider@npm:^0.2.24": - version: 0.2.64 - resolution: "@truffle/provider@npm:0.2.64" - dependencies: - "@truffle/error": "npm:^0.1.1" - "@truffle/interface-adapter": "npm:^0.5.25" - debug: "npm:^4.3.1" - web3: "npm:1.7.4" - checksum: de481ebf73364f3633bb950a1a0b0a11cf50b0bbd858c1cc21abc49a68e76cf1e7c5a78a5579f834147ac826b332aeab515e0554fd493f76ea4e3db303b4b041 - languageName: node - linkType: hard - -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node10@npm:1.0.11" - checksum: 28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb - languageName: node - linkType: hard - -"@typechain/ethers-v5@npm:^2.0.0": - version: 2.0.0 - resolution: "@typechain/ethers-v5@npm:2.0.0" - dependencies: - ethers: "npm:^5.0.2" - peerDependencies: - ethers: ^5.0.0 - typechain: ^3.0.0 - checksum: 882a82e59f8aa4f7bb070ed0cbfb68be96b8b813656296cdaac130d8efce58231708f91d3f38dd3d1819f8875b0b5e713151ca064ce158601fc6c2b696036dd8 - languageName: node - linkType: hard - -"@typechain/ethers-v5@npm:^7.0.0": - version: 7.2.0 - resolution: "@typechain/ethers-v5@npm:7.2.0" - dependencies: - lodash: "npm:^4.17.15" - ts-essentials: "npm:^7.0.1" - peerDependencies: - "@ethersproject/abi": ^5.0.0 - "@ethersproject/bytes": ^5.0.0 - "@ethersproject/providers": ^5.0.0 - ethers: ^5.1.3 - typechain: ^5.0.0 - typescript: ">=4.0.0" - checksum: 703796f3982f92d7e358ae04b8796a52c987f880ab7eaf3e73475caa2b869b2f6fe1f8f9d4a222f8d469f1f5661ba3d3a820fc615a0115703d940bd26b93551e - languageName: node - linkType: hard - -"@typechain/ethers-v5@npm:^9.0.0": - version: 9.0.0 - resolution: "@typechain/ethers-v5@npm:9.0.0" - dependencies: - lodash: "npm:^4.17.15" - ts-essentials: "npm:^7.0.1" - peerDependencies: - "@ethersproject/abi": ^5.0.0 - "@ethersproject/bytes": ^5.0.0 - "@ethersproject/providers": ^5.0.0 - ethers: ^5.1.3 - typechain: ^7.0.0 - typescript: ">=4.0.0" - checksum: 4aa3d0669a3d5a2cab14a39d4d3e5bc616ee909dd90b9e01be211a0c05759c67af9118a4530515db47c8a7b3a1a5a06a26daa9d14ea24766feb7c043b636c4d8 - languageName: node - linkType: hard - -"@typechain/ethers-v6@npm:^0.5.0": - version: 0.5.1 - resolution: "@typechain/ethers-v6@npm:0.5.1" - dependencies: - lodash: "npm:^4.17.15" - ts-essentials: "npm:^7.0.1" - peerDependencies: - ethers: 6.x - typechain: ^8.3.2 - typescript: ">=4.7.0" - checksum: f3c80151c07e01adbf520e0854426649edb0ee540920569487dd8da7eca2fa8615710f4c0eda008e7afdf255fbb8dfdebf721a5d324a4dffeb087611d9bd64b9 - languageName: node - linkType: hard - -"@typechain/hardhat@npm:^2.0.0": - version: 2.3.1 - resolution: "@typechain/hardhat@npm:2.3.1" - dependencies: - fs-extra: "npm:^9.1.0" - peerDependencies: - hardhat: ^2.0.10 - lodash: ^4.17.15 - typechain: ^5.1.2 - checksum: f0bc919d5fd60c52bb4415829dbe28c3fe7f402a15f69781acd0ee46e33b7fbc72bc1b16ce84c7af7d9f05bc692149dd8acc8ade558c84fbdcaeb3e2bba6eba6 - languageName: node - linkType: hard - -"@typechain/hardhat@npm:^4.0.0": - version: 4.0.0 - resolution: "@typechain/hardhat@npm:4.0.0" - dependencies: - fs-extra: "npm:^9.1.0" - peerDependencies: - hardhat: ^2.0.10 - lodash: ^4.17.15 - typechain: ^7.0.0 - checksum: f1004bfb11e08ea786a930401be0d22bab58eb1ee3c8901baa8cd467e45fe8a451d6f1e6b86d53ac84338c9fd3b7f422184d68274cbf7877196e695e2e301238 - languageName: node - linkType: hard - -"@typechain/hardhat@npm:^9.0.0": - version: 9.1.0 - resolution: "@typechain/hardhat@npm:9.1.0" - dependencies: - fs-extra: "npm:^9.1.0" - peerDependencies: - "@typechain/ethers-v6": ^0.5.1 - ethers: ^6.1.0 - hardhat: ^2.9.9 - typechain: ^8.3.2 - checksum: 3a1220efefc7b02ca335696167f6c5332a33ff3fbf9f20552468566a1760f76bc88d330683e97ca6213eb9518a2a901391c31c84c0548006b72bd2ec62d4af9c - languageName: node - linkType: hard - -"@types/async-eventemitter@npm:^0.2.1": - version: 0.2.4 - resolution: "@types/async-eventemitter@npm:0.2.4" - dependencies: - "@types/events": "npm:*" - checksum: 2ae267eb3e959fe5aaf6d850ab06ac2e5b44f1a7e3e421250f3ebaa8a108f641e9050d042980bc35aab98d6fa5f1a62a43cfb7f377011ce9013ed62229327111 - languageName: node - linkType: hard - -"@types/bn.js@npm:*, @types/bn.js@npm:^5.1.0, @types/bn.js@npm:^5.1.1": - version: 5.1.5 - resolution: "@types/bn.js@npm:5.1.5" - dependencies: - "@types/node": "npm:*" - checksum: e9f375b43d8119ed82aed2090f83d4cda8afbb63ba13223afb02fa7550258ff90acd76d65cd7186838644048f085241cd98a3a512d8d187aa497c6039c746ac8 - languageName: node - linkType: hard - -"@types/bn.js@npm:^4.11.3, @types/bn.js@npm:^4.11.5": - version: 4.11.6 - resolution: "@types/bn.js@npm:4.11.6" - dependencies: - "@types/node": "npm:*" - checksum: a5a19dafc106b1b2ab35c2024ca37b9d0938dced11cb1cca7d119de5a0dd5f54db525c82cb1392843fc921677452efcbbdce3aa96ecc1457d3de6e266915ebd0 - languageName: node - linkType: hard - -"@types/bs58@npm:^4.0.1": - version: 4.0.4 - resolution: "@types/bs58@npm:4.0.4" - dependencies: - "@types/node": "npm:*" - base-x: "npm:^3.0.6" - checksum: 002deb33788f4b36dbb476e71f5b5724b1d7774d92dd83cd7532ae11706bc80ffc2f001920dfeb06eb4bc33df6f7b7bb168892953c859ca9bb969ce96b8e22dc - languageName: node - linkType: hard - -"@types/cacheable-request@npm:^6.0.1, @types/cacheable-request@npm:^6.0.2": - version: 6.0.3 - resolution: "@types/cacheable-request@npm:6.0.3" - dependencies: - "@types/http-cache-semantics": "npm:*" - "@types/keyv": "npm:^3.1.4" - "@types/node": "npm:*" - "@types/responselike": "npm:^1.0.0" - checksum: 10816a88e4e5b144d43c1d15a81003f86d649776c7f410c9b5e6579d0ad9d4ca71c541962fb403077388b446e41af7ae38d313e46692144985f006ac5e11fa03 - languageName: node - linkType: hard - -"@types/chai-as-promised@npm:^7.1.3, @types/chai-as-promised@npm:^7.1.5, @types/chai-as-promised@npm:^7.1.7": - version: 7.1.8 - resolution: "@types/chai-as-promised@npm:7.1.8" - dependencies: - "@types/chai": "npm:*" - checksum: c0a19cffe8d3f406b2cb9ba17f5f0efe318b14f27896d807b3199cc2231c16a4b5b6c464fdf2a939214de481de58cffd46c240539d3d4ece18659277d71ccc23 - languageName: node - linkType: hard - -"@types/chai@npm:*, @types/chai@npm:^4.2.0, @types/chai@npm:^4.3.9": - version: 4.3.16 - resolution: "@types/chai@npm:4.3.16" - checksum: 745d4a9be429d5d86a7ab26064610b8957fe12dd80e94dc7d0707cf3db1c889e3ffe0d73d69bb15e6d376bf4462a7a75e9d8fc1051750b5d656d6cfe459829b7 - languageName: node - linkType: hard - -"@types/chai@npm:^4.0.0": - version: 4.3.20 - resolution: "@types/chai@npm:4.3.20" - checksum: 4601189d611752e65018f1ecadac82e94eed29f348e1d5430e5681a60b01e1ecf855d9bcc74ae43b07394751f184f6970fac2b5561fc57a1f36e93a0f5ffb6e8 - languageName: node - linkType: hard - -"@types/concat-stream@npm:^1.6.0": - version: 1.6.1 - resolution: "@types/concat-stream@npm:1.6.1" - dependencies: - "@types/node": "npm:*" - checksum: 838a0ec89d59a11c425b7728fdd05b17b652086a27fdf5b787778521ccf6d3133d9e9a6e6b803785b28c0a0f7a437582813e37b317ed8100870af836ad49a7a2 - languageName: node - linkType: hard - -"@types/debug@npm:^4.1.10, @types/debug@npm:^4.1.12, @types/debug@npm:^4.1.7, @types/debug@npm:^4.1.8": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" - dependencies: - "@types/ms": "npm:*" - checksum: 5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f - languageName: node - linkType: hard - -"@types/dotenv@npm:^8.2.0": - version: 8.2.0 - resolution: "@types/dotenv@npm:8.2.0" - dependencies: - dotenv: "npm:*" - checksum: cd010440ea750acf2359fb9ed0a1681b00ce29d9c40b602fe33e51642bd44ce30ced54b23fadc05385daa415fe9f671273911bcf95381a5aaf09690b3db96938 - languageName: node - linkType: hard - -"@types/eslint@npm:*, @types/eslint@npm:^8.56.10": - version: 8.56.10 - resolution: "@types/eslint@npm:8.56.10" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 674349d6c342c3864d70f4d5a9965f96fb253801532752c8c500ad6a1c2e8b219e01ccff5dc8791dcb58b5483012c495708bb9f3ff929f5c9322b3da126c15d3 - languageName: node - linkType: hard - -"@types/eslint__js@npm:^8.42.3": - version: 8.42.3 - resolution: "@types/eslint__js@npm:8.42.3" - dependencies: - "@types/eslint": "npm:*" - checksum: ccc5180b92155929a089ffb03ed62625216dcd5e46dd3197c6f82370ce8b52c7cb9df66c06b0a3017995409e023bc9eafe5a3f009e391960eacefaa1b62d9a56 - languageName: node - linkType: hard - -"@types/estree@npm:*": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d - languageName: node - linkType: hard - -"@types/events@npm:*": - version: 3.0.3 - resolution: "@types/events@npm:3.0.3" - checksum: 3a56f8c51eb4ebc0d05dcadca0c6636c816acc10216ce36c976fad11e54a01f4bb979a07211355686015884753b37f17d74bfdc7aaf4ebb027c1e8a501c7b21d - languageName: node - linkType: hard - -"@types/form-data@npm:0.0.33": - version: 0.0.33 - resolution: "@types/form-data@npm:0.0.33" - dependencies: - "@types/node": "npm:*" - checksum: 20bd8f7491d759ce613e35612aef37b3084be43466883ce83e1261905032939bc9e51e470e61bccf6d2f08a39659c44795531bbf66af177176ab0ddbd968e155 - languageName: node - linkType: hard - -"@types/glob@npm:^7.1.1, @types/glob@npm:^7.2.0": - version: 7.2.0 - resolution: "@types/glob@npm:7.2.0" - dependencies: - "@types/minimatch": "npm:*" - "@types/node": "npm:*" - checksum: a8eb5d5cb5c48fc58c7ca3ff1e1ddf771ee07ca5043da6e4871e6757b4472e2e73b4cfef2644c38983174a4bc728c73f8da02845c28a1212f98cabd293ecae98 - languageName: node - linkType: hard - -"@types/http-cache-semantics@npm:*, @types/http-cache-semantics@npm:^4.0.2": - version: 4.0.4 - resolution: "@types/http-cache-semantics@npm:4.0.4" - checksum: 51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 - languageName: node - linkType: hard - -"@types/inquirer@npm:^7.3.1": - version: 7.3.3 - resolution: "@types/inquirer@npm:7.3.3" - dependencies: - "@types/through": "npm:*" - rxjs: "npm:^6.4.0" - checksum: f79a333a1b2f08f5c16da88e2a0afbad95ba24e9cadddec069947489836aeae59f7ea8c9484979c71c2adc475bba57d6763e461f3355720d0836ca152f7f2ca4 - languageName: node - linkType: hard - -"@types/inquirer@npm:^8.0.0": - version: 8.2.10 - resolution: "@types/inquirer@npm:8.2.10" - dependencies: - "@types/through": "npm:*" - rxjs: "npm:^7.2.0" - checksum: c39c3a792b5f95727842277c25ca4b2ce3f3f8e7897e51c571ba919ea35587fce81f2b0d1d75747f6f54a7d79b0efe95430fd1fe7f5b81d07af81b2c2fc1fb5d - languageName: node - linkType: hard - -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db - languageName: node - linkType: hard - -"@types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4": - version: 3.1.4 - resolution: "@types/keyv@npm:3.1.4" - dependencies: - "@types/node": "npm:*" - checksum: ff8f54fc49621210291f815fe5b15d809fd7d032941b3180743440bd507ecdf08b9e844625fa346af568c84bf34114eb378dcdc3e921a08ba1e2a08d7e3c809c - languageName: node - linkType: hard - -"@types/lodash@npm:^4.14.200": - version: 4.17.4 - resolution: "@types/lodash@npm:4.17.4" - checksum: 0124c64cb9fe7a0f78b6777955abd05ef0d97844d49118652eae45f8fa57bfb7f5a7a9bccc0b5a84c0a6dc09631042e4590cb665acb9d58dfd5e6543c75341ec - languageName: node - linkType: hard - -"@types/lru-cache@npm:^5.1.0": - version: 5.1.1 - resolution: "@types/lru-cache@npm:5.1.1" - checksum: 1f17ec9b202c01a89337cc5528198a690be6b61a6688242125fbfb7fa17770e453e00e4685021abf5ae605860ca0722209faac5c254b780d0104730bb0b9e354 - languageName: node - linkType: hard - -"@types/minimatch@npm:*": - version: 5.1.2 - resolution: "@types/minimatch@npm:5.1.2" - checksum: 83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 - languageName: node - linkType: hard - -"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.1": - version: 1.2.5 - resolution: "@types/minimist@npm:1.2.5" - checksum: 3f791258d8e99a1d7d0ca2bda1ca6ea5a94e5e7b8fc6cde84dd79b0552da6fb68ade750f0e17718f6587783c24254bbca0357648dd59dc3812c150305cabdc46 - languageName: node - linkType: hard - -"@types/mkdirp@npm:^0.5.2": - version: 0.5.2 - resolution: "@types/mkdirp@npm:0.5.2" - dependencies: - "@types/node": "npm:*" - checksum: c3c6c9bdd1f13b2f114dd34122fd2b030220398501a2727bfe0442615a363dd8f3a89aa4e6d25727ee44c8478fb451aefef82e72184dc1bd04e48334808f37dd - languageName: node - linkType: hard - -"@types/mocha@npm:>=9.1.0, @types/mocha@npm:^10.0.3": - version: 10.0.6 - resolution: "@types/mocha@npm:10.0.6" - checksum: 4526c9e88388f9e1004c6d3937c5488a39908810f26b927173c58d52b43057f3895627dc06538e96706e08b88158885f869ec6311f6b58fd72bdef715f26d6c3 - languageName: node - linkType: hard - -"@types/mocha@npm:^10.0.9": - version: 10.0.10 - resolution: "@types/mocha@npm:10.0.10" - checksum: d2b8c48138cde6923493e42b38e839695eb42edd04629abe480a8f34c0e3f50dd82a55832c2e8d2b6e6f9e4deb492d7d733e600fbbdd5a0ceccbcfc6844ff9d5 - languageName: node - linkType: hard - -"@types/mocha@npm:^8.2.2": - version: 8.2.3 - resolution: "@types/mocha@npm:8.2.3" - checksum: a0faabd12456a51d2dae4b978b8c053517331ac23aa8874c3a35d95253fa9adfccd78b9f1cdae5cac2501aa1e7c6414ed65dc34c717867d86c09d88fda42a19c - languageName: node - linkType: hard - -"@types/mocha@npm:^9.0.0, @types/mocha@npm:^9.1.0": - version: 9.1.1 - resolution: "@types/mocha@npm:9.1.1" - checksum: d033742ce0c92b917815b6e515165ee396866d0db0c0bbe0c301e49402abe3a61bd51e5bb1df7577f1fac60c99ee505fa744f515b476cc934ecb57f709f327e9 - languageName: node - linkType: hard - -"@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc - languageName: node - linkType: hard - -"@types/node-fetch@npm:^2.5.5": - version: 2.6.11 - resolution: "@types/node-fetch@npm:2.6.11" - dependencies: - "@types/node": "npm:*" - form-data: "npm:^4.0.0" - checksum: 5283d4e0bcc37a5b6d8e629aee880a4ffcfb33e089f4b903b2981b19c623972d1e64af7c3f9540ab990f0f5c89b9b5dda19c5bcb37a8e177079e93683bfd2f49 - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:>=12, @types/node@npm:>=16.0.0, @types/node@npm:^20.11.19, @types/node@npm:^20.4.2, @types/node@npm:^20.8.7, @types/node@npm:^20.9.0": - version: 20.12.12 - resolution: "@types/node@npm:20.12.12" - dependencies: - undici-types: "npm:~5.26.4" - checksum: f374b763c744e8f16e4f38cf6e2c0eef31781ec9228c9e43a6f267880fea420fab0a238b59f10a7cb3444e49547c5e3785787e371fc242307310995b21988812 - languageName: node - linkType: hard - -"@types/node@npm:18.15.13": - version: 18.15.13 - resolution: "@types/node@npm:18.15.13" - checksum: 6e5f61c559e60670a7a8fb88e31226ecc18a21be103297ca4cf9848f0a99049dae77f04b7ae677205f2af494f3701b113ba8734f4b636b355477a6534dbb8ada - languageName: node - linkType: hard - -"@types/node@npm:22.7.5": - version: 22.7.5 - resolution: "@types/node@npm:22.7.5" - dependencies: - undici-types: "npm:~6.19.2" - checksum: cf11f74f1a26053ec58066616e3a8685b6bcd7259bc569738b8f752009f9f0f7f85a1b2d24908e5b0f752482d1e8b6babdf1fbb25758711ec7bb9500bfcd6e60 - languageName: node - linkType: hard - -"@types/node@npm:^10.0.3": - version: 10.17.60 - resolution: "@types/node@npm:10.17.60" - checksum: 0742294912a6e79786cdee9ed77cff6ee8ff007b55d8e21170fc3e5994ad3a8101fea741898091876f8dc32b0a5ae3d64537b7176799e92da56346028d2cbcd2 - languageName: node - linkType: hard - -"@types/node@npm:^12.12.6, @types/node@npm:^12.7.1": - version: 12.20.55 - resolution: "@types/node@npm:12.20.55" - checksum: 3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 - languageName: node - linkType: hard - -"@types/node@npm:^17.0.0": - version: 17.0.45 - resolution: "@types/node@npm:17.0.45" - checksum: 0db377133d709b33a47892581a21a41cd7958f22723a3cc6c71d55ac018121382de42fbfc7970d5ae3e7819dbe5f40e1c6a5174aedf7e7964e9cb8fa72b580b0 - languageName: node - linkType: hard - -"@types/node@npm:^8.0.0": - version: 8.10.66 - resolution: "@types/node@npm:8.10.66" - checksum: 425e0fca5bad0d6ff14336946a1e3577750dcfbb7449614786d3241ca78ff44e3beb43eace122682de1b9d8e25cf2a0456a0b3e500d78cb55cab68f892e38141 - languageName: node - linkType: hard - -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: b1b863ac34a2c2172fbe0807a1ec4d5cb684e48d422d15ec95980b81475fac4fdb3768a8b13eef39130203a7c04340fc167bae057c7ebcafd7dec9fe6c36aeb1 - languageName: node - linkType: hard - -"@types/pbkdf2@npm:^3.0.0": - version: 3.1.2 - resolution: "@types/pbkdf2@npm:3.1.2" - dependencies: - "@types/node": "npm:*" - checksum: 4f60b0e3c73297f55023b993d3d543212aa7f61c8c0d6a2720f5dbe2cf38e2fe55ff295d550ac048dddbfc3d44c285cfe16126d65c613bd67a57662357e268d9 - languageName: node - linkType: hard - -"@types/prettier@npm:^2.1.1": - version: 2.7.3 - resolution: "@types/prettier@npm:2.7.3" - checksum: 0960b5c1115bb25e979009d0b44c42cf3d792accf24085e4bfce15aef5794ea042e04e70c2139a2c3387f781f18c89b5706f000ddb089e9a4a2ccb7536a2c5f0 - languageName: node - linkType: hard - -"@types/qs@npm:^6.2.31, @types/qs@npm:^6.9.4, @types/qs@npm:^6.9.7": - version: 6.9.15 - resolution: "@types/qs@npm:6.9.15" - checksum: 49c5ff75ca3adb18a1939310042d273c9fc55920861bd8e5100c8a923b3cda90d759e1a95e18334092da1c8f7b820084687770c83a1ccef04fb2c6908117c823 - languageName: node - linkType: hard - -"@types/readable-stream@npm:^2.3.13": - version: 2.3.15 - resolution: "@types/readable-stream@npm:2.3.15" - dependencies: - "@types/node": "npm:*" - safe-buffer: "npm:~5.1.1" - checksum: 789e0948a8fd2f2cbf880a0f8c95601ac2fd8782a5a8fe653f68fad7fc3a74f44e8559484e331c1ff5d5b00fa467bec97557bb683aa833a3b29a69506f7aee59 - languageName: node - linkType: hard - -"@types/resolve@npm:^0.0.8": - version: 0.0.8 - resolution: "@types/resolve@npm:0.0.8" - dependencies: - "@types/node": "npm:*" - checksum: ead6902f01e7240918e6f6dabf0e2bc37035492b1da16f605bbd1e153c17d0639df77981b2ec042480361be76c9e967543287d9b312cd668ed9123524994c344 - languageName: node - linkType: hard - -"@types/responselike@npm:^1.0.0": - version: 1.0.3 - resolution: "@types/responselike@npm:1.0.3" - dependencies: - "@types/node": "npm:*" - checksum: a58ba341cb9e7d74f71810a88862da7b2a6fa42e2a1fc0ce40498f6ea1d44382f0640117057da779f74c47039f7166bf48fad02dc876f94e005c7afa50f5e129 - languageName: node - linkType: hard - -"@types/secp256k1@npm:^4.0.1": - version: 4.0.6 - resolution: "@types/secp256k1@npm:4.0.6" - dependencies: - "@types/node": "npm:*" - checksum: 0e391316ae30c218779583b626382a56546ddbefb65f1ff9cf5e078af8a7118f67f3e66e30914399cc6f8710c424d0d8c3f34262ffb1f429c6ad911fd0d0bc26 - languageName: node - linkType: hard - -"@types/semver@npm:^7.5.0": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: 8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa - languageName: node - linkType: hard - -"@types/sinon-chai@npm:^3.2.12, @types/sinon-chai@npm:^3.2.3": - version: 3.2.12 - resolution: "@types/sinon-chai@npm:3.2.12" - dependencies: - "@types/chai": "npm:*" - "@types/sinon": "npm:*" - checksum: 2d4b865f117226c84d4fae861e702fa02598e2f347823dccb5dcdcf4bcc8a5f60fbf2c028feb34001d569b69ccbb401a42830cf85f4f5f2d0bd6283112b848f1 - languageName: node - linkType: hard - -"@types/sinon@npm:*": - version: 17.0.3 - resolution: "@types/sinon@npm:17.0.3" - dependencies: - "@types/sinonjs__fake-timers": "npm:*" - checksum: 6fc3aa497fd87826375de3dbddc2bf01c281b517c32c05edf95b5ad906382dc221bca01ca9d44fc7d5cb4c768f996f268154e87633a45b3c0b5cddca7ef5e2be - languageName: node - linkType: hard - -"@types/sinonjs__fake-timers@npm:*": - version: 8.1.5 - resolution: "@types/sinonjs__fake-timers@npm:8.1.5" - checksum: 2b8bdc246365518fc1b08f5720445093cce586183acca19a560be6ef81f824bd9a96c090e462f622af4d206406dadf2033c5daf99a51c1096da6494e5c8dc32e - languageName: node - linkType: hard - -"@types/through@npm:*": - version: 0.0.33 - resolution: "@types/through@npm:0.0.33" - dependencies: - "@types/node": "npm:*" - checksum: 6a8edd7f40cd7e197318e86310a40e568cddd380609dde59b30d5cc6c5f8276ddc698905eac4b3b429eb39f2e8ee326bc20dc6e95a2cdc41c4d3fc9a1ebd4929 - languageName: node - linkType: hard - -"@types/triple-beam@npm:^1.3.2": - version: 1.3.5 - resolution: "@types/triple-beam@npm:1.3.5" - checksum: d5d7f25da612f6d79266f4f1bb9c1ef8f1684e9f60abab251e1261170631062b656ba26ff22631f2760caeafd372abc41e64867cde27fba54fafb73a35b9056a - languageName: node - linkType: hard - -"@types/underscore@npm:*": - version: 1.11.15 - resolution: "@types/underscore@npm:1.11.15" - checksum: f1bbe78337a8b800b6cb96435c54c9428d00c64eabcb8ba690302cb76c4c068d69e663a048c6b05bc9154ba723b1bcb6bcf39f753f6a0eb8c477accde7bd6056 - languageName: node - linkType: hard - -"@types/validator@npm:^13.7.1, @types/validator@npm:^13.7.17": - version: 13.11.10 - resolution: "@types/validator@npm:13.11.10" - checksum: fe63a20fa90d3e8c661d0ac5b5af162cdd387b9e8fd67f5a0a00ca308e4e2d7602467cc32ef3e2c979b737629fa9e2ff593d3946ee4f8667bbb80af0494b9c66 - languageName: node - linkType: hard - -"@types/web3@npm:1.0.19": - version: 1.0.19 - resolution: "@types/web3@npm:1.0.19" - dependencies: - "@types/bn.js": "npm:*" - "@types/underscore": "npm:*" - checksum: b7ef3f2e03552dfec7ab17228bfa43e19c3dee24aa0ee01297ac6f3d0826d19a9a88beeb0ec4d969a146865b4fc07b201b57bb7c636355c4f3f2b423ba54674b - languageName: node - linkType: hard - -"@types/winston@npm:^2.4.4": - version: 2.4.4 - resolution: "@types/winston@npm:2.4.4" - dependencies: - winston: "npm:*" - checksum: 8b967c089ba71773cca671b76aba931b2849afb3a6c03cbc5ef04d19e44092e0957573c730cdfbdda71eeb44984d3554e7edb88391c2a3c1aa36cafadc8f2b87 - languageName: node - linkType: hard - -"@types/ws@npm:^8.0.0": - version: 8.5.10 - resolution: "@types/ws@npm:8.5.10" - dependencies: - "@types/node": "npm:*" - checksum: e9af279b984c4a04ab53295a40aa95c3e9685f04888df5c6920860d1dd073fcc57c7bd33578a04b285b2c655a0b52258d34bee0a20569dca8defb8393e1e5d29 - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 - languageName: node - linkType: hard - -"@types/yargs@npm:^16.0.0": - version: 16.0.9 - resolution: "@types/yargs@npm:16.0.9" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: be24bd9a56c97ddb2964c1c18f5b9fe8271a50e100dc6945989901aae58f7ce6fb8f3a591c749a518401b6301358dbd1997e83c36138a297094feae7f9ac8211 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.9.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.9.0" - "@typescript-eslint/type-utils": "npm:7.9.0" - "@typescript-eslint/utils": "npm:7.9.0" - "@typescript-eslint/visitor-keys": "npm:7.9.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" - natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 5c0ded9cb2210c141d236075f01a86447bf497a5061773c3c64a90756264776b4c4df100f7588e36d34f727eca55afd52fe6696a3cbe2d1f131250934254603a - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^6.8.0": - version: 6.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/type-utils": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" - natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: f911a79ee64d642f814a3b6cdb0d324b5f45d9ef955c5033e78903f626b7239b4aa773e464a38c3e667519066169d983538f2bf8e5d00228af587c9d438fb344 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/parser@npm:7.9.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:7.9.0" - "@typescript-eslint/types": "npm:7.9.0" - "@typescript-eslint/typescript-estree": "npm:7.9.0" - "@typescript-eslint/visitor-keys": "npm:7.9.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 16ca04645429436d9b7986cddda979ef4d088f4223f4a69e04a369e0fd4852dd5ff3d4b99da2e43cddaa2b421b24ff42f275d87bd110ae2356bdd0e81c2534e7 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^6.8.0": - version: 6.21.0 - resolution: "@typescript-eslint/parser@npm:6.21.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: a8f99820679decd0d115c0af61903fb1de3b1b5bec412dc72b67670bf636de77ab07f2a68ee65d6da7976039bbf636907f9d5ca546db3f0b98a31ffbc225bc7d - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/scope-manager@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - checksum: eaf868938d811cbbea33e97e44ba7050d2b6892202cea6a9622c486b85ab1cf801979edf78036179a8ba4ac26f1dfdf7fcc83a68c1ff66be0b3a8e9a9989b526 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/scope-manager@npm:7.9.0" - dependencies: - "@typescript-eslint/types": "npm:7.9.0" - "@typescript-eslint/visitor-keys": "npm:7.9.0" - checksum: 1ba6fc559a42a9b54e38c3ac2b6669efcff1a30292fb4e5fc8739c890a6c0f37d1a6aee1d115198f57c88e4f1776e95c1d7143de5cb5b970d5eb3023e97789dd - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/type-utils@npm:6.21.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 7409c97d1c4a4386b488962739c4f1b5b04dc60cf51f8cd88e6b12541f84d84c6b8b67e491a147a2c95f9ec486539bf4519fb9d418411aef6537b9c156468117 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/type-utils@npm:7.9.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:7.9.0" - "@typescript-eslint/utils": "npm:7.9.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 775280fb179268f8bacd60e684d9d5a1c6a379646b082c7244bf2dfb7dd693053bd9efa473b71e10a86db69322b0a2cecf5598d019684930df50000bf3d70af0 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/types@npm:6.21.0" - checksum: 020631d3223bbcff8a0da3efbdf058220a8f48a3de221563996ad1dcc30d6c08dadc3f7608cc08830d21c0d565efd2db19b557b9528921c78aabb605eef2d74d - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/types@npm:7.9.0" - checksum: d5f4a547dba4865ee2391bf06f2b3f8e8592a561976d2be35bb61ce340c7d1b7b4b25ac6ab5b9941813b465b9420bebb7b2179b1d71f6a83069feeb000b3558d - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependenciesMeta: - typescript: - optional: true - checksum: af1438c60f080045ebb330155a8c9bb90db345d5069cdd5d01b67de502abb7449d6c75500519df829f913a6b3f490ade3e8215279b6bdc63d0fb0ae61034df5f - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.9.0" - dependencies: - "@typescript-eslint/types": "npm:7.9.0" - "@typescript-eslint/visitor-keys": "npm:7.9.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: cfc3d2b7a5433c9a2989c7289bc72b49786993782801ad8ca5a07c651df457a67fbce13b120c86c34c03d56570a90e5cf4f3b8806349f103a3658f2366ec28ea - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/utils@npm:6.21.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - semver: "npm:^7.5.4" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: ab2df3833b2582d4e5467a484d08942b4f2f7208f8e09d67de510008eb8001a9b7460f2f9ba11c12086fd3cdcac0c626761c7995c2c6b5657d5fa6b82030a32d - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/utils@npm:7.9.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.9.0" - "@typescript-eslint/types": "npm:7.9.0" - "@typescript-eslint/typescript-estree": "npm:7.9.0" - peerDependencies: - eslint: ^8.56.0 - checksum: cb99d6a950e7da0319bc7b923a82c52c0798a14e837afee51b2295cfbde02e0a2ac8e0b5904cd7bd01d1b376c7a6ad3739101b486feaf2517c8640024deb88c7 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 7395f69739cfa1cb83c1fb2fad30afa2a814756367302fb4facd5893eff66abc807e8d8f63eba94ed3b0fe0c1c996ac9a1680bcbf0f83717acedc3f2bb724fbf - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.9.0": - version: 7.9.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.9.0" - dependencies: - "@typescript-eslint/types": "npm:7.9.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 19181d8b9d2d7bc43d5c8884661cd9a86ac316392b8e590187cc507442093a1ba2bef0cc22181b8298d5dc9f455abb73cffa4663451bdf32b1b7fe12160c5c99 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - -"@urql/core@npm:2.4.4": - version: 2.4.4 - resolution: "@urql/core@npm:2.4.4" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - wonka: "npm:^4.0.14" - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 1cf6f2fbd1269efcb46f690f9e33872fac89e13a10abffec908bfbaaf69464da8752be9c1e21f03caadce84b517b923f3c94d2acdbdea7acfe563166f15803ad - languageName: node - linkType: hard - -"@urql/core@npm:>=2.3.6": - version: 5.0.3 - resolution: "@urql/core@npm:5.0.3" - dependencies: - "@0no-co/graphql.web": "npm:^1.0.5" - wonka: "npm:^6.3.2" - checksum: 7ae9dfe4cbce949a0e2856f46e5c0f62a1bdb6eda6f24480468b62f886cc03131e77b578da4fbb9fe8c1622b7542fdd371b83e7883f01a296924b5dfbe738f10 - languageName: node - linkType: hard - -"@urql/core@npm:^2.1.3": - version: 2.6.1 - resolution: "@urql/core@npm:2.6.1" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - wonka: "npm:^4.0.14" - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 2b08658227b3f7959f2e1c2af956e296fff9ca80d1f79477987495c7922774bfcee13c6fc4bf4b7eda08c9db3d761350fe84b361f2631c12feede0d910abd5b7 - languageName: node - linkType: hard - -"@urql/exchange-execute@npm:1.2.2": - version: 1.2.2 - resolution: "@urql/exchange-execute@npm:1.2.2" - dependencies: - "@urql/core": "npm:>=2.3.6" - wonka: "npm:^4.0.14" - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 9660b28103216b956485ebfc2fd1971900c54f13461fb3ea8f7c6d49bed132b8ae5161c3efb23f4177126e0917965e0ab56e3e9a4be81d8563ccb5c8a8a0ad0d - languageName: node - linkType: hard - -"@whatwg-node/cookie-store@npm:^0.0.1": - version: 0.0.1 - resolution: "@whatwg-node/cookie-store@npm:0.0.1" - dependencies: - "@whatwg-node/events": "npm:^0.0.3" - tslib: "npm:^2.3.1" - checksum: dfc7e2ede29d7283b64639b712c3b62b29dffc7e5fec87350078c3586f519764900ac1d1018600211c9fc2789a12393a115c43cdb8438d27870cbaa34b188cdd - languageName: node - linkType: hard - -"@whatwg-node/events@npm:0.0.2": - version: 0.0.2 - resolution: "@whatwg-node/events@npm:0.0.2" - checksum: 79d5da79d5ab1cd28d8bfda7fba6f0a574a9fb9cc7f13fa0ead306a0dcf4ea7058735190ccc7c00c9eb65c3abef109d8db32a525032bb60ffbb374f2e37e78a0 - languageName: node - linkType: hard - -"@whatwg-node/events@npm:^0.0.3": - version: 0.0.3 - resolution: "@whatwg-node/events@npm:0.0.3" - checksum: 87ac0854f84650ce016ccd82a6c087eac1c6204eeb80cf358737ce7757a345e3a4ba19e9b1815b326eb1451d49878785aa9dc426631f4ea47dedbcfc51b56977 - languageName: node - linkType: hard - -"@whatwg-node/fetch@npm:^0.8.0, @whatwg-node/fetch@npm:^0.8.1, @whatwg-node/fetch@npm:^0.8.2, @whatwg-node/fetch@npm:^0.8.3, @whatwg-node/fetch@npm:^0.8.4": - version: 0.8.8 - resolution: "@whatwg-node/fetch@npm:0.8.8" - dependencies: - "@peculiar/webcrypto": "npm:^1.4.0" - "@whatwg-node/node-fetch": "npm:^0.3.6" - busboy: "npm:^1.6.0" - urlpattern-polyfill: "npm:^8.0.0" - web-streams-polyfill: "npm:^3.2.1" - checksum: 37d882bf85764aec7541cda1008099ab4d695971608946ec9b9e40326eedfd4c49507fbcc8765ebe3e9241f4dc9d1e970e0b3501a814d721c40c721d313c5d50 - languageName: node - linkType: hard - -"@whatwg-node/node-fetch@npm:^0.3.6": - version: 0.3.6 - resolution: "@whatwg-node/node-fetch@npm:0.3.6" - dependencies: - "@whatwg-node/events": "npm:^0.0.3" - busboy: "npm:^1.6.0" - fast-querystring: "npm:^1.1.1" - fast-url-parser: "npm:^1.1.3" - tslib: "npm:^2.3.1" - checksum: 49e4fd5e682d1fa1229b2c13c06074c6a633eddbe61be162fd213ddb85d6d27d51554b3cced5f6b7f3be1722a64cca7f5ffe0722d08b3285fe2f289d8d5a045d - languageName: node - linkType: hard - -"@whatwg-node/server@npm:^0.7.3, @whatwg-node/server@npm:^0.7.4": - version: 0.7.7 - resolution: "@whatwg-node/server@npm:0.7.7" - dependencies: - "@whatwg-node/fetch": "npm:^0.8.3" - tslib: "npm:^2.3.1" - checksum: 5bd10ac9414bad7b703088f3fd8539c7dd0fb8ceb252b1e501a7206545ccc2dda8ec9de9e495dd43197c97bc840d7b3d12e06f26ef3f449655f196f6d5c25143 - languageName: node - linkType: hard - -"@yarnpkg/lockfile@npm:^1.1.0": - version: 1.1.0 - resolution: "@yarnpkg/lockfile@npm:1.1.0" - checksum: 0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda - languageName: node - linkType: hard - -"@zxing/text-encoding@npm:0.9.0": - version: 0.9.0 - resolution: "@zxing/text-encoding@npm:0.9.0" - checksum: d15bff181d46c2ab709e7242801a8d40408aa8c19b44462e5f60e766bf59105b44957914ab6baab60d10d466a5e965f21fe890c67dfdb7d5c7f940df457b4d0d - languageName: node - linkType: hard - -"JSONStream@npm:^1.0.4, JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: "npm:^1.2.0" - through: "npm:>=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 - languageName: node - linkType: hard - -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: 3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 - languageName: node - linkType: hard - -"abbrev@npm:1.0.x": - version: 1.0.9 - resolution: "abbrev@npm:1.0.9" - checksum: 214632e37c68f71d61d2ee920644a11c7b0cee08ddde96961b02ebe95ad86de0d56bd6762ff337bd9cf6e5c1431ce724babd28c110fce4b20d35f6fa87944d00 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 - languageName: node - linkType: hard - -"abitype@npm:0.7.1": - version: 0.7.1 - resolution: "abitype@npm:0.7.1" - peerDependencies: - typescript: ">=4.9.4" - zod: ^3 >=3.19.1 - peerDependenciesMeta: - zod: - optional: true - checksum: c95386afc8438b29d09fcb6d7bc3a457958ab0a472483a363bdb9bf9f42e1b90ab5b05a16f04b653ad0bf79f4451233fe35fc6c7a04b66cb4eba9df7d8e49f12 - languageName: node - linkType: hard - -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - -"abortcontroller-polyfill@npm:^1.7.3": - version: 1.7.5 - resolution: "abortcontroller-polyfill@npm:1.7.5" - checksum: d7a5ab6fda4f9a54f22ddeb233a2564d2f4f857ec17be25fee21a91bb5090bee57c630c454634b5c4b93fc06bd90d592d1f2fc69f77cd28791ac0fe361feb7d2 - languageName: node - linkType: hard - -"abstract-level@npm:^1.0.0, abstract-level@npm:^1.0.2, abstract-level@npm:^1.0.3, abstract-level@npm:^1.0.4": - version: 1.0.4 - resolution: "abstract-level@npm:1.0.4" - dependencies: - buffer: "npm:^6.0.3" - catering: "npm:^2.1.0" - is-buffer: "npm:^2.0.5" - level-supports: "npm:^4.0.0" - level-transcoder: "npm:^1.0.1" - module-error: "npm:^1.0.1" - queue-microtask: "npm:^1.2.3" - checksum: e89fad8924888b597ca84e6d003a424a670f225fd595ad1f4c2e2d38a5cea3c92877a44f5104cdede1717eb262dd6e7fbf7ef2375569c7395066521170b8d761 - languageName: node - linkType: hard - -"abstract-leveldown@npm:3.0.0": - version: 3.0.0 - resolution: "abstract-leveldown@npm:3.0.0" - dependencies: - xtend: "npm:~4.0.0" - checksum: 51ba7656eb2aaf65997989027daf1652ce202dddbba45576be5ad63828d499e3f5f3192b32f874430557e4d69097dd8c2933570eb9a2b8fc26770ccf91cfd98a - languageName: node - linkType: hard - -"abstract-leveldown@npm:^2.4.1, abstract-leveldown@npm:~2.7.1": - version: 2.7.2 - resolution: "abstract-leveldown@npm:2.7.2" - dependencies: - xtend: "npm:~4.0.0" - checksum: 3739af5a612e63988d5c28feb0e81fb3c510a1cece0a978313d15d43a9bd4b326be8f0e42d74815117612f549bf9e6de34f633af1d1ea0c1ccc3e495640dcca4 - languageName: node - linkType: hard - -"abstract-leveldown@npm:^5.0.0, abstract-leveldown@npm:~5.0.0": - version: 5.0.0 - resolution: "abstract-leveldown@npm:5.0.0" - dependencies: - xtend: "npm:~4.0.0" - checksum: 48a54c29e7ba9ea87353443344ddd00548acb1d45131d059de82554dcccd451b226999e0d934c4a9bff252fbd75167531e8acc431b6f36b374eff0edefbae201 - languageName: node - linkType: hard - -"abstract-leveldown@npm:~2.6.0": - version: 2.6.3 - resolution: "abstract-leveldown@npm:2.6.3" - dependencies: - xtend: "npm:~4.0.0" - checksum: db2860eecc9c973472820a0336c830b1168ebf08f43d0ee5be86e0c858e58b1bff4fd6172b4e15dc0404b69ab13e7f5339e914c224d3746c3f19b6db98339238 - languageName: node - linkType: hard - -"accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 - languageName: node - linkType: hard - -"acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 - languageName: node - linkType: hard - -"acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 - languageName: node - linkType: hard - -"address@npm:^1.0.1": - version: 1.2.2 - resolution: "address@npm:1.2.2" - checksum: 1c8056b77fb124456997b78ed682ecc19d2fd7ea8bd5850a2aa8c3e3134c913847c57bcae418622efd32ba858fa1e242a40a251ac31da0515664fc0ac03a047d - languageName: node - linkType: hard - -"adm-zip@npm:^0.4.16": - version: 0.4.16 - resolution: "adm-zip@npm:0.4.16" - checksum: c56c6e138fd19006155fc716acae14d54e07c267ae19d78c8a8cdca04762bf20170a71a41aa8d8bad2f13b70d4f3e9a191009bafa5280e05a440ee506f871a55 - languageName: node - linkType: hard - -"aes-js@npm:3.0.0": - version: 3.0.0 - resolution: "aes-js@npm:3.0.0" - checksum: 87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8 - languageName: node - linkType: hard - -"aes-js@npm:4.0.0-beta.5": - version: 4.0.0-beta.5 - resolution: "aes-js@npm:4.0.0-beta.5" - checksum: 444f4eefa1e602cbc4f2a3c644bc990f93fd982b148425fee17634da510586fc09da940dcf8ace1b2d001453c07ff042e55f7a0482b3cc9372bf1ef75479090c - languageName: node - linkType: hard - -"aes-js@npm:^3.1.1": - version: 3.1.2 - resolution: "aes-js@npm:3.1.2" - checksum: 2568cc67af66fd9d41de25dc73d49ae810269c7648bbb1928b9f84d8fd6ddb4e39ed506d1be6794f5ffd567aadea75fc6895ef34d2b70b764f539f72a6a2baeb - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 - languageName: node - linkType: hard - -"ajv-formats@npm:^2.1.1": - version: 2.1.1 - resolution: "ajv-formats@npm:2.1.1" - dependencies: - ajv: "npm:^8.0.0" - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 - languageName: node - linkType: hard - -"ajv@npm:^5.2.2": - version: 5.5.2 - resolution: "ajv@npm:5.5.2" - dependencies: - co: "npm:^4.6.0" - fast-deep-equal: "npm:^1.0.0" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.3.0" - checksum: 9b8f762cd6b9da3935987b82418402247e76925e39814ca0d62088656117129db7e0cdc1d3e4aa6a3c4aa5ff67021551299ee4771735bcccb6cdd3f85061e565 - languageName: node - linkType: hard - -"ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.6": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 - languageName: node - linkType: hard - -"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.11.0, ajv@npm:^8.12.0": - version: 8.13.0 - resolution: "ajv@npm:8.13.0" - dependencies: - fast-deep-equal: "npm:^3.1.3" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 14c6497b6f72843986d7344175a1aa0e2c35b1e7f7475e55bc582cddb765fca7e6bf950f465dc7846f817776d9541b706f4b5b3fbedd8dfdeb5fce6f22864264 - languageName: node - linkType: hard - -"amazon-cognito-identity-js@npm:^6.0.1": - version: 6.3.13 - resolution: "amazon-cognito-identity-js@npm:6.3.13" - dependencies: - "@aws-crypto/sha256-js": "npm:1.2.2" - buffer: "npm:4.9.2" - fast-base64-decode: "npm:^1.0.0" - isomorphic-unfetch: "npm:^3.0.0" - js-cookie: "npm:^2.2.1" - checksum: 274785ef26573969bcc12d8f36d1f529da7fd50068ee52c7e3213c61549ce319db7c477c8c11633fc7f6bfe114fd93071228720742c0b091bafe18e7c13536a8 - languageName: node - linkType: hard - -"amdefine@npm:>=0.0.4": - version: 1.0.1 - resolution: "amdefine@npm:1.0.1" - checksum: ba8aa5d4ff5248b2ed067111e72644b36b5b7ae88d9a5a2c4223dddb3bdc9102db67291e0b414f59f12c6479ac6a365886bac72c7965e627cbc732e0962dd1ab - languageName: node - linkType: hard - -"ansi-align@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-align@npm:3.0.1" - dependencies: - string-width: "npm:^4.1.0" - checksum: ad8b755a253a1bc8234eb341e0cec68a857ab18bf97ba2bda529e86f6e30460416523e0ec58c32e5c21f0ca470d779503244892873a5895dbd0c39c788e82467 - languageName: node - linkType: hard - -"ansi-colors@npm:4.1.1": - version: 4.1.1 - resolution: "ansi-colors@npm:4.1.1" - checksum: 6086ade4336b4250b6b25e144b83e5623bcaf654d3df0c3546ce09c9c5ff999cb6a6f00c87e802d05cf98aef79d92dc76ade2670a2493b8dcb80220bec457838 - languageName: node - linkType: hard - -"ansi-colors@npm:^4.1.0, ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: "npm:^0.21.3" - checksum: da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 - languageName: node - linkType: hard - -"ansi-escapes@npm:^6.2.0": - version: 6.2.1 - resolution: "ansi-escapes@npm:6.2.1" - checksum: a2c6f58b044be5f69662ee17073229b492daa2425a7fd99a665db6c22eab6e4ab42752807def7281c1c7acfed48f87f2362dda892f08c2c437f1b39c6b033103 - languageName: node - linkType: hard - -"ansi-regex@npm:^2.0.0": - version: 2.1.1 - resolution: "ansi-regex@npm:2.1.1" - checksum: 78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b - languageName: node - linkType: hard - -"ansi-regex@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-regex@npm:3.0.1" - checksum: d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167 - languageName: node - linkType: hard - -"ansi-regex@npm:^4.1.0": - version: 4.1.1 - resolution: "ansi-regex@npm:4.1.1" - checksum: d36d34234d077e8770169d980fed7b2f3724bfa2a01da150ccd75ef9707c80e883d27cdf7a0eac2f145ac1d10a785a8a855cffd05b85f778629a0db62e7033da - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 - languageName: node - linkType: hard - -"ansi-styles@npm:^2.2.1": - version: 2.2.1 - resolution: "ansi-styles@npm:2.2.1" - checksum: 7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: "npm:^2.0.1" - checksum: 895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c - languageName: node - linkType: hard - -"antlr4@npm:^4.11.0, antlr4@npm:^4.13.1-patch-1": - version: 4.13.1 - resolution: "antlr4@npm:4.13.1" - checksum: f92191677cf277e9c65806bcc40e0d844838203047e3d50cb2628cdda3052500dad0827f9308fc46283935786b0e6bc2986beb47cdd9b1ac88b5258d1b311294 - languageName: node - linkType: hard - -"antlr4ts@npm:^0.5.0-alpha.4": - version: 0.5.0-dev - resolution: "antlr4ts@npm:0.5.0-dev" - dependencies: - source-map-support: "npm:^0.5.16" - checksum: 948d95d02497a5751105cc61e9931d03a9bf0566b33a28ea8f2c72484a47ec4c5148670e1a525bfbc0069b1b86ab820417ec3fad120081211ff55f542fb4a835 - languageName: node - linkType: hard - -"any-signal@npm:^1.1.0": - version: 1.2.0 - resolution: "any-signal@npm:1.2.0" - dependencies: - abort-controller: "npm:^3.0.0" - checksum: 575d5979e6f71f686caa1d14699d3a9a3e96a909783a6ce15452ed403668945e43dc6541ad3f37be530a37faab1fdb58e4d2a82f23c39043a68e23b2c0164c25 - languageName: node - linkType: hard - -"anymatch@npm:^1.3.0": - version: 1.3.2 - resolution: "anymatch@npm:1.3.2" - dependencies: - micromatch: "npm:^2.1.5" - normalize-path: "npm:^2.0.0" - checksum: aa1eae8ef5076cfecefef1983811b4666b365513d60dfcb30756556cc7e8547fae2654328509beedb812b211da4785df5d42ca720aa24d52e745509ad3a4b2a8 - languageName: node - linkType: hard - -"anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: "npm:^3.0.0" - picomatch: "npm:^2.0.4" - checksum: 57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac - languageName: node - linkType: hard - -"arbos-precompiles@npm:^1.0.2": - version: 1.0.2 - resolution: "arbos-precompiles@npm:1.0.2" - dependencies: - hardhat: "npm:^2.6.4" - checksum: 4d700af46c7f28c890cba00323cf52668a7017ab5db5c28cb48c3aea6520899b8e0b49bb9af088375e0d38ea466490066c9835aaed8ee73dbacd9fff871bcc71 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: "npm:~1.0.2" - checksum: b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - -"arr-diff@npm:^2.0.0": - version: 2.0.0 - resolution: "arr-diff@npm:2.0.0" - dependencies: - arr-flatten: "npm:^1.0.1" - checksum: d79592bf2b621b9c038e7a697357174409fceb63658529ea3b2d2d53a2918160e6bebb2e6ae756eb53330f07c11b052752377905d743a8928f9d3858598cafa2 - languageName: node - linkType: hard - -"arr-diff@npm:^4.0.0": - version: 4.0.0 - resolution: "arr-diff@npm:4.0.0" - checksum: 67b80067137f70c89953b95f5c6279ad379c3ee39f7143578e13bd51580a40066ee2a55da066e22d498dce10f68c2d70056d7823f972fab99dfbf4c78d0bc0f7 - languageName: node - linkType: hard - -"arr-flatten@npm:^1.0.1, arr-flatten@npm:^1.1.0": - version: 1.1.0 - resolution: "arr-flatten@npm:1.1.0" - checksum: bef53be02ed3bc58f202b3861a5b1eb6e1ae4fecf39c3ad4d15b1e0433f941077d16e019a33312d820844b0661777322acbb7d0c447b04d9bdf7d6f9c532548a - languageName: node - linkType: hard - -"arr-union@npm:^3.1.0": - version: 3.1.0 - resolution: "arr-union@npm:3.1.0" - checksum: 7d5aa05894e54aa93c77c5726c1dd5d8e8d3afe4f77983c0aa8a14a8a5cbe8b18f0cf4ecaa4ac8c908ef5f744d2cbbdaa83fd6e96724d15fea56cfa7f5efdd51 - languageName: node - linkType: hard - -"array-back@npm:^1.0.3, array-back@npm:^1.0.4": - version: 1.0.4 - resolution: "array-back@npm:1.0.4" - dependencies: - typical: "npm:^2.6.0" - checksum: 2151398fcc418e77bae3d936ab7c543fd313843df3ddafe5799c9d9d90ff7dd75a08b5ca540356054f32110d4bfd30e13cb4a516771eecb286fe3e60c3cc472a - languageName: node - linkType: hard - -"array-back@npm:^2.0.0": - version: 2.0.0 - resolution: "array-back@npm:2.0.0" - dependencies: - typical: "npm:^2.6.1" - checksum: 51b49a283235b2d98666a35b29563cf87ce1aa86b5426158da3f4919c3e566e1ecb1154f53804aa4bcc5d8759cab81815fe7acdf730e874ad1943d246a4663a5 - languageName: node - linkType: hard - -"array-back@npm:^3.0.1, array-back@npm:^3.1.0": - version: 3.1.0 - resolution: "array-back@npm:3.1.0" - checksum: bb1fe86aa8b39c21e73c68c7abf8b05ed939b8951a3b17527217f6a2a84e00e4cfa4fdec823081689c5e216709bf1f214a4f5feeee6726eaff83897fa1a7b8ee - languageName: node - linkType: hard - -"array-back@npm:^4.0.1, array-back@npm:^4.0.2": - version: 4.0.2 - resolution: "array-back@npm:4.0.2" - checksum: 8beb5b4c9535eab2905d4ff7d16c4d90ee5ca080d2b26b1e637434c0fcfadb3585283524aada753bd5d06bb88a5dac9e175c3a236183741d3d795a69b6678c96 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 - languageName: node - linkType: hard - -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: 806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91 - languageName: node - linkType: hard - -"array-ify@npm:^1.0.0": - version: 1.0.0 - resolution: "array-ify@npm:1.0.0" - checksum: 75c9c072faac47bd61779c0c595e912fe660d338504ac70d10e39e1b8a4a0c9c87658703d619b9d1b70d324177ae29dc8d07dda0d0a15d005597bc4c5a59c70c - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 - languageName: node - linkType: hard - -"array-uniq@npm:1.0.3": - version: 1.0.3 - resolution: "array-uniq@npm:1.0.3" - checksum: 3acbaf9e6d5faeb1010e2db04ab171b8d265889e46c61762e502979bdc5e55656013726e9a61507de3c82d329a0dc1e8072630a3454b4f2b881cb19ba7fd8aa6 - languageName: node - linkType: hard - -"array-unique@npm:^0.2.1": - version: 0.2.1 - resolution: "array-unique@npm:0.2.1" - checksum: e72f4c45a432b44f9785b24bb5742648ed68f074a74f7bcf65b3f47630cd6aea05e532ab921f1a5f57266512a02183440b42f683dab95636bb81c8d6e2758641 - languageName: node - linkType: hard - -"array-unique@npm:^0.3.2": - version: 0.3.2 - resolution: "array-unique@npm:0.3.2" - checksum: dbf4462cdba8a4b85577be07705210b3d35be4b765822a3f52962d907186617638ce15e0603a4fefdcf82f4cbbc9d433f8cbbd6855148a68872fa041b6474121 - languageName: node - linkType: hard - -"array.prototype.findlast@npm:^1.2.2": - version: 1.2.5 - resolution: "array.prototype.findlast@npm:1.2.5" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775 - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.2.3": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b - languageName: node - linkType: hard - -"array.prototype.reduce@npm:^1.0.6": - version: 1.0.7 - resolution: "array.prototype.reduce@npm:1.0.7" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-array-method-boxes-properly: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - is-string: "npm:^1.0.7" - checksum: 97aac907d7b15088d5b991bad79de96f95ea0d47a701a034e2dc816e0aabaed2fb401d7fe65ab6fda05eafa58319aa2d1bac404f515e162b81b3b61a51224db2 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.22.3" - es-errors: "npm:^1.2.1" - get-intrinsic: "npm:^1.2.3" - is-array-buffer: "npm:^3.0.4" - is-shared-array-buffer: "npm:^1.0.2" - checksum: d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36 - languageName: node - linkType: hard - -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab - languageName: node - linkType: hard - -"asap@npm:^2.0.6, asap@npm:~2.0.3, asap@npm:~2.0.6": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: c6d5e39fe1f15e4b87677460bd66b66050cd14c772269cee6688824c1410a08ab20254bb6784f9afb75af9144a9f9a7692d49547f4d19d715aeb7c0318f3136d - languageName: node - linkType: hard - -"asn1.js@npm:^4.10.1": - version: 4.10.1 - resolution: "asn1.js@npm:4.10.1" - dependencies: - bn.js: "npm:^4.0.0" - inherits: "npm:^2.0.1" - minimalistic-assert: "npm:^1.0.0" - checksum: afa7f3ab9e31566c80175a75b182e5dba50589dcc738aa485be42bdd787e2a07246a4b034d481861123cbe646a7656f318f4f1cad2e9e5e808a210d5d6feaa88 - languageName: node - linkType: hard - -"asn1@npm:~0.2.3": - version: 0.2.6 - resolution: "asn1@npm:0.2.6" - dependencies: - safer-buffer: "npm:~2.1.0" - checksum: 00c8a06c37e548762306bcb1488388d2f76c74c36f70c803f0c081a01d3bdf26090fc088cd812afc5e56a6d49e33765d451a5f8a68ab9c2b087eba65d2e980e0 - languageName: node - linkType: hard - -"asn1js@npm:^3.0.1, asn1js@npm:^3.0.5": - version: 3.0.5 - resolution: "asn1js@npm:3.0.5" - dependencies: - pvtsutils: "npm:^1.3.2" - pvutils: "npm:^1.1.3" - tslib: "npm:^2.4.0" - checksum: bb8eaf4040c8f49dd475566874986f5976b81bae65a6b5526e2208a13cdca323e69ce297bcd435fdda3eb6933defe888e71974d705b6fcb14f2734a907f8aed4 - languageName: node - linkType: hard - -"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": - version: 1.0.0 - resolution: "assert-plus@npm:1.0.0" - checksum: b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 - languageName: node - linkType: hard - -"assertion-error@npm:^1.1.0": - version: 1.1.0 - resolution: "assertion-error@npm:1.1.0" - checksum: 25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b - languageName: node - linkType: hard - -"assign-symbols@npm:^1.0.0": - version: 1.0.0 - resolution: "assign-symbols@npm:1.0.0" - checksum: 29a654b8a6da6889a190d0d0efef4b1bfb5948fa06cbc245054aef05139f889f2f7c75b989917e3fde853fc4093b88048e4de8578a73a76f113d41bfd66e5775 - languageName: node - linkType: hard - -"ast-parents@npm:^0.0.1": - version: 0.0.1 - resolution: "ast-parents@npm:0.0.1" - checksum: f170166a5d43526f26be95754773822f63d4f45e5ccf83949290ef09919cff6a45d30f9e85ea4a2648b9cd757c18f246ec0cf050094c3b686722c2e6136edfe2 - languageName: node - linkType: hard - -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 - languageName: node - linkType: hard - -"async-each@npm:^1.0.0": - version: 1.0.6 - resolution: "async-each@npm:1.0.6" - checksum: d4e45e8f077e20e015952c065ceae75f82b30ee2d4a8e56a5c454ae44331aaa009d8c94fe043ba254c177bffae9f6ebeefebb7daf9f7ce4d27fac0274dc328ae - languageName: node - linkType: hard - -"async-eventemitter@npm:^0.2.2, async-eventemitter@npm:^0.2.4": - version: 0.2.4 - resolution: "async-eventemitter@npm:0.2.4" - dependencies: - async: "npm:^2.4.0" - checksum: ce761d1837d454efb456bd2bd5b0db0e100f600d66d9a07a9f7772e0cfd5ad3029bb07385310bd1c7d65603735b755ba457a2f8ed47fb1314a6fe275dd69a322 - languageName: node - linkType: hard - -"async-limiter@npm:~1.0.0": - version: 1.0.1 - resolution: "async-limiter@npm:1.0.1" - checksum: 0693d378cfe86842a70d4c849595a0bb50dc44c11649640ca982fa90cbfc74e3cc4753b5a0847e51933f2e9c65ce8e05576e75e5e1fd963a086e673735b35969 - languageName: node - linkType: hard - -"async-mutex@npm:^0.4.0": - version: 0.4.1 - resolution: "async-mutex@npm:0.4.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 3c412736c0bc4a9a2cfd948276a8caab8686aa615866a5bd20986e616f8945320acb310058a17afa1b31b8de6f634a78b7ec2217a33d7559b38f68bb85a95854 - languageName: node - linkType: hard - -"async-retry@npm:^1.3.3": - version: 1.3.3 - resolution: "async-retry@npm:1.3.3" - dependencies: - retry: "npm:0.13.1" - checksum: cabced4fb46f8737b95cc88dc9c0ff42656c62dc83ce0650864e891b6c155a063af08d62c446269b51256f6fbcb69a6563b80e76d0ea4a5117b0c0377b6b19d8 - languageName: node - linkType: hard - -"async@npm:1.x, async@npm:^1.4.2": - version: 1.5.2 - resolution: "async@npm:1.5.2" - checksum: 9ee84592c393aad1047d1223004317ecc65a9a3f76101e0f4614a0818eac962e666510353400a3c9ea158df540579a293f486f3578e918c5e90a0f5ed52e8aea - languageName: node - linkType: hard - -"async@npm:2.6.2": - version: 2.6.2 - resolution: "async@npm:2.6.2" - dependencies: - lodash: "npm:^4.17.11" - checksum: 5be49173e35ef8230e32a0278c9183f0477590d83c67877ad66fe404901e8f11991b9255ac39fd5f8d381677c6fc10ae3ec95c73ca4d64c9920709eb231cf39b - languageName: node - linkType: hard - -"async@npm:^2.0.1, async@npm:^2.1.2, async@npm:^2.4.0, async@npm:^2.5.0, async@npm:^2.6.1": - version: 2.6.4 - resolution: "async@npm:2.6.4" - dependencies: - lodash: "npm:^4.17.14" - checksum: 0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0 - languageName: node - linkType: hard - -"async@npm:^3.2.3": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef - languageName: node - linkType: hard - -"atob@npm:^2.1.2": - version: 2.1.2 - resolution: "atob@npm:2.1.2" - bin: - atob: bin/atob.js - checksum: ada635b519dc0c576bb0b3ca63a73b50eefacf390abb3f062558342a8d68f2db91d0c8db54ce81b0d89de3b0f000de71f3ae7d761fd7d8cc624278fe443d6c7e - languageName: node - linkType: hard - -"atomic-sleep@npm:^1.0.0": - version: 1.0.0 - resolution: "atomic-sleep@npm:1.0.0" - checksum: e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a - languageName: node - linkType: hard - -"auto-bind@npm:~4.0.0": - version: 4.0.0 - resolution: "auto-bind@npm:4.0.0" - checksum: 12f70745d081ba990dca028ecfa70de25d4baa9a8b74a5bef3ab293da56cba32ff8276c3ff8e5fe6d9f370547bf3fa71486befbfefe272af7e722c21d0c25530 - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.7": - version: 1.0.7 - resolution: "available-typed-arrays@npm:1.0.7" - dependencies: - possible-typed-array-names: "npm:^1.0.0" - checksum: d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 - languageName: node - linkType: hard - -"aws-sign2@npm:~0.7.0": - version: 0.7.0 - resolution: "aws-sign2@npm:0.7.0" - checksum: 021d2cc5547d4d9ef1633e0332e746a6f447997758b8b68d6fb33f290986872d2bff5f0c37d5832f41a7229361f093cd81c40898d96ed153493c0fb5cd8575d2 - languageName: node - linkType: hard - -"aws4@npm:^1.8.0": - version: 1.12.0 - resolution: "aws4@npm:1.12.0" - checksum: 1e39c266f53b04daf88e112de93a6006375b386a1b7ab6197260886e39abd012aa90bdd87949c3bf9c30754846031f6d5d8ac4f8676628097c11065b5d39847a - languageName: node - linkType: hard - -"axios@npm:^0.21.1, axios@npm:^0.21.2": - version: 0.21.4 - resolution: "axios@npm:0.21.4" - dependencies: - follow-redirects: "npm:^1.14.0" - checksum: fbcff55ec68f71f02d3773d467db2fcecdf04e749826c82c2427a232f9eba63242150a05f15af9ef15818352b814257541155de0281f8fb2b7e8a5b79f7f2142 - languageName: node - linkType: hard - -"axios@npm:^0.27.2": - version: 0.27.2 - resolution: "axios@npm:0.27.2" - dependencies: - follow-redirects: "npm:^1.14.9" - form-data: "npm:^4.0.0" - checksum: 76d673d2a90629944b44d6f345f01e58e9174690f635115d5ffd4aca495d99bcd8f95c590d5ccb473513f5ebc1d1a6e8934580d0c57cdd0498c3a101313ef771 - languageName: node - linkType: hard - -"axios@npm:^1.4.0, axios@npm:^1.5.1": - version: 1.7.1 - resolution: "axios@npm:1.7.1" - dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.0" - proxy-from-env: "npm:^1.1.0" - checksum: 554395472f18f4ddb43b4be2900473bc1a4d589464a8ab16f6954c53d9cace4317d5c9e009d5bb05f098d9565b2fa45f152a5d4cecb87536c8f0c370c25a7770 - languageName: node - linkType: hard - -"axios@npm:^1.6.8": - version: 1.8.1 - resolution: "axios@npm:1.8.1" - dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.0" - proxy-from-env: "npm:^1.1.0" - checksum: b2e1d5a61264502deee4b50f0a6df0aa3b174c546ccf68c0dff714a2b8863232e0bd8cb5b84f853303e97f242a98260f9bb9beabeafe451ad5af538e9eb7ac22 - languageName: node - linkType: hard - -"babel-code-frame@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-code-frame@npm:6.26.0" - dependencies: - chalk: "npm:^1.1.3" - esutils: "npm:^2.0.2" - js-tokens: "npm:^3.0.2" - checksum: 7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473 - languageName: node - linkType: hard - -"babel-core@npm:^6.0.14, babel-core@npm:^6.26.0": - version: 6.26.3 - resolution: "babel-core@npm:6.26.3" - dependencies: - babel-code-frame: "npm:^6.26.0" - babel-generator: "npm:^6.26.0" - babel-helpers: "npm:^6.24.1" - babel-messages: "npm:^6.23.0" - babel-register: "npm:^6.26.0" - babel-runtime: "npm:^6.26.0" - babel-template: "npm:^6.26.0" - babel-traverse: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - babylon: "npm:^6.18.0" - convert-source-map: "npm:^1.5.1" - debug: "npm:^2.6.9" - json5: "npm:^0.5.1" - lodash: "npm:^4.17.4" - minimatch: "npm:^3.0.4" - path-is-absolute: "npm:^1.0.1" - private: "npm:^0.1.8" - slash: "npm:^1.0.0" - source-map: "npm:^0.5.7" - checksum: 10292649779f8c33d1908f5671c92ca9df036c9e1b9f35f97e7f62c9da9e3a146ee069f94fc401283ce129ba980f34a30339f137c512f3e62ddd354653b2da0e - languageName: node - linkType: hard - -"babel-generator@npm:^6.26.0": - version: 6.26.1 - resolution: "babel-generator@npm:6.26.1" - dependencies: - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - detect-indent: "npm:^4.0.0" - jsesc: "npm:^1.3.0" - lodash: "npm:^4.17.4" - source-map: "npm:^0.5.7" - trim-right: "npm:^1.0.1" - checksum: d5f9d20c6f7d8644dc41ee57d48c98a78d24d5b74dc305cc518d6e0872d4fa73c5fd8d47ec00e3515858eaf3c3e512a703cdbc184ff0061af5979bc206618555 - languageName: node - linkType: hard - -"babel-helper-builder-binary-assignment-operator-visitor@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-builder-binary-assignment-operator-visitor@npm:6.24.1" - dependencies: - babel-helper-explode-assignable-expression: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 97c3828554d057e7a9cd1a0dc61b7897f964a831300c4996fa8039aa4dba3b4e645b7b44b07d3887f79eaf0c26a0cc03397cb7a686517311c30919516a12e143 - languageName: node - linkType: hard - -"babel-helper-call-delegate@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-call-delegate@npm:6.24.1" - dependencies: - babel-helper-hoist-variables: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 3a605d86b9c0b2036a98c90f8ae947be1463d9436b53442c67bf624ca018cd544760774d0091052f16d1fa409d9f31c300e11c1bd85a7478c99ae87562b344c5 - languageName: node - linkType: hard - -"babel-helper-define-map@npm:^6.24.1": - version: 6.26.0 - resolution: "babel-helper-define-map@npm:6.26.0" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: 3d5ed5ff64633f96a438f0edaca8bd104f54a11cab65ccd7e2202a249c8a074032e7df19abeafaad0c7be69a465d005d19ff94cca688a16f9ce21c7657ef6ac0 - languageName: node - linkType: hard - -"babel-helper-explode-assignable-expression@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-explode-assignable-expression@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 73276a1e8e2f394ef5463df17c70b1df805be5eb6880d814abe66d192a0c4b90a6f3965097de0c42778fc076374727f81dfcbcf30c1b09de09826f80356f53b2 - languageName: node - linkType: hard - -"babel-helper-function-name@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-function-name@npm:6.24.1" - dependencies: - babel-helper-get-function-arity: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: fdffc9efaf5e6ce181b3fc415c45733db44085e34e5b38bda58275e77498dc9a367377c2fa32b168a91a407c1eda54b5642d8c46ec65bfd33ab617cae24746b9 - languageName: node - linkType: hard - -"babel-helper-get-function-arity@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-get-function-arity@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: f73610307c4f92a0393db3072e67ff0585f161b86e90d5f09a8e62e3b4a5a227eab6927275a147ee5617589aaabea1781ec2cde6ab81d2bc1d0b165dadfa0ede - languageName: node - linkType: hard - -"babel-helper-hoist-variables@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-hoist-variables@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: adac32e99ec452f3d9eb0a8f3eb455d3106a3c998954a41187f75c0363e22f48dbf0073221341cb26ee3f9a45115e2d3b29d00c7b4abc75c8dfa5c780eb330bd - languageName: node - linkType: hard - -"babel-helper-optimise-call-expression@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-optimise-call-expression@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 8741daab0fa48384e16c47d15f591ddcceb2b5e664048468d8f4f88f67cc2eb0a47ed2969d7034cadf6091f33a5aac51726d924c200b73e49ae8f2c224d3d1c9 - languageName: node - linkType: hard - -"babel-helper-regex@npm:^6.24.1": - version: 6.26.0 - resolution: "babel-helper-regex@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: 144c868a7a46171ce98a0b49c8c8e42acacad705ecc81c6ccfb9ca99228a0b60d1fe841b1821a8e63c1102938b697deed0db836f6588fcb3e7a2167a513491ec - languageName: node - linkType: hard - -"babel-helper-remap-async-to-generator@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-remap-async-to-generator@npm:6.24.1" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: e851e753d5eaa70deb0bf8558f8360eb86a990a5287b5955b6071e8e3a58935c947fd2df1dcbeff02fc7870a8a022bd6c72d1fb11fd69b59211dbce8f7c4d3ea - languageName: node - linkType: hard - -"babel-helper-replace-supers@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-replace-supers@npm:6.24.1" - dependencies: - babel-helper-optimise-call-expression: "npm:^6.24.1" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 1fbc1a263b4f9e5fec38589176b5297564383f0adb1961d41d2d4fea50b75058759ca2df6fb5e148aad7f964629dd8b80472c5bddfe5260726c9420ba0541895 - languageName: node - linkType: hard - -"babel-helpers@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helpers@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: bbd082e42adaa9c584242515e8c5b1e861108e03ed9517f0b600189e1c1041376ab6a15c71265a2cc095c5af4bd15cfc97158e30ce95a81cbfcea1bfd81ce3e6 - languageName: node - linkType: hard - -"babel-messages@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-messages@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: d4fd6414ee5bb1aa0dad6d8d2c4ffaa66331ec5a507959e11f56b19a683566e2c1e7a4d0b16cfef58ea4cc07db8acf5ff3dc8b25c585407cff2e09ac60553401 - languageName: node - linkType: hard - -"babel-plugin-check-es2015-constants@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-check-es2015-constants@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 647cd5d43b00ed296c344e54fcb75ea7523943c2ac77420aeed2ff22e6a0ead7b9f571d008bfb5f24781de077a34ef06cd1e0b15336b010ef35c323c0e80d58b - languageName: node - linkType: hard - -"babel-plugin-syntax-async-functions@npm:^6.8.0": - version: 6.13.0 - resolution: "babel-plugin-syntax-async-functions@npm:6.13.0" - checksum: 6705603d286d19af9a79e5174c774a8fcbf6b66a154db52993b352183b16d935c499ff0ee1d6f32ebcda897ffb5dd554cbcb1ff00419302ef5c54b1d6edd13af - languageName: node - linkType: hard - -"babel-plugin-syntax-exponentiation-operator@npm:^6.8.0": - version: 6.13.0 - resolution: "babel-plugin-syntax-exponentiation-operator@npm:6.13.0" - checksum: 2eaa79ee92356140c6a1f84079a1c75cf2c1436b6030e3b59a5193a75dfaa760698f2fc14392adeb69981611e1ec2acb7631d9192a366a7f51f0362d2459544f - languageName: node - linkType: hard - -"babel-plugin-syntax-trailing-function-commas@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-syntax-trailing-function-commas@npm:6.22.0" - checksum: b68353cef2dfc699f0a9a8947454bdcd620a8788d66c744e631fccaecd10ba26a1922ac9ed2c99c1daceefe22fde8ff91d199f4e6c78fd592d67f6bb107372da - languageName: node - linkType: hard - -"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": - version: 7.0.0-beta.0 - resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" - checksum: 67e3d6a706637097526b2d3046d3124d3efd3aac28b47af940c2f8df01b8d7ffeb4cdf5648f3b5eac3f098f5b61c4845e306f34301c869e5e14db6ae8b77f699 - languageName: node - linkType: hard - -"babel-plugin-transform-async-to-generator@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-async-to-generator@npm:6.24.1" - dependencies: - babel-helper-remap-async-to-generator: "npm:^6.24.1" - babel-plugin-syntax-async-functions: "npm:^6.8.0" - babel-runtime: "npm:^6.22.0" - checksum: 39474a3c146e81a9021a176421188f7fbce466827824689581f368cf854f411b2ffef66a07decca08ef7250ba2def13a6a954c318182b4348bf87ad3c184c63f - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-arrow-functions@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-arrow-functions@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: ec98038d8b23dae4cf0dbd59d44b491fcfad5f0ca856a49e769144893b5e5faea95f5a0336709183f8b7c542cdb3227f8856c94e47f59bdd53bb2f7b46161569 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-block-scoped-functions@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-block-scoped-functions@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 9e548c9a27b8fc62286a076f82a406f80eb8eacf05cd8953f6eaf0dea1241a884b387153fb5b04a424abe8e9455731e060fe80b2a10cc7a4fe7807506469f3d7 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-block-scoping@npm:^6.23.0": - version: 6.26.0 - resolution: "babel-plugin-transform-es2015-block-scoping@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-template: "npm:^6.26.0" - babel-traverse: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: 0fb82ad13f68dbc202d53ed693a9306833572e341058dee4f2756763101c46b8b3af51abd75cd00e3c5aaf958146bb49e9e5e3df367a92bbd318030dc72d8342 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-classes@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-classes@npm:6.24.1" - dependencies: - babel-helper-define-map: "npm:^6.24.1" - babel-helper-function-name: "npm:^6.24.1" - babel-helper-optimise-call-expression: "npm:^6.24.1" - babel-helper-replace-supers: "npm:^6.24.1" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 7304406fc9cfd342a1c8f4f78c681d333371718142e948d0961d40289cbaf0a00120ce63d6b066ae391833e2a973ebc018ca7eca57783c5cc4cef436efa76149 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-computed-properties@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-computed-properties@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: a3bd718579bd46e5ede21fa114f8c42b528f58e537b9abdbb9d0b023f88ad7afb64bedbc92acc849e52d1859b6634fe72cf13d6e689e9a88c9890addbbb99ff1 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-destructuring@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-destructuring@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 10d253683e35b8d2e8b3c1e3580d3350646132213656eebc688b616c1552544cd2594bdff2b876588f3f1f7eb5a7e06cdeed954f4b8daa37bc80d23c1c283c5e - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-duplicate-keys@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-duplicate-keys@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 1345ada032baf9c06034ea8741ece0c93e0ba1fa7bd7db438133a6d6d7f1122a652960d239ed1e940b467c9185ca1221e0f2fdf031ef1c419e43d7497707de99 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-for-of@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-for-of@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: e52e59a9d53b59923b5b2f255c7a87906d701ffe76c8fa190bf029d955db3e39d7a1e7e17102a921b9c9266de50a2a665c59d4dd031ac09b7e7430449509eaaa - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-function-name@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-function-name@npm:6.24.1" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: cba67f94ad1e1b197f89ca70f2c08fc3e8fcfee1bbeba3dc75628586139248195582b70f440c0ab7de08c4bdff497d8ca47f7f541e15b6b4491e992b4563b7f0 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-literals@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-literals@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 4a9ece4efcd2719abefc41e7b40292aa2a7ba7233c5233a7b21d856b1cb4cb000613239178ee5972eaf9f774db5cc76de372c393dbc38816f4143108c8a7ff25 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-amd@npm:^6.22.0, babel-plugin-transform-es2015-modules-amd@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-amd@npm:6.24.1" - dependencies: - babel-plugin-transform-es2015-modules-commonjs: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: f779ca5454dc5e5bd7e570832d7b8ae1c3b13fab8f79940f45a1d46e67db7bb8b0b803a999240a61b0443bf6f920cf54d67a48db4a3a719a7046051c73e6156a - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-commonjs@npm:^6.23.0, babel-plugin-transform-es2015-modules-commonjs@npm:^6.24.1": - version: 6.26.2 - resolution: "babel-plugin-transform-es2015-modules-commonjs@npm:6.26.2" - dependencies: - babel-plugin-transform-strict-mode: "npm:^6.24.1" - babel-runtime: "npm:^6.26.0" - babel-template: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - checksum: fb8eb5afb8c88585834311a217efb1975443b2424102ec515b401c9bbb3ebe42ca16f64ff544c5bf87448145a0aed009adce3511fd264ffb0ccd19a51ed0106f - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-systemjs@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-systemjs@npm:6.24.1" - dependencies: - babel-helper-hoist-variables: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: 7e617b5485c8d52d27ef7588f2b67351220e0d7cdf14fb59bd509ba9e868a1483f0bc63e2cb0eba4caee02d1b00d7a0bd5550c575606e98ca9cb24573444a302 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-umd@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-umd@npm:6.24.1" - dependencies: - babel-plugin-transform-es2015-modules-amd: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: 360108427f696f40ad20f476a3798faba3a59d16783aa2b49397e7369b6d1f9fcc1dd24ff5a3b16b6ddfc4e58ae4f1ef2ec768443d8649ffde9599072a9d5c25 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-object-super@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-object-super@npm:6.24.1" - dependencies: - babel-helper-replace-supers: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - checksum: 50f2a1e3f5dfa77febb2305db48e843c10a165d0ee23a679aca6d5ef2279789582c67a1ca5ed2b2a78af2558cc45a0f05270e1c8208c4e62b59cb8a20730bb16 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-parameters@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-parameters@npm:6.24.1" - dependencies: - babel-helper-call-delegate: "npm:^6.24.1" - babel-helper-get-function-arity: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: e40d6abba07a0c94ae19ccc9a6d6a3f8d828bbae9fdba30a63fd34f790c1742213a367db2610359da41c062f08d159aabc4b119cd62b0cadf30940335f4c8dd9 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-shorthand-properties@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-shorthand-properties@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: fab41d02153dbe5077affe09dde6d20b1402e2cbc6fc0cce656e4846217cf15d4e02c1eeff2fc90ee64a4ff746d7fca78eff2d0c81420d623b4b6ffe5080db51 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-spread@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-spread@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 20542a3f592e7a4902bbc3cd72ca1c2d293696a9d27c2dc8acfcbcf597b3feff40141f4d68e73e050cb3a678cc06e72e9a4ee8a140260022ec04b58baf65e73f - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-sticky-regex@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-sticky-regex@npm:6.24.1" - dependencies: - babel-helper-regex: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 352c51d9cc1cdd23d9c04a8c0ee32a66d390bffd1f8205a86b031eff130861ca8c0b98d71d2128c6f6be2694451ab50d6f2e16707d3c37558f32854a8b46d397 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-template-literals@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-template-literals@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 1e5cab288a27b28fb02c09c04fe381defd69ba06c02a11d2844d057d498bc2667a1716a79c3d8f0b954c30f3254675190fd0e135ea0fd62fe5947696cdf92960 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-typeof-symbol@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-typeof-symbol@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 5723667cf1feba1468d9dbf3216f9bc58f3d9c600f8c5626a65daef1c209ce36e7173873a4b6ff979b9e93e8cd741c30d521044d246ce183036afb0d9be77c0f - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-unicode-regex@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-unicode-regex@npm:6.24.1" - dependencies: - babel-helper-regex: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - regexpu-core: "npm:^2.0.0" - checksum: 6bfe2d0521e8cb450ab92b58df380f94c2d39b425f8da28283fe7dd1132663c5d248f5b895341a0c56c5c4f242c0ca40219e9ab26f656c258747401e6696b5ce - languageName: node - linkType: hard - -"babel-plugin-transform-exponentiation-operator@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-exponentiation-operator@npm:6.24.1" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor: "npm:^6.24.1" - babel-plugin-syntax-exponentiation-operator: "npm:^6.8.0" - babel-runtime: "npm:^6.22.0" - checksum: e30e13e63fc578b4eaf667198fa46af904c678b6236c72260dc89bb55922c502390573af95e2a3878eaa7ce5c4de6693ae47809bc7536b684c5e2391e5db8b5d - languageName: node - linkType: hard - -"babel-plugin-transform-regenerator@npm:^6.22.0": - version: 6.26.0 - resolution: "babel-plugin-transform-regenerator@npm:6.26.0" - dependencies: - regenerator-transform: "npm:^0.10.0" - checksum: 180460a380006f70b2ed76a714714a8f46ac64c28a31c403ff031233ddc89886b1de35b7c0e6401b97d3166c3bb3780a6578cbe9db1fdbcd9d410e8e5cc9bc57 - languageName: node - linkType: hard - -"babel-plugin-transform-strict-mode@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-plugin-transform-strict-mode@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 736b2b5b4816a11cdf6c02304d133386714d1e586091f95359e0127605bfa8d47aea3e325d936346541b7e836eb7dd0c208833a5ab868ab85caece03d30518b9 - languageName: node - linkType: hard - -"babel-preset-env@npm:^1.7.0": - version: 1.7.0 - resolution: "babel-preset-env@npm:1.7.0" - dependencies: - babel-plugin-check-es2015-constants: "npm:^6.22.0" - babel-plugin-syntax-trailing-function-commas: "npm:^6.22.0" - babel-plugin-transform-async-to-generator: "npm:^6.22.0" - babel-plugin-transform-es2015-arrow-functions: "npm:^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions: "npm:^6.22.0" - babel-plugin-transform-es2015-block-scoping: "npm:^6.23.0" - babel-plugin-transform-es2015-classes: "npm:^6.23.0" - babel-plugin-transform-es2015-computed-properties: "npm:^6.22.0" - babel-plugin-transform-es2015-destructuring: "npm:^6.23.0" - babel-plugin-transform-es2015-duplicate-keys: "npm:^6.22.0" - babel-plugin-transform-es2015-for-of: "npm:^6.23.0" - babel-plugin-transform-es2015-function-name: "npm:^6.22.0" - babel-plugin-transform-es2015-literals: "npm:^6.22.0" - babel-plugin-transform-es2015-modules-amd: "npm:^6.22.0" - babel-plugin-transform-es2015-modules-commonjs: "npm:^6.23.0" - babel-plugin-transform-es2015-modules-systemjs: "npm:^6.23.0" - babel-plugin-transform-es2015-modules-umd: "npm:^6.23.0" - babel-plugin-transform-es2015-object-super: "npm:^6.22.0" - babel-plugin-transform-es2015-parameters: "npm:^6.23.0" - babel-plugin-transform-es2015-shorthand-properties: "npm:^6.22.0" - babel-plugin-transform-es2015-spread: "npm:^6.22.0" - babel-plugin-transform-es2015-sticky-regex: "npm:^6.22.0" - babel-plugin-transform-es2015-template-literals: "npm:^6.22.0" - babel-plugin-transform-es2015-typeof-symbol: "npm:^6.23.0" - babel-plugin-transform-es2015-unicode-regex: "npm:^6.22.0" - babel-plugin-transform-exponentiation-operator: "npm:^6.22.0" - babel-plugin-transform-regenerator: "npm:^6.22.0" - browserslist: "npm:^3.2.6" - invariant: "npm:^2.2.2" - semver: "npm:^5.3.0" - checksum: 38b40b3b92dc3fa27afbdf1fee35a89c66c082009be3036ef20cb4dae472b7c498c20f56a1697ffcff00e42bfdedfbd9a71a6d3d5a829d60bb50f063faeb3157 - languageName: node - linkType: hard - -"babel-preset-fbjs@npm:^3.4.0": - version: 3.4.0 - resolution: "babel-preset-fbjs@npm:3.4.0" - dependencies: - "@babel/plugin-proposal-class-properties": "npm:^7.0.0" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.0.0" - "@babel/plugin-syntax-class-properties": "npm:^7.0.0" - "@babel/plugin-syntax-flow": "npm:^7.0.0" - "@babel/plugin-syntax-jsx": "npm:^7.0.0" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.0.0" - "@babel/plugin-transform-arrow-functions": "npm:^7.0.0" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.0.0" - "@babel/plugin-transform-block-scoping": "npm:^7.0.0" - "@babel/plugin-transform-classes": "npm:^7.0.0" - "@babel/plugin-transform-computed-properties": "npm:^7.0.0" - "@babel/plugin-transform-destructuring": "npm:^7.0.0" - "@babel/plugin-transform-flow-strip-types": "npm:^7.0.0" - "@babel/plugin-transform-for-of": "npm:^7.0.0" - "@babel/plugin-transform-function-name": "npm:^7.0.0" - "@babel/plugin-transform-literals": "npm:^7.0.0" - "@babel/plugin-transform-member-expression-literals": "npm:^7.0.0" - "@babel/plugin-transform-modules-commonjs": "npm:^7.0.0" - "@babel/plugin-transform-object-super": "npm:^7.0.0" - "@babel/plugin-transform-parameters": "npm:^7.0.0" - "@babel/plugin-transform-property-literals": "npm:^7.0.0" - "@babel/plugin-transform-react-display-name": "npm:^7.0.0" - "@babel/plugin-transform-react-jsx": "npm:^7.0.0" - "@babel/plugin-transform-shorthand-properties": "npm:^7.0.0" - "@babel/plugin-transform-spread": "npm:^7.0.0" - "@babel/plugin-transform-template-literals": "npm:^7.0.0" - babel-plugin-syntax-trailing-function-commas: "npm:^7.0.0-beta.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2be440c0fd7d1df247417be35644cb89f40a300e7fcdc44878b737ec49b04380eff422e4ebdc7bb5efd5ecfef45b634fc5fe11c3a409a50c9084e81083037902 - languageName: node - linkType: hard - -"babel-register@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-register@npm:6.26.0" - dependencies: - babel-core: "npm:^6.26.0" - babel-runtime: "npm:^6.26.0" - core-js: "npm:^2.5.0" - home-or-tmp: "npm:^2.0.0" - lodash: "npm:^4.17.4" - mkdirp: "npm:^0.5.1" - source-map-support: "npm:^0.4.15" - checksum: 4ffbc1bfa60a817fb306c98d1a6d10852b0130a614dae3a91e45f391dbebdc95f428d95b489943d85724e046527d2aac3bafb74d3c24f62143492b5f606e2e04 - languageName: node - linkType: hard - -"babel-runtime@npm:^6.18.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-runtime@npm:6.26.0" - dependencies: - core-js: "npm:^2.4.0" - regenerator-runtime: "npm:^0.11.0" - checksum: caa752004936b1463765ed3199c52f6a55d0613b9bed108743d6f13ca532b821d4ea9decc4be1b583193164462b1e3e7eefdfa36b15c72e7daac58dd72c1772f - languageName: node - linkType: hard - -"babel-template@npm:^6.24.1, babel-template@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-template@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-traverse: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - babylon: "npm:^6.18.0" - lodash: "npm:^4.17.4" - checksum: 67bc875f19d289dabb1830a1cde93d7f1e187e4599dac9b1d16392fd47f1d12b53fea902dacf7be360acd09807d440faafe0f7907758c13275b1a14d100b68e4 - languageName: node - linkType: hard - -"babel-traverse@npm:^6.24.1, babel-traverse@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-traverse@npm:6.26.0" - dependencies: - babel-code-frame: "npm:^6.26.0" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - babylon: "npm:^6.18.0" - debug: "npm:^2.6.8" - globals: "npm:^9.18.0" - invariant: "npm:^2.2.2" - lodash: "npm:^4.17.4" - checksum: dca71b23d07e3c00833c3222d7998202e687105f461048107afeb2b4a7aa2507efab1bd5a6e3e724724ebb9b1e0b14f0113621e1d8c25b4ffdb829392b54b8de - languageName: node - linkType: hard - -"babel-types@npm:^6.19.0, babel-types@npm:^6.24.1, babel-types@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-types@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - esutils: "npm:^2.0.2" - lodash: "npm:^4.17.4" - to-fast-properties: "npm:^1.0.3" - checksum: cabe371de1b32c4bbb1fd4ed0fe8a8726d42e5ad7d5cefb83cdae6de0f0a152dce591e4026719743fdf3aa45f84fea2c8851fb822fbe29b0c78a1f0094b67418 - languageName: node - linkType: hard - -"babelify@npm:^7.3.0": - version: 7.3.0 - resolution: "babelify@npm:7.3.0" - dependencies: - babel-core: "npm:^6.0.14" - object-assign: "npm:^4.0.0" - checksum: 1464c4cdd127ba9ae3c5ce69fa52af73d6027d8b65126059f10f068d260c5b60dbcd83fd737c9f954998e00bbc55421c09acf3fdb4f03e682bb167a32e93bbd4 - languageName: node - linkType: hard - -"babylon@npm:^6.18.0": - version: 6.18.0 - resolution: "babylon@npm:6.18.0" - bin: - babylon: ./bin/babylon.js - checksum: 9b1bf946e16782deadb1f5414c1269efa6044eb1e97a3de2051f09a3f2a54e97be3542d4242b28d23de0ef67816f519d38ce1ec3ddb7be306131c39a60e5a667 - languageName: node - linkType: hard - -"backoff@npm:^2.5.0": - version: 2.5.0 - resolution: "backoff@npm:2.5.0" - dependencies: - precond: "npm:0.2" - checksum: 57afcd07c08e9174d78f79643ebca1e8da752143ef6675e6b4a0b08ec6b497db3317089350c02fb747ae54c53f485c4d8b0742130b78028bb8a8cd96dd69ce0f - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee - languageName: node - linkType: hard - -"base-64@npm:^0.1.0": - version: 0.1.0 - resolution: "base-64@npm:0.1.0" - checksum: fe0dcf076e823f04db7ee9b02495be08a91c445fbc6db03cb9913be9680e2fcc0af8b74459041fe08ad16800b1f65a549501d8f08696a8a6d32880789b7de69d - languageName: node - linkType: hard - -"base-x@npm:^3.0.2, base-x@npm:^3.0.6, base-x@npm:^3.0.8": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a - languageName: node - linkType: hard - -"base-x@npm:^4.0.0": - version: 4.0.0 - resolution: "base-x@npm:4.0.0" - checksum: 0cb47c94535144ab138f70bb5aa7e6e03049ead88615316b62457f110fc204f2c3baff5c64a1c1b33aeb068d79a68092c08a765c7ccfa133eee1e70e4c6eb903 - languageName: node - linkType: hard - -"base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf - languageName: node - linkType: hard - -"base@npm:^0.11.1": - version: 0.11.2 - resolution: "base@npm:0.11.2" - dependencies: - cache-base: "npm:^1.0.1" - class-utils: "npm:^0.3.5" - component-emitter: "npm:^1.2.1" - define-property: "npm:^1.0.0" - isobject: "npm:^3.0.1" - mixin-deep: "npm:^1.2.0" - pascalcase: "npm:^0.1.1" - checksum: 30a2c0675eb52136b05ef496feb41574d9f0bb2d6d677761da579c00a841523fccf07f1dbabec2337b5f5750f428683b8ca60d89e56a1052c4ae1c0cd05de64d - languageName: node - linkType: hard - -"basic-auth@npm:~2.0.1": - version: 2.0.1 - resolution: "basic-auth@npm:2.0.1" - dependencies: - safe-buffer: "npm:5.1.2" - checksum: 05f56db3a0fc31c89c86b605231e32ee143fb6ae38dc60616bc0970ae6a0f034172def99e69d3aed0e2c9e7cac84e2d63bc51a0b5ff6ab5fc8808cc8b29923c1 - languageName: node - linkType: hard - -"bcrypt-pbkdf@npm:^1.0.0": - version: 1.0.2 - resolution: "bcrypt-pbkdf@npm:1.0.2" - dependencies: - tweetnacl: "npm:^0.14.3" - checksum: ddfe85230b32df25aeebfdccfbc61d3bc493ace49c884c9c68575de1f5dcf733a5d7de9def3b0f318b786616b8d85bad50a28b1da1750c43e0012c93badcc148 - languageName: node - linkType: hard - -"bech32@npm:1.1.4": - version: 1.1.4 - resolution: "bech32@npm:1.1.4" - checksum: 5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5 - languageName: node - linkType: hard - -"better-path-resolve@npm:1.0.0": - version: 1.0.0 - resolution: "better-path-resolve@npm:1.0.0" - dependencies: - is-windows: "npm:^1.0.0" - checksum: 7335130729d59a14b8e4753fea180ca84e287cccc20cb5f2438a95667abc5810327c414eee7b3c79ed1b5a348a40284ea872958f50caba69432c40405eb0acce - languageName: node - linkType: hard - -"bigint-crypto-utils@npm:^3.0.23": - version: 3.3.0 - resolution: "bigint-crypto-utils@npm:3.3.0" - checksum: 7d06fa01d63e8e9513eee629fe8a426993276b1bdca5aefd0eb3188cee7026334d29e801ef6187a5bc6105ebf26e6e79e6fab544a7da769ccf55b913e66d2a14 - languageName: node - linkType: hard - -"bignumber.js@npm:^9.0.0": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d - languageName: node - linkType: hard - -"binary-extensions@npm:^1.0.0": - version: 1.13.1 - resolution: "binary-extensions@npm:1.13.1" - checksum: 2d616938ac23d828ec3fbe0dea429b566fd2c137ddc38f166f16561ccd58029deac3fa9fddb489ab13d679c8fb5f1bd0e82824041299e5e39d8dd3cc68fbb9f9 - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: 75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 - languageName: node - linkType: hard - -"bindings@npm:^1.5.0": - version: 1.5.0 - resolution: "bindings@npm:1.5.0" - dependencies: - file-uri-to-path: "npm:1.0.0" - checksum: 3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba - languageName: node - linkType: hard - -"bintrees@npm:1.0.2": - version: 1.0.2 - resolution: "bintrees@npm:1.0.2" - checksum: 132944b20c93c1a8f97bf8aa25980a76c6eb4291b7f2df2dbcd01cb5b417c287d3ee0847c7260c9f05f3d5a4233aaa03dec95114e97f308abe9cc3f72bed4a44 - languageName: node - linkType: hard - -"bip39@npm:2.5.0": - version: 2.5.0 - resolution: "bip39@npm:2.5.0" - dependencies: - create-hash: "npm:^1.1.0" - pbkdf2: "npm:^3.0.9" - randombytes: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - unorm: "npm:^1.3.3" - checksum: 127da2987e7753551419a4be0a968ecca2f1514e871b5902e9bdf769b85a4484200546e51de5ca39a2fdf848dbfb7e2bdcce7f3deb9e0430187334db9d00334d - languageName: node - linkType: hard - -"bl@npm:^4.0.0, bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: "npm:^5.5.0" - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.4.0" - checksum: 02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f - languageName: node - linkType: hard - -"blakejs@npm:^1.1.0": - version: 1.2.1 - resolution: "blakejs@npm:1.2.1" - checksum: c284557ce55b9c70203f59d381f1b85372ef08ee616a90162174d1291a45d3e5e809fdf9edab6e998740012538515152471dc4f1f9dbfa974ba2b9c1f7b9aad7 - languageName: node - linkType: hard - -"blob-to-it@npm:0.0.2": - version: 0.0.2 - resolution: "blob-to-it@npm:0.0.2" - dependencies: - browser-readablestream-to-it: "npm:^0.0.2" - checksum: d0fc7afabb3c8d82f49f9998e4d11d2d79ee46f57b5fb5d12e39cdd491075bf664579fd2c5a72593e42d666514055093a799477561c65284c0df213a22298d4b - languageName: node - linkType: hard - -"bluebird@npm:^3.5.0, bluebird@npm:^3.5.2": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 - languageName: node - linkType: hard - -"bn.js@npm:4.11.6": - version: 4.11.6 - resolution: "bn.js@npm:4.11.6" - checksum: e6ee7d3f597f60722cc3361071e23ccf71d3387e166de02381f180f22d2fa79f5dbbdf9e4909e81faaf5da01c16ec6857ddff02678339ce085e2058fd0e405db - languageName: node - linkType: hard - -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.10.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9, bn.js@npm:^4.8.0": - version: 4.12.0 - resolution: "bn.js@npm:4.12.0" - checksum: 9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 - languageName: node - linkType: hard - -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.2, bn.js@npm:^5.1.3, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa - languageName: node - linkType: hard - -"body-parser@npm:1.19.1": - version: 1.19.1 - resolution: "body-parser@npm:1.19.1" - dependencies: - bytes: "npm:3.1.1" - content-type: "npm:~1.0.4" - debug: "npm:2.6.9" - depd: "npm:~1.1.2" - http-errors: "npm:1.8.1" - iconv-lite: "npm:0.4.24" - on-finished: "npm:~2.3.0" - qs: "npm:6.9.6" - raw-body: "npm:2.4.2" - type-is: "npm:~1.6.18" - checksum: 29d3b3e2b0e39f9cf2b92ae7d3da3cb64d609222ae1a1ca878aa82371f968c62f26e406e3be87e34e7d179df0748c6a4c989ced2192b4620ee3777474402d6f5 - languageName: node - linkType: hard - -"body-parser@npm:1.19.2": - version: 1.19.2 - resolution: "body-parser@npm:1.19.2" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.4" - debug: "npm:2.6.9" - depd: "npm:~1.1.2" - http-errors: "npm:1.8.1" - iconv-lite: "npm:0.4.24" - on-finished: "npm:~2.3.0" - qs: "npm:6.9.7" - raw-body: "npm:2.4.3" - type-is: "npm:~1.6.18" - checksum: 02158280b090d0ad99dfdc795b7d580762601283e4bcbd29409c11b34d5cfd737f632447a073bc2e79492d303827bd155fef2d63a333cdec18a87846221cee5e - languageName: node - linkType: hard - -"body-parser@npm:1.20.1": - version: 1.20.1 - resolution: "body-parser@npm:1.20.1" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.4" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.1" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: a202d493e2c10a33fb7413dac7d2f713be579c4b88343cd814b6df7a38e5af1901fc31044e04de176db56b16d9772aa25a7723f64478c20f4d91b1ac223bf3b8 - languageName: node - linkType: hard - -"body-parser@npm:1.20.2, body-parser@npm:^1.16.0": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.2" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9 - languageName: node - linkType: hard - -"borc@npm:^2.1.2": - version: 2.1.2 - resolution: "borc@npm:2.1.2" - dependencies: - bignumber.js: "npm:^9.0.0" - buffer: "npm:^5.5.0" - commander: "npm:^2.15.0" - ieee754: "npm:^1.1.13" - iso-url: "npm:~0.4.7" - json-text-sequence: "npm:~0.1.0" - readable-stream: "npm:^3.6.0" - checksum: ccbe1e24c43166464b351b52b913c2b6d206897d03d28bed96df3842e832b98cb70e1a2fb60ac93e2c540b1d143675a8b8201595e122ea87db5d2862d274bd8f - languageName: node - linkType: hard - -"boxen@npm:^5.1.2": - version: 5.1.2 - resolution: "boxen@npm:5.1.2" - dependencies: - ansi-align: "npm:^3.0.0" - camelcase: "npm:^6.2.0" - chalk: "npm:^4.1.0" - cli-boxes: "npm:^2.2.1" - string-width: "npm:^4.2.2" - type-fest: "npm:^0.20.2" - widest-line: "npm:^3.1.0" - wrap-ansi: "npm:^7.0.0" - checksum: 71f31c2eb3dcacd5fce524ae509e0cc90421752e0bfbd0281fd3352871d106c462a0f810c85f2fdb02f3a9fab2d7a84e9718b4999384d651b76104ebe5d2c024 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: "npm:^1.0.0" - checksum: b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f - languageName: node - linkType: hard - -"braces@npm:^1.8.2": - version: 1.8.5 - resolution: "braces@npm:1.8.5" - dependencies: - expand-range: "npm:^1.8.1" - preserve: "npm:^0.2.0" - repeat-element: "npm:^1.1.2" - checksum: 41092fe0f5dbb522f013963fa4432fbef3323a92ee8c1a6b9b6681fc05525b8541968b525632aa9df217daa6307fe526e9ce994054d4308abd0627a7d26e4745 - languageName: node - linkType: hard - -"braces@npm:^2.3.1": - version: 2.3.2 - resolution: "braces@npm:2.3.2" - dependencies: - arr-flatten: "npm:^1.1.0" - array-unique: "npm:^0.3.2" - extend-shallow: "npm:^2.0.1" - fill-range: "npm:^4.0.0" - isobject: "npm:^3.0.1" - repeat-element: "npm:^1.1.2" - snapdragon: "npm:^0.8.1" - snapdragon-node: "npm:^2.0.1" - split-string: "npm:^3.0.2" - to-regex: "npm:^3.0.1" - checksum: 72b27ea3ea2718f061c29e70fd6e17606e37c65f5801abddcf0b0052db1de7d60f3bf92cfc220ab57b44bd0083a5f69f9d03b3461d2816cfe9f9398207acc728 - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - -"breakword@npm:^1.0.5": - version: 1.0.6 - resolution: "breakword@npm:1.0.6" - dependencies: - wcwidth: "npm:^1.0.1" - checksum: 8bb2e329ee911de098a59d955cb25fad0a16d4f810e3c5ceacfe43ce67cda9117e7e9eafc827234f5429cc0dcaa4d9387e3529cbdcdeb66d1b9e521e28c49bc1 - languageName: node - linkType: hard - -"brorand@npm:^1.0.1, brorand@npm:^1.1.0": - version: 1.1.0 - resolution: "brorand@npm:1.1.0" - checksum: 6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 - languageName: node - linkType: hard - -"browser-level@npm:^1.0.1": - version: 1.0.1 - resolution: "browser-level@npm:1.0.1" - dependencies: - abstract-level: "npm:^1.0.2" - catering: "npm:^2.1.1" - module-error: "npm:^1.0.2" - run-parallel-limit: "npm:^1.1.0" - checksum: 10f874b05fb06092c4dc3f7b02c1bcff9b01b8eee2a7066837a10c4b0179d40dd9ecef03bfecb9acbd0b61abf67ccd250766ee18b48464cd9a4eeddda1b069b9 - languageName: node - linkType: hard - -"browser-readablestream-to-it@npm:0.0.2, browser-readablestream-to-it@npm:^0.0.2": - version: 0.0.2 - resolution: "browser-readablestream-to-it@npm:0.0.2" - checksum: a917ad03a89f694631019f79d54132ed62593b0cffe4345cb1361a82f0e837cdca49d39d87045bdab9d86db7e0dfa2d87e0bc1047d50fd1417d429fe02fa5aa8 - languageName: node - linkType: hard - -"browser-stdout@npm:1.3.0": - version: 1.3.0 - resolution: "browser-stdout@npm:1.3.0" - checksum: 9b26dcac17578ec4472179b4fd66e321db5cdf55d4a05c6b8223c492103e3f6e2da1d3ba7f4a590732e07807145a2e6aae2ae8d690bc71e6286a8b90d8afb810 - languageName: node - linkType: hard - -"browser-stdout@npm:1.3.1, browser-stdout@npm:^1.3.1": - version: 1.3.1 - resolution: "browser-stdout@npm:1.3.1" - checksum: c40e482fd82be872b6ea7b9f7591beafbf6f5ba522fe3dade98ba1573a1c29a11101564993e4eb44e5488be8f44510af072df9a9637c739217eb155ceb639205 - languageName: node - linkType: hard - -"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": - version: 1.2.0 - resolution: "browserify-aes@npm:1.2.0" - dependencies: - buffer-xor: "npm:^1.0.3" - cipher-base: "npm:^1.0.0" - create-hash: "npm:^1.1.0" - evp_bytestokey: "npm:^1.0.3" - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: 967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18 - languageName: node - linkType: hard - -"browserify-cipher@npm:^1.0.0": - version: 1.0.1 - resolution: "browserify-cipher@npm:1.0.1" - dependencies: - browserify-aes: "npm:^1.0.4" - browserify-des: "npm:^1.0.0" - evp_bytestokey: "npm:^1.0.0" - checksum: aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d - languageName: node - linkType: hard - -"browserify-des@npm:^1.0.0": - version: 1.0.2 - resolution: "browserify-des@npm:1.0.2" - dependencies: - cipher-base: "npm:^1.0.1" - des.js: "npm:^1.0.0" - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.1.2" - checksum: 943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d - languageName: node - linkType: hard - -"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": - version: 4.1.0 - resolution: "browserify-rsa@npm:4.1.0" - dependencies: - bn.js: "npm:^5.0.0" - randombytes: "npm:^2.0.1" - checksum: fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a - languageName: node - linkType: hard - -"browserify-sign@npm:^4.0.0": - version: 4.2.3 - resolution: "browserify-sign@npm:4.2.3" - dependencies: - bn.js: "npm:^5.2.1" - browserify-rsa: "npm:^4.1.0" - create-hash: "npm:^1.2.0" - create-hmac: "npm:^1.1.7" - elliptic: "npm:^6.5.5" - hash-base: "npm:~3.0" - inherits: "npm:^2.0.4" - parse-asn1: "npm:^5.1.7" - readable-stream: "npm:^2.3.8" - safe-buffer: "npm:^5.2.1" - checksum: 30c0eba3f5970a20866a4d3fbba2c5bd1928cd24f47faf995f913f1499214c6f3be14bb4d6ec1ab5c6cafb1eca9cb76ba1c2e1c04ed018370634d4e659c77216 - languageName: node - linkType: hard - -"browserslist@npm:^3.2.6": - version: 3.2.8 - resolution: "browserslist@npm:3.2.8" - dependencies: - caniuse-lite: "npm:^1.0.30000844" - electron-to-chromium: "npm:^1.3.47" - bin: - browserslist: ./cli.js - checksum: da44ceb7fc4a48b50ce54d0683bb82becc35bf8fea58831f4294f8f8c1357b8fd6dbf553a208ac5998513c722af49fc564f54192068797a13dae90bd9093a199 - languageName: node - linkType: hard - -"browserslist@npm:^4.22.2": - version: 4.23.0 - resolution: "browserslist@npm:4.23.0" - dependencies: - caniuse-lite: "npm:^1.0.30001587" - electron-to-chromium: "npm:^1.4.668" - node-releases: "npm:^2.0.14" - update-browserslist-db: "npm:^1.0.13" - bin: - browserslist: cli.js - checksum: 8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943 - languageName: node - linkType: hard - -"bs58@npm:4.0.1, bs58@npm:^4.0.0": - version: 4.0.1 - resolution: "bs58@npm:4.0.1" - dependencies: - base-x: "npm:^3.0.2" - checksum: 613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 - languageName: node - linkType: hard - -"bs58@npm:5.0.0": - version: 5.0.0 - resolution: "bs58@npm:5.0.0" - dependencies: - base-x: "npm:^4.0.0" - checksum: 0d1b05630b11db48039421b5975cb2636ae0a42c62f770eec257b2e5c7d94cb5f015f440785f3ec50870a6e9b1132b35bd0a17c7223655b22229f24b2a3491d1 - languageName: node - linkType: hard - -"bs58check@npm:^2.1.2": - version: 2.1.2 - resolution: "bs58check@npm:2.1.2" - dependencies: - bs58: "npm:^4.0.0" - create-hash: "npm:^1.1.0" - safe-buffer: "npm:^5.1.2" - checksum: 5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9 - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: "npm:^0.4.0" - checksum: 24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 - languageName: node - linkType: hard - -"buffer-to-arraybuffer@npm:^0.0.5": - version: 0.0.5 - resolution: "buffer-to-arraybuffer@npm:0.0.5" - checksum: 0eea361112a67725e098796b931d931a279b8925cae906f07ed876fab4131e3a83073933a4a33b79d96251722a61c1b875b0ef1e04190734921b9e808a73978c - languageName: node - linkType: hard - -"buffer-writer@npm:2.0.0": - version: 2.0.0 - resolution: "buffer-writer@npm:2.0.0" - checksum: c91b2ab09a200cf0862237e5a4dbd5077003b42d26d4f0c596ec7149f82ef83e0751d670bcdf379ed988d1a08c0fac7759a8cb928cf1a4710a1988a7618b1190 - languageName: node - linkType: hard - -"buffer-xor@npm:^1.0.3": - version: 1.0.3 - resolution: "buffer-xor@npm:1.0.3" - checksum: fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c - languageName: node - linkType: hard - -"buffer-xor@npm:^2.0.1": - version: 2.0.2 - resolution: "buffer-xor@npm:2.0.2" - dependencies: - safe-buffer: "npm:^5.1.1" - checksum: 84c39f316c3f7d194b6313fdd047ddae02619dcb7eccfc9675731ac6fe9c01b42d94f8b8d3f04271803618c7db2eebdca82c1de5c1fc37210c1c112998b09671 - languageName: node - linkType: hard - -"buffer@npm:4.9.2": - version: 4.9.2 - resolution: "buffer@npm:4.9.2" - dependencies: - base64-js: "npm:^1.0.2" - ieee754: "npm:^1.1.4" - isarray: "npm:^1.0.0" - checksum: dc443d7e7caab23816b58aacdde710b72f525ad6eecd7d738fcaa29f6d6c12e8d9c13fed7219fd502be51ecf0615f5c077d4bdc6f9308dde2e53f8e5393c5b21 - languageName: node - linkType: hard - -"buffer@npm:^5.0.5, buffer@npm:^5.2.1, buffer@npm:^5.4.3, buffer@npm:^5.5.0, buffer@npm:^5.6.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.1.13" - checksum: 27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e - languageName: node - linkType: hard - -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.2.1" - checksum: 2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 - languageName: node - linkType: hard - -"bufferutil@npm:^4.0.1": - version: 4.0.8 - resolution: "bufferutil@npm:4.0.8" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c - languageName: node - linkType: hard - -"busboy@npm:^1.6.0": - version: 1.6.0 - resolution: "busboy@npm:1.6.0" - dependencies: - streamsearch: "npm:^1.1.0" - checksum: fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f - languageName: node - linkType: hard - -"bytes@npm:3.1.1": - version: 3.1.1 - resolution: "bytes@npm:3.1.1" - checksum: 286a6280730ce90409a89acc0052bcb39e7fb28eb7c019bede36af22cce2c93993f17fd2d66839d7f8e142c2156505989b2c09499a7dbed461c918c782caca80 - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: 76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e - languageName: node - linkType: hard - -"bytewise-core@npm:^1.2.2": - version: 1.2.3 - resolution: "bytewise-core@npm:1.2.3" - dependencies: - typewise-core: "npm:^1.2" - checksum: 210239f3048de9463b4ab02968bd0ef7b3c9b330c0329f9df1851fee0819e19fbb0eca8cc235947112dcce942ed58541283ddaefe29515c93a2b7e0820be3f2d - languageName: node - linkType: hard - -"bytewise@npm:~1.1.0": - version: 1.1.0 - resolution: "bytewise@npm:1.1.0" - dependencies: - bytewise-core: "npm:^1.2.2" - typewise: "npm:^1.0.3" - checksum: bcf994a8b635390dce43b22e97201cc0e3df0089ada4e77cc0bb48ce241efd0c27ca24a9400828cdd288a69a961da0b60c05bf7381b6cb529f048ab22092cc6d - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.3 - resolution: "cacache@npm:18.0.3" - dependencies: - "@npmcli/fs": "npm:^3.1.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: dfda92840bb371fb66b88c087c61a74544363b37a265023223a99965b16a16bbb87661fe4948718d79df6e0cc04e85e62784fbcf1832b2a5e54ff4c46fbb45b7 - languageName: node - linkType: hard - -"cache-base@npm:^1.0.1": - version: 1.0.1 - resolution: "cache-base@npm:1.0.1" - dependencies: - collection-visit: "npm:^1.0.0" - component-emitter: "npm:^1.2.1" - get-value: "npm:^2.0.6" - has-value: "npm:^1.0.0" - isobject: "npm:^3.0.1" - set-value: "npm:^2.0.0" - to-object-path: "npm:^0.3.0" - union-value: "npm:^1.0.0" - unset-value: "npm:^1.0.0" - checksum: a7142e25c73f767fa520957dcd179b900b86eac63b8cfeaa3b2a35e18c9ca5968aa4e2d2bed7a3e7efd10f13be404344cfab3a4156217e71f9bdb95940bb9c8c - languageName: node - linkType: hard - -"cacheable-lookup@npm:^5.0.3": - version: 5.0.4 - resolution: "cacheable-lookup@npm:5.0.4" - checksum: a6547fb4954b318aa831cbdd2f7b376824bc784fb1fa67610e4147099e3074726072d9af89f12efb69121415a0e1f2918a8ddd4aafcbcf4e91fbeef4a59cd42c - languageName: node - linkType: hard - -"cacheable-lookup@npm:^6.0.4": - version: 6.1.0 - resolution: "cacheable-lookup@npm:6.1.0" - checksum: fe922b24e9868ac65cbd3b4ccd7449063d572431471aab71cbca49a2b33839c7c888b237b0922ae6b8f4ddf25d61debe204e473195d2e77a835099b8953aeb0a - languageName: node - linkType: hard - -"cacheable-lookup@npm:^7.0.0": - version: 7.0.0 - resolution: "cacheable-lookup@npm:7.0.0" - checksum: 63a9c144c5b45cb5549251e3ea774c04d63063b29e469f7584171d059d3a88f650f47869a974e2d07de62116463d742c287a81a625e791539d987115cb081635 - languageName: node - linkType: hard - -"cacheable-request@npm:^10.2.8": - version: 10.2.14 - resolution: "cacheable-request@npm:10.2.14" - dependencies: - "@types/http-cache-semantics": "npm:^4.0.2" - get-stream: "npm:^6.0.1" - http-cache-semantics: "npm:^4.1.1" - keyv: "npm:^4.5.3" - mimic-response: "npm:^4.0.0" - normalize-url: "npm:^8.0.0" - responselike: "npm:^3.0.0" - checksum: 41b6658db369f20c03128227ecd219ca7ac52a9d24fc0f499cc9aa5d40c097b48b73553504cebd137024d957c0ddb5b67cf3ac1439b136667f3586257763f88d - languageName: node - linkType: hard - -"cacheable-request@npm:^6.0.0": - version: 6.1.0 - resolution: "cacheable-request@npm:6.1.0" - dependencies: - clone-response: "npm:^1.0.2" - get-stream: "npm:^5.1.0" - http-cache-semantics: "npm:^4.0.0" - keyv: "npm:^3.0.0" - lowercase-keys: "npm:^2.0.0" - normalize-url: "npm:^4.1.0" - responselike: "npm:^1.0.2" - checksum: e92f2b2078c014ba097647ab4ff6a6149dc2974a65670ee97ec593ec9f4148ecc988e86b9fcd8ebf7fe255774a53d5dc3db6b01065d44f09a7452c7a7d8e4844 - languageName: node - linkType: hard - -"cacheable-request@npm:^7.0.2": - version: 7.0.4 - resolution: "cacheable-request@npm:7.0.4" - dependencies: - clone-response: "npm:^1.0.2" - get-stream: "npm:^5.1.0" - http-cache-semantics: "npm:^4.0.0" - keyv: "npm:^4.0.0" - lowercase-keys: "npm:^2.0.0" - normalize-url: "npm:^6.0.1" - responselike: "npm:^2.0.0" - checksum: 0834a7d17ae71a177bc34eab06de112a43f9b5ad05ebe929bec983d890a7d9f2bc5f1aa8bb67ea2b65e07a3bc74bea35fa62dd36dbac52876afe36fdcf83da41 - languageName: node - linkType: hard - -"cachedown@npm:1.0.0": - version: 1.0.0 - resolution: "cachedown@npm:1.0.0" - dependencies: - abstract-leveldown: "npm:^2.4.1" - lru-cache: "npm:^3.2.0" - checksum: 7cd84ce0d7e14b75c2a333cbc18a7a417527d3b10f1e13a860c09c5d3006ec3755def9920f4d0e82ee200c505caebac4946c9e1f8786bc203f9bfe4217b5e7f0 - languageName: node - linkType: hard - -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:~1.0.2": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - set-function-length: "npm:^1.2.1" - checksum: a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - -"camel-case@npm:^4.1.2": - version: 4.1.2 - resolution: "camel-case@npm:4.1.2" - dependencies: - pascal-case: "npm:^3.1.2" - tslib: "npm:^2.0.3" - checksum: bf9eefaee1f20edbed2e9a442a226793bc72336e2b99e5e48c6b7252b6f70b080fc46d8246ab91939e2af91c36cdd422e0af35161e58dd089590f302f8f64c8a - languageName: node - linkType: hard - -"camelcase-keys@npm:^6.2.2": - version: 6.2.2 - resolution: "camelcase-keys@npm:6.2.2" - dependencies: - camelcase: "npm:^5.3.1" - map-obj: "npm:^4.0.0" - quick-lru: "npm:^4.0.1" - checksum: bf1a28348c0f285c6c6f68fb98a9d088d3c0269fed0cdff3ea680d5a42df8a067b4de374e7a33e619eb9d5266a448fe66c2dd1f8e0c9209ebc348632882a3526 - languageName: node - linkType: hard - -"camelcase@npm:^3.0.0": - version: 3.0.0 - resolution: "camelcase@npm:3.0.0" - checksum: 98871bb40b936430beca49490d325759f8d8ade32bea538ee63c20b17b326abb6bbd3e1d84daf63d9332b2fc7637f28696bf76da59180b1247051b955cb1da12 - languageName: node - linkType: hard - -"camelcase@npm:^4.1.0": - version: 4.1.0 - resolution: "camelcase@npm:4.1.0" - checksum: 54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058 - languageName: node - linkType: hard - -"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: 92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 - languageName: node - linkType: hard - -"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30000844, caniuse-lite@npm:^1.0.30001587": - version: 1.0.30001620 - resolution: "caniuse-lite@npm:1.0.30001620" - checksum: 3783117143fbdc98c1b91a579d0f2a7bcee7008f322ba7a2bf56a6c3d105400772c7ed8026840b4ea909ec7bf254bcc36532f2ce1b1a1240b00d0335da39b7ec - languageName: node - linkType: hard - -"capital-case@npm:^1.0.4": - version: 1.0.4 - resolution: "capital-case@npm:1.0.4" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - upper-case-first: "npm:^2.0.2" - checksum: 6a034af73401f6e55d91ea35c190bbf8bda21714d4ea8bb8f1799311d123410a80f0875db4e3236dc3f97d74231ff4bf1c8783f2be13d7733c7d990c57387281 - languageName: node - linkType: hard - -"case@npm:^1.6.3": - version: 1.6.3 - resolution: "case@npm:1.6.3" - checksum: 43fcbb1dff1c4add94dd2bc98bd923d6616f10bff6959adf686d192c3db7d7ced35410761e1ac94cc4a1f5c41c86406ad79d390805539e421e8a77e553f67223 - languageName: node - linkType: hard - -"caseless@npm:^0.12.0, caseless@npm:~0.12.0": - version: 0.12.0 - resolution: "caseless@npm:0.12.0" - checksum: ccf64bcb6c0232cdc5b7bd91ddd06e23a4b541f138336d4725233ac538041fb2f29c2e86c3c4a7a61ef990b665348db23a047060b9414c3a6603e9fa61ad4626 - languageName: node - linkType: hard - -"catering@npm:^2.1.0, catering@npm:^2.1.1": - version: 2.1.1 - resolution: "catering@npm:2.1.1" - checksum: a69f946f82cba85509abcb399759ed4c39d2cc9e33ba35674f242130c1b3c56673da3c3e85804db6898dfd966c395aa128ba484b31c7b906cc2faca6a581e133 - languageName: node - linkType: hard - -"cbor@npm:^8.1.0": - version: 8.1.0 - resolution: "cbor@npm:8.1.0" - dependencies: - nofilter: "npm:^3.1.0" - checksum: a836e2e7ea0efb1b9c4e5a4be906c57113d730cc42293a34072e0164ed110bb8ac035dc7dca2e3ebb641bd4b37e00fdbbf09c951aa864b3d4888a6ed8c6243f7 - languageName: node - linkType: hard - -"cbor@npm:^9.0.0": - version: 9.0.2 - resolution: "cbor@npm:9.0.2" - dependencies: - nofilter: "npm:^3.1.0" - checksum: 709d4378067e663107b3d63a02d123a7b33e28946b4c5cc40c102f2f0ba13b072a79adc4369bb87a4e743399fce45deec30463fc84d363ab7cb39192d0fe5f30 - languageName: node - linkType: hard - -"chai-as-promised@npm:^7.1.1": - version: 7.1.2 - resolution: "chai-as-promised@npm:7.1.2" - dependencies: - check-error: "npm:^1.0.2" - peerDependencies: - chai: ">= 2.1.2 < 6" - checksum: ee20ed75296d8cbf828b2f3c9ad64627cee67b1a38b8e906ca59fe788fb6965ddb10f702ae66645ed88f15a905ade4f2d9f8540029e92e2d59b229c9f912273f - languageName: node - linkType: hard - -"chai@npm:^4.0.0": - version: 4.5.0 - resolution: "chai@npm:4.5.0" - dependencies: - assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.3" - deep-eql: "npm:^4.1.3" - get-func-name: "npm:^2.0.2" - loupe: "npm:^2.3.6" - pathval: "npm:^1.1.1" - type-detect: "npm:^4.1.0" - checksum: b8cb596bd1aece1aec659e41a6e479290c7d9bee5b3ad63d2898ad230064e5b47889a3bc367b20100a0853b62e026e2dc514acf25a3c9385f936aa3614d4ab4d - languageName: node - linkType: hard - -"chai@npm:^4.2.0, chai@npm:^4.3.10, chai@npm:^4.3.4": - version: 4.4.1 - resolution: "chai@npm:4.4.1" - dependencies: - assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.3" - deep-eql: "npm:^4.1.3" - get-func-name: "npm:^2.0.2" - loupe: "npm:^2.3.6" - pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd - languageName: node - linkType: hard - -"chalk@npm:5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 - languageName: node - linkType: hard - -"chalk@npm:^1.1.3": - version: 1.1.3 - resolution: "chalk@npm:1.1.3" - dependencies: - ansi-styles: "npm:^2.2.1" - escape-string-regexp: "npm:^1.0.2" - has-ansi: "npm:^2.0.0" - strip-ansi: "npm:^3.0.0" - supports-color: "npm:^2.0.0" - checksum: 28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8 - languageName: node - linkType: hard - -"chalk@npm:^2.1.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - -"change-case-all@npm:1.0.14": - version: 1.0.14 - resolution: "change-case-all@npm:1.0.14" - dependencies: - change-case: "npm:^4.1.2" - is-lower-case: "npm:^2.0.2" - is-upper-case: "npm:^2.0.2" - lower-case: "npm:^2.0.2" - lower-case-first: "npm:^2.0.2" - sponge-case: "npm:^1.0.1" - swap-case: "npm:^2.0.2" - title-case: "npm:^3.0.3" - upper-case: "npm:^2.0.2" - upper-case-first: "npm:^2.0.2" - checksum: c2d5fda011b2430f9e503afdca5d8ed48b0e8ee96e38f5530193f8a503317c4a82e6b721c5ea8ef852a2534bdd3d1af25d76e0604b820cd3bc136cf9c179803e - languageName: node - linkType: hard - -"change-case-all@npm:1.0.15": - version: 1.0.15 - resolution: "change-case-all@npm:1.0.15" - dependencies: - change-case: "npm:^4.1.2" - is-lower-case: "npm:^2.0.2" - is-upper-case: "npm:^2.0.2" - lower-case: "npm:^2.0.2" - lower-case-first: "npm:^2.0.2" - sponge-case: "npm:^1.0.1" - swap-case: "npm:^2.0.2" - title-case: "npm:^3.0.3" - upper-case: "npm:^2.0.2" - upper-case-first: "npm:^2.0.2" - checksum: 0de81690de866aa8c477f8b5b08c6f9dbce4a078cffa5f014858f49fda548a9a6524b61f62f2940acce9f1fdcfeef3a7124090684e86e731f55d26c22713e2d7 - languageName: node - linkType: hard - -"change-case@npm:^4.1.2": - version: 4.1.2 - resolution: "change-case@npm:4.1.2" - dependencies: - camel-case: "npm:^4.1.2" - capital-case: "npm:^1.0.4" - constant-case: "npm:^3.0.4" - dot-case: "npm:^3.0.4" - header-case: "npm:^2.0.4" - no-case: "npm:^3.0.4" - param-case: "npm:^3.0.4" - pascal-case: "npm:^3.1.2" - path-case: "npm:^3.0.4" - sentence-case: "npm:^3.0.4" - snake-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: 95a6e48563cd393241ce18470c7310a8a050304a64b63addac487560ab039ce42b099673d1d293cc10652324d92060de11b5d918179fe3b5af2ee521fb03ca58 - languageName: node - linkType: hard - -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d - languageName: node - linkType: hard - -"charenc@npm:>= 0.0.1": - version: 0.0.2 - resolution: "charenc@npm:0.0.2" - checksum: a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8 - languageName: node - linkType: hard - -"check-error@npm:^1.0.2, check-error@npm:^1.0.3": - version: 1.0.3 - resolution: "check-error@npm:1.0.3" - dependencies: - get-func-name: "npm:^2.0.2" - checksum: 94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 - languageName: node - linkType: hard - -"checkpoint-store@npm:^1.1.0": - version: 1.1.0 - resolution: "checkpoint-store@npm:1.1.0" - dependencies: - functional-red-black-tree: "npm:^1.0.1" - checksum: 257dea033983adbbfb50c54db0cb8045450aa00f260c95e75cad62574b467f5b1060b1e35d5d1c296c6923026827d8dc0e5cd450feddd74b15d8b6580075cd23 - languageName: node - linkType: hard - -"chokidar@npm:3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 - languageName: node - linkType: hard - -"chokidar@npm:^1.6.0": - version: 1.7.0 - resolution: "chokidar@npm:1.7.0" - dependencies: - anymatch: "npm:^1.3.0" - async-each: "npm:^1.0.0" - fsevents: "npm:^1.0.0" - glob-parent: "npm:^2.0.0" - inherits: "npm:^2.0.1" - is-binary-path: "npm:^1.0.0" - is-glob: "npm:^2.0.0" - path-is-absolute: "npm:^1.0.0" - readdirp: "npm:^2.0.0" - dependenciesMeta: - fsevents: - optional: true - checksum: d3f82bc7fba1d5793a05ae494c30536cf6e4b23364a610e8bee8ae49dbaf963a67f70c627a943ab538cab252f6ac1862c6012885bccd06a10487438de5ae8a15 - languageName: node - linkType: hard - -"chokidar@npm:^3.4.0, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 - languageName: node - linkType: hard - -"chokidar@npm:^4.0.0": - version: 4.0.1 - resolution: "chokidar@npm:4.0.1" - dependencies: - readdirp: "npm:^4.0.1" - checksum: 4bb7a3adc304059810bb6c420c43261a15bb44f610d77c35547addc84faa0374265c3adc67f25d06f363d9a4571962b02679268c40de07676d260de1986efea9 - languageName: node - linkType: hard - -"chownr@npm:^1.1.4": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: 594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 - languageName: node - linkType: hard - -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 8c5fa3830a2bcee2b53c2e5018226f0141db9ec9f7b1e27a5c57db5512332cde8a0beb769bcbaf0d8775a78afbf2bb841928feca4ea6219638a5b088f9884b46 - languageName: node - linkType: hard - -"ci-info@npm:^3.7.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a - languageName: node - linkType: hard - -"cids@npm:^0.7.1": - version: 0.7.5 - resolution: "cids@npm:0.7.5" - dependencies: - buffer: "npm:^5.5.0" - class-is: "npm:^1.1.0" - multibase: "npm:~0.6.0" - multicodec: "npm:^1.0.0" - multihashes: "npm:~0.4.15" - checksum: 8fc7a14a2c2b302e3e76051fa7936150b24c0da681438ed036390c8fbcb78df5af20a3f73a35b7fc93305c633e595691399abf44a1c33fe4834544f2737d99ae - languageName: node - linkType: hard - -"cids@npm:^1.0.0": - version: 1.1.9 - resolution: "cids@npm:1.1.9" - dependencies: - multibase: "npm:^4.0.1" - multicodec: "npm:^3.0.1" - multihashes: "npm:^4.0.1" - uint8arrays: "npm:^3.0.0" - checksum: 9a1de15b563abf45608d483190287eab7f272724fcde3af0e71a8c05913877b20a89753196fb1f1f042e3dad9a2939b63870f5607f99e2fd7f68f47a5480602d - languageName: node - linkType: hard - -"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": - version: 1.0.4 - resolution: "cipher-base@npm:1.0.4" - dependencies: - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b - languageName: node - linkType: hard - -"class-is@npm:^1.1.0": - version: 1.1.0 - resolution: "class-is@npm:1.1.0" - checksum: 07241182c379a630c1841e99cd2301f0492d8f973f111f13b4487231f7cc28a1f1166670ce2dfcab91449155e6e107379eb9d15ba140e749a11d4fcba3883f52 - languageName: node - linkType: hard - -"class-utils@npm:^0.3.5": - version: 0.3.6 - resolution: "class-utils@npm:0.3.6" - dependencies: - arr-union: "npm:^3.1.0" - define-property: "npm:^0.2.5" - isobject: "npm:^3.0.0" - static-extend: "npm:^0.1.1" - checksum: d44f4afc7a3e48dba4c2d3fada5f781a1adeeff371b875c3b578bc33815c6c29d5d06483c2abfd43a32d35b104b27b67bfa39c2e8a422fa858068bd756cfbd42 - languageName: node - linkType: hard - -"classic-level@npm:^1.2.0": - version: 1.4.1 - resolution: "classic-level@npm:1.4.1" - dependencies: - abstract-level: "npm:^1.0.2" - catering: "npm:^2.1.0" - module-error: "npm:^1.0.1" - napi-macros: "npm:^2.2.2" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: ba769e0b558ab466cef9468f7494b67d8f0139768630ba184d67b33201e67aad274718f3b1b78aaf3c5f5ab4cc526971edf82c7060741031bbad357952e7304d - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 - languageName: node - linkType: hard - -"cli-boxes@npm:^2.2.1": - version: 2.2.1 - resolution: "cli-boxes@npm:2.2.1" - checksum: 6111352edbb2f62dbc7bfd58f2d534de507afed7f189f13fa894ce5a48badd94b2aa502fda28f1d7dd5f1eb456e7d4033d09a76660013ef50c7f66e7a034f050 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: "npm:^3.1.0" - checksum: 92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 - languageName: node - linkType: hard - -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" - dependencies: - restore-cursor: "npm:^4.0.0" - checksum: e776e8c3c6727300d0539b0d25160b2bb56aed1a63942753ba1826b012f337a6f4b7ace3548402e4f2f13b5e16bfd751be672c44b203205e7eca8be94afec42c - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 - languageName: node - linkType: hard - -"cli-table3@npm:^0.5.0": - version: 0.5.1 - resolution: "cli-table3@npm:0.5.1" - dependencies: - colors: "npm:^1.1.2" - object-assign: "npm:^4.1.0" - string-width: "npm:^2.1.1" - dependenciesMeta: - colors: - optional: true - checksum: 659c40ead17539d0665aa9dea85a7650fc161939f9d8bd3842c6cf5da51dc867057d3066fe8c962dafa163da39ce2029357754aee2c8f9513ea7a0810511d1d6 - languageName: node - linkType: hard - -"cli-table3@npm:^0.6.0, cli-table3@npm:^0.6.2": - version: 0.6.5 - resolution: "cli-table3@npm:0.6.5" - dependencies: - "@colors/colors": "npm:1.5.0" - string-width: "npm:^4.2.0" - dependenciesMeta: - "@colors/colors": - optional: true - checksum: d7cc9ed12212ae68241cc7a3133c52b844113b17856e11f4f81308acc3febcea7cc9fd298e70933e294dd642866b29fd5d113c2c098948701d0c35f09455de78 - languageName: node - linkType: hard - -"cli-table@npm:^0.3.6": - version: 0.3.11 - resolution: "cli-table@npm:0.3.11" - dependencies: - colors: "npm:1.0.3" - checksum: 6e31da4e19e942bf01749ff78d7988b01e0101955ce2b1e413eecdc115d4bb9271396464761491256a7d3feeedb5f37ae505f4314c4f8044b5d0f4b579c18f29 - languageName: node - linkType: hard - -"cli-truncate@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-truncate@npm:2.1.0" - dependencies: - slice-ansi: "npm:^3.0.0" - string-width: "npm:^4.2.0" - checksum: dfaa3df675bcef7a3254773de768712b590250420345a4c7ac151f041a4bacb4c25864b1377bee54a39b5925a030c00eabf014e312e3a4ac130952ed3b3879e9 - languageName: node - linkType: hard - -"cli-truncate@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-truncate@npm:3.1.0" - dependencies: - slice-ansi: "npm:^5.0.0" - string-width: "npm:^5.0.0" - checksum: a19088878409ec0e5dc2659a5166929629d93cfba6d68afc9cde2282fd4c751af5b555bf197047e31c87c574396348d011b7aa806fec29c4139ea4f7f00b324c - languageName: node - linkType: hard - -"cli-truncate@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-truncate@npm:4.0.0" - dependencies: - slice-ansi: "npm:^5.0.0" - string-width: "npm:^7.0.0" - checksum: d7f0b73e3d9b88cb496e6c086df7410b541b56a43d18ade6a573c9c18bd001b1c3fba1ad578f741a4218fdc794d042385f8ac02c25e1c295a2d8b9f3cb86eb4c - languageName: node - linkType: hard - -"cli-width@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-width@npm:3.0.0" - checksum: 125a62810e59a2564268c80fdff56c23159a7690c003e34aeb2e68497dccff26911998ff49c33916fcfdf71e824322cc3953e3f7b48b27267c7a062c81348a9a - languageName: node - linkType: hard - -"cliui@npm:^3.2.0": - version: 3.2.0 - resolution: "cliui@npm:3.2.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - wrap-ansi: "npm:^2.0.0" - checksum: 07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5 - languageName: node - linkType: hard - -"cliui@npm:^4.0.0": - version: 4.1.0 - resolution: "cliui@npm:4.1.0" - dependencies: - string-width: "npm:^2.1.1" - strip-ansi: "npm:^4.0.0" - wrap-ansi: "npm:^2.0.0" - checksum: 5cee4720850655365014f158407f65f92e22e6a46be17d4844889d2173bd9327fabf41d08b309016e825a3888a558b606f1a89c7d2f805720b24902235bae4e5 - languageName: node - linkType: hard - -"cliui@npm:^6.0.0": - version: 6.0.0 - resolution: "cliui@npm:6.0.0" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^6.2.0" - checksum: 35229b1bb48647e882104cac374c9a18e34bbf0bace0e2cf03000326b6ca3050d6b59545d91e17bfe3705f4a0e2988787aa5cde6331bf5cbbf0164732cef6492 - languageName: node - linkType: hard - -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^7.0.0" - checksum: 6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^7.0.0" - checksum: 4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 - languageName: node - linkType: hard - -"clone-response@npm:^1.0.2": - version: 1.0.3 - resolution: "clone-response@npm:1.0.3" - dependencies: - mimic-response: "npm:^1.0.0" - checksum: 06a2b611824efb128810708baee3bd169ec9a1bf5976a5258cd7eb3f7db25f00166c6eee5961f075c7e38e194f373d4fdf86b8166ad5b9c7e82bbd2e333a6087 - languageName: node - linkType: hard - -"clone@npm:2.1.2, clone@npm:^2.0.0": - version: 2.1.2 - resolution: "clone@npm:2.1.2" - checksum: ed0601cd0b1606bc7d82ee7175b97e68d1dd9b91fd1250a3617b38d34a095f8ee0431d40a1a611122dcccb4f93295b4fdb94942aa763392b5fe44effa50c2d5e - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: 2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 - languageName: node - linkType: hard - -"code-point-at@npm:^1.0.0": - version: 1.1.0 - resolution: "code-point-at@npm:1.1.0" - checksum: 33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6 - languageName: node - linkType: hard - -"coingecko-api@npm:^1.0.10": - version: 1.0.10 - resolution: "coingecko-api@npm:1.0.10" - checksum: 610eba23e63053da72f6690c3371525515218aa04360b9b7c0d992d3b6aeb7314fd946df8b43962ed245bab8ba9ebbde2d2cb57e8a575c73507a61dcf809cf97 - languageName: node - linkType: hard - -"collection-visit@npm:^1.0.0": - version: 1.0.0 - resolution: "collection-visit@npm:1.0.0" - dependencies: - map-visit: "npm:^1.0.0" - object-visit: "npm:^1.0.0" - checksum: add72a8d1c37cb90e53b1aaa2c31bf1989bfb733f0b02ce82c9fa6828c7a14358dba2e4f8e698c02f69e424aeccae1ffb39acdeaf872ade2f41369e84a2fcf8a - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: "npm:~1.1.4" - checksum: 37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 - languageName: node - linkType: hard - -"color-string@npm:^1.6.0": - version: 1.9.1 - resolution: "color-string@npm:1.9.1" - dependencies: - color-name: "npm:^1.0.0" - simple-swizzle: "npm:^0.2.2" - checksum: b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404 - languageName: node - linkType: hard - -"color@npm:^3.1.3": - version: 3.2.1 - resolution: "color@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.3" - color-string: "npm:^1.6.0" - checksum: 39345d55825884c32a88b95127d417a2c24681d8b57069413596d9fcbb721459ef9d9ec24ce3e65527b5373ce171b73e38dbcd9c830a52a6487e7f37bf00e83c - languageName: node - linkType: hard - -"colorette@npm:^2.0.16, colorette@npm:^2.0.20": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 - languageName: node - linkType: hard - -"colors@npm:1.0.3": - version: 1.0.3 - resolution: "colors@npm:1.0.3" - checksum: f9e40dd8b3e1a65378a7ced3fced15ddfd60aaf38e99a7521a7fdb25056b15e092f651cd0f5aa1e9b04fa8ce3616d094e07fc6c2bb261e24098db1ddd3d09a1d - languageName: node - linkType: hard - -"colors@npm:1.4.0, colors@npm:^1.1.2": - version: 1.4.0 - resolution: "colors@npm:1.4.0" - checksum: 9af357c019da3c5a098a301cf64e3799d27549d8f185d86f79af23069e4f4303110d115da98483519331f6fb71c8568d5688fa1c6523600044fd4a54e97c4efb - languageName: node - linkType: hard - -"colorspace@npm:1.1.x": - version: 1.1.4 - resolution: "colorspace@npm:1.1.4" - dependencies: - color: "npm:^3.1.3" - text-hex: "npm:1.0.x" - checksum: af5f91ff7f8e146b96e439ac20ed79b197210193bde721b47380a75b21751d90fa56390c773bb67c0aedd34ff85091883a437ab56861c779bd507d639ba7e123 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"command-exists@npm:^1.2.8": - version: 1.2.9 - resolution: "command-exists@npm:1.2.9" - checksum: 75040240062de46cd6cd43e6b3032a8b0494525c89d3962e280dde665103f8cc304a8b313a5aa541b91da2f5a9af75c5959dc3a77893a2726407a5e9a0234c16 - languageName: node - linkType: hard - -"command-line-args@npm:^4.0.7": - version: 4.0.7 - resolution: "command-line-args@npm:4.0.7" - dependencies: - array-back: "npm:^2.0.0" - find-replace: "npm:^1.0.3" - typical: "npm:^2.6.1" - bin: - command-line-args: bin/cli.js - checksum: ff1b1f5ca8b4f2c396ae9fcaf187824c5f0129e6ca85e082b3d6c3c54e388b5086a36a98d7eef28bc4358b10d639a732871df6e5a09122d7f911f2240c1e5f0b - languageName: node - linkType: hard - -"command-line-args@npm:^5.1.1": - version: 5.2.1 - resolution: "command-line-args@npm:5.2.1" - dependencies: - array-back: "npm:^3.1.0" - find-replace: "npm:^3.0.0" - lodash.camelcase: "npm:^4.3.0" - typical: "npm:^4.0.0" - checksum: a4f6a23a1e420441bd1e44dee24efd12d2e49af7efe6e21eb32fca4e843ca3d5501ddebad86a4e9d99aa626dd6dcb64c04a43695388be54e3a803dbc326cc89f - languageName: node - linkType: hard - -"command-line-usage@npm:^6.1.0": - version: 6.1.3 - resolution: "command-line-usage@npm:6.1.3" - dependencies: - array-back: "npm:^4.0.2" - chalk: "npm:^2.4.2" - table-layout: "npm:^1.0.2" - typical: "npm:^5.2.0" - checksum: 23d7577ccb6b6c004e67bb6a9a8cb77282ae7b7507ae92249a9548a39050b7602fef70f124c765000ab23b8f7e0fb7a3352419ab73ea42a2d9ea32f520cdfe9e - languageName: node - linkType: hard - -"commander@npm:11.1.0, commander@npm:^11.1.0": - version: 11.1.0 - resolution: "commander@npm:11.1.0" - checksum: 13cc6ac875e48780250f723fb81c1c1178d35c5decb1abb1b628b3177af08a8554e76b2c0f29de72d69eef7c864d12613272a71fabef8047922bc622ab75a179 - languageName: node - linkType: hard - -"commander@npm:2.11.0": - version: 2.11.0 - resolution: "commander@npm:2.11.0" - checksum: 19eaec3099eba7cc24617fd2bddf6430d62f9e91f0dbfc4abcc5a025f9a6c657526fea5f09243f90c99f87b0df29c29ab4aa4f250888987f658eda617238e55c - languageName: node - linkType: hard - -"commander@npm:3.0.2": - version: 3.0.2 - resolution: "commander@npm:3.0.2" - checksum: 8a279b4bacde68f03664086260ccb623122d2bdae6f380a41c9e06b646e830372c30a4b88261238550e0ad69d53f7af8883cb705d8237fdd22947e84913b149c - languageName: node - linkType: hard - -"commander@npm:^10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 53f33d8927758a911094adadda4b2cbac111a5b377d8706700587650fd8f45b0bbe336de4b5c3fe47fd61f420a3d9bd452b6e0e6e5600a7e74d7bf0174f6efe3 - languageName: node - linkType: hard - -"commander@npm:^12.0.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 - languageName: node - linkType: hard - -"commander@npm:^2.15.0, commander@npm:^2.9.0": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: 74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 - languageName: node - linkType: hard - -"commander@npm:^6.2.0": - version: 6.2.1 - resolution: "commander@npm:6.2.1" - checksum: 85748abd9d18c8bc88febed58b98f66b7c591d9b5017cad459565761d7b29ca13b7783ea2ee5ce84bf235897333706c4ce29adf1ce15c8252780e7000e2ce9ea - languageName: node - linkType: hard - -"commander@npm:^8.1.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 - languageName: node - linkType: hard - -"commander@npm:^9.3.0, commander@npm:^9.4.0": - version: 9.5.0 - resolution: "commander@npm:9.5.0" - checksum: 5f7784fbda2aaec39e89eb46f06a999e00224b3763dc65976e05929ec486e174fe9aac2655f03ba6a5e83875bd173be5283dc19309b7c65954701c02025b3c1d - languageName: node - linkType: hard - -"common-tags@npm:1.8.2": - version: 1.8.2 - resolution: "common-tags@npm:1.8.2" - checksum: 23efe47ff0a1a7c91489271b3a1e1d2a171c12ec7f9b35b29b2fce51270124aff0ec890087e2bc2182c1cb746e232ab7561aaafe05f1e7452aea733d2bfe3f63 - languageName: node - linkType: hard - -"compare-func@npm:^2.0.0": - version: 2.0.0 - resolution: "compare-func@npm:2.0.0" - dependencies: - array-ify: "npm:^1.0.0" - dot-prop: "npm:^5.1.0" - checksum: 78bd4dd4ed311a79bd264c9e13c36ed564cde657f1390e699e0f04b8eee1fc06ffb8698ce2dfb5fbe7342d509579c82d4e248f08915b708f77f7b72234086cc3 - languageName: node - linkType: hard - -"compare-versions@npm:^6.0.0": - version: 6.1.0 - resolution: "compare-versions@npm:6.1.0" - checksum: 5378edc8a53ac98ed907da463e1d6c26f1ed2664006d6a0d54bbdf7f046a36c43e244740854fc0edfc1e09253b9a0b7c98d1282dfee9f6f1a87199599f611218 - languageName: node - linkType: hard - -"component-emitter@npm:^1.2.1": - version: 1.3.1 - resolution: "component-emitter@npm:1.3.1" - checksum: e4900b1b790b5e76b8d71b328da41482118c0f3523a516a41be598dc2785a07fd721098d9bf6e22d89b19f4fa4e1025160dc00317ea111633a3e4f75c2b86032 - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f - languageName: node - linkType: hard - -"concat-stream@npm:^1.5.1, concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.2.2" - typedarray: "npm:^0.0.6" - checksum: 2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617 - languageName: node - linkType: hard - -"config-chain@npm:^1.1.11": - version: 1.1.13 - resolution: "config-chain@npm:1.1.13" - dependencies: - ini: "npm:^1.3.4" - proto-list: "npm:~1.2.1" - checksum: 39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e - languageName: node - linkType: hard - -"consola@npm:^2.15.0": - version: 2.15.3 - resolution: "consola@npm:2.15.3" - checksum: 34a337e6b4a1349ee4d7b4c568484344418da8fdb829d7d71bfefcd724f608f273987633b6eef465e8de510929907a092e13cb7a28a5d3acb3be446fcc79fd5e - languageName: node - linkType: hard - -"console-table-printer@npm:^2.11.1, console-table-printer@npm:^2.9.0": - version: 2.12.0 - resolution: "console-table-printer@npm:2.12.0" - dependencies: - simple-wcswidth: "npm:^1.0.1" - checksum: 122ac2c7be70b2554acb3be9f0b5c4224113307d30a28c20264eb65ae33ef5522986dd216422697297ee740f5ba293910d03dd969bdceee5a61aa0843fa6b201 - languageName: node - linkType: hard - -"constant-case@npm:^3.0.4": - version: 3.0.4 - resolution: "constant-case@npm:3.0.4" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - upper-case: "npm:^2.0.2" - checksum: 91d54f18341fcc491ae66d1086642b0cc564be3e08984d7b7042f8b0a721c8115922f7f11d6a09f13ed96ff326eabae11f9d1eb0335fa9d8b6e39e4df096010e - languageName: node - linkType: hard - -"content-disposition@npm:0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: "npm:5.2.1" - checksum: bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb - languageName: node - linkType: hard - -"content-hash@npm:^2.5.2": - version: 2.5.2 - resolution: "content-hash@npm:2.5.2" - dependencies: - cids: "npm:^0.7.1" - multicodec: "npm:^0.5.5" - multihashes: "npm:^0.4.15" - checksum: 107463b574365cf0dc07711bb6fdc2b613ef631fee2245bb77f507057e91d52e8e28faf2f4c092bfff918eb7ae8eb226b75cae4320721138126ec9925a500228 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^5.0.11": - version: 5.0.13 - resolution: "conventional-changelog-angular@npm:5.0.13" - dependencies: - compare-func: "npm:^2.0.0" - q: "npm:^1.5.1" - checksum: bca711b835fe01d75e3500b738f6525c91a12096218e917e9fd81bf9accf157f904fee16f88c523fd5462fb2a7cb1d060eb79e9bc9a3ccb04491f0c383b43231 - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" - dependencies: - compare-func: "npm:^2.0.0" - checksum: 90e73e25e224059b02951b6703b5f8742dc2a82c1fea62163978e6735fd3ab04350897a8fc6f443ec6b672d6b66e28a0820e833e544a0101f38879e5e6289b7e - languageName: node - linkType: hard - -"conventional-changelog-conventionalcommits@npm:^4.3.1": - version: 4.6.3 - resolution: "conventional-changelog-conventionalcommits@npm:4.6.3" - dependencies: - compare-func: "npm:^2.0.0" - lodash: "npm:^4.17.15" - q: "npm:^1.5.1" - checksum: f3b5e6132ec03dad4aa4a2b5ac47ee0e2ae8be6d0fa53a131c722412ce7c02a742c190790f15b5ab4983a31ce90b7066ce1f3f3d5cc4253aa3484ee414259bd2 - languageName: node - linkType: hard - -"conventional-changelog-conventionalcommits@npm:^7.0.2": - version: 7.0.2 - resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" - dependencies: - compare-func: "npm:^2.0.0" - checksum: 3cb1eab35e37fc973cfb3aed0e159f54414e49b222988da1c2aa86cc8a87fe7531491bbb7657fe5fc4dc0e25f5b50e2065ba8ac71cc4c08eed9189102a2b81bd - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^3.2.2": - version: 3.2.4 - resolution: "conventional-commits-parser@npm:3.2.4" - dependencies: - JSONStream: "npm:^1.0.4" - is-text-path: "npm:^1.0.1" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - conventional-commits-parser: cli.js - checksum: 122d7d7f991a04c8e3f703c0e4e9a25b2ecb20906f497e4486cb5c2acd9c68f6d9af745f7e79cb407538f50e840b33399274ac427b20971b98b335d1b66d3d17 - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-commits-parser@npm:5.0.0" - dependencies: - JSONStream: "npm:^1.3.5" - is-text-path: "npm:^2.0.0" - meow: "npm:^12.0.1" - split2: "npm:^4.0.0" - bin: - conventional-commits-parser: cli.mjs - checksum: c9e542f4884119a96a6bf3311ff62cdee55762d8547f4c745ae3ebdc50afe4ba7691e165e34827d5cf63283cbd93ab69917afd7922423075b123d5d9a7a82ed2 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.5.1": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: 281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b - languageName: node - linkType: hard - -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221 - languageName: node - linkType: hard - -"cookie@npm:0.4.2, cookie@npm:^0.4.1": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 - languageName: node - linkType: hard - -"cookie@npm:0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d - languageName: node - linkType: hard - -"cookie@npm:0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 - languageName: node - linkType: hard - -"cookiejar@npm:^2.1.1": - version: 2.1.4 - resolution: "cookiejar@npm:2.1.4" - checksum: 2dae55611c6e1678f34d93984cbd4bda58f4fe3e5247cc4993f4a305cd19c913bbaf325086ed952e892108115073a747596453d3dc1c34947f47f731818b8ad1 - languageName: node - linkType: hard - -"copy-descriptor@npm:^0.1.0": - version: 0.1.1 - resolution: "copy-descriptor@npm:0.1.1" - checksum: 161f6760b7348c941007a83df180588fe2f1283e0867cc027182734e0f26134e6cc02de09aa24a95dc267b2e2025b55659eef76c8019df27bc2d883033690181 - languageName: node - linkType: hard - -"core-js-pure@npm:^3.0.1": - version: 3.37.1 - resolution: "core-js-pure@npm:3.37.1" - checksum: 38200d08862b4ef2207af72a7525f7b9ac750f5e1d84ef27a3e314aefa69518179a9b732f51ebe35c3b38606d9fa4f686fcf6eff067615cc293a3b1c84041e74 - languageName: node - linkType: hard - -"core-js@npm:^2.4.0, core-js@npm:^2.5.0": - version: 2.6.12 - resolution: "core-js@npm:2.6.12" - checksum: 00128efe427789120a06b819adc94cc72b96955acb331cb71d09287baf9bd37bebd191d91f1ee4939c893a050307ead4faea08876f09115112612b6a05684b63 - languageName: node - linkType: hard - -"core-util-is@npm:1.0.2": - version: 1.0.2 - resolution: "core-util-is@npm:1.0.2" - checksum: 980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 - languageName: node - linkType: hard - -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 - languageName: node - linkType: hard - -"cors@npm:2.8.5, cors@npm:^2.8.1": - version: 2.8.5 - resolution: "cors@npm:2.8.5" - dependencies: - object-assign: "npm:^4" - vary: "npm:^1" - checksum: 373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 - languageName: node - linkType: hard - -"cosmiconfig-typescript-loader@npm:^2.0.0": - version: 2.0.2 - resolution: "cosmiconfig-typescript-loader@npm:2.0.2" - dependencies: - cosmiconfig: "npm:^7" - ts-node: "npm:^10.8.1" - peerDependencies: - "@types/node": "*" - cosmiconfig: ">=7" - typescript: ">=3" - checksum: d5a4b04c2005da9006606959c9d6132af9d7216ee5975e419e425a285310936e4dee9c287b27fa9c92b2198cbf84ee3012b5bccfbe3a438d43c5a2f21d8c6e1c - languageName: node - linkType: hard - -"cosmiconfig-typescript-loader@npm:^5.0.0": - version: 5.0.0 - resolution: "cosmiconfig-typescript-loader@npm:5.0.0" - dependencies: - jiti: "npm:^1.19.1" - peerDependencies: - "@types/node": "*" - cosmiconfig: ">=8.2" - typescript: ">=4" - checksum: 0eb1a767a589cf092e68729e184d5917ae0b167b6f5d908bc58cee221d66b937430fc58df64029795ef98bb8e85c575da6e3819c5f9679c721de7bdbb4bde719 - languageName: node - linkType: hard - -"cosmiconfig@npm:^7, cosmiconfig@npm:^7.0.0": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": "npm:^4.0.0" - import-fresh: "npm:^3.2.1" - parse-json: "npm:^5.0.0" - path-type: "npm:^4.0.0" - yaml: "npm:^1.10.0" - checksum: b923ff6af581638128e5f074a5450ba12c0300b71302398ea38dbeabd33bbcaa0245ca9adbedfcf284a07da50f99ede5658c80bb3e39e2ce770a99d28a21ef03 - languageName: node - linkType: hard - -"cosmiconfig@npm:^8.0.0, cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.3.6": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" - dependencies: - import-fresh: "npm:^3.3.0" - js-yaml: "npm:^4.1.0" - parse-json: "npm:^5.2.0" - path-type: "npm:^4.0.0" - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a - languageName: node - linkType: hard - -"crc-32@npm:^1.2.0": - version: 1.2.2 - resolution: "crc-32@npm:1.2.2" - bin: - crc32: bin/crc32.njs - checksum: 11dcf4a2e77ee793835d49f2c028838eae58b44f50d1ff08394a610bfd817523f105d6ae4d9b5bef0aad45510f633eb23c903e9902e4409bed1ce70cb82b9bf0 - languageName: node - linkType: hard - -"create-ecdh@npm:^4.0.0": - version: 4.0.4 - resolution: "create-ecdh@npm:4.0.4" - dependencies: - bn.js: "npm:^4.1.0" - elliptic: "npm:^6.5.3" - checksum: 77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f - languageName: node - linkType: hard - -"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": - version: 1.2.0 - resolution: "create-hash@npm:1.2.0" - dependencies: - cipher-base: "npm:^1.0.1" - inherits: "npm:^2.0.1" - md5.js: "npm:^1.3.4" - ripemd160: "npm:^2.0.1" - sha.js: "npm:^2.4.0" - checksum: d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915 - languageName: node - linkType: hard - -"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": - version: 1.1.7 - resolution: "create-hmac@npm:1.1.7" - dependencies: - cipher-base: "npm:^1.0.3" - create-hash: "npm:^1.1.0" - inherits: "npm:^2.0.1" - ripemd160: "npm:^2.0.0" - safe-buffer: "npm:^5.0.1" - sha.js: "npm:^2.4.8" - checksum: 24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: 157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 - languageName: node - linkType: hard - -"cross-fetch@npm:3.1.5": - version: 3.1.5 - resolution: "cross-fetch@npm:3.1.5" - dependencies: - node-fetch: "npm:2.6.7" - checksum: 29b457f8df11b46b8388a53c947de80bfe04e6466a59c1628c9870b48505b90ec1d28a05b543a0247416a99f1cfe147d1efe373afdeb46a192334ba5fe91b871 - languageName: node - linkType: hard - -"cross-fetch@npm:4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 386727dc4c6b044746086aced959ff21101abb85c43df5e1d151547ccb6f338f86dec3f28b9dbddfa8ff5b9ec8662ed2263ad4607a93b2dc354fb7fe3bbb898a - languageName: node - linkType: hard - -"cross-fetch@npm:^2.1.0, cross-fetch@npm:^2.1.1": - version: 2.2.6 - resolution: "cross-fetch@npm:2.2.6" - dependencies: - node-fetch: "npm:^2.6.7" - whatwg-fetch: "npm:^2.0.4" - checksum: 073d160a4d5d7ce7f88b01a18f425e31f60da4563e41f1c4f130c52c302f1f202f1a1999f39bb86daa39ca077b80b4985259c19f13fcfafdde3968d49ae94da5 - languageName: node - linkType: hard - -"cross-fetch@npm:^3.1.4, cross-fetch@npm:^3.1.5": - version: 3.1.8 - resolution: "cross-fetch@npm:3.1.8" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 4c5e022ffe6abdf380faa6e2373c0c4ed7ef75e105c95c972b6f627c3f083170b6886f19fb488a7fa93971f4f69dcc890f122b0d97f0bf5f41ca1d9a8f58c8af - languageName: node - linkType: hard - -"cross-spawn@npm:^5.0.1, cross-spawn@npm:^5.1.0": - version: 5.1.0 - resolution: "cross-spawn@npm:5.1.0" - dependencies: - lru-cache: "npm:^4.0.1" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: 1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201 - languageName: node - linkType: hard - -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: "npm:^1.0.4" - path-key: "npm:^2.0.1" - semver: "npm:^5.5.0" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: e05544722e9d7189b4292c66e42b7abeb21db0d07c91b785f4ae5fefceb1f89e626da2703744657b287e86dcd4af57b54567cef75159957ff7a8a761d9055012 - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 - languageName: node - linkType: hard - -"crypt@npm:>= 0.0.1": - version: 0.0.2 - resolution: "crypt@npm:0.0.2" - checksum: adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18 - languageName: node - linkType: hard - -"crypto-browserify@npm:3.12.0": - version: 3.12.0 - resolution: "crypto-browserify@npm:3.12.0" - dependencies: - browserify-cipher: "npm:^1.0.0" - browserify-sign: "npm:^4.0.0" - create-ecdh: "npm:^4.0.0" - create-hash: "npm:^1.1.0" - create-hmac: "npm:^1.1.0" - diffie-hellman: "npm:^5.0.0" - inherits: "npm:^2.0.1" - pbkdf2: "npm:^3.0.3" - public-encrypt: "npm:^4.0.0" - randombytes: "npm:^2.0.0" - randomfill: "npm:^1.0.3" - checksum: 0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92 - languageName: node - linkType: hard - -"csv-generate@npm:^3.4.3": - version: 3.4.3 - resolution: "csv-generate@npm:3.4.3" - checksum: 196afb16ec5e72f8a77a9742a9c5640868768e114ca5e0dcc22d4e6f9bfacb552432a2ca8658429b494d602d8fcc16f7efdad0ad45b7108fbd3f936074f43622 - languageName: node - linkType: hard - -"csv-parse@npm:^4.16.3": - version: 4.16.3 - resolution: "csv-parse@npm:4.16.3" - checksum: 40771fda105b10c3e44551fa4dbeab462315400deb572f2918c19d5848addd95ea3479aaaeaaf3bbd9235593a6d798dd90b9e6ba5c4ce570979bafc4bb1ba5f0 - languageName: node - linkType: hard - -"csv-stringify@npm:^5.6.5": - version: 5.6.5 - resolution: "csv-stringify@npm:5.6.5" - checksum: 125194dcf24a94e9c03eb53b3bc4b79cc6611747e73fe3c0e8a342a9f385caeb4e88c0827e89a4c508b45ea99bdc64a339b487f80048a50fabcbb3a7d87ea1a9 - languageName: node - linkType: hard - -"csv@npm:^5.5.3": - version: 5.5.3 - resolution: "csv@npm:5.5.3" - dependencies: - csv-generate: "npm:^3.4.3" - csv-parse: "npm:^4.16.3" - csv-stringify: "npm:^5.6.5" - stream-transform: "npm:^2.1.3" - checksum: 282720e1f9f1a332c0ff2c4d48d845eab2a60c23087c974eb6ffc4d907f40c053ae0f8458819d670ad2986ec25359e57dbccc0fa3370cd5d92e7d3143e345f95 - languageName: node - linkType: hard - -"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2": - version: 1.0.2 - resolution: "d@npm:1.0.2" - dependencies: - es5-ext: "npm:^0.10.64" - type: "npm:^2.7.2" - checksum: 3e6ede10cd3b77586c47da48423b62bed161bf1a48bdbcc94d87263522e22f5dfb0e678a6dba5323fdc14c5d8612b7f7eb9e7d9e37b2e2d67a7bf9f116dabe5a - languageName: node - linkType: hard - -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: ec7f6a8315a8fa2f8b12d39207615bdf62b4d01f631b96fbe536c8ad5469ab9ed710d55811e564d0d5c1d548fc8cb6cc70bf0939f2415790159f5a75e0f96c92 - languageName: node - linkType: hard - -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 64589a15c5bd01fa41ff7007e0f2c6552c5ef2028075daa16b188a3721f4ba001841bf306dfc2eee6e2e6e7f76b38f5f17fb21fa847504192290ffa9e150118a - languageName: node - linkType: hard - -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 - languageName: node - linkType: hard - -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 - languageName: node - linkType: hard - -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f - languageName: node - linkType: hard - -"dataloader@npm:2.2.2, dataloader@npm:^2.2.2": - version: 2.2.2 - resolution: "dataloader@npm:2.2.2" - checksum: 125ec69f821478cf7c6b4360095db6cab939fe57876a0d2060c428091a8deee7152345189923b71a6afa694aaec463779f34b585317164016fd6f54f52cd94ba - languageName: node - linkType: hard - -"dayjs@npm:1.11.7": - version: 1.11.7 - resolution: "dayjs@npm:1.11.7" - checksum: 41a54853c8b8bf0fa94a5559eec98b3e4d11b31af81a9558a159d40adeaafb1f3414e8c41a4e3277281d97687d8252f400015e1f715b47f8c24d88a9ebd43626 - languageName: node - linkType: hard - -"death@npm:^1.1.0": - version: 1.1.0 - resolution: "death@npm:1.1.0" - checksum: 4cf8ec37728b99cd18566e605b4c967eedaeeb1533a3003cb88cbc69e6fe1787393b21bfa8c26045222f4e7dd75044eaf6b4c566b67da84ecb81717a7e3ca391 - languageName: node - linkType: hard - -"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - -"debug@npm:3.1.0": - version: 3.1.0 - resolution: "debug@npm:3.1.0" - dependencies: - ms: "npm:2.0.0" - checksum: 5bff34a352d7b2eaa31886eeaf2ee534b5461ec0548315b2f9f80bd1d2533cab7df1fa52e130ce27bc31c3945fbffb0fc72baacdceb274b95ce853db89254ea4 - languageName: node - linkType: hard - -"debug@npm:3.2.6": - version: 3.2.6 - resolution: "debug@npm:3.2.6" - dependencies: - ms: "npm:^2.1.1" - checksum: 406ae034424c5570c83bb7f7baf6a2321ace5b94d6f0032ec796c686e277a55bbb575712bb9e6f204e044b1a8c31981ba97fab725a09fcdc7f85cd89daf4de30 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: "npm:2.1.2" - peerDependenciesMeta: - supports-color: - optional: true - checksum: cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 - languageName: node - linkType: hard - -"debug@npm:^3.1.0": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - -"debug@npm:^4.3.5, debug@npm:^4.3.7": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b - languageName: node - linkType: hard - -"decamelize-keys@npm:^1.1.0": - version: 1.1.1 - resolution: "decamelize-keys@npm:1.1.1" - dependencies: - decamelize: "npm:^1.1.0" - map-obj: "npm:^1.0.0" - checksum: 4ca385933127437658338c65fb9aead5f21b28d3dd3ccd7956eb29aab0953b5d3c047fbc207111672220c71ecf7a4d34f36c92851b7bbde6fca1a02c541bdd7d - languageName: node - linkType: hard - -"decamelize@npm:^1.1.0, decamelize@npm:^1.1.1, decamelize@npm:^1.2.0": - version: 1.2.0 - resolution: "decamelize@npm:1.2.0" - checksum: 85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 - languageName: node - linkType: hard - -"decamelize@npm:^4.0.0": - version: 4.0.0 - resolution: "decamelize@npm:4.0.0" - checksum: e06da03fc05333e8cd2778c1487da67ffbea5b84e03ca80449519b8fa61f888714bbc6f459ea963d5641b4aa98832130eb5cd193d90ae9f0a27eee14be8e278d - languageName: node - linkType: hard - -"decimal.js@npm:^10.4.3": - version: 10.5.0 - resolution: "decimal.js@npm:10.5.0" - checksum: 785c35279df32762143914668df35948920b6c1c259b933e0519a69b7003fc0a5ed2a766b1e1dda02574450c566b21738a45f15e274b47c2ac02072c0d1f3ac3 - languageName: node - linkType: hard - -"decode-uri-component@npm:^0.2.0": - version: 0.2.2 - resolution: "decode-uri-component@npm:0.2.2" - checksum: 1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 - languageName: node - linkType: hard - -"decompress-response@npm:^3.3.0": - version: 3.3.0 - resolution: "decompress-response@npm:3.3.0" - dependencies: - mimic-response: "npm:^1.0.0" - checksum: 5ffaf1d744277fd51c68c94ddc3081cd011b10b7de06637cccc6ecba137d45304a09ba1a776dee1c47fccc60b4a056c4bc74468eeea798ff1f1fca0024b45c9d - languageName: node - linkType: hard - -"decompress-response@npm:^6.0.0": - version: 6.0.0 - resolution: "decompress-response@npm:6.0.0" - dependencies: - mimic-response: "npm:^3.1.0" - checksum: bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e - languageName: node - linkType: hard - -"dedent@npm:^0.7.0": - version: 0.7.0 - resolution: "dedent@npm:0.7.0" - checksum: 7c3aa00ddfe3e5fcd477958e156156a5137e3bb6ff1493ca05edff4decf29a90a057974cc77e75951f8eb801c1816cb45aea1f52d628cdd000b82b36ab839d1b - languageName: node - linkType: hard - -"deep-eql@npm:^4.0.1, deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" - dependencies: - type-detect: "npm:^4.0.0" - checksum: ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd - languageName: node - linkType: hard - -"deep-equal@npm:~1.1.1": - version: 1.1.2 - resolution: "deep-equal@npm:1.1.2" - dependencies: - is-arguments: "npm:^1.1.1" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - regexp.prototype.flags: "npm:^1.5.1" - checksum: cd85d822d18e9b3e1532d0f6ba412d229aa9d22881d70da161674428ae96e47925191296f7cda29306bac252889007da40ed8449363bd1c96c708acb82068a00 - languageName: node - linkType: hard - -"deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: "npm:^1.0.2" - checksum: 9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a - languageName: node - linkType: hard - -"defer-to-connect@npm:^1.0.1": - version: 1.1.3 - resolution: "defer-to-connect@npm:1.1.3" - checksum: 9feb161bd7d21836fdff31eba79c2b11b7aaf844be58faf727121f8b0d9c2e82b494560df0903f41b52dd75027dc7c9455c11b3739f3202b28ca92b56c8f960e - languageName: node - linkType: hard - -"defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": - version: 2.0.1 - resolution: "defer-to-connect@npm:2.0.1" - checksum: 625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782 - languageName: node - linkType: hard - -"deferred-leveldown@npm:~1.2.1": - version: 1.2.2 - resolution: "deferred-leveldown@npm:1.2.2" - dependencies: - abstract-leveldown: "npm:~2.6.0" - checksum: 5b0c2c1c8c13b71237a90a30ed6f60afcebeea18c99f3269d75ada92403e8089f42f2c1b891f8a5b96da1216806c28a4ea65d634ea86cf98368d46b27d9002d2 - languageName: node - linkType: hard - -"deferred-leveldown@npm:~4.0.0": - version: 4.0.2 - resolution: "deferred-leveldown@npm:4.0.2" - dependencies: - abstract-leveldown: "npm:~5.0.0" - inherits: "npm:^2.0.3" - checksum: 316156e2475b64fc286c35c1f9fae2f278889b098e840cb948a6da4946b87220fb8f448879f2318e8806e34c6f510e1320f0bd6d143c5a79f4b85be28ef77e46 - languageName: node - linkType: hard - -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1, define-data-property@npm:^1.1.4": - version: 1.1.4 - resolution: "define-data-property@npm:1.1.4" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - gopd: "npm:^1.0.1" - checksum: dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 - languageName: node - linkType: hard - -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 - languageName: node - linkType: hard - -"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - object-keys: "npm:^1.1.1" - checksum: 88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 - languageName: node - linkType: hard - -"define-property@npm:^0.2.5": - version: 0.2.5 - resolution: "define-property@npm:0.2.5" - dependencies: - is-descriptor: "npm:^0.1.0" - checksum: 9986915c0893818dedc9ca23eaf41370667762fd83ad8aa4bf026a28563120dbaacebdfbfbf2b18d3b929026b9c6ee972df1dbf22de8fafb5fe6ef18361e4750 - languageName: node - linkType: hard - -"define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "define-property@npm:1.0.0" - dependencies: - is-descriptor: "npm:^1.0.0" - checksum: d7cf09db10d55df305f541694ed51dafc776ad9bb8a24428899c9f2d36b11ab38dce5527a81458d1b5e7c389f8cbe803b4abad6e91a0037a329d153b84fc975e - languageName: node - linkType: hard - -"define-property@npm:^2.0.2": - version: 2.0.2 - resolution: "define-property@npm:2.0.2" - dependencies: - is-descriptor: "npm:^1.0.2" - isobject: "npm:^3.0.1" - checksum: f91a08ad008fa764172a2c072adc7312f10217ade89ddaea23018321c6d71b2b68b8c229141ed2064179404e345c537f1a2457c379824813695b51a6ad3e4969 - languageName: node - linkType: hard - -"defined@npm:~1.0.1": - version: 1.0.1 - resolution: "defined@npm:1.0.1" - checksum: 357212c95fd69c3b431f4766440f1b10a8362d2663b86e3d7c139fe7fc98a1d5a4996b8b55ca62e97fb882f9887374b76944d29f9650a07993d98e7be86a804a - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - -"delete-empty@npm:^3.0.0": - version: 3.0.0 - resolution: "delete-empty@npm:3.0.0" - dependencies: - ansi-colors: "npm:^4.1.0" - minimist: "npm:^1.2.0" - path-starts-with: "npm:^2.0.0" - rimraf: "npm:^2.6.2" - bin: - delete-empty: bin/cli.js - checksum: 2aeb3fc315b0602edbbedf82845c91e357a3e6a057f850b4c197fdb4c1c2213830f4f2fe6c03d4908a65b89f3beae0fd2f64608e2c0ca76626afcb79cb1a31b9 - languageName: node - linkType: hard - -"delimit-stream@npm:0.1.0": - version: 0.1.0 - resolution: "delimit-stream@npm:0.1.0" - checksum: 6c099043b2831e5c4d51a8639d402b1618b16e5ddb559f9d5568530aa8b3fd71090808c3666dece955525021b642fb7cd700aad98b666e79b2d7ec0aeb16296c - languageName: node - linkType: hard - -"depd@npm:2.0.0, depd@npm:~2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c - languageName: node - linkType: hard - -"depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: acb24aaf936ef9a227b6be6d495f0d2eb20108a9a6ad40585c5bda1a897031512fef6484e4fdbb80bd249fdaa82841fa1039f416ece03188e677ba11bcfda249 - languageName: node - linkType: hard - -"dependency-graph@npm:0.11.0, dependency-graph@npm:^0.11.0": - version: 0.11.0 - resolution: "dependency-graph@npm:0.11.0" - checksum: 9e6968d1534fdb502f7f3a25a3819b499f9d60f8389193950ed0b4d1618f1341b36b5d039f2cee256cfe10c9e8198ace16b271e370df06a93fac206e81602e7c - languageName: node - linkType: hard - -"des.js@npm:^1.0.0": - version: 1.1.0 - resolution: "des.js@npm:1.1.0" - dependencies: - inherits: "npm:^2.0.1" - minimalistic-assert: "npm:^1.0.0" - checksum: 671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236 - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 - languageName: node - linkType: hard - -"destroy@npm:~1.0.4": - version: 1.0.4 - resolution: "destroy@npm:1.0.4" - checksum: eab493808ba17a1fa22c71ef1a4e68d2c4c5222a38040606c966d2ab09117f3a7f3e05c39bffbe41a697f9de552039e43c30e46f0c3eab3faa9f82e800e172a0 - languageName: node - linkType: hard - -"detect-file@npm:^1.0.0": - version: 1.0.0 - resolution: "detect-file@npm:1.0.0" - checksum: c782a5f992047944c39d337c82f5d1d21d65d1378986d46c354df9d9ec6d5f356bca0182969c11b08b9b8a7af8727b3c2d5a9fad0b022be4a3bf4c216f63ed07 - languageName: node - linkType: hard - -"detect-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "detect-indent@npm:4.0.0" - dependencies: - repeating: "npm:^2.0.0" - checksum: 066a0d13eadebb1e7d2ba395fdf9f3956f31f8383a6db263320108c283e2230250a102f4871f54926cc8a77c6323ac7103f30550a4ac3d6518aa1b934c041295 - languageName: node - linkType: hard - -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: dd83cdeda9af219cf77f5e9a0dc31d828c045337386cfb55ce04fad94ba872ee7957336834154f7647b89b899c3c7acc977c57a79b7c776b506240993f97acc7 - languageName: node - linkType: hard - -"detect-port@npm:^1.3.0": - version: 1.6.1 - resolution: "detect-port@npm:1.6.1" - dependencies: - address: "npm:^1.0.1" - debug: "npm:4" - bin: - detect: bin/detect-port.js - detect-port: bin/detect-port.js - checksum: 4ea9eb46a637cb21220dd0a62b6074792894fc77b2cacbc9de533d1908b2eedafa7bfd7547baaa2ac1e9c7ba7c289b34b17db896dca6da142f4fc6e2060eee17 - languageName: node - linkType: hard - -"diff@npm:3.3.1": - version: 3.3.1 - resolution: "diff@npm:3.3.1" - checksum: 8b2767091d834f32cd40a93179943cbd9b48c3e073d20af3d222a6ec7d2564a0160fe6826dc1c5cb1ba35c447815b6493b6b621e9b38cb161c6d7732a890d46f - languageName: node - linkType: hard - -"diff@npm:5.0.0": - version: 5.0.0 - resolution: "diff@npm:5.0.0" - checksum: 08c5904779bbababcd31f1707657b1ad57f8a9b65e6f88d3fb501d09a965d5f8d73066898a7d3f35981f9e4101892c61d99175d421f3b759533213c253d91134 - languageName: node - linkType: hard - -"diff@npm:^3.5.0": - version: 3.5.0 - resolution: "diff@npm:3.5.0" - checksum: fc62d5ba9f6d1b8b5833380969037007913d4886997838c247c54ec6934f09ae5a07e17ae28b1f016018149d81df8ad89306f52eac1afa899e0bed49015a64d1 - languageName: node - linkType: hard - -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: 81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 - languageName: node - linkType: hard - -"diff@npm:^5.0.0, diff@npm:^5.2.0": - version: 5.2.0 - resolution: "diff@npm:5.2.0" - checksum: aed0941f206fe261ecb258dc8d0ceea8abbde3ace5827518ff8d302f0fc9cc81ce116c4d8f379151171336caf0516b79e01abdc1ed1201b6440d895a66689eb4 - languageName: node - linkType: hard - -"diffie-hellman@npm:^5.0.0": - version: 5.0.3 - resolution: "diffie-hellman@npm:5.0.3" - dependencies: - bn.js: "npm:^4.1.0" - miller-rabin: "npm:^4.0.0" - randombytes: "npm:^2.0.0" - checksum: ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf - languageName: node - linkType: hard - -"difflib@npm:^0.2.4": - version: 0.2.4 - resolution: "difflib@npm:0.2.4" - dependencies: - heap: "npm:>= 0.2.0" - checksum: 4b151f1f6d378b0837ef28f4706d89d05b78f1093253b06c975c621f7ef8b048978588baf9e8f284c64b133d0abb08303b0789519cc91e5180d420cb3bb99c05 - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c - languageName: node - linkType: hard - -"dns-over-http-resolver@npm:^1.0.0": - version: 1.2.3 - resolution: "dns-over-http-resolver@npm:1.2.3" - dependencies: - debug: "npm:^4.3.1" - native-fetch: "npm:^3.0.0" - receptacle: "npm:^1.3.2" - checksum: 231435742246115aeb4f153721effc4d995ab8f22572240b27d85e1be4123345cbe503e9922bc46b36caaa86307fbcf65ba252302dc7a4794f330aa6d6f920b8 - languageName: node - linkType: hard - -"dnscache@npm:^1.0.2": - version: 1.0.2 - resolution: "dnscache@npm:1.0.2" - dependencies: - asap: "npm:^2.0.6" - lodash.clone: "npm:^4.5.0" - checksum: d152a331a1ea8bef6cdfdb447ff5ecc393f1e54d801374ff0f5195119a91096968a9f2ddcc37df8e12a18b5fea8cd8f7d260b67fe6cd83a169d47a80b03770f9 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - -"dom-walk@npm:^0.1.0": - version: 0.1.2 - resolution: "dom-walk@npm:0.1.2" - checksum: 4d2ad9062a9423d890f8577aa202b597a6b85f9489bdde656b9443901b8b322b289655c3affefc58ec2e41931e0828dfee0a1d2db6829a607d76def5901fc5a9 - languageName: node - linkType: hard - -"dot-case@npm:^3.0.4": - version: 3.0.4 - resolution: "dot-case@npm:3.0.4" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: 5b859ea65097a7ea870e2c91b5768b72ddf7fa947223fd29e167bcdff58fe731d941c48e47a38ec8aa8e43044c8fbd15cd8fa21689a526bc34b6548197cd5b05 - languageName: node - linkType: hard - -"dot-prop@npm:^5.1.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: "npm:^2.0.0" - checksum: 93f0d343ef87fe8869320e62f2459f7e70f49c6098d948cc47e060f4a3f827d0ad61e83cb82f2bd90cd5b9571b8d334289978a43c0f98fea4f0e99ee8faa0599 - languageName: node - linkType: hard - -"dotenv@npm:*, dotenv@npm:^16.0.0, dotenv@npm:^16.0.3": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f - languageName: node - linkType: hard - -"dotenv@npm:^9.0.0": - version: 9.0.2 - resolution: "dotenv@npm:9.0.2" - checksum: 535f04d59e0bf58fe0c7966886eff42fb5e0227e2f7bfa38d37439bbf6b3c25d1b085bd235c9b98e7e9a032b1cd310904366e5588b320c29335d359660fab0d4 - languageName: node - linkType: hard - -"dotignore@npm:~0.1.2": - version: 0.1.2 - resolution: "dotignore@npm:0.1.2" - dependencies: - minimatch: "npm:^3.0.4" - bin: - ignored: bin/ignored - checksum: 71f25a507cbe88a7dbf07d5108bb0924af39c71a3c5fd83045fc42d5dc1605a23113ba29999b94d964555e6e6be2980caa8da3711cfa31a6b6d88c184b1ab181 - languageName: node - linkType: hard - -"dottie@npm:^2.0.2, dottie@npm:^2.0.6": - version: 2.0.6 - resolution: "dottie@npm:2.0.6" - checksum: 1d99f8b61ae7541b3b70e9cde57308e0044e7bd13e09945b61cf78b303f5c51e3747e5f99c0d519551c5347427c1c1f89aedafe4bf9d9db554c7113772d99b5d - languageName: node - linkType: hard - -"dset@npm:^3.1.1, dset@npm:^3.1.2": - version: 3.1.3 - resolution: "dset@npm:3.1.3" - checksum: b1ff68f1f42af373baa85b00b04d89094cd0d7f74f94bd11364cba575f2762ed52a0a0503bbfcc92eccd07c6d55426813c8a7a6cfa020338eaea1f4edfd332c2 - languageName: node - linkType: hard - -"duplexer3@npm:^0.1.4": - version: 0.1.5 - resolution: "duplexer3@npm:0.1.5" - checksum: 02195030d61c4d6a2a34eca71639f2ea5e05cb963490e5bd9527623c2ac7f50c33842a34d14777ea9cbfd9bc2be5a84065560b897d9fabb99346058a5b86ca98 - languageName: node - linkType: hard - -"duplexify@npm:^4.1.1, duplexify@npm:^4.1.2": - version: 4.1.3 - resolution: "duplexify@npm:4.1.3" - dependencies: - end-of-stream: "npm:^1.4.1" - inherits: "npm:^2.0.3" - readable-stream: "npm:^3.1.1" - stream-shift: "npm:^1.0.2" - checksum: 8a7621ae95c89f3937f982fe36d72ea997836a708471a75bb2a0eecde3330311b1e128a6dad510e0fd64ace0c56bff3484ed2e82af0e465600c82117eadfbda5 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 - languageName: node - linkType: hard - -"ecc-jsbn@npm:~0.1.1": - version: 0.1.2 - resolution: "ecc-jsbn@npm:0.1.2" - dependencies: - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.1.0" - checksum: 6cf168bae1e2dad2e46561d9af9cbabfbf5ff592176ad4e9f0f41eaaf5fe5e10bb58147fe0a804de62b1ee9dad42c28810c88d652b21b6013c47ba8efa274ca1 - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.3.47, electron-to-chromium@npm:^1.4.668": - version: 1.4.774 - resolution: "electron-to-chromium@npm:1.4.774" - checksum: dc957ee574d14838abd16f48fb3e4bd069bf47807fe02144b850d4903265810e17abc5800a361941f787bd78692cf4f81eab70046a6757eb39e44c91ff520dd4 - languageName: node - linkType: hard - -"elliptic@npm:6.5.4": - version: 6.5.4 - resolution: "elliptic@npm:6.5.4" - dependencies: - bn.js: "npm:^4.11.9" - brorand: "npm:^1.1.0" - hash.js: "npm:^1.0.0" - hmac-drbg: "npm:^1.0.1" - inherits: "npm:^2.0.4" - minimalistic-assert: "npm:^1.0.1" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2 - languageName: node - linkType: hard - -"elliptic@npm:^6.4.0, elliptic@npm:^6.5.2, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4, elliptic@npm:^6.5.5": - version: 6.5.5 - resolution: "elliptic@npm:6.5.5" - dependencies: - bn.js: "npm:^4.11.9" - brorand: "npm:^1.1.0" - hash.js: "npm:^1.0.0" - hmac-drbg: "npm:^1.0.1" - inherits: "npm:^2.0.4" - minimalistic-assert: "npm:^1.0.1" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 3e591e93783a1b66f234ebf5bd3a8a9a8e063a75073a35a671e03e3b25253b6e33ac121f7efe9b8808890fffb17b40596cc19d01e6e8d1fa13b9a56ff65597c8 - languageName: node - linkType: hard - -"emoji-regex@npm:^10.3.0": - version: 10.3.0 - resolution: "emoji-regex@npm:10.3.0" - checksum: b4838e8dcdceb44cf47f59abe352c25ff4fe7857acaf5fb51097c427f6f75b44d052eb907a7a3b86f86bc4eae3a93f5c2b7460abe79c407307e6212d65c91163 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 - languageName: node - linkType: hard - -"enabled@npm:2.0.x": - version: 2.0.0 - resolution: "enabled@npm:2.0.0" - checksum: 3b2c2af9bc7f8b9e291610f2dde4a75cf6ee52a68f4dd585482fbdf9a55d65388940e024e56d40bb03e05ef6671f5f53021fa8b72a20e954d7066ec28166713f - languageName: node - linkType: hard - -"encode-utf8@npm:^1.0.2": - version: 1.0.3 - resolution: "encode-utf8@npm:1.0.3" - checksum: 6b3458b73e868113d31099d7508514a5c627d8e16d1e0542d1b4e3652299b8f1f590c468e2b9dcdf1b4021ee961f31839d0be9d70a7f2a8a043c63b63c9b3a88 - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec - languageName: node - linkType: hard - -"encoding-down@npm:5.0.4, encoding-down@npm:~5.0.0": - version: 5.0.4 - resolution: "encoding-down@npm:5.0.4" - dependencies: - abstract-leveldown: "npm:^5.0.0" - inherits: "npm:^2.0.3" - level-codec: "npm:^9.0.0" - level-errors: "npm:^2.0.0" - xtend: "npm:^4.0.1" - checksum: 7b2c27cae01672ca587795b4ef300e32a78fd0494462b34342683ae1abc86a3412d56d00a7339c0003c771a0bb3e197326bb353692558097c793833355962f71 - languageName: node - linkType: hard - -"encoding@npm:^0.1.11, encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - -"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" - dependencies: - once: "npm:^1.4.0" - checksum: 870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 - languageName: node - linkType: hard - -"enquirer@npm:^2.3.0, enquirer@npm:^2.3.6": - version: 2.4.1 - resolution: "enquirer@npm:2.4.1" - dependencies: - ansi-colors: "npm:^4.1.1" - strip-ansi: "npm:^6.0.1" - checksum: 43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 - languageName: node - linkType: hard - -"eol@npm:^0.9.1": - version: 0.9.1 - resolution: "eol@npm:0.9.1" - checksum: 5a6654ca1961529429f4eab4473e6d9351969f25baa30de7232e862c6c5f9037fc0ff044a526fe9cdd6ae65bb1b0db7775bf1d4f342f485c10c34b1444bfb7ab - languageName: node - linkType: hard - -"err-code@npm:^2.0.0, err-code@npm:^2.0.2, err-code@npm:^2.0.3": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - -"err-code@npm:^3.0.0": - version: 3.0.1 - resolution: "err-code@npm:3.0.1" - checksum: 78b1c50500adebde6699b8d27b8ce4728c132dcaad75b5d18ba44f6ccb28769d1fff8368ae1164be4559dac8b95d4e26bb15b480ba9999e0cd0f0c64beaf1b24 - languageName: node - linkType: hard - -"errno@npm:~0.1.1": - version: 0.1.8 - resolution: "errno@npm:0.1.8" - dependencies: - prr: "npm:~1.0.1" - bin: - errno: cli.js - checksum: 83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936 - languageName: node - linkType: hard - -"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - arraybuffer.prototype.slice: "npm:^1.0.3" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - data-view-buffer: "npm:^1.0.1" - data-view-byte-length: "npm:^1.0.1" - data-view-byte-offset: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-set-tostringtag: "npm:^2.0.3" - es-to-primitive: "npm:^1.2.1" - function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.4" - get-symbol-description: "npm:^1.0.2" - globalthis: "npm:^1.0.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.0.7" - is-array-buffer: "npm:^3.0.4" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.1" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.3" - is-string: "npm:^1.0.7" - is-typed-array: "npm:^1.1.13" - is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.5" - regexp.prototype.flags: "npm:^1.5.2" - safe-array-concat: "npm:^1.1.2" - safe-regex-test: "npm:^1.0.3" - string.prototype.trim: "npm:^1.2.9" - string.prototype.trimend: "npm:^1.0.8" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-length: "npm:^1.0.1" - typed-array-byte-offset: "npm:^1.0.2" - typed-array-length: "npm:^1.0.6" - unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.15" - checksum: d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666 - languageName: node - linkType: hard - -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 4b7617d3fbd460d6f051f684ceca6cf7e88e6724671d9480388d3ecdd72119ddaa46ca31f2c69c5426a82e4b3091c1e81867c71dcdc453565cd90005ff2c382d - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.2.4" - checksum: 6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 - languageName: node - linkType: hard - -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: 0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 - languageName: node - linkType: hard - -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4 - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" - dependencies: - get-intrinsic: "npm:^1.2.4" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.1" - checksum: f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: "npm:^2.0.0" - checksum: f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: "npm:^1.1.4" - is-date-object: "npm:^1.0.1" - is-symbol: "npm:^1.0.2" - checksum: 0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1 - languageName: node - linkType: hard - -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.63, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14": - version: 0.10.64 - resolution: "es5-ext@npm:0.10.64" - dependencies: - es6-iterator: "npm:^2.0.3" - es6-symbol: "npm:^3.1.3" - esniff: "npm:^2.0.1" - next-tick: "npm:^1.1.0" - checksum: 4459b6ae216f3c615db086e02437bdfde851515a101577fd61b19f9b3c1ad924bab4d197981eb7f0ccb915f643f2fc10ff76b97a680e96cbb572d15a27acd9a3 - languageName: node - linkType: hard - -"es6-iterator@npm:^2.0.3": - version: 2.0.3 - resolution: "es6-iterator@npm:2.0.3" - dependencies: - d: "npm:1" - es5-ext: "npm:^0.10.35" - es6-symbol: "npm:^3.1.1" - checksum: 91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8 - languageName: node - linkType: hard - -"es6-promise@npm:^4.2.8": - version: 4.2.8 - resolution: "es6-promise@npm:4.2.8" - checksum: 2373d9c5e9a93bdd9f9ed32ff5cb6dd3dd785368d1c21e9bbbfd07d16345b3774ae260f2bd24c8f836a6903f432b4151e7816a7fa8891ccb4e1a55a028ec42c3 - languageName: node - linkType: hard - -"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": - version: 3.1.4 - resolution: "es6-symbol@npm:3.1.4" - dependencies: - d: "npm:^1.0.2" - ext: "npm:^1.7.0" - checksum: 777bf3388db5d7919e09a0fd175aa5b8a62385b17cb2227b7a137680cba62b4d9f6193319a102642aa23d5840d38a62e4784f19cfa5be4a2210a3f0e9b23d15d - languageName: node - linkType: hard - -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 - languageName: node - linkType: hard - -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 - languageName: node - linkType: hard - -"escape-string-regexp@npm:1.0.5, escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - -"escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 - languageName: node - linkType: hard - -"escodegen@npm:1.8.x": - version: 1.8.1 - resolution: "escodegen@npm:1.8.1" - dependencies: - esprima: "npm:^2.7.1" - estraverse: "npm:^1.9.1" - esutils: "npm:^2.0.2" - optionator: "npm:^0.8.1" - source-map: "npm:~0.2.0" - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: ./bin/escodegen.js - esgenerate: ./bin/esgenerate.js - checksum: ac19704975bb22e20f04d0da8b4586c11e302fd9fb48bbf945c5b9c0fd01dc85ed25975b6eaba733047e9cc7e57a4bb95c39820843d1f8f55daf88be02398d8f - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.0.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d - languageName: node - linkType: hard - -"eslint-graph-config@workspace:^, eslint-graph-config@workspace:^0.0.1, eslint-graph-config@workspace:packages/eslint-graph-config": - version: 0.0.0-use.local - resolution: "eslint-graph-config@workspace:packages/eslint-graph-config" - dependencies: - "@stylistic/eslint-plugin": "npm:^1.6.2" - "@types/eslint__js": "npm:^8.42.3" - "@types/node": "npm:^20.11.19" - eslint: "npm:^8.56.0" - eslint-plugin-no-only-tests: "npm:^3.1.0" - eslint-plugin-no-secrets: "npm:^0.8.9" - typescript: "npm:^5.3.3" - typescript-eslint: "npm:^7.0.2" - peerDependencies: - eslint: ^8.56.0 - languageName: unknown - linkType: soft - -"eslint-plugin-no-only-tests@npm:^3.1.0": - version: 3.1.0 - resolution: "eslint-plugin-no-only-tests@npm:3.1.0" - checksum: c710ae04094cfa4695c44efe8d5036eb881893157accf3564b96f3ee5626edef855c93ec1801557e888e390e1892775da79d9564e1a33b83941fba994725b9cd - languageName: node - linkType: hard - -"eslint-plugin-no-secrets@npm:^0.8.9": - version: 0.8.9 - resolution: "eslint-plugin-no-secrets@npm:0.8.9" - peerDependencies: - eslint: ">=3.0.0" - checksum: d1b630bf87873b6d5ad009aed889ce3972815b2e8d62b3fdbc2cc21d03b759b9548f4655f52afb6e3014228f75840d59b4426758986e76b7dba245adbf560bda - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.0.1": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" - dependencies: - prettier-linter-helpers: "npm:^1.0.0" - synckit: "npm:^0.8.6" - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - eslint-config-prettier: "*" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09 - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint@npm:^8.52.0, eslint@npm:^8.56.0, eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 - languageName: node - linkType: hard - -"esniff@npm:^2.0.1": - version: 2.0.1 - resolution: "esniff@npm:2.0.1" - dependencies: - d: "npm:^1.0.1" - es5-ext: "npm:^0.10.62" - event-emitter: "npm:^0.3.5" - type: "npm:^2.7.2" - checksum: 7efd8d44ac20e5db8cb0ca77eb65eca60628b2d0f3a1030bcb05e71cc40e6e2935c47b87dba3c733db12925aa5b897f8e0e7a567a2c274206f184da676ea2e65 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: "npm:^8.9.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 - languageName: node - linkType: hard - -"esprima@npm:2.7.x, esprima@npm:^2.7.1": - version: 2.7.3 - resolution: "esprima@npm:2.7.3" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f - languageName: node - linkType: hard - -"esprima@npm:^4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: "npm:^5.2.0" - checksum: 81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 - languageName: node - linkType: hard - -"estraverse@npm:^1.9.1": - version: 1.9.3 - resolution: "estraverse@npm:1.9.3" - checksum: 2477bab0c5cdc7534162fbb16b25282c49f434875227937726692ed105762403e9830324cc97c3ea8bf332fe91122ea321f4d4292aaf50db7a90d857e169719e - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 - languageName: node - linkType: hard - -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 - languageName: node - linkType: hard - -"eth-block-tracker@npm:^3.0.0": - version: 3.0.1 - resolution: "eth-block-tracker@npm:3.0.1" - dependencies: - eth-query: "npm:^2.1.0" - ethereumjs-tx: "npm:^1.3.3" - ethereumjs-util: "npm:^5.1.3" - ethjs-util: "npm:^0.1.3" - json-rpc-engine: "npm:^3.6.0" - pify: "npm:^2.3.0" - tape: "npm:^4.6.3" - checksum: 3e872bf09c952b94ebb570217239feaa411f1255c4c927fc12b3646b2ef7d250012e6b98339ac15c74d1dcbd678263cd322cd965e75de11300647c2353cba769 - languageName: node - linkType: hard - -"eth-ens-namehash@npm:2.0.8, eth-ens-namehash@npm:^2.0.8": - version: 2.0.8 - resolution: "eth-ens-namehash@npm:2.0.8" - dependencies: - idna-uts46-hx: "npm:^2.3.1" - js-sha3: "npm:^0.5.7" - checksum: b0b60e5bdc8b0fc5a5cdf6011d221f1fdae8a2ac80775fec3f2d61db62470e57a6fcd7455fc8b2af532c86e0946d6611077ae3e30c7afd331f686e3cd7cc0977 - languageName: node - linkType: hard - -"eth-gas-reporter@npm:^0.2.25": - version: 0.2.27 - resolution: "eth-gas-reporter@npm:0.2.27" - dependencies: - "@solidity-parser/parser": "npm:^0.14.0" - axios: "npm:^1.5.1" - cli-table3: "npm:^0.5.0" - colors: "npm:1.4.0" - ethereum-cryptography: "npm:^1.0.3" - ethers: "npm:^5.7.2" - fs-readdir-recursive: "npm:^1.1.0" - lodash: "npm:^4.17.14" - markdown-table: "npm:^1.1.3" - mocha: "npm:^10.2.0" - req-cwd: "npm:^2.0.0" - sha1: "npm:^1.1.1" - sync-request: "npm:^6.0.0" - peerDependencies: - "@codechecks/client": ^0.1.0 - peerDependenciesMeta: - "@codechecks/client": - optional: true - checksum: 62a7b8ea41d82731fe91a7741eb2362f08d55e0fece1c12e69effe1684933999961d97d1011037a54063fda20c33a61ef143f04b7ccef36c3002f40975b0415f - languageName: node - linkType: hard - -"eth-json-rpc-infura@npm:^3.1.0": - version: 3.2.1 - resolution: "eth-json-rpc-infura@npm:3.2.1" - dependencies: - cross-fetch: "npm:^2.1.1" - eth-json-rpc-middleware: "npm:^1.5.0" - json-rpc-engine: "npm:^3.4.0" - json-rpc-error: "npm:^2.0.0" - checksum: d805782f9d9ddc147dc9310dad06ddf473fba9e6194c21b7176eb15b8a9e5cdcd090accaddc1077e16538536146b6ed79e028be9c0aac012389fc42b7a9a63eb - languageName: node - linkType: hard - -"eth-json-rpc-middleware@npm:^1.5.0": - version: 1.6.0 - resolution: "eth-json-rpc-middleware@npm:1.6.0" - dependencies: - async: "npm:^2.5.0" - eth-query: "npm:^2.1.2" - eth-tx-summary: "npm:^3.1.2" - ethereumjs-block: "npm:^1.6.0" - ethereumjs-tx: "npm:^1.3.3" - ethereumjs-util: "npm:^5.1.2" - ethereumjs-vm: "npm:^2.1.0" - fetch-ponyfill: "npm:^4.0.0" - json-rpc-engine: "npm:^3.6.0" - json-rpc-error: "npm:^2.0.0" - json-stable-stringify: "npm:^1.0.1" - promise-to-callback: "npm:^1.0.0" - tape: "npm:^4.6.3" - checksum: 1ab123834dc32c866656d40eeb45acd96fc76352cf757f6daf0bac303f4d795444da1f4c6cbb6df4f899a4cc2a2ba5cfc36caa6d67225e990de7db054cae9ba5 - languageName: node - linkType: hard - -"eth-lib@npm:0.2.8": - version: 0.2.8 - resolution: "eth-lib@npm:0.2.8" - dependencies: - bn.js: "npm:^4.11.6" - elliptic: "npm:^6.4.0" - xhr-request-promise: "npm:^0.1.2" - checksum: 5c4fc31acc0f690f5dffcbaa6130faed55f1395dc1b367cb5899e69baa5b21296889d1c24523e05a97815222ded297381f1cbac96bb8cdeec2a85dbd6cb2fa20 - languageName: node - linkType: hard - -"eth-lib@npm:^0.1.26": - version: 0.1.29 - resolution: "eth-lib@npm:0.1.29" - dependencies: - bn.js: "npm:^4.11.6" - elliptic: "npm:^6.4.0" - nano-json-stream-parser: "npm:^0.1.2" - servify: "npm:^0.1.12" - ws: "npm:^3.0.0" - xhr-request-promise: "npm:^0.1.2" - checksum: 8759dffa412dce728620413d5a9d063b175c33bded2a5749f48b4433b1751fbb0cf03c7dbe7081e77eb805c613a5e1aea6a3b11669128202150622d6cb98c37d - languageName: node - linkType: hard - -"eth-query@npm:^2.0.2, eth-query@npm:^2.1.0, eth-query@npm:^2.1.2": - version: 2.1.2 - resolution: "eth-query@npm:2.1.2" - dependencies: - json-rpc-random-id: "npm:^1.0.0" - xtend: "npm:^4.0.1" - checksum: ef28d14bfad14b8813c9ba8f9f0baf8778946a4797a222b8a039067222ac68aa3d9d53ed22a71c75b99240a693af1ed42508a99fd484cce2a7726822723346b7 - languageName: node - linkType: hard - -"eth-sig-util@npm:3.0.0": - version: 3.0.0 - resolution: "eth-sig-util@npm:3.0.0" - dependencies: - buffer: "npm:^5.2.1" - elliptic: "npm:^6.4.0" - ethereumjs-abi: "npm:0.6.5" - ethereumjs-util: "npm:^5.1.1" - tweetnacl: "npm:^1.0.0" - tweetnacl-util: "npm:^0.15.0" - checksum: 289e7bfc2f6fef314d6294aaca5551eb56195e39ffd7e99cc7f5fb382790885745f2a589712b4866aef66d8c51744898517e860a479c52baa591043477349a9e - languageName: node - linkType: hard - -"eth-sig-util@npm:^1.4.2": - version: 1.4.2 - resolution: "eth-sig-util@npm:1.4.2" - dependencies: - ethereumjs-abi: "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util: "npm:^5.1.1" - checksum: 63f88b8dda12eedfa83d47c43f52025dba724ca602385386f408fd41f40c077b06ada2d58c13d9844dae7340b7fee6a0281517b4e20e41d05bf68de2340fc314 - languageName: node - linkType: hard - -"eth-tx-summary@npm:^3.1.2": - version: 3.2.4 - resolution: "eth-tx-summary@npm:3.2.4" - dependencies: - async: "npm:^2.1.2" - clone: "npm:^2.0.0" - concat-stream: "npm:^1.5.1" - end-of-stream: "npm:^1.1.0" - eth-query: "npm:^2.0.2" - ethereumjs-block: "npm:^1.4.1" - ethereumjs-tx: "npm:^1.1.1" - ethereumjs-util: "npm:^5.0.1" - ethereumjs-vm: "npm:^2.6.0" - through2: "npm:^2.0.3" - checksum: fb9ed94bc3af2e8b5a27814aa46f117fe2e19eb4f790c381155130b393b74956ea2e484eeb92d846a4426571b6d61dd57a05f31939ec5741506e2518e4bfe2ec - languageName: node - linkType: hard - -"ethashjs@npm:~0.0.7": - version: 0.0.8 - resolution: "ethashjs@npm:0.0.8" - dependencies: - async: "npm:^2.1.2" - buffer-xor: "npm:^2.0.1" - ethereumjs-util: "npm:^7.0.2" - miller-rabin: "npm:^4.0.0" - checksum: 0ccd932652ebe08d0d678305f1bc36805689f5a08daea713625f4a52396aa0a7bb96984f119c80335415ab7bf77f125b70480ec2ecc314fad4f65ffcc3ac19d9 - languageName: node - linkType: hard - -"ethereum-bloom-filters@npm:^1.0.6": - version: 1.1.0 - resolution: "ethereum-bloom-filters@npm:1.1.0" - dependencies: - "@noble/hashes": "npm:^1.4.0" - checksum: 54b0b7a1fdf12fe02fc8f605f213d11ea026111b9d2af79ff58e8319c904d9d6cee77c62fe70bee62c4d0c7952caf58ebaf47a889d9e4199cf4da1a361a87b53 - languageName: node - linkType: hard - -"ethereum-common@npm:0.2.0": - version: 0.2.0 - resolution: "ethereum-common@npm:0.2.0" - checksum: 3fbb7440b1c7ed75d074c5559dfba80426dec0bf5c1bbe4d8d6c8872b5c505bfe0535ef082e408497f3488c2cc7088509cbeb70c2962e2d3ab5d9020ac666a61 - languageName: node - linkType: hard - -"ethereum-common@npm:^0.0.18": - version: 0.0.18 - resolution: "ethereum-common@npm:0.0.18" - checksum: 3eb2d58489c2e47bba077dea01cc0886df3a6cd931631539d36e0b656776d8afe5a0bcb8842bf7714f2ef639d0fb8643e0ad85b9a49a1f2b0fc1fe66819824d8 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:0.1.3, ethereum-cryptography@npm:^0.1.3": - version: 0.1.3 - resolution: "ethereum-cryptography@npm:0.1.3" - dependencies: - "@types/pbkdf2": "npm:^3.0.0" - "@types/secp256k1": "npm:^4.0.1" - blakejs: "npm:^1.1.0" - browserify-aes: "npm:^1.2.0" - bs58check: "npm:^2.1.2" - create-hash: "npm:^1.2.0" - create-hmac: "npm:^1.1.7" - hash.js: "npm:^1.1.7" - keccak: "npm:^3.0.0" - pbkdf2: "npm:^3.0.17" - randombytes: "npm:^2.1.0" - safe-buffer: "npm:^5.1.2" - scrypt-js: "npm:^3.0.0" - secp256k1: "npm:^4.0.1" - setimmediate: "npm:^1.0.5" - checksum: aa36e11fca9d67d67c96e02a98b33bae2e1add20bd11af43feb7f28cdafe0cd3bdbae3bfecc7f2d9ec8f504b10a1c8f7590f5f7fe236560fd8083dd321ad7144 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:^1.0.3": - version: 1.2.0 - resolution: "ethereum-cryptography@npm:1.2.0" - dependencies: - "@noble/hashes": "npm:1.2.0" - "@noble/secp256k1": "npm:1.7.1" - "@scure/bip32": "npm:1.1.5" - "@scure/bip39": "npm:1.1.1" - checksum: 93e486a4a8b266dc2f274b69252e751345ef47551163371939b01231afb7b519133e2572b5975bb9cb4cc77ac54ccd36002c7c759a72488abeeaf216e4d55b46 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:^2.0.0, ethereum-cryptography@npm:^2.1.2": - version: 2.1.3 - resolution: "ethereum-cryptography@npm:2.1.3" - dependencies: - "@noble/curves": "npm:1.3.0" - "@noble/hashes": "npm:1.3.3" - "@scure/bip32": "npm:1.3.3" - "@scure/bip39": "npm:1.2.2" - checksum: a2f25ad5ffa44b4364b1540a57969ee6f1dd820aa08a446f40f31203fef54a09442a6c099e70e7c1485922f6391c4c45b90f2c401e04d88ac9cc4611b05e606f - languageName: node - linkType: hard - -"ethereum-waffle@npm:^3.0.2, ethereum-waffle@npm:^3.1.1, ethereum-waffle@npm:^3.2.0": - version: 3.4.4 - resolution: "ethereum-waffle@npm:3.4.4" - dependencies: - "@ethereum-waffle/chai": "npm:^3.4.4" - "@ethereum-waffle/compiler": "npm:^3.4.4" - "@ethereum-waffle/mock-contract": "npm:^3.4.4" - "@ethereum-waffle/provider": "npm:^3.4.4" - ethers: "npm:^5.0.1" - bin: - waffle: bin/waffle - checksum: da7440b6f8ae50f3d466d1ec26b7363fee47efce310f7fd003e95925a5d36c1168c258efce5c6aface9ffcdfe78ae9d2cb14363305af41cf0113fa91ec19bb3a - languageName: node - linkType: hard - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version: 0.6.8 - resolution: "ethereumjs-abi@https://github.com/ethereumjs/ethereumjs-abi.git#commit=ee3994657fa7a427238e6ba92a84d0b529bbcde0" - dependencies: - bn.js: "npm:^4.11.8" - ethereumjs-util: "npm:^6.0.0" - checksum: dd1f7fad25f6c36fa34877176fdb10e21bfab5b88030fc427829f52686bcad3215168f55e5ed93689a1c34d0d802f39dec25b50ce1914da5b59c50d5975ae30e - languageName: node - linkType: hard - -"ethereumjs-abi@npm:0.6.5": - version: 0.6.5 - resolution: "ethereumjs-abi@npm:0.6.5" - dependencies: - bn.js: "npm:^4.10.0" - ethereumjs-util: "npm:^4.3.0" - checksum: 7cf3d80b2107549b06fef3b693a2b4bd1971ffeb87a4801d79a454b7b41666e50878b7f7f17fd3c6a3385e21136eaf3b018edeacd5469ec5a8e01a37b180ef48 - languageName: node - linkType: hard - -"ethereumjs-abi@npm:0.6.8, ethereumjs-abi@npm:^0.6.8": - version: 0.6.8 - resolution: "ethereumjs-abi@npm:0.6.8" - dependencies: - bn.js: "npm:^4.11.8" - ethereumjs-util: "npm:^6.0.0" - checksum: a7ff1917625e3c812cb3bca6c1231fc0ece282cc7d202d60545a9c31cd379fd751bfed5ff78dae4279cb1ba4d0e8967f9fdd4f135a334a38dbf04e7afd0c4bcf - languageName: node - linkType: hard - -"ethereumjs-account@npm:3.0.0, ethereumjs-account@npm:^3.0.0": - version: 3.0.0 - resolution: "ethereumjs-account@npm:3.0.0" - dependencies: - ethereumjs-util: "npm:^6.0.0" - rlp: "npm:^2.2.1" - safe-buffer: "npm:^5.1.1" - checksum: d84566eb6a876300b718fb7fe4d66e60dd40792ea48902b469e4917e7b5ea394f725c12543d162f68a4f9145aa3f04e9fdda649268bbcdf25310a09389033b8d - languageName: node - linkType: hard - -"ethereumjs-account@npm:^2.0.3": - version: 2.0.5 - resolution: "ethereumjs-account@npm:2.0.5" - dependencies: - ethereumjs-util: "npm:^5.0.0" - rlp: "npm:^2.0.0" - safe-buffer: "npm:^5.1.1" - checksum: ba435280565220e4b431aaaa5474dff30f1fa652ccdbcfc5e4ff7f1d36aa1380272185625403134ab6cc4c1d5340f6b0a6f8e00aecd40c85e22b4dcb06145993 - languageName: node - linkType: hard - -"ethereumjs-block@npm:2.2.2, ethereumjs-block@npm:^2.2.2, ethereumjs-block@npm:~2.2.0, ethereumjs-block@npm:~2.2.2": - version: 2.2.2 - resolution: "ethereumjs-block@npm:2.2.2" - dependencies: - async: "npm:^2.0.1" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-tx: "npm:^2.1.1" - ethereumjs-util: "npm:^5.0.0" - merkle-patricia-tree: "npm:^2.1.2" - checksum: 6fba40c9f08b937f850799b3b93fff61dcab0da8fbc4b472c2501442ece6e2b2361eef83ded95d7c7c3c151194f7f53c8e58a2a9d4c5d4cd3c7daafb3f45077f - languageName: node - linkType: hard - -"ethereumjs-block@npm:^1.2.2, ethereumjs-block@npm:^1.4.1, ethereumjs-block@npm:^1.6.0": - version: 1.7.1 - resolution: "ethereumjs-block@npm:1.7.1" - dependencies: - async: "npm:^2.0.1" - ethereum-common: "npm:0.2.0" - ethereumjs-tx: "npm:^1.2.2" - ethereumjs-util: "npm:^5.0.0" - merkle-patricia-tree: "npm:^2.1.2" - checksum: d902aac5d1246595849821ea34b7184d7cb6673ec4aa1b92257d4aebdf99bdcd17d1ef2c5f8d2193c155dd152cb6a3b2ec89976c7348a0c3f908186b7689676c - languageName: node - linkType: hard - -"ethereumjs-blockchain@npm:^4.0.3": - version: 4.0.4 - resolution: "ethereumjs-blockchain@npm:4.0.4" - dependencies: - async: "npm:^2.6.1" - ethashjs: "npm:~0.0.7" - ethereumjs-block: "npm:~2.2.2" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-util: "npm:^6.1.0" - flow-stoplight: "npm:^1.0.0" - level-mem: "npm:^3.0.1" - lru-cache: "npm:^5.1.1" - rlp: "npm:^2.2.2" - semaphore: "npm:^1.1.0" - checksum: c5675adb566c85e986b46cfd3f81b31b5aa21d4139634eb64717cbcce692e2dbe4bf58ad62a9bcc3a2f3452f51f70579b56c520b0f4b856d28f89b3f1da5148d - languageName: node - linkType: hard - -"ethereumjs-common@npm:1.5.0": - version: 1.5.0 - resolution: "ethereumjs-common@npm:1.5.0" - checksum: 4ac872aa446d533d7c0c74763a6a24bb31209d79180cd91fd1cc768f101d9f2515e86e4a267dfa913675949acae2a2afed0f182f88bcbe7d4aff9ce100e981a6 - languageName: node - linkType: hard - -"ethereumjs-common@npm:^1.1.0, ethereumjs-common@npm:^1.3.2, ethereumjs-common@npm:^1.5.0": - version: 1.5.2 - resolution: "ethereumjs-common@npm:1.5.2" - checksum: 9b0802e830c6a07c835322ac6a2519840741740bf0831c5d1626714255a24133d8df021332ed22aa75d13eacfc5efdd51ee6032bfc8d8e3088e6ca3a5335ca69 - languageName: node - linkType: hard - -"ethereumjs-tx@npm:2.1.2, ethereumjs-tx@npm:^2.1.1, ethereumjs-tx@npm:^2.1.2": - version: 2.1.2 - resolution: "ethereumjs-tx@npm:2.1.2" - dependencies: - ethereumjs-common: "npm:^1.5.0" - ethereumjs-util: "npm:^6.0.0" - checksum: 286ea734a32ce376d947953f7838cfd509b55ded75a1c86a049775cf77bd02b45fde81e00e48b844f1b2eb59486c5087877b579f879b172cbb8a477d5f74c135 - languageName: node - linkType: hard - -"ethereumjs-tx@npm:^1.1.1, ethereumjs-tx@npm:^1.2.0, ethereumjs-tx@npm:^1.2.2, ethereumjs-tx@npm:^1.3.3": - version: 1.3.7 - resolution: "ethereumjs-tx@npm:1.3.7" - dependencies: - ethereum-common: "npm:^0.0.18" - ethereumjs-util: "npm:^5.0.0" - checksum: 0e97caba2c09ed77987f890ab56e65df158b8404265ad8c945024f58794f35072737b9188478fc7b9b8ddc0f53ad9e01f1d49f32da4686efde4f750c4a5c8984 - languageName: node - linkType: hard - -"ethereumjs-util@npm:6.2.1, ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.1.0, ethereumjs-util@npm:^6.2.0, ethereumjs-util@npm:^6.2.1": - version: 6.2.1 - resolution: "ethereumjs-util@npm:6.2.1" - dependencies: - "@types/bn.js": "npm:^4.11.3" - bn.js: "npm:^4.11.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - ethjs-util: "npm:0.1.6" - rlp: "npm:^2.2.3" - checksum: 64aa7e6d591a0b890eb147c5d81f80a6456e87b3056e6bbafb54dff63f6ae9e646406763e8bd546c3b0b0162d027aecb3844873e894681826b03e0298f57e7a4 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^4.3.0": - version: 4.5.1 - resolution: "ethereumjs-util@npm:4.5.1" - dependencies: - bn.js: "npm:^4.8.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - rlp: "npm:^2.0.0" - checksum: e4dbb8759b891b8b246d7f41c81111fc89f84add1baf349ff686cea66c214999b6ab6040f4739c8a4d4af8e803b20da9043a8cd57b85e53c75375b08cbc77464 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^5.0.0, ethereumjs-util@npm:^5.0.1, ethereumjs-util@npm:^5.1.1, ethereumjs-util@npm:^5.1.2, ethereumjs-util@npm:^5.1.3, ethereumjs-util@npm:^5.1.5, ethereumjs-util@npm:^5.2.0": - version: 5.2.1 - resolution: "ethereumjs-util@npm:5.2.1" - dependencies: - bn.js: "npm:^4.11.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - ethjs-util: "npm:^0.1.3" - rlp: "npm:^2.0.0" - safe-buffer: "npm:^5.1.1" - checksum: ed788c9d5e9672dedd5434c134ede7a69790b8c652f38558884b35975526ffa2eee9461f4f438943cfcc4d515cf80cd650ca0fb540f348623f3572720f85a366 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.2, ethereumjs-util@npm:^7.0.3, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.1, ethereumjs-util@npm:^7.1.2, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": - version: 7.1.5 - resolution: "ethereumjs-util@npm:7.1.5" - dependencies: - "@types/bn.js": "npm:^5.1.0" - bn.js: "npm:^5.1.2" - create-hash: "npm:^1.1.2" - ethereum-cryptography: "npm:^0.1.3" - rlp: "npm:^2.2.4" - checksum: 8b9487f35ecaa078bf9af6858eba6855fc61c73cc2b90c8c37486fcf94faf4fc1c5cda9758e6769f9ef2658daedaf2c18b366312ac461f8c8a122b392e3041eb - languageName: node - linkType: hard - -"ethereumjs-vm@npm:4.2.0": - version: 4.2.0 - resolution: "ethereumjs-vm@npm:4.2.0" - dependencies: - async: "npm:^2.1.2" - async-eventemitter: "npm:^0.2.2" - core-js-pure: "npm:^3.0.1" - ethereumjs-account: "npm:^3.0.0" - ethereumjs-block: "npm:^2.2.2" - ethereumjs-blockchain: "npm:^4.0.3" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-tx: "npm:^2.1.2" - ethereumjs-util: "npm:^6.2.0" - fake-merkle-patricia-tree: "npm:^1.0.1" - functional-red-black-tree: "npm:^1.0.1" - merkle-patricia-tree: "npm:^2.3.2" - rustbn.js: "npm:~0.2.0" - safe-buffer: "npm:^5.1.1" - util.promisify: "npm:^1.0.0" - checksum: e9cc47eba3fc26769b3a49aeb64a175953a58343522021b251ba736ff74d0df0a6f044e42e7ece26337cc10b74c5d9c3b09377be54a6b6fc25636db3ca9b19cc - languageName: node - linkType: hard - -"ethereumjs-vm@npm:^2.1.0, ethereumjs-vm@npm:^2.3.4, ethereumjs-vm@npm:^2.6.0": - version: 2.6.0 - resolution: "ethereumjs-vm@npm:2.6.0" - dependencies: - async: "npm:^2.1.2" - async-eventemitter: "npm:^0.2.2" - ethereumjs-account: "npm:^2.0.3" - ethereumjs-block: "npm:~2.2.0" - ethereumjs-common: "npm:^1.1.0" - ethereumjs-util: "npm:^6.0.0" - fake-merkle-patricia-tree: "npm:^1.0.1" - functional-red-black-tree: "npm:^1.0.1" - merkle-patricia-tree: "npm:^2.3.2" - rustbn.js: "npm:~0.2.0" - safe-buffer: "npm:^5.1.1" - checksum: c33fe723bfb2d6a9f3ef0e6578b1c4ccbeaa762bb9cd7326dfebacecf83c27f3df393ce39ba0c8a0e6812e36556653c0231a497f9ab223bbff33fc2410f675a8 - languageName: node - linkType: hard - -"ethereumjs-wallet@npm:0.6.5": - version: 0.6.5 - resolution: "ethereumjs-wallet@npm:0.6.5" - dependencies: - aes-js: "npm:^3.1.1" - bs58check: "npm:^2.1.2" - ethereum-cryptography: "npm:^0.1.3" - ethereumjs-util: "npm:^6.0.0" - randombytes: "npm:^2.0.6" - safe-buffer: "npm:^5.1.2" - scryptsy: "npm:^1.2.1" - utf8: "npm:^3.0.0" - uuid: "npm:^3.3.2" - checksum: 471a4e804c928490236d00a7b88a54362e454155fde1eeea5a4f11e921994e2dc8ba752f29588eaf412410300f3ebb0b3b87d7c1ae5d81dadf487ad93a3c40eb - languageName: node - linkType: hard - -"ethers@npm:5.6.2": - version: 5.6.2 - resolution: "ethers@npm:5.6.2" - dependencies: - "@ethersproject/abi": "npm:5.6.0" - "@ethersproject/abstract-provider": "npm:5.6.0" - "@ethersproject/abstract-signer": "npm:5.6.0" - "@ethersproject/address": "npm:5.6.0" - "@ethersproject/base64": "npm:5.6.0" - "@ethersproject/basex": "npm:5.6.0" - "@ethersproject/bignumber": "npm:5.6.0" - "@ethersproject/bytes": "npm:5.6.1" - "@ethersproject/constants": "npm:5.6.0" - "@ethersproject/contracts": "npm:5.6.0" - "@ethersproject/hash": "npm:5.6.0" - "@ethersproject/hdnode": "npm:5.6.0" - "@ethersproject/json-wallets": "npm:5.6.0" - "@ethersproject/keccak256": "npm:5.6.0" - "@ethersproject/logger": "npm:5.6.0" - "@ethersproject/networks": "npm:5.6.1" - "@ethersproject/pbkdf2": "npm:5.6.0" - "@ethersproject/properties": "npm:5.6.0" - "@ethersproject/providers": "npm:5.6.2" - "@ethersproject/random": "npm:5.6.0" - "@ethersproject/rlp": "npm:5.6.0" - "@ethersproject/sha2": "npm:5.6.0" - "@ethersproject/signing-key": "npm:5.6.0" - "@ethersproject/solidity": "npm:5.6.0" - "@ethersproject/strings": "npm:5.6.0" - "@ethersproject/transactions": "npm:5.6.0" - "@ethersproject/units": "npm:5.6.0" - "@ethersproject/wallet": "npm:5.6.0" - "@ethersproject/web": "npm:5.6.0" - "@ethersproject/wordlists": "npm:5.6.0" - checksum: 5e686273f2a1a1fcaedf657f1b4a36ede44e0b82d08a3c4e80b89dade7265cae72aa4dd4d0a3231d546b1b7ddd159b068ff121fba749a278def99a637b9993ae - languageName: node - linkType: hard - -"ethers@npm:5.7.0": - version: 5.7.0 - resolution: "ethers@npm:5.7.0" - dependencies: - "@ethersproject/abi": "npm:5.7.0" - "@ethersproject/abstract-provider": "npm:5.7.0" - "@ethersproject/abstract-signer": "npm:5.7.0" - "@ethersproject/address": "npm:5.7.0" - "@ethersproject/base64": "npm:5.7.0" - "@ethersproject/basex": "npm:5.7.0" - "@ethersproject/bignumber": "npm:5.7.0" - "@ethersproject/bytes": "npm:5.7.0" - "@ethersproject/constants": "npm:5.7.0" - "@ethersproject/contracts": "npm:5.7.0" - "@ethersproject/hash": "npm:5.7.0" - "@ethersproject/hdnode": "npm:5.7.0" - "@ethersproject/json-wallets": "npm:5.7.0" - "@ethersproject/keccak256": "npm:5.7.0" - "@ethersproject/logger": "npm:5.7.0" - "@ethersproject/networks": "npm:5.7.0" - "@ethersproject/pbkdf2": "npm:5.7.0" - "@ethersproject/properties": "npm:5.7.0" - "@ethersproject/providers": "npm:5.7.0" - "@ethersproject/random": "npm:5.7.0" - "@ethersproject/rlp": "npm:5.7.0" - "@ethersproject/sha2": "npm:5.7.0" - "@ethersproject/signing-key": "npm:5.7.0" - "@ethersproject/solidity": "npm:5.7.0" - "@ethersproject/strings": "npm:5.7.0" - "@ethersproject/transactions": "npm:5.7.0" - "@ethersproject/units": "npm:5.7.0" - "@ethersproject/wallet": "npm:5.7.0" - "@ethersproject/web": "npm:5.7.0" - "@ethersproject/wordlists": "npm:5.7.0" - checksum: 29dadfadd46d3731e449319ded605f71e141d3d4c5248be3381b2cff40419365c22bdb98c37dea93db6461d748620a383c0c8b1d30fccc9af4fde0086d98ed64 - languageName: node - linkType: hard - -"ethers@npm:^4.0.32": - version: 4.0.49 - resolution: "ethers@npm:4.0.49" - dependencies: - aes-js: "npm:3.0.0" - bn.js: "npm:^4.11.9" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.3" - js-sha3: "npm:0.5.7" - scrypt-js: "npm:2.0.4" - setimmediate: "npm:1.0.4" - uuid: "npm:2.0.1" - xmlhttprequest: "npm:1.8.0" - checksum: c2d6e659faca917469f95c1384db6717ad56fd386183b220907ab4fd31c7b8f649ec5975679245a482c9cfb63f2f796c014d465a0538cc2525b0f7b701753002 - languageName: node - linkType: hard - -"ethers@npm:^5.0.1, ethers@npm:^5.0.18, ethers@npm:^5.0.2, ethers@npm:^5.1.0, ethers@npm:^5.1.3, ethers@npm:^5.5.2, ethers@npm:^5.6.0, ethers@npm:^5.6.1, ethers@npm:^5.7.0, ethers@npm:^5.7.1, ethers@npm:^5.7.2": - version: 5.7.2 - resolution: "ethers@npm:5.7.2" - dependencies: - "@ethersproject/abi": "npm:5.7.0" - "@ethersproject/abstract-provider": "npm:5.7.0" - "@ethersproject/abstract-signer": "npm:5.7.0" - "@ethersproject/address": "npm:5.7.0" - "@ethersproject/base64": "npm:5.7.0" - "@ethersproject/basex": "npm:5.7.0" - "@ethersproject/bignumber": "npm:5.7.0" - "@ethersproject/bytes": "npm:5.7.0" - "@ethersproject/constants": "npm:5.7.0" - "@ethersproject/contracts": "npm:5.7.0" - "@ethersproject/hash": "npm:5.7.0" - "@ethersproject/hdnode": "npm:5.7.0" - "@ethersproject/json-wallets": "npm:5.7.0" - "@ethersproject/keccak256": "npm:5.7.0" - "@ethersproject/logger": "npm:5.7.0" - "@ethersproject/networks": "npm:5.7.1" - "@ethersproject/pbkdf2": "npm:5.7.0" - "@ethersproject/properties": "npm:5.7.0" - "@ethersproject/providers": "npm:5.7.2" - "@ethersproject/random": "npm:5.7.0" - "@ethersproject/rlp": "npm:5.7.0" - "@ethersproject/sha2": "npm:5.7.0" - "@ethersproject/signing-key": "npm:5.7.0" - "@ethersproject/solidity": "npm:5.7.0" - "@ethersproject/strings": "npm:5.7.0" - "@ethersproject/transactions": "npm:5.7.0" - "@ethersproject/units": "npm:5.7.0" - "@ethersproject/wallet": "npm:5.7.0" - "@ethersproject/web": "npm:5.7.1" - "@ethersproject/wordlists": "npm:5.7.0" - checksum: 90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962 - languageName: node - linkType: hard - -"ethers@npm:^6.13.4": - version: 6.13.4 - resolution: "ethers@npm:6.13.4" - dependencies: - "@adraffy/ens-normalize": "npm:1.10.1" - "@noble/curves": "npm:1.2.0" - "@noble/hashes": "npm:1.3.2" - "@types/node": "npm:22.7.5" - aes-js: "npm:4.0.0-beta.5" - tslib: "npm:2.7.0" - ws: "npm:8.17.1" - checksum: efcf9f39f841e38af68ec23cdbd745432c239c256aac4929842d1af04e55d7be0ff65e462f1cf3e93586f43f7bdcc0098fd56f2f7234f36d73e466521a5766ce - languageName: node - linkType: hard - -"ethers@npm:^6.7.0": - version: 6.13.2 - resolution: "ethers@npm:6.13.2" - dependencies: - "@adraffy/ens-normalize": "npm:1.10.1" - "@noble/curves": "npm:1.2.0" - "@noble/hashes": "npm:1.3.2" - "@types/node": "npm:18.15.13" - aes-js: "npm:4.0.0-beta.5" - tslib: "npm:2.4.0" - ws: "npm:8.17.1" - checksum: 5956389a180992f8b6d90bc21b2e0f28619a098513d3aeb7a350a0b7c5852d635a9d7fd4ced1af50c985dd88398716f66dfd4a2de96c5c3a67150b93543d92af - languageName: node - linkType: hard - -"ethjs-unit@npm:0.1.6": - version: 0.1.6 - resolution: "ethjs-unit@npm:0.1.6" - dependencies: - bn.js: "npm:4.11.6" - number-to-bn: "npm:1.7.0" - checksum: 0115ddeb4bc932026b9cd259f6eb020a45b38be62e3786526b70e4c5fb0254184bf6e8b7b3f0c8bb80d4d596a73893e386c02221faf203895db7cb9c29b37188 - languageName: node - linkType: hard - -"ethjs-util@npm:0.1.6, ethjs-util@npm:^0.1.3, ethjs-util@npm:^0.1.6": - version: 0.1.6 - resolution: "ethjs-util@npm:0.1.6" - dependencies: - is-hex-prefixed: "npm:1.0.0" - strip-hex-prefix: "npm:1.0.0" - checksum: 9b4d6268705fd0620e73a56d2fa7b8a7c6b9770b2cf7f8ffe3a9c46b8bd1c5a08fff3d1181bb18cf85cf12b6fdbb6dca6d9aff6506005f3f565e742f026e6339 - languageName: node - linkType: hard - -"ethlint@npm:^1.2.5": - version: 1.2.5 - resolution: "ethlint@npm:1.2.5" - dependencies: - ajv: "npm:^5.2.2" - chokidar: "npm:^1.6.0" - colors: "npm:^1.1.2" - commander: "npm:^2.9.0" - diff: "npm:^3.5.0" - eol: "npm:^0.9.1" - js-string-escape: "npm:^1.0.1" - lodash: "npm:^4.14.2" - sol-digger: "npm:0.0.2" - sol-explore: "npm:1.6.1" - solium-plugin-security: "npm:0.1.1" - solparse: "npm:2.2.8" - text-table: "npm:^0.2.0" - bin: - solium: ./bin/solium.js - checksum: d92d1f4f37e93f4a8fcd56aa0b071579d023eff811a90906e446edeeef15219747d308f8a76ec42e652e271c0086912cbe0e7294f09bcc30c06d1a219f9c3580 - languageName: node - linkType: hard - -"event-emitter@npm:^0.3.5": - version: 0.3.5 - resolution: "event-emitter@npm:0.3.5" - dependencies: - d: "npm:1" - es5-ext: "npm:~0.10.14" - checksum: 75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0 - languageName: node - linkType: hard - -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b - languageName: node - linkType: hard - -"eventemitter3@npm:4.0.4": - version: 4.0.4 - resolution: "eventemitter3@npm:4.0.4" - checksum: 2a7e5c4f605e7d0ab96addcf0d98cddfadb242ea6e3504dc5c91b6b0aa411df086d8de8a8b75978d117573d106929c8d0cb94b089e7768dfb0de4e6bf07be73d - languageName: node - linkType: hard - -"eventemitter3@npm:^4.0.4": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 - languageName: node - linkType: hard - -"events@npm:^3.0.0": - version: 3.3.0 - resolution: "events@npm:3.3.0" - checksum: d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 - languageName: node - linkType: hard - -"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": - version: 1.0.3 - resolution: "evp_bytestokey@npm:1.0.3" - dependencies: - md5.js: "npm:^1.3.4" - node-gyp: "npm:latest" - safe-buffer: "npm:^5.1.1" - checksum: 77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99 - languageName: node - linkType: hard - -"execa@npm:8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af - languageName: node - linkType: hard - -"execa@npm:^0.7.0": - version: 0.7.0 - resolution: "execa@npm:0.7.0" - dependencies: - cross-spawn: "npm:^5.0.1" - get-stream: "npm:^3.0.0" - is-stream: "npm:^1.1.0" - npm-run-path: "npm:^2.0.0" - p-finally: "npm:^1.0.0" - signal-exit: "npm:^3.0.0" - strip-eof: "npm:^1.0.0" - checksum: 812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a - languageName: node - linkType: hard - -"execa@npm:^4.1.0": - version: 4.1.0 - resolution: "execa@npm:4.1.0" - dependencies: - cross-spawn: "npm:^7.0.0" - get-stream: "npm:^5.0.0" - human-signals: "npm:^1.1.1" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.0" - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - strip-final-newline: "npm:^2.0.0" - checksum: 02211601bb1c52710260edcc68fb84c3c030dc68bafc697c90ada3c52cc31375337de8c24826015b8382a58d63569ffd203b79c94fef217d65503e3e8d2c52ba - languageName: node - linkType: hard - -"execa@npm:^5.0.0, execa@npm:^5.1.1": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^6.0.0" - human-signals: "npm:^2.1.0" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.1" - onetime: "npm:^5.1.2" - signal-exit: "npm:^3.0.3" - strip-final-newline: "npm:^2.0.0" - checksum: c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f - languageName: node - linkType: hard - -"expand-brackets@npm:^0.1.4": - version: 0.1.5 - resolution: "expand-brackets@npm:0.1.5" - dependencies: - is-posix-bracket: "npm:^0.1.0" - checksum: 49b7fc1250f5f60ffe640be03777471ce63420eaa9850ce897b32bcf874e7be16b00917c7e2266a310e674ddb4ffe499ca964115bbc3f8c881288a280740aa6f - languageName: node - linkType: hard - -"expand-brackets@npm:^2.1.4": - version: 2.1.4 - resolution: "expand-brackets@npm:2.1.4" - dependencies: - debug: "npm:^2.3.3" - define-property: "npm:^0.2.5" - extend-shallow: "npm:^2.0.1" - posix-character-classes: "npm:^0.1.0" - regex-not: "npm:^1.0.0" - snapdragon: "npm:^0.8.1" - to-regex: "npm:^3.0.1" - checksum: 3e2fb95d2d7d7231486493fd65db913927b656b6fcdfcce41e139c0991a72204af619ad4acb1be75ed994ca49edb7995ef241dbf8cf44dc3c03d211328428a87 - languageName: node - linkType: hard - -"expand-range@npm:^1.8.1": - version: 1.8.2 - resolution: "expand-range@npm:1.8.2" - dependencies: - fill-range: "npm:^2.1.0" - checksum: ad7911af12f026953c57e3d7b7fe9f750ce2a1d45f7f7d717de890ed6429baf5e8a7224540cd648eeb603d409be0b7a7df09f951693cc83e98dcdc1e0043c23e - languageName: node - linkType: hard - -"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": - version: 2.0.2 - resolution: "expand-tilde@npm:2.0.2" - dependencies: - homedir-polyfill: "npm:^1.0.1" - checksum: 205a60497422746d1c3acbc1d65bd609b945066f239a2b785e69a7a651ac4cbeb4e08555b1ea0023abbe855e6fcb5bbf27d0b371367fdccd303d4fb2b4d66845 - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 - languageName: node - linkType: hard - -"express@npm:4.17.3": - version: 4.17.3 - resolution: "express@npm:4.17.3" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.19.2" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.4.2" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:~1.1.2" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:~1.1.2" - fresh: "npm:0.5.2" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:~2.3.0" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.9.7" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.17.2" - serve-static: "npm:1.14.2" - setprototypeof: "npm:1.2.0" - statuses: "npm:~1.5.0" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 8fa8a8ae26bd11082b575ddfecdfe51ca535e048ebcf58455e3f813aacc1712e09a297a511efb0e4843e2d2a413cb8c1cd6b81f79371e50d7b8efb1aa6b8d5af - languageName: node - linkType: hard - -"express@npm:4.18.2": - version: 4.18.2 - resolution: "express@npm:4.18.2" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.1" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.5.0" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:1.2.0" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.11.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 75af556306b9241bc1d7bdd40c9744b516c38ce50ae3210658efcbf96e3aed4ab83b3432f06215eae5610c123bc4136957dc06e50dfc50b7d4d775af56c4c59c - languageName: node - linkType: hard - -"express@npm:^4.14.0, express@npm:^4.18.1": - version: 4.19.2 - resolution: "express@npm:4.19.2" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.2" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.6.0" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:1.2.0" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.11.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb - languageName: node - linkType: hard - -"ext@npm:^1.7.0": - version: 1.7.0 - resolution: "ext@npm:1.7.0" - dependencies: - type: "npm:^2.7.2" - checksum: a8e5f34e12214e9eee3a4af3b5c9d05ba048f28996450975b369fc86e5d0ef13b6df0615f892f5396a9c65d616213c25ec5b0ad17ef42eac4a500512a19da6c7 - languageName: node - linkType: hard - -"extend-shallow@npm:^2.0.1": - version: 2.0.1 - resolution: "extend-shallow@npm:2.0.1" - dependencies: - is-extendable: "npm:^0.1.0" - checksum: ee1cb0a18c9faddb42d791b2d64867bd6cfd0f3affb711782eb6e894dd193e2934a7f529426aac7c8ddb31ac5d38000a00aa2caf08aa3dfc3e1c8ff6ba340bd9 - languageName: node - linkType: hard - -"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2": - version: 3.0.2 - resolution: "extend-shallow@npm:3.0.2" - dependencies: - assign-symbols: "npm:^1.0.0" - is-extendable: "npm:^1.0.1" - checksum: f39581b8f98e3ad94995e33214fff725b0297cf09f2725b6f624551cfb71e0764accfd0af80becc0182af5014d2a57b31b85ec999f9eb8a6c45af81752feac9a - languageName: node - linkType: hard - -"extend@npm:~3.0.2": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: 73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 - languageName: node - linkType: hard - -"extendable-error@npm:^0.1.5": - version: 0.1.7 - resolution: "extendable-error@npm:0.1.7" - checksum: c46648b7682448428f81b157cbfe480170fd96359c55db477a839ddeaa34905a18cba0b989bafe5e83f93c2491a3fcc7cc536063ea326ba9d72e9c6e2fe736a7 - languageName: node - linkType: hard - -"external-editor@npm:^3.0.3, external-editor@npm:^3.1.0": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: "npm:^0.7.0" - iconv-lite: "npm:^0.4.24" - tmp: "npm:^0.0.33" - checksum: c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339 - languageName: node - linkType: hard - -"extglob@npm:^0.3.1": - version: 0.3.2 - resolution: "extglob@npm:0.3.2" - dependencies: - is-extglob: "npm:^1.0.0" - checksum: 9fcca7651e5c50fc970ec402476fb7a150e27cc2d8b415de8a6719fc111b2e03a9fabbff4fbed51221853f720ad734e842dfaef087ef57bdeb2456dcf0369029 - languageName: node - linkType: hard - -"extglob@npm:^2.0.4": - version: 2.0.4 - resolution: "extglob@npm:2.0.4" - dependencies: - array-unique: "npm:^0.3.2" - define-property: "npm:^1.0.0" - expand-brackets: "npm:^2.1.4" - extend-shallow: "npm:^2.0.1" - fragment-cache: "npm:^0.2.1" - regex-not: "npm:^1.0.0" - snapdragon: "npm:^0.8.1" - to-regex: "npm:^3.0.1" - checksum: e1a891342e2010d046143016c6c03d58455c2c96c30bf5570ea07929984ee7d48fad86b363aee08f7a8a638f5c3a66906429b21ecb19bc8e90df56a001cd282c - languageName: node - linkType: hard - -"extract-files@npm:^11.0.0": - version: 11.0.0 - resolution: "extract-files@npm:11.0.0" - checksum: 7ac1cd693d081099d7c29f2b36aad199f92c5ea234c2016eb37ba213dddaefe74d54566f0675de5917d35cf98670183c2c9a0d96094727eb2c6dae02be7fc308 - languageName: node - linkType: hard - -"extsprintf@npm:1.3.0": - version: 1.3.0 - resolution: "extsprintf@npm:1.3.0" - checksum: f75114a8388f0cbce68e277b6495dc3930db4dde1611072e4a140c24e204affd77320d004b947a132e9a3b97b8253017b2b62dce661975fb0adced707abf1ab5 - languageName: node - linkType: hard - -"extsprintf@npm:^1.2.0": - version: 1.4.1 - resolution: "extsprintf@npm:1.4.1" - checksum: e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 - languageName: node - linkType: hard - -"fake-merkle-patricia-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "fake-merkle-patricia-tree@npm:1.0.1" - dependencies: - checkpoint-store: "npm:^1.1.0" - checksum: 7a476b3437e20d95d6483198c4f4bc697e6bd80b4b30127f2f0367dfc4d3fb04cbf21cee7803287df8393f1837ceaf61e5f9606ccb6d0fdf7fc2a42a6e6ee6d0 - languageName: node - linkType: hard - -"fast-base64-decode@npm:^1.0.0": - version: 1.0.0 - resolution: "fast-base64-decode@npm:1.0.0" - checksum: 6d8feab513222a463d1cb58d24e04d2e04b0791ac6559861f99543daaa590e2636d040d611b40a50799bfb5c5304265d05e3658b5adf6b841a50ef6bf833d821 - languageName: node - linkType: hard - -"fast-decode-uri-component@npm:^1.0.1": - version: 1.0.1 - resolution: "fast-decode-uri-component@npm:1.0.1" - checksum: 039d50c2e99d64f999c3f2126c23fbf75a04a4117e218a149ca0b1d2aeb8c834b7b19d643b9d35d4eabce357189a6a94085f78cf48869e6e26cc59b036284bc3 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^1.0.0": - version: 1.1.0 - resolution: "fast-deep-equal@npm:1.1.0" - checksum: 2cdcb17ca3c28ea199863de4ff0f4de14722c63bb19d716c1bbb4a661479413a0cbfb27e8596d34204e4525f0de11ff7c8ac6a27673c961bd0f37d0e48f9c743 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-diff@npm:^1.1.2, fast-diff@npm:^1.2.0": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: 5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29 - languageName: node - linkType: hard - -"fast-fifo@npm:^1.0.0": - version: 1.3.2 - resolution: "fast-fifo@npm:1.3.2" - checksum: d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c - languageName: node - linkType: hard - -"fast-glob@npm:3.3.2, fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 - languageName: node - linkType: hard - -"fast-querystring@npm:^1.1.1": - version: 1.1.2 - resolution: "fast-querystring@npm:1.1.2" - dependencies: - fast-decode-uri-component: "npm:^1.0.1" - checksum: e8223273a9b199722f760f5a047a77ad049a14bd444b821502cb8218f5925e3a5fffb56b64389bca73ab2ac6f1aa7aebbe4e203e5f6e53ff5978de97c0fde4e3 - languageName: node - linkType: hard - -"fast-redact@npm:^3.0.0": - version: 3.5.0 - resolution: "fast-redact@npm:3.5.0" - checksum: 7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a - languageName: node - linkType: hard - -"fast-url-parser@npm:^1.1.3": - version: 1.1.3 - resolution: "fast-url-parser@npm:1.1.3" - dependencies: - punycode: "npm:^1.3.2" - checksum: d85c5c409cf0215417380f98a2d29c23a95004d93ff0d8bdf1af5f1a9d1fc608ac89ac6ffe863783d2c73efb3850dd35390feb1de3296f49877bfee0392eb5d3 - languageName: node - linkType: hard - -"fastify-warning@npm:^0.2.0": - version: 0.2.0 - resolution: "fastify-warning@npm:0.2.0" - checksum: e2c909a25e507e5c5f5bb2b3ff20e2a1e786e4175eff9b5548215a742553b3d04a81cc585fa8f0361f663cc23eb18ecdca1049cc09903acda54d8886b09c3da5 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" - dependencies: - reusify: "npm:^1.0.4" - checksum: 1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: "npm:2.1.1" - checksum: feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 - languageName: node - linkType: hard - -"fbjs-css-vars@npm:^1.0.0": - version: 1.0.2 - resolution: "fbjs-css-vars@npm:1.0.2" - checksum: dfb64116b125a64abecca9e31477b5edb9a2332c5ffe74326fe36e0a72eef7fc8a49b86adf36c2c293078d79f4524f35e80f5e62546395f53fb7c9e69821f54f - languageName: node - linkType: hard - -"fbjs@npm:^3.0.0": - version: 3.0.5 - resolution: "fbjs@npm:3.0.5" - dependencies: - cross-fetch: "npm:^3.1.5" - fbjs-css-vars: "npm:^1.0.0" - loose-envify: "npm:^1.0.0" - object-assign: "npm:^4.1.0" - promise: "npm:^7.1.1" - setimmediate: "npm:^1.0.5" - ua-parser-js: "npm:^1.0.35" - checksum: 66d0a2fc9a774f9066e35ac2ac4bf1245931d27f3ac287c7d47e6aa1fc152b243c2109743eb8f65341e025621fb51a12038fadb9fd8fda2e3ddae04ebab06f91 - languageName: node - linkType: hard - -"fdir@npm:^6.4.2": - version: 6.4.2 - resolution: "fdir@npm:6.4.2" - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - checksum: 34829886f34a3ca4170eca7c7180ec4de51a3abb4d380344063c0ae2e289b11d2ba8b724afee974598c83027fea363ff598caf2b51bc4e6b1e0d8b80cc530573 - languageName: node - linkType: hard - -"fecha@npm:^4.2.0": - version: 4.2.3 - resolution: "fecha@npm:4.2.3" - checksum: 0e895965959cf6a22bb7b00f0bf546f2783836310f510ddf63f463e1518d4c96dec61ab33fdfd8e79a71b4856a7c865478ce2ee8498d560fe125947703c9b1cf - languageName: node - linkType: hard - -"fetch-ponyfill@npm:^4.0.0": - version: 4.1.0 - resolution: "fetch-ponyfill@npm:4.1.0" - dependencies: - node-fetch: "npm:~1.7.1" - checksum: a0419b5b5adc380c6a48156a565513fa3d6c68af003751db3d4d0bdf114b5336206fd57f364a9588abcc2637297eb5968cd8ba09dff85aa15c1e1e91c52f6208 - languageName: node - linkType: hard - -"fets@npm:^0.1.1": - version: 0.1.5 - resolution: "fets@npm:0.1.5" - dependencies: - "@ardatan/fast-json-stringify": "npm:^0.0.6" - "@whatwg-node/cookie-store": "npm:^0.0.1" - "@whatwg-node/fetch": "npm:^0.8.2" - "@whatwg-node/server": "npm:^0.7.4" - ajv: "npm:^8.12.0" - ajv-formats: "npm:^2.1.1" - hotscript: "npm:^1.0.11" - json-schema-to-ts: "npm:^2.7.2" - openapi-types: "npm:^12.1.0" - tslib: "npm:^2.3.1" - zod: "npm:^3.21.4" - zod-to-json-schema: "npm:^3.20.5" - checksum: 52ebcac126c5c217ef70687e5390467f33e32ef24bd251e672625411405b15f7dc5eb3591a9c9932eacd90f2fa0715dc26392e24d114a62a12fedc49e344cac9 - languageName: node - linkType: hard - -"figures@npm:^3.0.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: "npm:^1.0.5" - checksum: 9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: "npm:^3.0.4" - checksum: 58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd - languageName: node - linkType: hard - -"file-uri-to-path@npm:1.0.0": - version: 1.0.0 - resolution: "file-uri-to-path@npm:1.0.0" - checksum: 3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519 - languageName: node - linkType: hard - -"filename-regex@npm:^2.0.0": - version: 2.0.1 - resolution: "filename-regex@npm:2.0.1" - checksum: c669fe758641e4830641a9df1d387f14080d96ddde0ef9525439c6d16f4492ea167109362ea69eedd0eef39ae2739586b71daf5f4dab0847d1d07a01a1190ab3 - languageName: node - linkType: hard - -"fill-range@npm:^2.1.0": - version: 2.2.4 - resolution: "fill-range@npm:2.2.4" - dependencies: - is-number: "npm:^2.1.0" - isobject: "npm:^2.0.0" - randomatic: "npm:^3.0.0" - repeat-element: "npm:^1.1.2" - repeat-string: "npm:^1.5.2" - checksum: 1cfd1329311d778a844d5806bd06a5d297047e5ff352c45b4f9fadcda68eb272c8ef2196f1c44224f3fe66c672234453ce89aca94fb00122874bdb3978de5f71 - languageName: node - linkType: hard - -"fill-range@npm:^4.0.0": - version: 4.0.0 - resolution: "fill-range@npm:4.0.0" - dependencies: - extend-shallow: "npm:^2.0.1" - is-number: "npm:^3.0.0" - repeat-string: "npm:^1.6.1" - to-regex-range: "npm:^2.1.0" - checksum: ccd57b7c43d7e28a1f8a60adfa3c401629c08e2f121565eece95e2386ebc64dedc7128d8c3448342aabf19db0c55a34f425f148400c7a7be9a606ba48749e089 - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - statuses: "npm:2.0.1" - unpipe: "npm:~1.0.0" - checksum: 64b7e5ff2ad1fcb14931cd012651631b721ce657da24aedb5650ddde9378bf8e95daa451da43398123f5de161a81e79ff5affe4f9f2a6d2df4a813d6d3e254b7 - languageName: node - linkType: hard - -"finalhandler@npm:~1.1.2": - version: 1.1.2 - resolution: "finalhandler@npm:1.1.2" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:~2.3.0" - parseurl: "npm:~1.3.3" - statuses: "npm:~1.5.0" - unpipe: "npm:~1.0.0" - checksum: 6a96e1f5caab085628c11d9fdceb82ba608d5e426c6913d4d918409baa271037a47f28fbba73279e8ad614f0b8fa71ea791d265e408d760793829edd8c2f4584 - languageName: node - linkType: hard - -"find-replace@npm:^1.0.3": - version: 1.0.3 - resolution: "find-replace@npm:1.0.3" - dependencies: - array-back: "npm:^1.0.4" - test-value: "npm:^2.1.0" - checksum: 427dfe320a3d9d13973f59f4116bb8f451379e25bee5893b393c150863d67e57dedfb306a5956e78b2bfe25e7c5a2090d96cdcef952aa44f09c38539016309b7 - languageName: node - linkType: hard - -"find-replace@npm:^3.0.0": - version: 3.0.0 - resolution: "find-replace@npm:3.0.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: fcd1bf7960388c8193c2861bcdc760c18ac14edb4bde062a961915d9a25727b2e8aabf0229e90cc09c753fd557e5a3e5ae61e49cadbe727be89a9e8e49ce7668 - languageName: node - linkType: hard - -"find-up@npm:5.0.0, find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: "npm:^6.0.0" - path-exists: "npm:^4.0.0" - checksum: 062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a - languageName: node - linkType: hard - -"find-up@npm:^1.0.0": - version: 1.1.2 - resolution: "find-up@npm:1.1.2" - dependencies: - path-exists: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: 51e35c62d9b7efe82d7d5cce966bfe10c2eaa78c769333f8114627e3a8a4a4f50747f5f50bff50b1094cbc6527776f0d3b9ff74d3561ef714a5290a17c80c2bc - languageName: node - linkType: hard - -"find-up@npm:^2.1.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: "npm:^2.0.0" - checksum: c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: "npm:^5.0.0" - path-exists: "npm:^4.0.0" - checksum: 0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 - languageName: node - linkType: hard - -"find-yarn-workspace-root2@npm:1.2.16": - version: 1.2.16 - resolution: "find-yarn-workspace-root2@npm:1.2.16" - dependencies: - micromatch: "npm:^4.0.2" - pkg-dir: "npm:^4.2.0" - checksum: d576067c7823de517d71831eafb5f6dc60554335c2d14445708f2698551b234f89c976a7f259d9355a44e417c49e7a93b369d0474579af02bbe2498f780c92d3 - languageName: node - linkType: hard - -"find-yarn-workspace-root@npm:^1.2.1": - version: 1.2.1 - resolution: "find-yarn-workspace-root@npm:1.2.1" - dependencies: - fs-extra: "npm:^4.0.3" - micromatch: "npm:^3.1.4" - checksum: c406e4d30a87eccd85e2ca283be813426941d8e7933c389184a8587e75a00b9a1352a8111c81e1988d88ceeb88d1a3372d113846d386126e98b39094fddb752e - languageName: node - linkType: hard - -"find-yarn-workspace-root@npm:^2.0.0": - version: 2.0.0 - resolution: "find-yarn-workspace-root@npm:2.0.0" - dependencies: - micromatch: "npm:^4.0.2" - checksum: b0d3843013fbdaf4e57140e0165889d09fa61745c9e85da2af86e54974f4cc9f1967e40f0d8fc36a79d53091f0829c651d06607d552582e53976f3cd8f4e5689 - languageName: node - linkType: hard - -"findup-sync@npm:^5.0.0": - version: 5.0.0 - resolution: "findup-sync@npm:5.0.0" - dependencies: - detect-file: "npm:^1.0.0" - is-glob: "npm:^4.0.3" - micromatch: "npm:^4.0.4" - resolve-dir: "npm:^1.0.1" - checksum: bbdb8af8c86a0bde4445e2f738003b92e4cd2a4539a5b45199d0252f2f504aeaf19aeca1fac776c3632c60657b2659151e72c8ead29a79617459a57419a0920b - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 - languageName: node - linkType: hard - -"flat@npm:^5.0.2": - version: 5.0.2 - resolution: "flat@npm:5.0.2" - bin: - flat: cli.js - checksum: f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf - languageName: node - linkType: hard - -"flow-stoplight@npm:^1.0.0": - version: 1.0.0 - resolution: "flow-stoplight@npm:1.0.0" - checksum: 64ab2739079020d85afd099939e739cb7c80bb914d855267ddbaf14e4aafd3ed24da81ed531a4f048f60f314f8427a64c8bbf9369326bc8deb89fc702263c81f - languageName: node - linkType: hard - -"fmix@npm:^0.1.0": - version: 0.1.0 - resolution: "fmix@npm:0.1.0" - dependencies: - imul: "npm:^1.0.0" - checksum: af9e54eacc00b46e1c4a77229840e37252fff7634f81026591da9d24438ca15a1afa2786f579eb7865489ded21b76af7327d111b90b944e7409cd60f4d4f2ded - languageName: node - linkType: hard - -"fn.name@npm:1.x.x": - version: 1.1.0 - resolution: "fn.name@npm:1.1.0" - checksum: 8ad62aa2d4f0b2a76d09dba36cfec61c540c13a0fd72e5d94164e430f987a7ce6a743112bbeb14877c810ef500d1f73d7f56e76d029d2e3413f20d79e3460a9a - languageName: node - linkType: hard - -"follow-redirects@npm:^1.12.1, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.6": - version: 1.15.6 - resolution: "follow-redirects@npm:1.15.6" - peerDependenciesMeta: - debug: - optional: true - checksum: 9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071 - languageName: node - linkType: hard - -"for-each@npm:^0.3.3, for-each@npm:~0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: "npm:^1.1.3" - checksum: 22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa - languageName: node - linkType: hard - -"for-in@npm:^1.0.1, for-in@npm:^1.0.2": - version: 1.0.2 - resolution: "for-in@npm:1.0.2" - checksum: 42bb609d564b1dc340e1996868b67961257fd03a48d7fdafd4f5119530b87f962be6b4d5b7e3a3fc84c9854d149494b1d358e0b0ce9837e64c4c6603a49451d6 - languageName: node - linkType: hard - -"for-own@npm:^0.1.4": - version: 0.1.5 - resolution: "for-own@npm:0.1.5" - dependencies: - for-in: "npm:^1.0.1" - checksum: 3f82c2ea489ce2eb74c0eb8634d89b30a620801c2cb5f2a83d2d797fe6990d40c1aeac8968783e157b1404cf35bac9acb0a6c46065ec37b38a21b5d896e500bd - languageName: node - linkType: hard - -"foreach@npm:^2.0.4": - version: 2.0.6 - resolution: "foreach@npm:2.0.6" - checksum: dc79f83997ac986dadbc95b4035ce8b86699fb654eb85446b0ad779fe69d567fc9894075e460243ca8bc20adb8fd178ad203aef66dc3c620ac78b18a4cb7059c - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" - dependencies: - cross-spawn: "npm:^7.0.0" - signal-exit: "npm:^4.0.1" - checksum: 9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 - languageName: node - linkType: hard - -"forever-agent@npm:~0.6.1": - version: 0.6.1 - resolution: "forever-agent@npm:0.6.1" - checksum: 364f7f5f7d93ab661455351ce116a67877b66f59aca199559a999bd39e3cfadbfbfacc10415a915255e2210b30c23febe9aec3ca16bf2d1ff11c935a1000e24c - languageName: node - linkType: hard - -"form-data-encoder@npm:1.7.1": - version: 1.7.1 - resolution: "form-data-encoder@npm:1.7.1" - checksum: 15383b6f328450489d1b5fdf7afc3f3b9a0f40dd7fdbc395128b8088867b62b5048fbcfbcd84d464a95dd1a592ebec73c9571b8eb1b47d27776e90168038cbe9 - languageName: node - linkType: hard - -"form-data-encoder@npm:^2.1.2": - version: 2.1.4 - resolution: "form-data-encoder@npm:2.1.4" - checksum: 4c06ae2b79ad693a59938dc49ebd020ecb58e4584860a90a230f80a68b026483b022ba5e4143cff06ae5ac8fd446a0b500fabc87bbac3d1f62f2757f8dabcaf7 - languageName: node - linkType: hard - -"form-data@npm:^2.2.0": - version: 2.5.1 - resolution: "form-data@npm:2.5.1" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" - mime-types: "npm:^2.1.12" - checksum: 7e8fb913b84a7ac04074781a18d0f94735bbe82815ff35348803331f6480956ff0035db5bcf15826edee09fe01e665cfac664678f1526646a6374ee13f960e56 - languageName: node - linkType: hard - -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: 1ccc3ae064a080a799923f754d49fcebdd90515a8924f0f54de557540b50e7f1fe48ba5f2bd0435a5664aa2d49729107e6aaf2155a9abf52339474c5638b4485 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e - languageName: node - linkType: hard - -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" - mime-types: "npm:^2.1.12" - checksum: 706ef1e5649286b6a61e5bb87993a9842807fd8f149cd2548ee807ea4fb882247bdf7f6e64ac4720029c0cd5c80343de0e22eee1dc9e9882e12db9cc7bc016a4 - languageName: node - linkType: hard - -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: 9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 - languageName: node - linkType: hard - -"fp-ts@npm:1.19.3": - version: 1.19.3 - resolution: "fp-ts@npm:1.19.3" - checksum: a016cfc98ad5e61564ab2d53a5379bbb8254642b66df13ced47e8c1d8d507abf4588d8bb43530198dfe1907211d8bae8f112cab52ba0ac6ab055da9168a6e260 - languageName: node - linkType: hard - -"fp-ts@npm:^1.0.0": - version: 1.19.5 - resolution: "fp-ts@npm:1.19.5" - checksum: 2a330fa1779561307740c26a7255fdffeb1ca2d0c7448d4dc094b477b772b0c8f7da1dfc88569b6f13f6958169b63b5df7361e514535b46b2e215bbf03a3722d - languageName: node - linkType: hard - -"fragment-cache@npm:^0.2.1": - version: 0.2.1 - resolution: "fragment-cache@npm:0.2.1" - dependencies: - map-cache: "npm:^0.2.2" - checksum: 5891d1c1d1d5e1a7fb3ccf28515c06731476fa88f7a50f4ede8a0d8d239a338448e7f7cc8b73db48da19c229fa30066104fe6489862065a4f1ed591c42fbeabf - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a - languageName: node - linkType: hard - -"fs-extra@npm:^0.30.0": - version: 0.30.0 - resolution: "fs-extra@npm:0.30.0" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^2.1.0" - klaw: "npm:^1.0.0" - path-is-absolute: "npm:^1.0.0" - rimraf: "npm:^2.2.8" - checksum: 24f3c966018c7bf436bf38ca3a126f1d95bf0f82598302195c4f0c8887767f045dae308f92c53a39cead74631dabbc30fcf1c71dbe96f1f0148f6de8edd114bc - languageName: node - linkType: hard - -"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e - languageName: node - linkType: hard - -"fs-extra@npm:^11.2.0": - version: 11.3.0 - resolution: "fs-extra@npm:11.3.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 5f95e996186ff45463059feb115a22fb048bdaf7e487ecee8a8646c78ed8fdca63630e3077d4c16ce677051f5e60d3355a06f3cd61f3ca43f48cc58822a44d0a - languageName: node - linkType: hard - -"fs-extra@npm:^4.0.2, fs-extra@npm:^4.0.3": - version: 4.0.3 - resolution: "fs-extra@npm:4.0.3" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: b34344de77adaccb294e6dc116e8b247ae0a4da45b79749814893549e6f15e3baace2998db06a966a9f8d5a39b6b2d8e51543bd0a565a8927c37d6373dfd20b9 - languageName: node - linkType: hard - -"fs-extra@npm:^7.0.0, fs-extra@npm:^7.0.1": - version: 7.0.1 - resolution: "fs-extra@npm:7.0.1" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 1943bb2150007e3739921b8d13d4109abdc3cc481e53b97b7ea7f77eda1c3c642e27ae49eac3af074e3496ea02fde30f411ef410c760c70a38b92e656e5da784 - languageName: node - linkType: hard - -"fs-extra@npm:^8.1.0": - version: 8.1.0 - resolution: "fs-extra@npm:8.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 - languageName: node - linkType: hard - -"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: "npm:^1.0.0" - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 - languageName: node - linkType: hard - -"fs-minipass@npm:^1.2.7": - version: 1.2.7 - resolution: "fs-minipass@npm:1.2.7" - dependencies: - minipass: "npm:^2.6.0" - checksum: c8259ce8caab360f16b8c3774fd09dd1d5240d6f3f78fd8efa0a215b5f40edfa90e7b5b5ddc2335a4c50885e29d5983f9fe6ac3ac19320e6917a21dbb9f05c64 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: "npm:^3.0.0" - checksum: 703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 - languageName: node - linkType: hard - -"fs-readdir-recursive@npm:^1.1.0": - version: 1.1.0 - resolution: "fs-readdir-recursive@npm:1.1.0" - checksum: 7e190393952143e674b6d1ad4abcafa1b5d3e337fcc21b0cb051079a7140a54617a7df193d562ef9faf21bd7b2148a38601b3d5c16261fa76f278d88dc69989c - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 - languageName: node - linkType: hard - -"fsevents@npm:^1.0.0": - version: 1.2.13 - resolution: "fsevents@npm:1.2.13" - dependencies: - bindings: "npm:^1.5.0" - nan: "npm:^2.12.1" - checksum: 4427ff08db9ee7327f2c3ad58ec56f9096a917eed861bfffaa2e2be419479cdf37d00750869ab9ecbf5f59f32ad999bd59577d73fc639193e6c0ce52bb253e02 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: "npm:latest" - checksum: a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A^1.0.0#optional!builtin": - version: 1.2.13 - resolution: "fsevents@patch:fsevents@npm%3A1.2.13#optional!builtin::version=1.2.13&hash=d11327" - dependencies: - bindings: "npm:^1.5.0" - nan: "npm:^2.12.1" - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - functions-have-names: "npm:^1.2.3" - checksum: 9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b - languageName: node - linkType: hard - -"functional-red-black-tree@npm:^1.0.1, functional-red-black-tree@npm:~1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: 5959eed0375803d9924f47688479bb017e0c6816a0e5ac151e22ba6bfe1d12c41de2f339188885e0aa8eeea2072dad509d8e4448467e816bde0a2ca86a0670d3 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: 33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca - languageName: node - linkType: hard - -"ganache-core@npm:^2.13.2": - version: 2.13.2 - resolution: "ganache-core@npm:2.13.2" - dependencies: - abstract-leveldown: "npm:3.0.0" - async: "npm:2.6.2" - bip39: "npm:2.5.0" - cachedown: "npm:1.0.0" - clone: "npm:2.1.2" - debug: "npm:3.2.6" - encoding-down: "npm:5.0.4" - eth-sig-util: "npm:3.0.0" - ethereumjs-abi: "npm:0.6.8" - ethereumjs-account: "npm:3.0.0" - ethereumjs-block: "npm:2.2.2" - ethereumjs-common: "npm:1.5.0" - ethereumjs-tx: "npm:2.1.2" - ethereumjs-util: "npm:6.2.1" - ethereumjs-vm: "npm:4.2.0" - ethereumjs-wallet: "npm:0.6.5" - heap: "npm:0.2.6" - keccak: "npm:3.0.1" - level-sublevel: "npm:6.6.4" - levelup: "npm:3.1.1" - lodash: "npm:4.17.20" - lru-cache: "npm:5.1.1" - merkle-patricia-tree: "npm:3.0.0" - patch-package: "npm:6.2.2" - seedrandom: "npm:3.0.1" - source-map-support: "npm:0.5.12" - tmp: "npm:0.1.0" - web3: "npm:1.2.11" - web3-provider-engine: "npm:14.2.1" - websocket: "npm:1.0.32" - dependenciesMeta: - ethereumjs-wallet: - optional: true - web3: - optional: true - checksum: cdae2cbfaa4b06148b4ab7095f707acb21235fed7717325da63279d83845dcee9086da165cd4af3eebebdb442a0ebf29f878d1b455277a84d8bcd98dcf309d1c - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: 782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 - languageName: node - linkType: hard - -"get-caller-file@npm:^1.0.1": - version: 1.0.3 - resolution: "get-caller-file@npm:1.0.3" - checksum: 763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51 - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: 914b1e217cf38436c24b4c60b4c45289e39a45bf9e65ef9fd343c2815a1a02b8a0215aeec8bf9c07c516089004b6e3826332481f40a09529fcadbf6e579f286b - languageName: node - linkType: hard - -"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": - version: 2.0.2 - resolution: "get-func-name@npm:2.0.2" - checksum: 89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: 0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 - languageName: node - linkType: hard - -"get-iterator@npm:^1.0.2": - version: 1.0.2 - resolution: "get-iterator@npm:1.0.2" - checksum: d4096a21ca860678326ab059dabf1bf2d5cfe5dda59ce987d0c6b43c41706b92797bac4c6b75bf5e58341be70763a6961af826e79f5c606115d68ad982eaff79 - languageName: node - linkType: hard - -"get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 103999855f3d1718c631472437161d76962cbddcd95cc642a34c07bfb661ed41b6c09a9c669ccdff89ee965beb7126b80eec7b2101e20e31e9cc6c4725305e10 - languageName: node - linkType: hard - -"get-port@npm:^3.1.0": - version: 3.2.0 - resolution: "get-port@npm:3.2.0" - checksum: 1b6c3fe89074be3753d9ddf3d67126ea351ab9890537fe53fefebc2912d1d66fdc112451bbc76d33ae5ceb6ca70be2a91017944e3ee8fb0814ac9b295bf2a5b8 - languageName: node - linkType: hard - -"get-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "get-stream@npm:3.0.0" - checksum: 003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22 - languageName: node - linkType: hard - -"get-stream@npm:^4.1.0": - version: 4.1.0 - resolution: "get-stream@npm:4.1.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 294d876f667694a5ca23f0ca2156de67da950433b6fb53024833733975d32582896dbc7f257842d331809979efccf04d5e0b6b75ad4d45744c45f193fd497539 - languageName: node - linkType: hard - -"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": - version: 5.2.0 - resolution: "get-stream@npm:5.2.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: 49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 - languageName: node - linkType: hard - -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - checksum: 867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc - languageName: node - linkType: hard - -"get-value@npm:^2.0.3, get-value@npm:^2.0.6": - version: 2.0.6 - resolution: "get-value@npm:2.0.6" - checksum: f069c132791b357c8fc4adfe9e2929b0a2c6e95f98ca7bc6fcbc27f8a302e552f86b4ae61ec56d9e9ac2544b93b6a39743d479866a37b43fcc104088ba74f0d9 - languageName: node - linkType: hard - -"getpass@npm:^0.1.1": - version: 0.1.7 - resolution: "getpass@npm:0.1.7" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: c13f8530ecf16fc509f3fa5cd8dd2129ffa5d0c7ccdf5728b6022d52954c2d24be3706b4cdf15333eec52f1fbb43feb70a01dabc639d1d10071e371da8aaa52f - languageName: node - linkType: hard - -"ghost-testrpc@npm:^0.0.2": - version: 0.0.2 - resolution: "ghost-testrpc@npm:0.0.2" - dependencies: - chalk: "npm:^2.4.2" - node-emoji: "npm:^1.10.0" - bin: - testrpc-sc: ./index.js - checksum: 604efc022dfccda3da38ba5726ea52e5156c232814de440193ed7543dd1bb6a3899942df56ca8943c32fec2692abd9b62eb0fe381c7718b0941b3eb301c75b77 - languageName: node - linkType: hard - -"git-raw-commits@npm:^2.0.0, git-raw-commits@npm:^2.0.11": - version: 2.0.11 - resolution: "git-raw-commits@npm:2.0.11" - dependencies: - dargs: "npm:^7.0.0" - lodash: "npm:^4.17.15" - meow: "npm:^8.0.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - git-raw-commits: cli.js - checksum: c9cee7ce11a6703098f028d7e47986d5d3e4147d66640086734d6ee2472296b8711f91b40ad458e95acac1bc33cf2898059f1dc890f91220ff89c5fcc609ab64 - languageName: node - linkType: hard - -"glob-base@npm:^0.3.0": - version: 0.3.0 - resolution: "glob-base@npm:0.3.0" - dependencies: - glob-parent: "npm:^2.0.0" - is-glob: "npm:^2.0.0" - checksum: 4ce785c1dac2ff1e4660c010fa43ed2f1b38993dfd004023a3e7080b20bc61f29fbfe5d265b7e64cc84096ecf44e8ca876c7c1aad8f1f995d4c0f33034f3ae8c - languageName: node - linkType: hard - -"glob-parent@npm:^2.0.0": - version: 2.0.0 - resolution: "glob-parent@npm:2.0.0" - dependencies: - is-glob: "npm:^2.0.0" - checksum: b9d59dc532d47aaaa4841046ff631b325a707f738445300b83b7a1ee603dd060c041a378e8a195c887d479bb703685cee4725c8f54b8dacef65355375f57d32a - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - -"glob@npm:7.1.2": - version: 7.1.2 - resolution: "glob@npm:7.1.2" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 2fc8e29c6a6c5cb99854177e9c47a6e17130dd4ee06c5576d53b171e07b1fbc40fa613295dbd35a6f1a8d02a6214b39a0f848ed7cb74bfc2325cc32485d17cbe - languageName: node - linkType: hard - -"glob@npm:7.1.7": - version: 7.1.7 - resolution: "glob@npm:7.1.7" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 173245e6f9ccf904309eb7ef4a44a11f3bf68e9e341dff5a28b5db0dd7123b7506daf41497f3437a0710f57198187b758c2351eeaabce4d16935e956920da6a4 - languageName: node - linkType: hard - -"glob@npm:7.2.0": - version: 7.2.0 - resolution: "glob@npm:7.2.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 478b40e38be5a3d514e64950e1e07e0ac120585add6a37c98d0ed24d72d9127d734d2a125786073c8deb687096e84ae82b641c441a869ada3a9cc91b68978632 - languageName: node - linkType: hard - -"glob@npm:8.1.0, glob@npm:^8.0.3, glob@npm:^8.1.0": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": - version: 10.3.15 - resolution: "glob@npm:10.3.15" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^2.3.6" - minimatch: "npm:^9.0.1" - minipass: "npm:^7.0.4" - path-scurry: "npm:^1.11.0" - bin: - glob: dist/esm/bin.mjs - checksum: cda748ddc181b31b3df9548c0991800406d5cc3b3f8110e37a8751ec1e39f37cdae7d7782d5422d7df92775121cdf00599992dff22f7ff1260344843af227c2b - languageName: node - linkType: hard - -"glob@npm:^5.0.15": - version: 5.0.15 - resolution: "glob@npm:5.0.15" - dependencies: - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:2 || 3" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: ed17b34406bedceb334a1df3502774a089ce822db07585ad2a6851d6040531540ce07407d7da5f0e0bded238114ea50302902f025e551499108076e635fcd9b1 - languageName: node - linkType: hard - -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.6, glob@npm:~7.2.3": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.1.1" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe - languageName: node - linkType: hard - -"global-dirs@npm:^0.1.1": - version: 0.1.1 - resolution: "global-dirs@npm:0.1.1" - dependencies: - ini: "npm:^1.3.4" - checksum: 3608072e58962396c124ad5a1cfb3f99ee76c998654a3432d82977b3c3eeb09dc8a5a2a9849b2b8113906c8d0aad89ce362c22e97cec5fe34405bbf4f3cdbe7a - languageName: node - linkType: hard - -"global-modules@npm:^1.0.0": - version: 1.0.0 - resolution: "global-modules@npm:1.0.0" - dependencies: - global-prefix: "npm:^1.0.1" - is-windows: "npm:^1.0.1" - resolve-dir: "npm:^1.0.0" - checksum: 7d91ecf78d4fcbc966b2d89c1400df273afea795bc8cadf39857ee1684e442065621fd79413ff5fcd9e90c6f1b2dc0123e644fa0b7811f987fd54c6b9afad858 - languageName: node - linkType: hard - -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: "npm:^3.0.0" - checksum: 43b770fe24aa6028f4b9770ea583a47f39750be15cf6e2578f851e4ccc9e4fa674b8541928c0b09c21461ca0763f0d36e4068cec86c914b07fd6e388e66ba5b9 - languageName: node - linkType: hard - -"global-prefix@npm:^1.0.1": - version: 1.0.2 - resolution: "global-prefix@npm:1.0.2" - dependencies: - expand-tilde: "npm:^2.0.2" - homedir-polyfill: "npm:^1.0.1" - ini: "npm:^1.3.4" - is-windows: "npm:^1.0.1" - which: "npm:^1.2.14" - checksum: d8037e300f1dc04d5d410d16afa662e71bfad22dcceba6c9727bb55cc273b8988ca940b3402f62e5392fd261dd9924a9a73a865ef2000219461f31f3fc86be06 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: "npm:^1.3.5" - kind-of: "npm:^6.0.2" - which: "npm:^1.3.1" - checksum: 510f489fb68d1cc7060f276541709a0ee6d41356ef852de48f7906c648ac223082a1cc8fce86725ca6c0e032bcdc1189ae77b4744a624b29c34a9d0ece498269 - languageName: node - linkType: hard - -"global@npm:~4.4.0": - version: 4.4.0 - resolution: "global@npm:4.4.0" - dependencies: - min-document: "npm:^2.19.0" - process: "npm:^0.11.10" - checksum: 4a467aec6602c00a7c5685f310574ab04e289ad7f894f0f01c9c5763562b82f4b92d1e381ce6c5bbb12173e2a9f759c1b63dda6370cfb199970267e14d90aa91 - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd - languageName: node - linkType: hard - -"globals@npm:^9.18.0": - version: 9.18.0 - resolution: "globals@npm:9.18.0" - checksum: 5ab74cb67cf060a9fceede4a0f2babc4c2c0b90dbb13847d2659defdf2121c60035ef23823c8417ce8c11bdaa7b412396077f2b3d2a7dedab490a881a0a96754 - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.4 - resolution: "globalthis@npm:1.0.4" - dependencies: - define-properties: "npm:^1.2.1" - gopd: "npm:^1.0.1" - checksum: 9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846 - languageName: node - linkType: hard - -"globby@npm:^10.0.1": - version: 10.0.2 - resolution: "globby@npm:10.0.2" - dependencies: - "@types/glob": "npm:^7.1.1" - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.0.3" - glob: "npm:^7.1.3" - ignore: "npm:^5.1.1" - merge2: "npm:^1.2.3" - slash: "npm:^3.0.0" - checksum: 9c610ad47117b9dfbc5b0c6c2408c3b72f89c1b9f91ee14c4dc794794e35768ee0920e2a403b688cfa749f48617c6ba3f3a52df07677ed73d602d4349b68c810 - languageName: node - linkType: hard - -"globby@npm:^11.0.0, globby@npm:^11.0.3, globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 - languageName: node - linkType: hard - -"got@npm:12.1.0": - version: 12.1.0 - resolution: "got@npm:12.1.0" - dependencies: - "@sindresorhus/is": "npm:^4.6.0" - "@szmarczak/http-timer": "npm:^5.0.1" - "@types/cacheable-request": "npm:^6.0.2" - "@types/responselike": "npm:^1.0.0" - cacheable-lookup: "npm:^6.0.4" - cacheable-request: "npm:^7.0.2" - decompress-response: "npm:^6.0.0" - form-data-encoder: "npm:1.7.1" - get-stream: "npm:^6.0.1" - http2-wrapper: "npm:^2.1.10" - lowercase-keys: "npm:^3.0.0" - p-cancelable: "npm:^3.0.0" - responselike: "npm:^2.0.0" - checksum: eb410ac82cbd6d3ae28889300dce81c5f74b953f83351405dde38c29a5bc7c7f95afd5ade133b3c6dba84bbca85be71eb87b9d060c6998c0df4a32aa909192d5 - languageName: node - linkType: hard - -"got@npm:9.6.0": - version: 9.6.0 - resolution: "got@npm:9.6.0" - dependencies: - "@sindresorhus/is": "npm:^0.14.0" - "@szmarczak/http-timer": "npm:^1.1.2" - cacheable-request: "npm:^6.0.0" - decompress-response: "npm:^3.3.0" - duplexer3: "npm:^0.1.4" - get-stream: "npm:^4.1.0" - lowercase-keys: "npm:^1.0.1" - mimic-response: "npm:^1.0.1" - p-cancelable: "npm:^1.0.0" - to-readable-stream: "npm:^1.0.0" - url-parse-lax: "npm:^3.0.0" - checksum: 5cb3111e14b48bf4fb8b414627be481ebfb14151ec867e80a74b6d1472489965b9c4f4ac5cf4f3b1f9b90c60a2ce63584d9072b16efd9a3171553e00afc5abc8 - languageName: node - linkType: hard - -"got@npm:^11.8.5": - version: 11.8.6 - resolution: "got@npm:11.8.6" - dependencies: - "@sindresorhus/is": "npm:^4.0.0" - "@szmarczak/http-timer": "npm:^4.0.5" - "@types/cacheable-request": "npm:^6.0.1" - "@types/responselike": "npm:^1.0.0" - cacheable-lookup: "npm:^5.0.3" - cacheable-request: "npm:^7.0.2" - decompress-response: "npm:^6.0.0" - http2-wrapper: "npm:^1.0.0-beta.5.2" - lowercase-keys: "npm:^2.0.0" - p-cancelable: "npm:^2.0.0" - responselike: "npm:^2.0.0" - checksum: 754dd44877e5cf6183f1e989ff01c648d9a4719e357457bd4c78943911168881f1cfb7b2cb15d885e2105b3ad313adb8f017a67265dd7ade771afdb261ee8cb1 - languageName: node - linkType: hard - -"got@npm:^12.1.0": - version: 12.6.1 - resolution: "got@npm:12.6.1" - dependencies: - "@sindresorhus/is": "npm:^5.2.0" - "@szmarczak/http-timer": "npm:^5.0.1" - cacheable-lookup: "npm:^7.0.0" - cacheable-request: "npm:^10.2.8" - decompress-response: "npm:^6.0.0" - form-data-encoder: "npm:^2.1.2" - get-stream: "npm:^6.0.1" - http2-wrapper: "npm:^2.1.10" - lowercase-keys: "npm:^3.0.0" - p-cancelable: "npm:^3.0.0" - responselike: "npm:^3.0.0" - checksum: 2fe97fcbd7a9ffc7c2d0ecf59aca0a0562e73a7749cadada9770eeb18efbdca3086262625fb65590594edc220a1eca58fab0d26b0c93c2f9a008234da71ca66b - languageName: node - linkType: hard - -"graceful-fs@npm:4.2.10": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: 386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 - languageName: node - linkType: hard - -"grapheme-splitter@npm:^1.0.4": - version: 1.0.4 - resolution: "grapheme-splitter@npm:1.0.4" - checksum: 108415fb07ac913f17040dc336607772fcea68c7f495ef91887edddb0b0f5ff7bc1d1ab181b125ecb2f0505669ef12c9a178a3bbd2dd8e042d8c5f1d7c90331a - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 - languageName: node - linkType: hard - -"graphql-import-node@npm:^0.0.5": - version: 0.0.5 - resolution: "graphql-import-node@npm:0.0.5" - peerDependencies: - graphql: "*" - checksum: 97de408098985f9e5c5d3f2a898c700ea8222c578dc898289bbfea0066be73eb88cc58b1e3a8ae1c71a81651541d8da16bbddfb7a352afcc88edf026ad1fa13c - languageName: node - linkType: hard - -"graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.4": - version: 2.12.6 - resolution: "graphql-tag@npm:2.12.6" - dependencies: - tslib: "npm:^2.1.0" - peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 7763a72011bda454ed8ff1a0d82325f43ca6478e4ce4ab8b7910c4c651dd00db553132171c04d80af5d5aebf1ef6a8a9fd53ccfa33b90ddc00aa3d4be6114419 - languageName: node - linkType: hard - -"graphql-ws@npm:5.12.1": - version: 5.12.1 - resolution: "graphql-ws@npm:5.12.1" - peerDependencies: - graphql: ">=0.11 <=16" - checksum: 17338de4783b76e01a41e73a740beb72f9bde46750867463e394679cecc557f2af4ba59af8196e14aed1711a9b7ce6cff0149abc4ff27ca92497b988d6ebbac3 - languageName: node - linkType: hard - -"graphql-ws@npm:^5.12.1": - version: 5.16.0 - resolution: "graphql-ws@npm:5.16.0" - peerDependencies: - graphql: ">=0.11 <=16" - checksum: 5e538c3460ca997a1634bd0f64236d8d7aa6ac75c58aba549b49953faf0dd2497f4fa43eedb0bc82cfff50426c7ce47682a670d2571fd7f3af5dcf00911c9e1b - languageName: node - linkType: hard - -"graphql-yoga@npm:^3.9.1": - version: 3.9.1 - resolution: "graphql-yoga@npm:3.9.1" - dependencies: - "@envelop/core": "npm:^3.0.4" - "@envelop/validation-cache": "npm:^5.1.2" - "@graphql-tools/executor": "npm:^0.0.18" - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/utils": "npm:^9.2.1" - "@graphql-yoga/logger": "npm:^0.0.1" - "@graphql-yoga/subscription": "npm:^3.1.0" - "@whatwg-node/fetch": "npm:^0.8.4" - "@whatwg-node/server": "npm:^0.7.3" - dset: "npm:^3.1.1" - lru-cache: "npm:^7.14.1" - tslib: "npm:^2.3.1" - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - checksum: aa01d62b9aa29c89eadaa178bb255a1aa756773e1e8da3fe32435fc157cdb313840e4db858ed0ec7ca209a113c23590f42ebb05c2e912f90353fba3a9b737212 - languageName: node - linkType: hard - -"graphql@npm:16.3.0": - version: 16.3.0 - resolution: "graphql@npm:16.3.0" - checksum: 71f205c16c93a5085c8a5dc3f9a1a27c022140208042d5be1dfacf04c1d3063ec2f62e3d08b0ed2cfb536c59cca65dd027556a22c47082fc348a5050c5535c71 - languageName: node - linkType: hard - -"graphql@npm:16.8.0": - version: 16.8.0 - resolution: "graphql@npm:16.8.0" - checksum: f7ca0302e8d658012db90b428ec66c1453afe53fbffa21404a28b5bdec5b0e88641d38416ef3d582acad7ddde2effe729e2b050a1483a2e9d4a6111e892e4903 - languageName: node - linkType: hard - -"graphql@npm:^16.5.0": - version: 16.8.1 - resolution: "graphql@npm:16.8.1" - checksum: 129c318156b466f440914de80dbf7bc67d17f776f2a088a40cb0da611d19a97c224b1c6d2b13cbcbc6e5776e45ed7468b8432f9c3536724e079b44f1a3d57a8a - languageName: node - linkType: hard - -"growl@npm:1.10.3": - version: 1.10.3 - resolution: "growl@npm:1.10.3" - checksum: d5729a36f6b157d5e1ea52061416506ea262574eff97ea2b31e795a2f58a0e64edd09119d1277dd94d5b8a676a3fc239107af5f081cbeddd5d463caae67fb7ae - languageName: node - linkType: hard - -"handlebars@npm:^4.0.1, handlebars@npm:^4.7.7": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: "npm:^1.2.5" - neo-async: "npm:^2.6.2" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.1.4" - wordwrap: "npm:^1.0.0" - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d - languageName: node - linkType: hard - -"har-schema@npm:^2.0.0": - version: 2.0.0 - resolution: "har-schema@npm:2.0.0" - checksum: 3856cb76152658e0002b9c2b45b4360bb26b3e832c823caed8fcf39a01096030bf09fa5685c0f7b0f2cb3ecba6e9dce17edaf28b64a423d6201092e6be56e592 - languageName: node - linkType: hard - -"har-validator@npm:~5.1.3": - version: 5.1.5 - resolution: "har-validator@npm:5.1.5" - dependencies: - ajv: "npm:^6.12.3" - har-schema: "npm:^2.0.0" - checksum: f1d606eb1021839e3a905be5ef7cca81c2256a6be0748efb8fefc14312214f9e6c15d7f2eaf37514104071207d84f627b68bb9f6178703da4e06fbd1a0649a5e - languageName: node - linkType: hard - -"hard-rejection@npm:^2.1.0": - version: 2.1.0 - resolution: "hard-rejection@npm:2.1.0" - checksum: febc3343a1ad575aedcc112580835b44a89a89e01f400b4eda6e8110869edfdab0b00cd1bd4c3bfec9475a57e79e0b355aecd5be46454b6a62b9a359af60e564 - languageName: node - linkType: hard - -"hardhat-abi-exporter@npm:^2.0.1, hardhat-abi-exporter@npm:^2.2.0": - version: 2.10.1 - resolution: "hardhat-abi-exporter@npm:2.10.1" - dependencies: - "@ethersproject/abi": "npm:^5.5.0" - delete-empty: "npm:^3.0.0" - peerDependencies: - hardhat: ^2.0.0 - checksum: f9d23494b9a970d3e16d18727d9f47645e5ad0f5540381bfff7e88bc022285f8b441ecd590f69d88aa3e42464bdd56cfb14d514d1158e015a394399f33026b1a - languageName: node - linkType: hard - -"hardhat-contract-sizer@npm:^2.0.1, hardhat-contract-sizer@npm:^2.0.3, hardhat-contract-sizer@npm:^2.10.0": - version: 2.10.0 - resolution: "hardhat-contract-sizer@npm:2.10.0" - dependencies: - chalk: "npm:^4.0.0" - cli-table3: "npm:^0.6.0" - strip-ansi: "npm:^6.0.0" - peerDependencies: - hardhat: ^2.0.0 - checksum: c8bdb3e32c7e5a28bb6a00a2c786d768f471318dc6923c294e2775d69bb12f3c797af38545c8f8603109e293a137a6ba9b511964a35f7bc2356348225ffa2ff7 - languageName: node - linkType: hard - -"hardhat-deploy@npm:^0.11.14": - version: 0.11.45 - resolution: "hardhat-deploy@npm:0.11.45" - dependencies: - "@ethersproject/abi": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/contracts": "npm:^5.7.0" - "@ethersproject/providers": "npm:^5.7.2" - "@ethersproject/solidity": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/wallet": "npm:^5.7.0" - "@types/qs": "npm:^6.9.7" - axios: "npm:^0.21.1" - chalk: "npm:^4.1.2" - chokidar: "npm:^3.5.2" - debug: "npm:^4.3.2" - enquirer: "npm:^2.3.6" - ethers: "npm:^5.7.0" - form-data: "npm:^4.0.0" - fs-extra: "npm:^10.0.0" - match-all: "npm:^1.2.6" - murmur-128: "npm:^0.2.1" - qs: "npm:^6.9.4" - zksync-web3: "npm:^0.14.3" - checksum: 6171ffccd46bb21954ebf2303a00d35d3793ad7216adaaf2d6e1836ec9387583a34e1640ff93e0d2d89e61cd3b06454f40cb11573463d86900eb24a940ce3682 - languageName: node - linkType: hard - -"hardhat-deploy@npm:^0.7.0-beta.9": - version: 0.7.11 - resolution: "hardhat-deploy@npm:0.7.11" - dependencies: - "@ethersproject/abi": "npm:^5.0.0" - "@ethersproject/abstract-signer": "npm:^5.0.0" - "@ethersproject/address": "npm:^5.0.0" - "@ethersproject/bignumber": "npm:^5.0.0" - "@ethersproject/bytes": "npm:^5.0.0" - "@ethersproject/contracts": "npm:^5.0.0" - "@ethersproject/providers": "npm:^5.0.0" - "@ethersproject/solidity": "npm:^5.0.0" - "@ethersproject/transactions": "npm:^5.0.0" - "@ethersproject/wallet": "npm:^5.0.0" - "@types/qs": "npm:^6.9.4" - axios: "npm:^0.21.1" - chalk: "npm:^4.1.0" - chokidar: "npm:^3.4.0" - debug: "npm:^4.1.1" - form-data: "npm:^3.0.0" - fs-extra: "npm:^9.0.0" - match-all: "npm:^1.2.6" - murmur-128: "npm:^0.2.1" - qs: "npm:^6.9.4" - peerDependencies: - "@ethersproject/hardware-wallets": ^5.0.14 - hardhat: ^2.0.0 - checksum: 4a37daaf8866e51702db403b277b1d5fb848dab477de497ff8bd91c83da732a08501a5fe4a4398b9f2d0aff6bc66f32c98a61f15a15ed9e008ce99e71013eec9 - languageName: node - linkType: hard - -"hardhat-gas-reporter@npm:^1.0.1, hardhat-gas-reporter@npm:^1.0.4, hardhat-gas-reporter@npm:^1.0.8": - version: 1.0.10 - resolution: "hardhat-gas-reporter@npm:1.0.10" - dependencies: - array-uniq: "npm:1.0.3" - eth-gas-reporter: "npm:^0.2.25" - sha1: "npm:^1.1.1" - peerDependencies: - hardhat: ^2.0.2 - checksum: 3711ea331bcbbff4d37057cb3de47a9127011e3ee128c2254a68f3b7f12ab2133965cbcfa3a7ce1bba8461f3b1bda1b175c4814a048c8b06b3ad450001d119d8 - languageName: node - linkType: hard - -"hardhat-graph-protocol@workspace:^0.0.1, hardhat-graph-protocol@workspace:packages/hardhat-graph-protocol": - version: 0.0.0-use.local - resolution: "hardhat-graph-protocol@workspace:packages/hardhat-graph-protocol" - dependencies: - "@graphprotocol/contracts": "workspace:^7.0.0" - "@graphprotocol/horizon": "workspace:^0.0.1" - "@graphprotocol/subgraph-service": "workspace:^0.0.1" - "@nomicfoundation/hardhat-ethers": "npm:^3.0.8" - "@nomicfoundation/hardhat-verify": "npm:^2.0.12" - "@types/chai": "npm:^4.0.0" - "@types/debug": "npm:^4.1.12" - "@types/mocha": "npm:^10.0.9" - chai: "npm:^4.0.0" - debug: "npm:^4.3.7" - eslint: "npm:^8.56.0" - eslint-graph-config: "workspace:^0.0.1" - ethers: "npm:^6.13.4" - hardhat: "npm:^2.22.16" - hardhat-secure-accounts: "npm:^1.0.4" - json5: "npm:^2.2.3" - mocha: "npm:^10.8.2" - ts-node: "npm:^8.0.0" - typescript: "npm:^5.6.3" - peerDependencies: - ethers: ^6.13.4 - hardhat: ^2.22.16 - languageName: unknown - linkType: soft - -"hardhat-secure-accounts@npm:0.0.5": - version: 0.0.5 - resolution: "hardhat-secure-accounts@npm:0.0.5" - dependencies: - debug: "npm:^4.3.4" - enquirer: "npm:^2.3.6" - lodash.clonedeep: "npm:^4.5.0" - prompt-sync: "npm:^4.2.0" - peerDependencies: - "@nomiclabs/hardhat-ethers": ^2.1.1 - ethers: ^5.0.0 - hardhat: ^2.0.0 - checksum: 208214e538422d9ee74cc380eb808c23a4f553ab87270d0fd03e482e99f10dcd4520b6b7c2495c7e2ca7177005859c291a7f82e52354cfa78b2ade2f5fbcd8a0 - languageName: node - linkType: hard - -"hardhat-secure-accounts@npm:^0.0.6": - version: 0.0.6 - resolution: "hardhat-secure-accounts@npm:0.0.6" - dependencies: - debug: "npm:^4.3.4" - enquirer: "npm:^2.3.6" - lodash.clonedeep: "npm:^4.5.0" - prompt-sync: "npm:^4.2.0" - peerDependencies: - "@nomiclabs/hardhat-ethers": ^2.1.1 - ethers: ^5.0.0 - hardhat: ^2.0.0 - checksum: 5cf999c706f2baa4b03898ebed5ce302ff202156b2637434748072b6250f0967e1d580c8b07b52068558adb2eba178c6aff1543877672cbd57dd34a987e46604 - languageName: node - linkType: hard - -"hardhat-secure-accounts@npm:^1.0.4": - version: 1.0.4 - resolution: "hardhat-secure-accounts@npm:1.0.4" - dependencies: - debug: "npm:^4.3.4" - enquirer: "npm:^2.3.6" - lodash.clonedeep: "npm:^4.5.0" - prompt-sync: "npm:^4.2.0" - peerDependencies: - "@nomicfoundation/hardhat-ethers": ^3.0.0 - ethers: ^6.13.0 - hardhat: ^2.22.0 - checksum: 6406be693502234f342b9e27215bb3ecb3502a0d9f5299c5c1f5e1be28f08d26226cff511723e719639dc12fb2e4e329386a41e5c90f57b3bf3116656c45c2b5 - languageName: node - linkType: hard - -"hardhat-secure-accounts@npm:^1.0.5": - version: 1.0.5 - resolution: "hardhat-secure-accounts@npm:1.0.5" - dependencies: - debug: "npm:^4.3.4" - enquirer: "npm:^2.3.6" - lodash.clonedeep: "npm:^4.5.0" - prompt-sync: "npm:^4.2.0" - peerDependencies: - "@nomicfoundation/hardhat-ethers": ^3.0.0 - ethers: ^6.13.0 - hardhat: ^2.22.0 - checksum: b1a30f083b1a2919d6aee2f79253edcadff70017e8006df914bba4e6ad9963db622317ca333dfce38f16a9d60ee9425c0591b578cbf8c6db52d617161d4b46ee - languageName: node - linkType: hard - -"hardhat-storage-layout@npm:0.1.6": - version: 0.1.6 - resolution: "hardhat-storage-layout@npm:0.1.6" - dependencies: - console-table-printer: "npm:^2.9.0" - peerDependencies: - hardhat: ^2.0.3 - checksum: f88e6aaedf65281c161d4b70b94417812e3ca36d7af39d0f9bf0711d62bf0c282c41d148cad8a99964824a8a19f0eb6861666bf04244ff8f4df3c292d51fc443 - languageName: node - linkType: hard - -"hardhat-storage-layout@npm:^0.1.7": - version: 0.1.7 - resolution: "hardhat-storage-layout@npm:0.1.7" - dependencies: - console-table-printer: "npm:^2.9.0" - peerDependencies: - hardhat: ^2.0.3 - checksum: 257b52a079183953d079ae221d05551391ff57adbad1ba033a3ccfa1b9df495ddd29285e67a7d03da484aa69f65850feb64a9bd7e37f53c549efd3833ed8b38c - languageName: node - linkType: hard - -"hardhat-tracer@npm:^1.0.0-alpha.6": - version: 1.3.0 - resolution: "hardhat-tracer@npm:1.3.0" - dependencies: - ethers: "npm:^5.6.1" - peerDependencies: - chalk: 4.x - ethers: 5.x - hardhat: 2.x - checksum: 488d8e704cc5ddcd9d536b33d1dc8a126b129ee24c8ff3b345bfc14703b251621ab606de2587a2aef6ae9b23bdf051d83997c7adb002add357a097a9deca3ecb - languageName: node - linkType: hard - -"hardhat@npm:^2.22.16": - version: 2.22.16 - resolution: "hardhat@npm:2.22.16" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@metamask/eth-sig-util": "npm:^4.0.0" - "@nomicfoundation/edr": "npm:^0.6.4" - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" - "@sentry/node": "npm:^5.18.1" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:^5.1.0" - adm-zip: "npm:^0.4.16" - aggregate-error: "npm:^3.0.0" - ansi-escapes: "npm:^4.3.0" - boxen: "npm:^5.1.2" - chokidar: "npm:^4.0.0" - ci-info: "npm:^2.0.0" - debug: "npm:^4.1.1" - enquirer: "npm:^2.3.0" - env-paths: "npm:^2.2.0" - ethereum-cryptography: "npm:^1.0.3" - ethereumjs-abi: "npm:^0.6.8" - find-up: "npm:^5.0.0" - fp-ts: "npm:1.19.3" - fs-extra: "npm:^7.0.1" - immutable: "npm:^4.0.0-rc.12" - io-ts: "npm:1.10.4" - json-stream-stringify: "npm:^3.1.4" - keccak: "npm:^3.0.2" - lodash: "npm:^4.17.11" - mnemonist: "npm:^0.38.0" - mocha: "npm:^10.0.0" - p-map: "npm:^4.0.0" - picocolors: "npm:^1.1.0" - raw-body: "npm:^2.4.1" - resolve: "npm:1.17.0" - semver: "npm:^6.3.0" - solc: "npm:0.8.26" - source-map-support: "npm:^0.5.13" - stacktrace-parser: "npm:^0.1.10" - tinyglobby: "npm:^0.2.6" - tsort: "npm:0.0.1" - undici: "npm:^5.14.0" - uuid: "npm:^8.3.2" - ws: "npm:^7.4.6" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - bin: - hardhat: internal/cli/bootstrap.js - checksum: d193d8dbd02aba9875fc4df23c49fe8cf441afb63382c9e248c776c75aca6e081e9b7b75fb262739f20bff152f9e0e4112bb22e3609dfa63ed4469d3ea46c0ca - languageName: node - linkType: hard - -"hardhat@npm:^2.22.18": - version: 2.22.18 - resolution: "hardhat@npm:2.22.18" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@metamask/eth-sig-util": "npm:^4.0.0" - "@nomicfoundation/edr": "npm:^0.7.0" - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" - "@sentry/node": "npm:^5.18.1" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:^5.1.0" - adm-zip: "npm:^0.4.16" - aggregate-error: "npm:^3.0.0" - ansi-escapes: "npm:^4.3.0" - boxen: "npm:^5.1.2" - chokidar: "npm:^4.0.0" - ci-info: "npm:^2.0.0" - debug: "npm:^4.1.1" - enquirer: "npm:^2.3.0" - env-paths: "npm:^2.2.0" - ethereum-cryptography: "npm:^1.0.3" - ethereumjs-abi: "npm:^0.6.8" - find-up: "npm:^5.0.0" - fp-ts: "npm:1.19.3" - fs-extra: "npm:^7.0.1" - immutable: "npm:^4.0.0-rc.12" - io-ts: "npm:1.10.4" - json-stream-stringify: "npm:^3.1.4" - keccak: "npm:^3.0.2" - lodash: "npm:^4.17.11" - mnemonist: "npm:^0.38.0" - mocha: "npm:^10.0.0" - p-map: "npm:^4.0.0" - picocolors: "npm:^1.1.0" - raw-body: "npm:^2.4.1" - resolve: "npm:1.17.0" - semver: "npm:^6.3.0" - solc: "npm:0.8.26" - source-map-support: "npm:^0.5.13" - stacktrace-parser: "npm:^0.1.10" - tinyglobby: "npm:^0.2.6" - tsort: "npm:0.0.1" - undici: "npm:^5.14.0" - uuid: "npm:^8.3.2" - ws: "npm:^7.4.6" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - bin: - hardhat: internal/cli/bootstrap.js - checksum: cd2fd8972b24d13a342747129e88bfe8bad45432ad88c66c743e81615e1c5db7d656c3e9748c03e517c94f6f6df717c4a14685c82c9f843c9be7c1e0a5f76c49 - languageName: node - linkType: hard - -"hardhat@npm:^2.6.1, hardhat@npm:^2.6.4": - version: 2.22.4 - resolution: "hardhat@npm:2.22.4" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@metamask/eth-sig-util": "npm:^4.0.0" - "@nomicfoundation/edr": "npm:^0.3.7" - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" - "@sentry/node": "npm:^5.18.1" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:^5.1.0" - adm-zip: "npm:^0.4.16" - aggregate-error: "npm:^3.0.0" - ansi-escapes: "npm:^4.3.0" - boxen: "npm:^5.1.2" - chalk: "npm:^2.4.2" - chokidar: "npm:^3.4.0" - ci-info: "npm:^2.0.0" - debug: "npm:^4.1.1" - enquirer: "npm:^2.3.0" - env-paths: "npm:^2.2.0" - ethereum-cryptography: "npm:^1.0.3" - ethereumjs-abi: "npm:^0.6.8" - find-up: "npm:^2.1.0" - fp-ts: "npm:1.19.3" - fs-extra: "npm:^7.0.1" - glob: "npm:7.2.0" - immutable: "npm:^4.0.0-rc.12" - io-ts: "npm:1.10.4" - keccak: "npm:^3.0.2" - lodash: "npm:^4.17.11" - mnemonist: "npm:^0.38.0" - mocha: "npm:^10.0.0" - p-map: "npm:^4.0.0" - raw-body: "npm:^2.4.1" - resolve: "npm:1.17.0" - semver: "npm:^6.3.0" - solc: "npm:0.7.3" - source-map-support: "npm:^0.5.13" - stacktrace-parser: "npm:^0.1.10" - tsort: "npm:0.0.1" - undici: "npm:^5.14.0" - uuid: "npm:^8.3.2" - ws: "npm:^7.4.6" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - bin: - hardhat: internal/cli/bootstrap.js - checksum: b9f51c40bc0d392dedb7fe866da30115a9c120b89eafe1f0afcda3cf1b379d7163e6a33a9b7a8ba78df795b477c2fd2d83ace8eb992668271b610786e320d5b7 - languageName: node - linkType: hard - -"hardhat@npm:~2.14.0": - version: 2.14.1 - resolution: "hardhat@npm:2.14.1" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@metamask/eth-sig-util": "npm:^4.0.0" - "@nomicfoundation/ethereumjs-block": "npm:5.0.1" - "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.1" - "@nomicfoundation/ethereumjs-common": "npm:4.0.1" - "@nomicfoundation/ethereumjs-evm": "npm:2.0.1" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.1" - "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.1" - "@nomicfoundation/ethereumjs-trie": "npm:6.0.1" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.1" - "@nomicfoundation/ethereumjs-util": "npm:9.0.1" - "@nomicfoundation/ethereumjs-vm": "npm:7.0.1" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" - "@sentry/node": "npm:^5.18.1" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:^5.1.0" - abort-controller: "npm:^3.0.0" - adm-zip: "npm:^0.4.16" - aggregate-error: "npm:^3.0.0" - ansi-escapes: "npm:^4.3.0" - chalk: "npm:^2.4.2" - chokidar: "npm:^3.4.0" - ci-info: "npm:^2.0.0" - debug: "npm:^4.1.1" - enquirer: "npm:^2.3.0" - env-paths: "npm:^2.2.0" - ethereum-cryptography: "npm:^1.0.3" - ethereumjs-abi: "npm:^0.6.8" - find-up: "npm:^2.1.0" - fp-ts: "npm:1.19.3" - fs-extra: "npm:^7.0.1" - glob: "npm:7.2.0" - immutable: "npm:^4.0.0-rc.12" - io-ts: "npm:1.10.4" - keccak: "npm:^3.0.2" - lodash: "npm:^4.17.11" - mnemonist: "npm:^0.38.0" - mocha: "npm:^10.0.0" - p-map: "npm:^4.0.0" - qs: "npm:^6.7.0" - raw-body: "npm:^2.4.1" - resolve: "npm:1.17.0" - semver: "npm:^6.3.0" - solc: "npm:0.7.3" - source-map-support: "npm:^0.5.13" - stacktrace-parser: "npm:^0.1.10" - tsort: "npm:0.0.1" - undici: "npm:^5.14.0" - uuid: "npm:^8.3.2" - ws: "npm:^7.4.6" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - bin: - hardhat: internal/cli/bootstrap.js - checksum: 0075a5617df2013827746760164ed08aa2dccb86ce3fd86cb32045a1afb28b9f77d3c3156d204132b6ec942c0035c20805913f4b6f3cbde7ae39f06406ae919c - languageName: node - linkType: hard - -"has-ansi@npm:^2.0.0": - version: 2.0.0 - resolution: "has-ansi@npm:2.0.0" - dependencies: - ansi-regex: "npm:^2.0.0" - checksum: f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05 - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b - languageName: node - linkType: hard - -"has-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-flag@npm:1.0.0" - checksum: d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b - languageName: node - linkType: hard - -"has-flag@npm:^2.0.0": - version: 2.0.0 - resolution: "has-flag@npm:2.0.0" - checksum: 5e1f136c7f801c2719048bedfabcf834a1ed46276cd4c98c6fcddb89a482f5d6a16df0771a38805cfc2d9010b4de157909e1a71b708e1d339b6e311041bde9b4 - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": - version: 1.0.2 - resolution: "has-property-descriptors@npm:1.0.2" - dependencies: - es-define-property: "npm:^1.0.0" - checksum: 253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: 35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c - languageName: node - linkType: hard - -"has-value@npm:^0.3.1": - version: 0.3.1 - resolution: "has-value@npm:0.3.1" - dependencies: - get-value: "npm:^2.0.3" - has-values: "npm:^0.1.4" - isobject: "npm:^2.0.0" - checksum: 7a7c2e9d07bc9742c81806150adb154d149bc6155267248c459cd1ce2a64b0759980d26213260e4b7599c8a3754551179f155ded88d0533a0d2bc7bc29028432 - languageName: node - linkType: hard - -"has-value@npm:^1.0.0": - version: 1.0.0 - resolution: "has-value@npm:1.0.0" - dependencies: - get-value: "npm:^2.0.6" - has-values: "npm:^1.0.0" - isobject: "npm:^3.0.0" - checksum: 17cdccaf50f8aac80a109dba2e2ee5e800aec9a9d382ef9deab66c56b34269e4c9ac720276d5ffa722764304a1180ae436df077da0dd05548cfae0209708ba4d - languageName: node - linkType: hard - -"has-values@npm:^0.1.4": - version: 0.1.4 - resolution: "has-values@npm:0.1.4" - checksum: a8f00ad862c20289798c35243d5bd0b0a97dd44b668c2204afe082e0265f2d0bf3b89fc8cc0ef01a52b49f10aa35cf85c336ee3a5f1cac96ed490f5e901cdbf2 - languageName: node - linkType: hard - -"has-values@npm:^1.0.0": - version: 1.0.0 - resolution: "has-values@npm:1.0.0" - dependencies: - is-number: "npm:^3.0.0" - kind-of: "npm:^4.0.0" - checksum: a6f2a1cc6b2e43eacc68e62e71ad6890def7f4b13d2ef06b4ad3ee156c23e470e6df144b9b467701908e17633411f1075fdff0cab45fb66c5e0584d89b25f35e - languageName: node - linkType: hard - -"has@npm:~1.0.3": - version: 1.0.4 - resolution: "has@npm:1.0.4" - checksum: 82c1220573dc1f0a014a5d6189ae52a1f820f99dfdc00323c3a725b5002dcb7f04e44f460fea7af068474b2dd7c88cbe1846925c84017be9e31e1708936d305b - languageName: node - linkType: hard - -"hash-base@npm:^3.0.0": - version: 3.1.0 - resolution: "hash-base@npm:3.1.0" - dependencies: - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.6.0" - safe-buffer: "npm:^5.2.0" - checksum: 663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0 - languageName: node - linkType: hard - -"hash-base@npm:~3.0": - version: 3.0.4 - resolution: "hash-base@npm:3.0.4" - dependencies: - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: a13357dccb3827f0bb0b56bf928da85c428dc8670f6e4a1c7265e4f1653ce02d69030b40fd01b0f1d218a995a066eea279cded9cec72d207b593bcdfe309c2f0 - languageName: node - linkType: hard - -"hash-it@npm:^6.0.0": - version: 6.0.0 - resolution: "hash-it@npm:6.0.0" - checksum: edac58ed7b7a9e8e39e9991e89c97b5ce8235f340af4018037b4f3fb873a1e631505411543f41659888392a84b3c95b05dfc751355924b8216b8a2291775ce50 - languageName: node - linkType: hard - -"hash.js@npm:1.1.3": - version: 1.1.3 - resolution: "hash.js@npm:1.1.3" - dependencies: - inherits: "npm:^2.0.3" - minimalistic-assert: "npm:^1.0.0" - checksum: f085a856c31d51556f6153edcd4bb1c01a9d22e5882a7b9bae4e813c4abfad012d060b8fde1b993e353d6af1cf82b094599b65348cb529ca19a4b80ab32efded - languageName: node - linkType: hard - -"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": - version: 1.1.7 - resolution: "hash.js@npm:1.1.7" - dependencies: - inherits: "npm:^2.0.3" - minimalistic-assert: "npm:^1.0.1" - checksum: 41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4 - languageName: node - linkType: hard - -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 - languageName: node - linkType: hard - -"he@npm:1.1.1": - version: 1.1.1 - resolution: "he@npm:1.1.1" - bin: - he: bin/he - checksum: 3cf48cb072e58922c76832a34b0789a86acf27c4c492cb2934ce71a7709c136fafb6762cca0eb24e8fef6e936b29c3e8ee07769f4513e2aa937735324483dedb - languageName: node - linkType: hard - -"he@npm:1.2.0, he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 - languageName: node - linkType: hard - -"header-case@npm:^2.0.4": - version: 2.0.4 - resolution: "header-case@npm:2.0.4" - dependencies: - capital-case: "npm:^1.0.4" - tslib: "npm:^2.0.3" - checksum: c9f295d9d8e38fa50679281fd70d80726962256e888a76c8e72e526453da7a1832dcb427caa716c1ad5d79841d4537301b90156fa30298fefd3d68f4ea2181bb - languageName: node - linkType: hard - -"heap@npm:0.2.6": - version: 0.2.6 - resolution: "heap@npm:0.2.6" - checksum: 8c1b74c2c538478105a2bad1d7983393cc24ea3f9822c89d6b4e9d14536b3bc4885d187962512c03e8f98b6a313fa58a12cf551a130457e768bfa38045f6e31a - languageName: node - linkType: hard - -"heap@npm:>= 0.2.0": - version: 0.2.7 - resolution: "heap@npm:0.2.7" - checksum: 341c5d51ae13dc8346c371a8a69c57c972fcb9a3233090d3dd5ba29d483d6b5b4e75492443cbfeacd46608bb30e6680f646ffb7a6205900221735587d07a79b6 - languageName: node - linkType: hard - -"helmet@npm:5.0.2": - version: 5.0.2 - resolution: "helmet@npm:5.0.2" - checksum: a01f64445f535e25b9b38d1b76da87cfebcf218ac558fe832112900d0c5f451384a40350330fa2a49e6c3d6d15a4b02e7d5ee04b9aa2663e3e65b19a5df80e39 - languageName: node - linkType: hard - -"helmet@npm:7.0.0": - version: 7.0.0 - resolution: "helmet@npm:7.0.0" - checksum: ec5b4923f9d3e77cb67438c4b49c14151c3fe19e45e17eaf6e2a37290d552dc8124fdd2ee14b2abdb6ba837c1eab1212a3e93f5f1dc037454c3684871b0025e3 - languageName: node - linkType: hard - -"hmac-drbg@npm:^1.0.1": - version: 1.0.1 - resolution: "hmac-drbg@npm:1.0.1" - dependencies: - hash.js: "npm:^1.0.3" - minimalistic-assert: "npm:^1.0.0" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d - languageName: node - linkType: hard - -"home-or-tmp@npm:^2.0.0": - version: 2.0.0 - resolution: "home-or-tmp@npm:2.0.0" - dependencies: - os-homedir: "npm:^1.0.0" - os-tmpdir: "npm:^1.0.1" - checksum: a0e0d26db09dc0b3245f52a9159d3e970e628ddc22d69842e8413ea42f81d5a29c3808f9b08ea4d48db084e4e693193cc238c114775aa92d753bf95a9daa10fb - languageName: node - linkType: hard - -"homedir-polyfill@npm:^1.0.1": - version: 1.0.3 - resolution: "homedir-polyfill@npm:1.0.3" - dependencies: - parse-passwd: "npm:^1.0.0" - checksum: 3c099844f94b8b438f124bd5698bdcfef32b2d455115fb8050d7148e7f7b95fc89ba9922586c491f0e1cdebf437b1053c84ecddb8d596e109e9ac69c5b4a9e27 - languageName: node - linkType: hard - -"hosted-git-info@npm:^2.1.4, hosted-git-info@npm:^2.6.0": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: 317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 - languageName: node - linkType: hard - -"hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" - dependencies: - lru-cache: "npm:^6.0.0" - checksum: 150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07 - languageName: node - linkType: hard - -"hotscript@npm:^1.0.11": - version: 1.0.13 - resolution: "hotscript@npm:1.0.13" - checksum: 423ea2aa437befeeffc32ea5a364b0d833f442fecdd7531c6fe8dc3df092c58d31145f757ad505ec7629ce4bb0eb8ff58889c8a58fe36312f975ff682f5cd422 - languageName: node - linkType: hard - -"http-basic@npm:^8.1.1": - version: 8.1.3 - resolution: "http-basic@npm:8.1.3" - dependencies: - caseless: "npm:^0.12.0" - concat-stream: "npm:^1.6.2" - http-response-object: "npm:^3.0.1" - parse-cache-control: "npm:^1.0.1" - checksum: dbc67b943067db7f43d1dd94539f874e6b78614227491c0a5c0acb9b0490467a4ec97247da21eb198f8968a5dc4089160165cb0103045cadb9b47bb844739752 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc - languageName: node - linkType: hard - -"http-errors@npm:1.8.1": - version: 1.8.1 - resolution: "http-errors@npm:1.8.1" - dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:>= 1.5.0 < 2" - toidentifier: "npm:1.0.1" - checksum: f01aeecd76260a6fe7f08e192fcbe9b2f39ed20fc717b852669a69930167053b01790998275c6297d44f435cf0e30edd50c05223d1bec9bc484e6cf35b2d6f43 - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - -"http-https@npm:^1.0.0": - version: 1.0.0 - resolution: "http-https@npm:1.0.0" - checksum: ffdec0da28627110d1dd9fbe3f9d0b61b1876c3c856d460c532b69fc0536adba0e032cd7acafad82fcb970ae9c5b34ae8340ef17aa422124b56c27f4da8fc74a - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 - languageName: node - linkType: hard - -"http-response-object@npm:^3.0.1": - version: 3.0.2 - resolution: "http-response-object@npm:3.0.2" - dependencies: - "@types/node": "npm:^10.0.3" - checksum: f161db99184087798563cb14c48a67eebe9405668a5ed2341faf85d3079a2c00262431df8e0ccbe274dc6415b6729179f12b09f875d13ad33d83401e4b1ed22e - languageName: node - linkType: hard - -"http-signature@npm:~1.2.0": - version: 1.2.0 - resolution: "http-signature@npm:1.2.0" - dependencies: - assert-plus: "npm:^1.0.0" - jsprim: "npm:^1.2.2" - sshpk: "npm:^1.7.0" - checksum: 582f7af7f354429e1fb19b3bbb9d35520843c69bb30a25b88ca3c5c2c10715f20ae7924e20cffbed220b1d3a726ef4fe8ccc48568d5744db87be9a79887d6733 - languageName: node - linkType: hard - -"http2-wrapper@npm:^1.0.0-beta.5.2": - version: 1.0.3 - resolution: "http2-wrapper@npm:1.0.3" - dependencies: - quick-lru: "npm:^5.1.1" - resolve-alpn: "npm:^1.0.0" - checksum: 6a9b72a033e9812e1476b9d776ce2f387bc94bc46c88aea0d5dab6bd47d0a539b8178830e77054dd26d1142c866d515a28a4dc7c3ff4232c88ff2ebe4f5d12d1 - languageName: node - linkType: hard - -"http2-wrapper@npm:^2.1.10": - version: 2.2.1 - resolution: "http2-wrapper@npm:2.2.1" - dependencies: - quick-lru: "npm:^5.1.1" - resolve-alpn: "npm:^1.2.0" - checksum: 7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.4 - resolution: "https-proxy-agent@npm:7.0.4" - dependencies: - agent-base: "npm:^7.0.2" - debug: "npm:4" - checksum: bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b - languageName: node - linkType: hard - -"human-id@npm:^1.0.2": - version: 1.0.2 - resolution: "human-id@npm:1.0.2" - checksum: e4c3be49b3927ff8ac54ae4a95ed77ad94fd793b57be51aff39aa81931c6efe56303ce1ec76a70c74f85748644207c89ccfa63d828def1313eff7526a14c3b3b - languageName: node - linkType: hard - -"human-signals@npm:^1.1.1": - version: 1.1.1 - resolution: "human-signals@npm:1.1.1" - checksum: 18810ed239a7a5e23fb6c32d0fd4be75d7cd337a07ad59b8dbf0794cb0761e6e628349ee04c409e605fe55344716eab5d0a47a62ba2a2d0d367c89a2b4247b1e - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: 695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a - languageName: node - linkType: hard - -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 - languageName: node - linkType: hard - -"husky@npm:^7.0.4": - version: 7.0.4 - resolution: "husky@npm:7.0.4" - bin: - husky: lib/bin.js - checksum: aacb2b8fbfed0ec161f94e9b08d422c51fec073def4e165e57da42f47c10f520a5f0a88b42efc667784e314a1af83cf1994b582cd6f4b0333739921a601c6187 - languageName: node - linkType: hard - -"husky@npm:^8.0.3": - version: 8.0.3 - resolution: "husky@npm:8.0.3" - bin: - husky: lib/bin.js - checksum: 6722591771c657b91a1abb082e07f6547eca79144d678e586828ae806499d90dce2a6aee08b66183fd8b085f19d20e0990a2ad396961746b4c8bd5bdb619d668 - languageName: node - linkType: hard - -"hyperlinker@npm:^1.0.0": - version: 1.0.0 - resolution: "hyperlinker@npm:1.0.0" - checksum: 7b980f51611fb5efb62ad5aa3a8af9305b7fb0c203eb9d8915e24e96cdb43c5a4121e2d461bfd74cf47d4e01e39ce473700ea0e2353cb1f71758f94be37a44b0 - languageName: node - linkType: hard - -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"idna-uts46-hx@npm:^2.3.1": - version: 2.3.1 - resolution: "idna-uts46-hx@npm:2.3.1" - dependencies: - punycode: "npm:2.1.0" - checksum: e38d4684ca64449560bda9efc84554c7802a0a732a73c9eb89b561d970c26e431b1975264860c98c921da2126726ebd8ae8752099e9ea55914d0b5abcc950121 - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb - languageName: node - linkType: hard - -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd - languageName: node - linkType: hard - -"immediate@npm:^3.2.3": - version: 3.3.0 - resolution: "immediate@npm:3.3.0" - checksum: 40eab095d5944ad79af054700beee97000271fde8743720932d8eb41ccbf2cb8c855ff95b128cf9a7fec523a4f11ee2e392b9f2fa6456b055b1160f1b4ad3e3b - languageName: node - linkType: hard - -"immediate@npm:~3.0.5": - version: 3.0.6 - resolution: "immediate@npm:3.0.6" - checksum: f8ba7ede69bee9260241ad078d2d535848745ff5f6995c7c7cb41cfdc9ccc213f66e10fa5afb881f90298b24a3f7344b637b592beb4f54e582770cdce3f1f039 - languageName: node - linkType: hard - -"immediate@npm:~3.2.3": - version: 3.2.3 - resolution: "immediate@npm:3.2.3" - checksum: e2affb7f1a1335a3d0404073bcec5e6b09cdd15f0a4ec82b9a0f0496add2e0b020843123c021238934c3eac8792f8d48f523c48e7c3c0cd45b540dc9d149adae - languageName: node - linkType: hard - -"immer@npm:10.0.2": - version: 10.0.2 - resolution: "immer@npm:10.0.2" - checksum: b6c23538cd174a4cadd6f8d92bf0245e2c2a7bdabbd3200a08f1e99bb52e463fb552bb2d025ddd45f4e335390f8bd307e2c813e54a004dd651fe1ec161674e42 - languageName: node - linkType: hard - -"immutable@npm:^4.0.0-rc.12": - version: 4.3.6 - resolution: "immutable@npm:4.3.6" - checksum: 7d0952a768b4fadcee47230ed86dc9505a4517095eceaf5a47e65288571c42400c6e4a2ae21eca4eda957cb7bc50720213135b62cf6a181639111f8acae128c3 - languageName: node - linkType: hard - -"immutable@npm:~3.7.6": - version: 3.7.6 - resolution: "immutable@npm:3.7.6" - checksum: efe2bbb2620aa897afbb79545b9eda4dd3dc072e05ae7004895a7efb43187e4265612a88f8723f391eb1c87c46c52fd11e2d1968e42404450c63e49558d7ca4e - languageName: node - linkType: hard - -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 - languageName: node - linkType: hard - -"import-from@npm:4.0.0": - version: 4.0.0 - resolution: "import-from@npm:4.0.0" - checksum: 7fd98650d555e418c18341fef49ae11afc833f5ae70b7043e99684187cba6ac6b52e4118a491bd9f856045495bef5bdda7321095e65bcb2ef70ce2adf9f0d8d1 - languageName: node - linkType: hard - -"imul@npm:^1.0.0": - version: 1.0.1 - resolution: "imul@npm:1.0.1" - checksum: d564c45a5017f01f965509ef409fad8175749bc96a52a95e1a09f05378d135fb37051cea7194d0eeca5147541d8e80d68853f5f681eef05f9f14f1d551edae2f - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f - languageName: node - linkType: hard - -"inflection@npm:^1.13.2, inflection@npm:^1.13.4": - version: 1.13.4 - resolution: "inflection@npm:1.13.4" - checksum: 4c579b9ca0079d3f1ae5bca106f009553db3178e5ca46ff6872b270c07fa0a826787be6c50367a2186a578bc9a321d3071fcb5d8ca6d0c63eb8ecbb34f4fdee2 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - -"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a - languageName: node - linkType: hard - -"inquirer@npm:8.0.0": - version: 8.0.0 - resolution: "inquirer@npm:8.0.0" - dependencies: - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-width: "npm:^3.0.0" - external-editor: "npm:^3.0.3" - figures: "npm:^3.0.0" - lodash: "npm:^4.17.21" - mute-stream: "npm:0.0.8" - run-async: "npm:^2.4.0" - rxjs: "npm:^6.6.6" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - through: "npm:^2.3.6" - checksum: b3fc16ed90bfc073fd5af64e150de67188ab321998a8f65eca682d127287c919e22c701a3c4546e2e224a1c2ac490cf3c1788a92d29505813d2ebe3b9d6a03be - languageName: node - linkType: hard - -"inquirer@npm:^8.0.0": - version: 8.2.6 - resolution: "inquirer@npm:8.2.6" - dependencies: - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.1.1" - cli-cursor: "npm:^3.1.0" - cli-width: "npm:^3.0.0" - external-editor: "npm:^3.0.3" - figures: "npm:^3.0.0" - lodash: "npm:^4.17.21" - mute-stream: "npm:0.0.8" - ora: "npm:^5.4.1" - run-async: "npm:^2.4.0" - rxjs: "npm:^7.5.5" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - through: "npm:^2.3.6" - wrap-ansi: "npm:^6.0.1" - checksum: eb5724de1778265323f3a68c80acfa899378cb43c24cdcb58661386500e5696b6b0b6c700e046b7aa767fe7b4823c6f04e6ddc268173e3f84116112529016296 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c - languageName: node - linkType: hard - -"interpret@npm:^1.0.0": - version: 1.4.0 - resolution: "interpret@npm:1.4.0" - checksum: 08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450 - languageName: node - linkType: hard - -"invariant@npm:^2.2.2, invariant@npm:^2.2.4": - version: 2.2.4 - resolution: "invariant@npm:2.2.4" - dependencies: - loose-envify: "npm:^1.0.0" - checksum: 5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc - languageName: node - linkType: hard - -"invert-kv@npm:^1.0.0": - version: 1.0.0 - resolution: "invert-kv@npm:1.0.0" - checksum: 9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b - languageName: node - linkType: hard - -"io-ts@npm:1.10.4": - version: 1.10.4 - resolution: "io-ts@npm:1.10.4" - dependencies: - fp-ts: "npm:^1.0.0" - checksum: 9370988a7e17fc23c194115808168ccd1ccf7b7ebe92c39c1cc2fd91c1dc641552a5428bb04fe28c01c826fa4f230e856eb4f7d27c774a1400af3fecf2936ab5 - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: "npm:1.1.0" - sprintf-js: "npm:^1.1.3" - checksum: 331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc - languageName: node - linkType: hard - -"ip-regex@npm:^4.0.0": - version: 4.3.0 - resolution: "ip-regex@npm:4.3.0" - checksum: f9ef1f5d0df05b9133a882974e572ae525ccd205260cb103dae337f1fc7451ed783391acc6ad688e56dd2598f769e8e72ecbb650ec34763396af822a91768562 - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: 0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a - languageName: node - linkType: hard - -"ipfs-core-utils@npm:^0.4.0": - version: 0.4.0 - resolution: "ipfs-core-utils@npm:0.4.0" - dependencies: - blob-to-it: "npm:0.0.2" - browser-readablestream-to-it: "npm:0.0.2" - cids: "npm:^1.0.0" - err-code: "npm:^2.0.0" - ipfs-utils: "npm:^3.0.0" - it-all: "npm:^1.0.1" - it-map: "npm:^1.0.2" - it-peekable: "npm:0.0.1" - uint8arrays: "npm:^1.1.0" - checksum: 4953b41d47fd328526cbfbde49f1a7d287dc7b5348ea7215bb3ae4fe4dc24f6659b0b61eb068f70bbc8f724bc72439e0f9ddea29eca925b10a7d50e5f682f5a7 - languageName: node - linkType: hard - -"ipfs-http-client@npm:47.0.1": - version: 47.0.1 - resolution: "ipfs-http-client@npm:47.0.1" - dependencies: - abort-controller: "npm:^3.0.0" - any-signal: "npm:^1.1.0" - bignumber.js: "npm:^9.0.0" - cids: "npm:^1.0.0" - debug: "npm:^4.1.0" - form-data: "npm:^3.0.0" - ipfs-core-utils: "npm:^0.4.0" - ipfs-utils: "npm:^3.0.0" - ipld-block: "npm:^0.10.0" - ipld-dag-cbor: "npm:^0.17.0" - ipld-dag-pb: "npm:^0.20.0" - ipld-raw: "npm:^6.0.0" - iso-url: "npm:^0.4.7" - it-last: "npm:^1.0.2" - it-map: "npm:^1.0.2" - it-tar: "npm:^1.2.2" - it-to-buffer: "npm:^1.0.0" - it-to-stream: "npm:^0.1.1" - merge-options: "npm:^2.0.0" - multiaddr: "npm:^8.0.0" - multiaddr-to-uri: "npm:^6.0.0" - multibase: "npm:^3.0.0" - multicodec: "npm:^2.0.0" - multihashes: "npm:^3.0.1" - nanoid: "npm:^3.0.2" - node-fetch: "npm:^2.6.0" - parse-duration: "npm:^0.4.4" - stream-to-it: "npm:^0.2.1" - uint8arrays: "npm:^1.1.0" - checksum: d6f8ef985d80c705ccfc3482d0b731a8fce12b35b9ebcd0da7930a220912a81675e6a6abfb3823afe31a8e41f85425ad3f3b070ed4ac8c6c30fadb503f3112fe - languageName: node - linkType: hard - -"ipfs-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "ipfs-utils@npm:3.0.0" - dependencies: - abort-controller: "npm:^3.0.0" - any-signal: "npm:^1.1.0" - buffer: "npm:^5.6.0" - err-code: "npm:^2.0.0" - fs-extra: "npm:^9.0.1" - is-electron: "npm:^2.2.0" - iso-url: "npm:^0.4.7" - it-glob: "npm:0.0.8" - merge-options: "npm:^2.0.0" - nanoid: "npm:^3.1.3" - node-fetch: "npm:^2.6.0" - stream-to-it: "npm:^0.2.0" - checksum: 26acd41142789d1c4017efe67337949681718cb6317f912552df525906a952f6c8e550932def8480babddbaf3bbb86fb8e4f6e5f601c156e561e67724106761c - languageName: node - linkType: hard - -"ipld-block@npm:^0.10.0": - version: 0.10.1 - resolution: "ipld-block@npm:0.10.1" - dependencies: - cids: "npm:^1.0.0" - class-is: "npm:^1.1.0" - checksum: 8c0a55ed8f88c5703ffbd0356ad4ce7f2e0882d5fe71fe3922c6f4d3f36d47ad0d23642eb96491d653dca19572d07f16596f39b40bd8fda44f45dd4dc9a3fe20 - languageName: node - linkType: hard - -"ipld-dag-cbor@npm:^0.17.0": - version: 0.17.1 - resolution: "ipld-dag-cbor@npm:0.17.1" - dependencies: - borc: "npm:^2.1.2" - cids: "npm:^1.0.0" - is-circular: "npm:^1.0.2" - multicodec: "npm:^3.0.1" - multihashing-async: "npm:^2.0.0" - uint8arrays: "npm:^2.1.3" - checksum: 600decceb762b88bdf7400af914c32ad11afd8cfa6f1f3c68cc6dedf81fcb5fc6e9c7581f410bbe231e7ae4fba1d544bb53b12ef50799f635746f13c242cabae - languageName: node - linkType: hard - -"ipld-dag-pb@npm:^0.20.0": - version: 0.20.0 - resolution: "ipld-dag-pb@npm:0.20.0" - dependencies: - cids: "npm:^1.0.0" - class-is: "npm:^1.1.0" - multicodec: "npm:^2.0.0" - multihashing-async: "npm:^2.0.0" - protons: "npm:^2.0.0" - reset: "npm:^0.1.0" - run: "npm:^1.4.0" - stable: "npm:^0.1.8" - uint8arrays: "npm:^1.0.0" - checksum: 3dc6431e252d36310bd9e07a6082c5bf3ac341c0f9ead51caf44f106e51234342d6b35704044556f80ed9e2f863146b9cff08af0f804ed57132f5f5aa82d9ffd - languageName: node - linkType: hard - -"ipld-raw@npm:^6.0.0": - version: 6.0.0 - resolution: "ipld-raw@npm:6.0.0" - dependencies: - cids: "npm:^1.0.0" - multicodec: "npm:^2.0.0" - multihashing-async: "npm:^2.0.0" - checksum: af91bc865f6fba11bf4ed145a29ed0156f4acd71e39fb25cdb0c5fcb761d47ee68e39ff0fb254f939f125fc2dc9eee22dc943e95c44d154b674d4fb5295ecfce - languageName: node - linkType: hard - -"is-absolute@npm:^1.0.0": - version: 1.0.0 - resolution: "is-absolute@npm:1.0.0" - dependencies: - is-relative: "npm:^1.0.0" - is-windows: "npm:^1.0.1" - checksum: 422302ce879d4f3ca6848499b6f3ddcc8fd2dc9f3e9cad3f6bcedff58cdfbbbd7f4c28600fffa7c59a858f1b15c27fb6cfe1d5275e58a36d2bf098a44ef5abc4 - languageName: node - linkType: hard - -"is-accessor-descriptor@npm:^1.0.1": - version: 1.0.1 - resolution: "is-accessor-descriptor@npm:1.0.1" - dependencies: - hasown: "npm:^2.0.0" - checksum: d034034074c5ffeb6c868e091083182279db1a956f49f8d1494cecaa0f8b99d706556ded2a9b20d9aa290549106eef8204d67d8572902e06dcb1add6db6b524d - languageName: node - linkType: hard - -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 5ff1f341ee4475350adfc14b2328b38962564b7c2076be2f5bac7bd9b61779efba99b9f844a7b82ba7654adccf8e8eb19d1bb0cc6d1c1a085e498f6793d4328f - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.3.1": - version: 0.3.2 - resolution: "is-arrayish@npm:0.3.2" - checksum: f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54 - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: "npm:^1.0.1" - checksum: eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696 - languageName: node - linkType: hard - -"is-binary-path@npm:^1.0.0": - version: 1.0.1 - resolution: "is-binary-path@npm:1.0.1" - dependencies: - binary-extensions: "npm:^1.0.0" - checksum: 16e456fa3782eaf3d8e28d382b750507e3d54ff6694df8a1b2c6498da321e2ead311de9c42e653d8fb3213de72bac204b5f97e4a110cda8a72f17b1c1b4eb643 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7 - languageName: node - linkType: hard - -"is-buffer@npm:^1.1.5": - version: 1.1.6 - resolution: "is-buffer@npm:1.1.6" - checksum: ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234 - languageName: node - linkType: hard - -"is-buffer@npm:^2.0.5": - version: 2.0.5 - resolution: "is-buffer@npm:2.0.5" - checksum: e603f6fced83cf94c53399cff3bda1a9f08e391b872b64a73793b0928be3e5f047f2bcece230edb7632eaea2acdbfcb56c23b33d8a20c820023b230f1485679a - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f - languageName: node - linkType: hard - -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: "npm:^2.0.0" - bin: - is-ci: bin.js - checksum: 17de4e2cd8f993c56c86472dd53dd9e2c7f126d0ee55afe610557046cdd64de0e8feadbad476edc9eeff63b060523b8673d9094ed2ab294b59efb5a66dd05a9a - languageName: node - linkType: hard - -"is-circular@npm:^1.0.2": - version: 1.0.2 - resolution: "is-circular@npm:1.0.2" - checksum: d78a71dadb1f7c2857112fec850d0c6c050e8405167c7e0b0303554c1f39ea04c2a473372028333767f85b80293a6337977a98b0bdc11388ec13e7bed8617163 - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: "npm:^2.0.0" - checksum: 2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 - languageName: node - linkType: hard - -"is-data-descriptor@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-descriptor@npm:1.0.1" - dependencies: - hasown: "npm:^2.0.0" - checksum: ad3acc372e3227f87eb8cdba112c343ca2a67f1885aecf64f02f901cb0858a1fc9488ad42135ab102e9d9e71a62b3594740790bb103a9ba5da830a131a89e3e8 - languageName: node - linkType: hard - -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" - dependencies: - is-typed-array: "npm:^1.1.13" - checksum: a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e - languageName: node - linkType: hard - -"is-descriptor@npm:^0.1.0": - version: 0.1.7 - resolution: "is-descriptor@npm:0.1.7" - dependencies: - is-accessor-descriptor: "npm:^1.0.1" - is-data-descriptor: "npm:^1.0.1" - checksum: f5960b9783f508aec570465288cb673d4b3cc4aae4e6de970c3afd9a8fc1351edcb85d78b2cce2ec5251893a423f73263cab3bb94cf365a8d71b5d510a116392 - languageName: node - linkType: hard - -"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": - version: 1.0.3 - resolution: "is-descriptor@npm:1.0.3" - dependencies: - is-accessor-descriptor: "npm:^1.0.1" - is-data-descriptor: "npm:^1.0.1" - checksum: b4ee667ea787d3a0be4e58536087fd0587de2b0b6672fbfe288f5b8d831ac4b79fd987f31d6c2d4e5543a42c97a87428bc5215ce292a1a47070147793878226f - languageName: node - linkType: hard - -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc - languageName: node - linkType: hard - -"is-dotfile@npm:^1.0.0": - version: 1.0.3 - resolution: "is-dotfile@npm:1.0.3" - checksum: aa6bb345aa06555f46eedd491bdd039b95d3fa80b899ee7d6b30628e309d705d403e445fd8a126ff70962adc1252171dbe0d72884afa323fb3c817387faf10ed - languageName: node - linkType: hard - -"is-electron@npm:^2.2.0": - version: 2.2.2 - resolution: "is-electron@npm:2.2.2" - checksum: 327bb373f7be01b16cdff3998b5ddaa87d28f576092affaa7fe0659571b3306fdd458afbf0683a66841e7999af13f46ad0e1b51647b469526cd05a4dd736438a - languageName: node - linkType: hard - -"is-equal-shallow@npm:^0.1.3": - version: 0.1.3 - resolution: "is-equal-shallow@npm:0.1.3" - dependencies: - is-primitive: "npm:^2.0.0" - checksum: ae623698cdfeeec0688b2e6128d76cabe1cc5957d533bf7f7596caf3f2993d4c50a20c97420e60a0d58745fc4b2709dfb62e653e054cf948c5834615b715f05f - languageName: node - linkType: hard - -"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": - version: 0.1.1 - resolution: "is-extendable@npm:0.1.1" - checksum: dd5ca3994a28e1740d1e25192e66eed128e0b2ff161a7ea348e87ae4f616554b486854de423877a2a2c171d5f7cd6e8093b91f54533bc88a59ee1c9838c43879 - languageName: node - linkType: hard - -"is-extendable@npm:^1.0.1": - version: 1.0.1 - resolution: "is-extendable@npm:1.0.1" - dependencies: - is-plain-object: "npm:^2.0.4" - checksum: 1d6678a5be1563db6ecb121331c819c38059703f0179f52aa80c242c223ee9c6b66470286636c0e63d7163e4d905c0a7d82a096e0b5eaeabb51b9f8d0af0d73f - languageName: node - linkType: hard - -"is-extglob@npm:^1.0.0": - version: 1.0.0 - resolution: "is-extglob@npm:1.0.0" - checksum: 1ce5366d19958f36069a45ca996c1e51ab607f42a01eb0505f0ccffe8f9c91f5bcba6e971605efd8b4d4dfd0111afa3c8df3e1746db5b85b9a8f933f5e7286b7 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - -"is-finite@npm:^1.0.0": - version: 1.1.0 - resolution: "is-finite@npm:1.1.0" - checksum: ca6bc7a0321b339f098e657bd4cbf4bb2410f5a11f1b9adb1a1a9ab72288b64368e8251326cb1f74e985f2779299cec3e1f1e558b68ce7e1e2c9be17b7cfd626 - languageName: node - linkType: hard - -"is-fn@npm:^1.0.0": - version: 1.0.0 - resolution: "is-fn@npm:1.0.0" - checksum: 0b4a3a9f71717d0cde510594c1bc3df31156ea4ac90f1f8d144ce6f97b30ce1c0ce6a99e32c97b63855c738973ea684ebd39b6baade3724e88e5bae909af448e - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^1.0.0": - version: 1.0.0 - resolution: "is-fullwidth-code-point@npm:1.0.0" - dependencies: - number-is-nan: "npm:^1.0.0" - checksum: 12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: df2a717e813567db0f659c306d61f2f804d480752526886954a2a3e2246c7745fd07a52b5fecf2b68caf0a6c79dcdace6166fdf29cc76ed9975cc334f0a018b8 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0": - version: 5.0.0 - resolution: "is-fullwidth-code-point@npm:5.0.0" - dependencies: - get-east-asian-width: "npm:^1.0.0" - checksum: cd591b27d43d76b05fa65ed03eddce57a16e1eca0b7797ff7255de97019bcaf0219acfc0c4f7af13319e13541f2a53c0ace476f442b13267b9a6a7568f2b65c8 - languageName: node - linkType: hard - -"is-function@npm:^1.0.1": - version: 1.0.2 - resolution: "is-function@npm:1.0.2" - checksum: c55289042a0e828a773f1245e2652e0c029efacc78ebe03e61787746fda74e2c41006cd908f20b53c36e45f9e75464475a4b2d68b17f4c7b9f8018bcaec42f9e - languageName: node - linkType: hard - -"is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b - languageName: node - linkType: hard - -"is-glob@npm:^2.0.0, is-glob@npm:^2.0.1": - version: 2.0.1 - resolution: "is-glob@npm:2.0.1" - dependencies: - is-extglob: "npm:^1.0.0" - checksum: ef156806af0924983325c9218a8b8a838fa50e1a104ed2a11fe94829a5b27c1b05a4c8cf98d96cb3a7fea539c21f14ae2081e1a248f3d5a9eea62f2d4e9f8b0c - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - -"is-hex-prefixed@npm:1.0.0": - version: 1.0.0 - resolution: "is-hex-prefixed@npm:1.0.0" - checksum: 767fa481020ae654ab085ca24c63c518705ff36fdfbfc732292dc69092c6f8fdc551f6ce8c5f6ae704b0a19294e6f62be1b4b9859f0e1ac76e3b1b0733599d94 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: dd47904dbf286cd20aa58c5192161be1a67138485b9836d5a70433b21a45442e9611b8498b8ab1f839fc962c7620667a50535fdfb4a6bc7989b8858645c06b4d - languageName: node - linkType: hard - -"is-ip@npm:^3.1.0": - version: 3.1.0 - resolution: "is-ip@npm:3.1.0" - dependencies: - ip-regex: "npm:^4.0.0" - checksum: 4cb643c831314b8fc72770c93a795c0d3dde339f36c8430544c36727956027e2cb329641ace73c5951085ecf93ac608c898859d3d4f7b117d405e1e13c703c76 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d - languageName: node - linkType: hard - -"is-lower-case@npm:^2.0.2": - version: 2.0.2 - resolution: "is-lower-case@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: c045e6a52dcc7c3857e2f8c850ded604cdc5269ff94625b03881cefc73bfc02f5099a1bc9bafa67793656711a40d4ab3e26e285a848e728506df20ead0ce8e2f - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b - languageName: node - linkType: hard - -"is-number@npm:^2.1.0": - version: 2.1.0 - resolution: "is-number@npm:2.1.0" - dependencies: - kind-of: "npm:^3.0.2" - checksum: f9d2079a0dbfbce6f9f3b6644f6eb60d0211ee56bb26db3963ef4d514e2444f87e3f56c8169896c90544c501ed5e510c5b83abae6748a57d15f6ac8d85efd602 - languageName: node - linkType: hard - -"is-number@npm:^3.0.0": - version: 3.0.0 - resolution: "is-number@npm:3.0.0" - dependencies: - kind-of: "npm:^3.0.2" - checksum: e639c54640b7f029623df24d3d103901e322c0c25ea5bde97cd723c2d0d4c05857a8364ab5c58d963089dbed6bf1d0ffe975cb6aef917e2ad0ccbca653d31b4f - languageName: node - linkType: hard - -"is-number@npm:^4.0.0": - version: 4.0.0 - resolution: "is-number@npm:4.0.0" - checksum: bb17a331f357eb59a7f8db848086c41886715b2ea1db03f284a99d14001cda094083a5b6a7b343b5bcf410ccef668a70bc626d07bc2032cc4ab46dd264cea244 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 - languageName: node - linkType: hard - -"is-obj@npm:^1.0.1": - version: 1.0.1 - resolution: "is-obj@npm:1.0.1" - checksum: 5003acba0af7aa47dfe0760e545a89bbac89af37c12092c3efadc755372cdaec034f130e7a3653a59eb3c1843cfc72ca71eaf1a6c3bafe5a0bab3611a47f9945 - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: 85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - -"is-plain-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "is-plain-obj@npm:1.1.0" - checksum: daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c - languageName: node - linkType: hard - -"is-plain-obj@npm:^2.0.0, is-plain-obj@npm:^2.1.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: e5c9814cdaa627a9ad0a0964ded0e0491bfd9ace405c49a5d63c88b30a162f1512c069d5b80997893c4d0181eadc3fed02b4ab4b81059aba5620bfcdfdeb9c53 - languageName: node - linkType: hard - -"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": - version: 2.0.4 - resolution: "is-plain-object@npm:2.0.4" - dependencies: - isobject: "npm:^3.0.1" - checksum: f050fdd5203d9c81e8c4df1b3ff461c4bc64e8b5ca383bcdde46131361d0a678e80bcf00b5257646f6c636197629644d53bd8e2375aea633de09a82d57e942f4 - languageName: node - linkType: hard - -"is-posix-bracket@npm:^0.1.0": - version: 0.1.1 - resolution: "is-posix-bracket@npm:0.1.1" - checksum: 13ef3f466700fd63c1c348e647edfa22b73bb89cf8d993fb7820824ea2ddc7119975e64861fe1d52c3c4e881a7dcf2538faa05e3f700e9d2ea56eeeb4ba26a25 - languageName: node - linkType: hard - -"is-primitive@npm:^2.0.0": - version: 2.0.0 - resolution: "is-primitive@npm:2.0.0" - checksum: bb84a2f05eca29f560aafc3bca9173e4c06d74dc24a6fc7faee6e61c70a00bae95e08f0d3d217d61e646b521378d4326103d124bb469d1de0240c8722b56a3fd - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4, is-regex@npm:~1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1 - languageName: node - linkType: hard - -"is-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "is-regexp@npm:1.0.0" - checksum: 34cacda1901e00f6e44879378f1d2fa96320ea956c1bec27713130aaf1d44f6e7bd963eed28945bfe37e600cb27df1cf5207302680dad8bdd27b9baff8ecf611 - languageName: node - linkType: hard - -"is-relative@npm:^1.0.0": - version: 1.0.0 - resolution: "is-relative@npm:1.0.0" - dependencies: - is-unc-path: "npm:^1.0.0" - checksum: 61157c4be8594dd25ac6f0ef29b1218c36667259ea26698367a4d9f39ff9018368bc365c490b3c79be92dfb1e389e43c4b865c95709e7b3bc72c5932f751fb60 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 - languageName: node - linkType: hard - -"is-stream@npm:^1.0.1, is-stream@npm:^1.1.0": - version: 1.1.0 - resolution: "is-stream@npm:1.1.0" - checksum: b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002 - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: 7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 - languageName: node - linkType: hard - -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6 - languageName: node - linkType: hard - -"is-subdir@npm:^1.1.1": - version: 1.2.0 - resolution: "is-subdir@npm:1.2.0" - dependencies: - better-path-resolve: "npm:1.0.0" - checksum: 03a03ee2ee6578ce589b1cfaf00e65c86b20fd1b82c1660625557c535439a7477cda77e20c62cda6d4c99e7fd908b4619355ae2d989f4a524a35350a44353032 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7 - languageName: node - linkType: hard - -"is-text-path@npm:^1.0.1": - version: 1.0.1 - resolution: "is-text-path@npm:1.0.1" - dependencies: - text-extensions: "npm:^1.0.0" - checksum: 61c8650c29548febb6bf69e9541fc11abbbb087a0568df7bc471ba264e95fb254def4e610631cbab4ddb0a1a07949d06416f4ebeaf37875023fb184cdb87ee84 - languageName: node - linkType: hard - -"is-text-path@npm:^2.0.0": - version: 2.0.0 - resolution: "is-text-path@npm:2.0.0" - dependencies: - text-extensions: "npm:^2.0.0" - checksum: e3c470e1262a3a54aa0fca1c0300b2659a7aed155714be6b643f88822c03bcfa6659b491f7a05c5acd3c1a3d6d42bab47e1bdd35bcc3a25973c4f26b2928bc1a - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: "npm:^1.1.14" - checksum: fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec - languageName: node - linkType: hard - -"is-unc-path@npm:^1.0.0": - version: 1.0.0 - resolution: "is-unc-path@npm:1.0.0" - dependencies: - unc-path-regex: "npm:^0.1.2" - checksum: ac1b78f9b748196e3be3d0e722cd4b0f98639247a130a8f2473a58b29baf63fdb1b1c5a12c830660c5ee6ef0279c5418ca8e346f98cbe1a29e433d7ae531d42e - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: 00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 - languageName: node - linkType: hard - -"is-upper-case@npm:^2.0.2": - version: 2.0.2 - resolution: "is-upper-case@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: 2236f416484a2643d55a07cc95443cecf96cbc5fb0de7f24c506a8bc5cc4c4de885ab56c5ec946eadd95b3b7960bff7ed51cc88511fa8e8a9d92f2f8969622d9 - languageName: node - linkType: hard - -"is-url@npm:^1.2.4": - version: 1.2.4 - resolution: "is-url@npm:1.2.4" - checksum: 0157a79874f8f95fdd63540e3f38c8583c2ef572661cd0693cda80ae3e42dfe8e9a4a972ec1b827f861d9a9acf75b37f7d58a37f94a8a053259642912c252bc3 - languageName: node - linkType: hard - -"is-utf8@npm:^0.2.0": - version: 0.2.1 - resolution: "is-utf8@npm:0.2.1" - checksum: 3ed45e5b4ddfa04ed7e32c63d29c61b980ecd6df74698f45978b8c17a54034943bcbffb6ae243202e799682a66f90fef526f465dd39438745e9fe70794c1ef09 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1 - languageName: node - linkType: hard - -"is-windows@npm:^1.0.0, is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": - version: 1.0.2 - resolution: "is-windows@npm:1.0.2" - checksum: b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 - languageName: node - linkType: hard - -"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: "npm:^2.0.0" - checksum: a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e - languageName: node - linkType: hard - -"isarray@npm:0.0.1": - version: 0.0.1 - resolution: "isarray@npm:0.0.1" - checksum: ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311 - languageName: node - linkType: hard - -"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: 18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: 4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 - languageName: node - linkType: hard - -"iso-constants@npm:^0.1.2": - version: 0.1.2 - resolution: "iso-constants@npm:0.1.2" - checksum: bcf2841199ac6623c1ab59538ca80d81b40d48ea65fe264cf195f7ee3b1a771562f6ce2c0addc3980fad02be660b779c00e48fd81470d8cdebd6e068d96f71f4 - languageName: node - linkType: hard - -"iso-url@npm:^0.4.7, iso-url@npm:~0.4.7": - version: 0.4.7 - resolution: "iso-url@npm:0.4.7" - checksum: 6ab8c38b5f754aded794d71759f748947bff389b87a4ec26e1d3afde12bd7a81a5babcb873754eb64fe37a642c1d00d87bdb0e37077c89ba846ff38ae820af32 - languageName: node - linkType: hard - -"isobject@npm:^2.0.0": - version: 2.1.0 - resolution: "isobject@npm:2.1.0" - dependencies: - isarray: "npm:1.0.0" - checksum: c4cafec73b3b2ee11be75dff8dafd283b5728235ac099b07d7873d5182553a707768e208327bbc12931b9422d8822280bf88d894a0024ff5857b3efefb480e7b - languageName: node - linkType: hard - -"isobject@npm:^3.0.0, isobject@npm:^3.0.1": - version: 3.0.1 - resolution: "isobject@npm:3.0.1" - checksum: 03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db - languageName: node - linkType: hard - -"isomorphic-fetch@npm:^3.0.0": - version: 3.0.0 - resolution: "isomorphic-fetch@npm:3.0.0" - dependencies: - node-fetch: "npm:^2.6.1" - whatwg-fetch: "npm:^3.4.1" - checksum: 511b1135c6d18125a07de661091f5e7403b7640060355d2d704ce081e019bc1862da849482d079ce5e2559b8976d3de7709566063aec1b908369c0b98a2b075b - languageName: node - linkType: hard - -"isomorphic-unfetch@npm:^3.0.0": - version: 3.1.0 - resolution: "isomorphic-unfetch@npm:3.1.0" - dependencies: - node-fetch: "npm:^2.6.1" - unfetch: "npm:^4.2.0" - checksum: d3b61fca06304db692b7f76bdfd3a00f410e42cfa7403c3b250546bf71589d18cf2f355922f57198e4cc4a9872d3647b20397a5c3edf1a347c90d57c83cf2a89 - languageName: node - linkType: hard - -"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": - version: 5.0.0 - resolution: "isomorphic-ws@npm:5.0.0" - peerDependencies: - ws: "*" - checksum: a058ac8b5e6efe9e46252cb0bc67fd325005d7216451d1a51238bc62d7da8486f828ef017df54ddf742e0fffcbe4b1bcc2a66cc115b027ed0180334cd18df252 - languageName: node - linkType: hard - -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f - languageName: node - linkType: hard - -"it-all@npm:^1.0.1": - version: 1.0.6 - resolution: "it-all@npm:1.0.6" - checksum: 366b5f7b9ceda9c1183d6d67c94e9e8216e21d6a037068881941c6e625aa76e47833a82c328263d118c66d5c3fcf3ebb482a38d6cfa8aebe03c56db791a711f6 - languageName: node - linkType: hard - -"it-concat@npm:^1.0.0": - version: 1.0.3 - resolution: "it-concat@npm:1.0.3" - dependencies: - bl: "npm:^4.0.0" - checksum: 604ceae689f9dfbaea2ca985594902b8995d44381d4f254fbcf9cb2499d7b74e45276d1e82a05fe4d71d56c7864f9d5d2306a49fe1a2011bf2eaf52dc9f61354 - languageName: node - linkType: hard - -"it-glob@npm:0.0.8": - version: 0.0.8 - resolution: "it-glob@npm:0.0.8" - dependencies: - fs-extra: "npm:^8.1.0" - minimatch: "npm:^3.0.4" - checksum: be96d3bba8bba23ec078627104610bc479e2327cf7012c45fef90b1dd598b2cfeac88952ce42cf96ad13d6b3a512cc7dc3e65e0d33fe70b5676a8f2b795ce2e1 - languageName: node - linkType: hard - -"it-last@npm:^1.0.2": - version: 1.0.6 - resolution: "it-last@npm:1.0.6" - checksum: 2f8e030e3d05c2388c953aacb30b14e1052547872881cee39182bfb45997c886d75a5507ef6a0ebfca718a4b18192cfd0ee5a9f22b961381794f74407ffad7d3 - languageName: node - linkType: hard - -"it-map@npm:^1.0.2": - version: 1.0.6 - resolution: "it-map@npm:1.0.6" - checksum: bd50936f0534e19cc1110add5150a1791037d2ef56756c1bbb1f3cfbea9d3e143788bef3005481edfadc48364d2139451298ecb139581683c46705efdf8b80a5 - languageName: node - linkType: hard - -"it-peekable@npm:0.0.1": - version: 0.0.1 - resolution: "it-peekable@npm:0.0.1" - checksum: 2b5fd59803460cb12137e6fc1cf34b53af2f4f65722957cda728a3082f25fab83ddc1d237e86f2767d33d937cdb3b507a848829eb02257ec7c8d1d6979ee9bc8 - languageName: node - linkType: hard - -"it-reader@npm:^2.0.0": - version: 2.1.0 - resolution: "it-reader@npm:2.1.0" - dependencies: - bl: "npm:^4.0.0" - checksum: a0e61139cf93bb8b7d45b0e9951e269b7ca3af94004666ab0ce404e228ecdae6fd0c08e44c19673f6c21391c7d5da0a6f78483dafd86a9abc08c7395d4eb5046 - languageName: node - linkType: hard - -"it-tar@npm:^1.2.2": - version: 1.2.2 - resolution: "it-tar@npm:1.2.2" - dependencies: - bl: "npm:^4.0.0" - buffer: "npm:^5.4.3" - iso-constants: "npm:^0.1.2" - it-concat: "npm:^1.0.0" - it-reader: "npm:^2.0.0" - p-defer: "npm:^3.0.0" - checksum: 5e850b6a867b3441d4ec90ad9c9055ad48a4a8a492656e2c7196277cfa84bf5ce635208cc885a21b0504ec97a60cbcada410618fc322447be10857fae0a9bb34 - languageName: node - linkType: hard - -"it-to-buffer@npm:^1.0.0": - version: 1.0.5 - resolution: "it-to-buffer@npm:1.0.5" - dependencies: - buffer: "npm:^5.5.0" - checksum: 308fe4934d523ebd35629eec6c0a1c019f7368fa3abd3f8dfbe8305eee2c51667994f007297a8e13b7cec65c59588844ea96429d39d44e7cd138bf0865cf5090 - languageName: node - linkType: hard - -"it-to-stream@npm:^0.1.1": - version: 0.1.2 - resolution: "it-to-stream@npm:0.1.2" - dependencies: - buffer: "npm:^5.6.0" - fast-fifo: "npm:^1.0.0" - get-iterator: "npm:^1.0.2" - p-defer: "npm:^3.0.0" - p-fifo: "npm:^1.0.0" - readable-stream: "npm:^3.6.0" - checksum: 160ff27a94ddba4df5a7134c191662480dc3cd924c9b666d78ba300bafa77b82881d97609fbdf743a12e1e6a4418b3f67413669ab375354d41035e3a00d328e4 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.6": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 - languageName: node - linkType: hard - -"jiti@npm:^1.19.1": - version: 1.21.0 - resolution: "jiti@npm:1.21.0" - bin: - jiti: bin/jiti.js - checksum: 7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f - languageName: node - linkType: hard - -"js-cookie@npm:^2.2.1": - version: 2.2.1 - resolution: "js-cookie@npm:2.2.1" - checksum: ee67fc0f8495d0800b851910b5eb5bf49d3033adff6493d55b5c097ca6da46f7fe666b10e2ecb13cfcaf5b88d71c205ce00a7e646de791689bfd053bbb36a376 - languageName: node - linkType: hard - -"js-sdsl@npm:^4.1.4": - version: 4.4.2 - resolution: "js-sdsl@npm:4.4.2" - checksum: 50707728fc31642164f4d83c8087f3750aaa99c450b008b19e236a1f190c9e48f9fc799615c341f9ca2c0803b15ab6f48d92a9cc3e6ffd20065cba7d7e742b92 - languageName: node - linkType: hard - -"js-sha3@npm:0.5.7, js-sha3@npm:^0.5.7": - version: 0.5.7 - resolution: "js-sha3@npm:0.5.7" - checksum: 17b17d557f9d594ed36ba6c8cdc234bedd7b74ce4baf171e23a1f16b9a89b1527ae160e4eb1b836520acf5919b00732a22183fb00b7808702c36f646c1e9e973 - languageName: node - linkType: hard - -"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": - version: 0.8.0 - resolution: "js-sha3@npm:0.8.0" - checksum: 43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533 - languageName: node - linkType: hard - -"js-string-escape@npm:^1.0.1": - version: 1.0.1 - resolution: "js-string-escape@npm:1.0.1" - checksum: 2c33b9ff1ba6b84681c51ca0997e7d5a1639813c95d5b61cb7ad47e55cc28fa4a0b1935c3d218710d8e6bcee5d0cd8c44755231e3a4e45fc604534d9595a3628 - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.2": - version: 3.0.2 - resolution: "js-tokens@npm:3.0.2" - checksum: e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba - languageName: node - linkType: hard - -"js-yaml@npm:3.x, js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.0, js-yaml@npm:^3.6.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" - bin: - js-yaml: bin/js-yaml.js - checksum: 6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b - languageName: node - linkType: hard - -"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f - languageName: node - linkType: hard - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 - languageName: node - linkType: hard - -"jsbn@npm:~0.1.0": - version: 0.1.1 - resolution: "jsbn@npm:0.1.1" - checksum: e046e05c59ff880ee4ef68902dbdcb6d2f3c5d60c357d4d68647dc23add556c31c0e5f41bdb7e69e793dd63468bd9e085da3636341048ef577b18f5b713877c0 - languageName: node - linkType: hard - -"jsel@npm:^1.1.6": - version: 1.1.6 - resolution: "jsel@npm:1.1.6" - checksum: de16e6b0f203f4143424dc2298a2aa48482fa880e329d552743dfa81a2dd34f75e6664e1aac768a638bbd48cdd0f8ec58d6a5aae7647b4b946473d6dd2475d19 - languageName: node - linkType: hard - -"jsesc@npm:^1.3.0": - version: 1.3.0 - resolution: "jsesc@npm:1.3.0" - bin: - jsesc: bin/jsesc - checksum: 62420889dd46b4cdba4df20fe6ffdefa6eeab7532fb4079170ea1b53c45d5a6abcb485144905833e5a69cc1735db12319b1e0b0f9a556811ec926b57a22318a7 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: f93792440ae1d80f091b65f8ceddf8e55c4bb7f1a09dee5dcbdb0db5612c55c0f6045625aa6b7e8edb2e0a4feabd80ee48616dbe2d37055573a84db3d24f96d9 - languageName: node - linkType: hard - -"json-bigint-patch@npm:^0.0.8": - version: 0.0.8 - resolution: "json-bigint-patch@npm:0.0.8" - checksum: f2ee19607c4927d1b0f1fda2f3c3cdba1162d1a7f6a40ae5e3e034363cddd437a0ef48d975e1e572dc514a7396ab2247b443113444004f1e64af47ba298687b9 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.0": - version: 3.0.0 - resolution: "json-buffer@npm:3.0.0" - checksum: 118c060d84430a8ad8376d0c60250830f350a6381bd56541a1ef257ce7ba82d109d1f71a4c4e92e0be0e7ab7da568fad8f7bf02905910a76e8e0aa338621b944 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 - languageName: node - linkType: hard - -"json-pointer@npm:0.6.2": - version: 0.6.2 - resolution: "json-pointer@npm:0.6.2" - dependencies: - foreach: "npm:^2.0.4" - checksum: 47f6103032c0340b3392cb650e0ec817f785eccb553407da13fae85bc535483c9b359d7e756de4ed73130172c28d2b02f8beb53a700a98b12e72c7bf70e734b7 - languageName: node - linkType: hard - -"json-rpc-engine@npm:^3.4.0, json-rpc-engine@npm:^3.6.0": - version: 3.8.0 - resolution: "json-rpc-engine@npm:3.8.0" - dependencies: - async: "npm:^2.0.1" - babel-preset-env: "npm:^1.7.0" - babelify: "npm:^7.3.0" - json-rpc-error: "npm:^2.0.0" - promise-to-callback: "npm:^1.0.0" - safe-event-emitter: "npm:^1.0.1" - checksum: 79c864d0224bfe743cdf3ccc2c24147ec802ebb362dc9c1f7a1043b24d13dcceb38ec11c344c57aece9f815675480943ef90d555dd2cf354cdfdb32769592c97 - languageName: node - linkType: hard - -"json-rpc-error@npm:^2.0.0": - version: 2.0.0 - resolution: "json-rpc-error@npm:2.0.0" - dependencies: - inherits: "npm:^2.0.1" - checksum: 0a28e31dacb97ecc3716daf3b1872516de1988fa0d007f8975e4160c2641dad25289f3522acca2c5eea42499b6e853b1569e69e54e7c3320505e3a92e82feddb - languageName: node - linkType: hard - -"json-rpc-random-id@npm:^1.0.0": - version: 1.0.1 - resolution: "json-rpc-random-id@npm:1.0.1" - checksum: 8d4594a3d4ef5f4754336e350291a6677fc6e0d8801ecbb2a1e92e50ca04a4b57e5eb97168a4b2a8e6888462133cbfee13ea90abc008fb2f7279392d83d3ee7a - languageName: node - linkType: hard - -"json-schema-to-ts@npm:^2.7.2": - version: 2.12.0 - resolution: "json-schema-to-ts@npm:2.12.0" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@types/json-schema": "npm:^7.0.9" - ts-algebra: "npm:^1.2.2" - checksum: e6aabb8470983e8242ae3120fa2a411f36d0e3cb12e37e838a2955edee9e26a412010a33bc01617e51b0b3df758c7a50a4d9b470070b22bca276f8056b5a8ed4 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.3.0": - version: 0.3.1 - resolution: "json-schema-traverse@npm:0.3.1" - checksum: 462316de759d3dd9278959de17861e8d214c3722e1f0bf3c510daac990009bc2b0e11e89f9b299d765cd52569db74c8fa1a371a2b08c514a07998fb2f10eb57e - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 - languageName: node - linkType: hard - -"json-schema@npm:0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 - languageName: node - linkType: hard - -"json-stable-stringify@npm:^1.0.1": - version: 1.1.1 - resolution: "json-stable-stringify@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.5" - isarray: "npm:^2.0.5" - jsonify: "npm:^0.0.1" - object-keys: "npm:^1.1.1" - checksum: 3801e3eeccbd030afb970f54bea690a079cfea7d9ed206a1b17ca9367f4b7772c764bf77a48f03e56b50e5f7ee7d11c52339fe20d8d7ccead003e4ca69e4cfde - languageName: node - linkType: hard - -"json-stream-stringify@npm:^3.1.4": - version: 3.1.6 - resolution: "json-stream-stringify@npm:3.1.6" - checksum: cb45e65143f4634ebb2dc0732410a942eaf86f88a7938b2f6397f4c6b96a7ba936e74d4d17db48c9221f669153996362b2ff50fe8c7fed8a7548646f98ae1f58 - languageName: node - linkType: hard - -"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 - languageName: node - linkType: hard - -"json-text-sequence@npm:~0.1.0": - version: 0.1.1 - resolution: "json-text-sequence@npm:0.1.1" - dependencies: - delimit-stream: "npm:0.1.0" - checksum: 5c436da4ab3d29f227eaefea2340a116eb62701007f5728c6a2369956d81903a53bbd970dde7e2dd6a9471043f48e97130c65adcc5a0bdd40461fda6d20eab20 - languageName: node - linkType: hard - -"json5@npm:^0.5.1": - version: 0.5.1 - resolution: "json5@npm:0.5.1" - bin: - json5: lib/cli.js - checksum: aca0ab7ccf1883d3fc2ecc16219bc389716a773f774552817deaadb549acc0bb502e317a81946fc0a48f9eb6e0822cf1dc5a097009203f2c94de84c8db02a1f3 - languageName: node - linkType: hard - -"json5@npm:^2.2.2, json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c - languageName: node - linkType: hard - -"jsonfile@npm:^2.1.0": - version: 2.4.0 - resolution: "jsonfile@npm:2.4.0" - dependencies: - graceful-fs: "npm:^4.1.6" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 02ad746d9490686519b3369bc9572694076eb982e1b4982c5ad9b91bc3c0ad30d10c866bb26b7a87f0c4025a80222cd2962cb57083b5a6a475a9031eab8c8962 - languageName: node - linkType: hard - -"jsonfile@npm:^4.0.0": - version: 4.0.0 - resolution: "jsonfile@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.6" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: "npm:^4.1.6" - universalify: "npm:^2.0.0" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 - languageName: node - linkType: hard - -"jsonify@npm:^0.0.1": - version: 0.0.1 - resolution: "jsonify@npm:0.0.1" - checksum: 7f5499cdd59a0967ed35bda48b7cec43d850bbc8fb955cdd3a1717bb0efadbe300724d5646de765bb7a99fc1c3ab06eb80d93503c6faaf99b4ff50a3326692f6 - languageName: node - linkType: hard - -"jsonparse@npm:^1.2.0": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 - languageName: node - linkType: hard - -"jsonschema@npm:^1.2.4": - version: 1.4.1 - resolution: "jsonschema@npm:1.4.1" - checksum: c3422d3fc7d33ff7234a806ffa909bb6fb5d1cd664bea229c64a1785dc04cbccd5fc76cf547c6ab6dd7881dbcaf3540a6a9f925a5956c61a9cd3e23a3c1796ef - languageName: node - linkType: hard - -"jsprim@npm:^1.2.2": - version: 1.4.2 - resolution: "jsprim@npm:1.4.2" - dependencies: - assert-plus: "npm:1.0.0" - extsprintf: "npm:1.3.0" - json-schema: "npm:0.4.0" - verror: "npm:1.10.0" - checksum: 5e4bca99e90727c2040eb4c2190d0ef1fe51798ed5714e87b841d304526190d960f9772acc7108fa1416b61e1122bcd60e4460c91793dce0835df5852aab55af - languageName: node - linkType: hard - -"keccak@npm:3.0.1": - version: 3.0.1 - resolution: "keccak@npm:3.0.1" - dependencies: - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - checksum: dd274c2e177c12c9f5a05bd7460f04b49c03711770ecdb5f1a7fa56169994f9f0a7857c426cf65a2a4078908b12fe8bb6fdf1c28c9baab69835c5e678c10d7ab - languageName: node - linkType: hard - -"keccak@npm:^3.0.0, keccak@npm:^3.0.2": - version: 3.0.4 - resolution: "keccak@npm:3.0.4" - dependencies: - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - readable-stream: "npm:^3.6.0" - checksum: 153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd - languageName: node - linkType: hard - -"keyv@npm:^3.0.0": - version: 3.1.0 - resolution: "keyv@npm:3.1.0" - dependencies: - json-buffer: "npm:3.0.0" - checksum: 6ad784361b4c0213333a8c5bc0bcc59cf46cb7cbbe21fb2f1539ffcc8fe18b8f1562ff913b40552278fdea5f152a15996dfa61ce24ce1a22222560c650be4a1b - languageName: node - linkType: hard - -"keyv@npm:^4.0.0, keyv@npm:^4.5.3": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: "npm:3.0.1" - checksum: aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e - languageName: node - linkType: hard - -"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": - version: 3.2.2 - resolution: "kind-of@npm:3.2.2" - dependencies: - is-buffer: "npm:^1.1.5" - checksum: 7e34bc29d4b02c997f92f080de34ebb92033a96736bbb0bb2410e033a7e5ae6571f1fa37b2d7710018f95361473b816c604234197f4f203f9cf149d8ef1574d9 - languageName: node - linkType: hard - -"kind-of@npm:^4.0.0": - version: 4.0.0 - resolution: "kind-of@npm:4.0.0" - dependencies: - is-buffer: "npm:^1.1.5" - checksum: d6c44c75ee36898142dfc7106afbd50593216c37f96acb81a7ab33ca1a6938ce97d5692b8fc8fccd035f83811a9d97749d68771116441a48eedd0b68e2973165 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 - languageName: node - linkType: hard - -"klaw-sync@npm:^6.0.0": - version: 6.0.0 - resolution: "klaw-sync@npm:6.0.0" - dependencies: - graceful-fs: "npm:^4.1.11" - checksum: 00d8e4c48d0d699b743b3b028e807295ea0b225caf6179f51029e19783a93ad8bb9bccde617d169659fbe99559d73fb35f796214de031d0023c26b906cecd70a - languageName: node - linkType: hard - -"klaw@npm:^1.0.0": - version: 1.3.1 - resolution: "klaw@npm:1.3.1" - dependencies: - graceful-fs: "npm:^4.1.9" - dependenciesMeta: - graceful-fs: - optional: true - checksum: da994768b02b3843cc994c99bad3cf1c8c67716beb4dd2834133c919e9e9ee788669fbe27d88ab0ad9a3991349c28280afccbde01c2318229b662dd7a05e4728 - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b - languageName: node - linkType: hard - -"kleur@npm:^4.1.5": - version: 4.1.5 - resolution: "kleur@npm:4.1.5" - checksum: e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a - languageName: node - linkType: hard - -"kuler@npm:^2.0.0": - version: 2.0.0 - resolution: "kuler@npm:2.0.0" - checksum: 0a4e99d92ca373f8f74d1dc37931909c4d0d82aebc94cf2ba265771160fc12c8df34eaaac80805efbda367e2795cb1f1dd4c3d404b6b1cf38aec94035b503d2d - languageName: node - linkType: hard - -"latest-version@npm:^7.0.0": - version: 7.0.0 - resolution: "latest-version@npm:7.0.0" - dependencies: - package-json: "npm:^8.1.0" - checksum: 68045f5e419e005c12e595ae19687dd88317dd0108b83a8773197876622c7e9d164fe43aacca4f434b2cba105c92848b89277f658eabc5d50e81fb743bbcddb1 - languageName: node - linkType: hard - -"lcid@npm:^1.0.0": - version: 1.0.0 - resolution: "lcid@npm:1.0.0" - dependencies: - invert-kv: "npm:^1.0.0" - checksum: 87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e - languageName: node - linkType: hard - -"level-codec@npm:^9.0.0": - version: 9.0.2 - resolution: "level-codec@npm:9.0.2" - dependencies: - buffer: "npm:^5.6.0" - checksum: 38a7eb8beed37969ad93160251d5be8e667d4ea0ee199d5e72e61739e552987a71acaa2daa1d2dbc7541f0cfb64e2bd8b50c3d8757cfa41468d8631aa45cc0eb - languageName: node - linkType: hard - -"level-codec@npm:~7.0.0": - version: 7.0.1 - resolution: "level-codec@npm:7.0.1" - checksum: 4def4978695b6b2be359c2bbad86a1331aaa7f754955efa15bff898608e545bb9b26ae70d81ce161e0095b14d287efaf96db202166b7673947d57bac6d9ff2af - languageName: node - linkType: hard - -"level-errors@npm:^1.0.3": - version: 1.1.2 - resolution: "level-errors@npm:1.1.2" - dependencies: - errno: "npm:~0.1.1" - checksum: c9543fcd83668c6fb15b16930905d3e4f35ae6780562e326c0b7272269e53e8a354e4148fbc5b19d0ac063f398cb014112435b9bf2b7e89a45c33a11b696d411 - languageName: node - linkType: hard - -"level-errors@npm:^2.0.0, level-errors@npm:~2.0.0": - version: 2.0.1 - resolution: "level-errors@npm:2.0.1" - dependencies: - errno: "npm:~0.1.1" - checksum: 9e664afb98febe22e6ccde063be85e2b6e472414325bea87f0b2288bec589ef97658028f8654dc4716a06cda15c205e910b6cf5eb3906ed3ca06ea84d370002f - languageName: node - linkType: hard - -"level-errors@npm:~1.0.3": - version: 1.0.5 - resolution: "level-errors@npm:1.0.5" - dependencies: - errno: "npm:~0.1.1" - checksum: 6a95e320df12eb17a3c4f2c1135fe3c2502acc6ceeb8e19c8bf753077528841f648399187def49726c86c475950503f22d3d8e5c7c6a4918f4a13e6ce80bdd06 - languageName: node - linkType: hard - -"level-iterator-stream@npm:^2.0.3": - version: 2.0.3 - resolution: "level-iterator-stream@npm:2.0.3" - dependencies: - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.0.5" - xtend: "npm:^4.0.0" - checksum: ae8b1d06c39aecf4760b7a12f5f3e04f214835210d61c178b7d06a5509b162888436adc93c1616e1bbd7d7d017ee0cd18b7e8009c2b5d2f9c967d5b222f08e56 - languageName: node - linkType: hard - -"level-iterator-stream@npm:~1.3.0": - version: 1.3.1 - resolution: "level-iterator-stream@npm:1.3.1" - dependencies: - inherits: "npm:^2.0.1" - level-errors: "npm:^1.0.3" - readable-stream: "npm:^1.0.33" - xtend: "npm:^4.0.0" - checksum: d122c954c0fcb0034f1c2bba06a5f6c14faf56b0ea3c9c1b641059a9cd9181e20066a99dfb8e1e0a048aa03205850ac344792f27596064d77355d8bcb01de7a3 - languageName: node - linkType: hard - -"level-iterator-stream@npm:~3.0.0": - version: 3.0.1 - resolution: "level-iterator-stream@npm:3.0.1" - dependencies: - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.3.6" - xtend: "npm:^4.0.0" - checksum: 2ade0a78199e9c58cbbb1cca94dfd1864fc5d66bae8ec304e2f2e8fb32ec412cdf0ee4315644a03407f4980a41821d85f4dedd4747df3b76c43de50d2d846895 - languageName: node - linkType: hard - -"level-mem@npm:^3.0.1": - version: 3.0.1 - resolution: "level-mem@npm:3.0.1" - dependencies: - level-packager: "npm:~4.0.0" - memdown: "npm:~3.0.0" - checksum: 81a08a7de8aed3cf6b0719fd2851d0b14a6d1d7bfc286198d64c57844eba91ea48ee838a277bf489d155b8e7e7cb1d9ea2fb4e4c4d51f6329dfd5cd51bd3df12 - languageName: node - linkType: hard - -"level-packager@npm:~4.0.0": - version: 4.0.1 - resolution: "level-packager@npm:4.0.1" - dependencies: - encoding-down: "npm:~5.0.0" - levelup: "npm:^3.0.0" - checksum: e490159bfa930d4e941e445c2276f10ce58f5f097dca38547498d48bef56b6b6b373128410331dcd68cb33e81efbdd912a70904f10ea4837fde613e0f7a48528 - languageName: node - linkType: hard - -"level-post@npm:^1.0.7": - version: 1.0.7 - resolution: "level-post@npm:1.0.7" - dependencies: - ltgt: "npm:^2.1.2" - checksum: b458a294ed056b37ccfb8adee46325073d839b2e594b7647edc8fcefd241dc6f78e0260a4f06e3097e4d38b260fcf082681d40e7155111f99c4ed540a2451d70 - languageName: node - linkType: hard - -"level-sublevel@npm:6.6.4": - version: 6.6.4 - resolution: "level-sublevel@npm:6.6.4" - dependencies: - bytewise: "npm:~1.1.0" - level-codec: "npm:^9.0.0" - level-errors: "npm:^2.0.0" - level-iterator-stream: "npm:^2.0.3" - ltgt: "npm:~2.1.1" - pull-defer: "npm:^0.2.2" - pull-level: "npm:^2.0.3" - pull-stream: "npm:^3.6.8" - typewiselite: "npm:~1.0.0" - xtend: "npm:~4.0.0" - checksum: 4e380d3c696ac37fb7136d447ab9204e2288270897834000c71c7bf1f50cd85536b1cc718e7cd6d8b4b19f6934de5c840a93e888d95189ba54cd2e785efcaf4b - languageName: node - linkType: hard - -"level-supports@npm:^4.0.0": - version: 4.0.1 - resolution: "level-supports@npm:4.0.1" - checksum: a94aa591786845d17c9c62ad075ae33e0fce5be714baa6e16305ed14e2d3638d09e724247fa3f63951e36de57ffd168d63e159e79d03944ee648054b8c7c1684 - languageName: node - linkType: hard - -"level-transcoder@npm:^1.0.1": - version: 1.0.1 - resolution: "level-transcoder@npm:1.0.1" - dependencies: - buffer: "npm:^6.0.3" - module-error: "npm:^1.0.1" - checksum: 25936330676325f22c5143aff5c7fe3f1db156db99f9efb07a2642045c2c6ee565fcbfccbadc0600b3abf8bbe595632cacc3dd334009214069d1857daa57987e - languageName: node - linkType: hard - -"level-ws@npm:0.0.0": - version: 0.0.0 - resolution: "level-ws@npm:0.0.0" - dependencies: - readable-stream: "npm:~1.0.15" - xtend: "npm:~2.1.1" - checksum: 1be0d332fef7d79eb61670d0dd61837a523bdb914ba757af3d7898a9f46d5e54634b3e631baa3b88a283f44abb976cca5077a6a5f1d9e3fe9f8a7d67397a2fa0 - languageName: node - linkType: hard - -"level-ws@npm:^1.0.0": - version: 1.0.0 - resolution: "level-ws@npm:1.0.0" - dependencies: - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.2.8" - xtend: "npm:^4.0.1" - checksum: c80fcce2f86658a750aeccd11eb2c720ac0f25c0d0bc19cf3b8f25108d7245bc151603463ad8229e2d7ea3245e9cd32b0938e24aa388006192e190f8a6978796 - languageName: node - linkType: hard - -"level@npm:^8.0.0": - version: 8.0.1 - resolution: "level@npm:8.0.1" - dependencies: - abstract-level: "npm:^1.0.4" - browser-level: "npm:^1.0.1" - classic-level: "npm:^1.2.0" - checksum: 52e3c18a3372f22b7c0c96a998a24099454f51952ba2b8f25eabc72b1f7bbc15a3ab480c92c94d3c931be370be5a235b804b16e565b73b22bea52cca4029a625 - languageName: node - linkType: hard - -"levelup@npm:3.1.1, levelup@npm:^3.0.0": - version: 3.1.1 - resolution: "levelup@npm:3.1.1" - dependencies: - deferred-leveldown: "npm:~4.0.0" - level-errors: "npm:~2.0.0" - level-iterator-stream: "npm:~3.0.0" - xtend: "npm:~4.0.0" - checksum: 81f0434d42432820fcc65f4438c500bee379109594ff13af0556355f5ab352ecd9d75faca7e73ccdbddf117e7ab9a40f3eeaf0dd2ae6457556dd3b36769c2297 - languageName: node - linkType: hard - -"levelup@npm:^1.2.1": - version: 1.3.9 - resolution: "levelup@npm:1.3.9" - dependencies: - deferred-leveldown: "npm:~1.2.1" - level-codec: "npm:~7.0.0" - level-errors: "npm:~1.0.3" - level-iterator-stream: "npm:~1.3.0" - prr: "npm:~1.0.1" - semver: "npm:~5.4.1" - xtend: "npm:~4.0.0" - checksum: dabd8988a4735e9275c8828bb110e9bbd120cde8dfb9f969ed0d2cf0643d034e8e5abe4cc99467b713e1867f89c877ff6b52a27c475375deb4c1440c713ee9e8 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e - languageName: node - linkType: hard - -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - checksum: e440df9de4233da0b389cd55bd61f0f6aaff766400bebbccd1231b81801f6dbc1d816c676ebe8d70566394b749fa624b1ed1c68070e9c94999f0bdecc64cb676 - languageName: node - linkType: hard - -"lie@npm:3.1.1": - version: 3.1.1 - resolution: "lie@npm:3.1.1" - dependencies: - immediate: "npm:~3.0.5" - checksum: d62685786590351b8e407814acdd89efe1cb136f05cb9236c5a97b2efdca1f631d2997310ad2d565c753db7596799870140e4777c9c9b8c44a0f6bf42d1804a1 - languageName: node - linkType: hard - -"lilconfig@npm:2.0.5": - version: 2.0.5 - resolution: "lilconfig@npm:2.0.5" - checksum: eed9afcecf1b864405f4b7299abefb87945edba250c70896de54b19b08b87333abc268cc6689539bc33f0e8d098139578704bf51af8077d358f1ac95d58beef0 - languageName: node - linkType: hard - -"lilconfig@npm:3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: 7f5ee7a658dc016cacf146815e8d88b06f06f4402823b8b0934e305a57a197f55ccc9c5cd4fb5ea1b2b821c8ccaf2d54abd59602a4931af06eabda332388d3e6 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d - languageName: node - linkType: hard - -"lint-staged@npm:^10.5.4": - version: 10.5.4 - resolution: "lint-staged@npm:10.5.4" - dependencies: - chalk: "npm:^4.1.0" - cli-truncate: "npm:^2.1.0" - commander: "npm:^6.2.0" - cosmiconfig: "npm:^7.0.0" - debug: "npm:^4.2.0" - dedent: "npm:^0.7.0" - enquirer: "npm:^2.3.6" - execa: "npm:^4.1.0" - listr2: "npm:^3.2.2" - log-symbols: "npm:^4.0.0" - micromatch: "npm:^4.0.2" - normalize-path: "npm:^3.0.0" - please-upgrade-node: "npm:^3.2.0" - string-argv: "npm:0.3.1" - stringify-object: "npm:^3.3.0" - bin: - lint-staged: bin/lint-staged.js - checksum: 5a3b8854e3a1d90533a8e5f2d228634a044563104b9a1f2052e91a565542ee72ab60ffd463c9b2117a1c660adc5ad0737831a4dc61c91952f3032ce2b98fa670 - languageName: node - linkType: hard - -"lint-staged@npm:^12.3.5": - version: 12.5.0 - resolution: "lint-staged@npm:12.5.0" - dependencies: - cli-truncate: "npm:^3.1.0" - colorette: "npm:^2.0.16" - commander: "npm:^9.3.0" - debug: "npm:^4.3.4" - execa: "npm:^5.1.1" - lilconfig: "npm:2.0.5" - listr2: "npm:^4.0.5" - micromatch: "npm:^4.0.5" - normalize-path: "npm:^3.0.0" - object-inspect: "npm:^1.12.2" - pidtree: "npm:^0.5.0" - string-argv: "npm:^0.3.1" - supports-color: "npm:^9.2.2" - yaml: "npm:^1.10.2" - bin: - lint-staged: bin/lint-staged.js - checksum: be813853b25f670a49af5ed0a89d7bc25e6117a73d1d2e671f08ac90a553f79c8d1252c62a245073997b6c3b77f8a9636b6c27206667767c34a12340b74509d3 - languageName: node - linkType: hard - -"lint-staged@npm:^15.2.2": - version: 15.2.2 - resolution: "lint-staged@npm:15.2.2" - dependencies: - chalk: "npm:5.3.0" - commander: "npm:11.1.0" - debug: "npm:4.3.4" - execa: "npm:8.0.1" - lilconfig: "npm:3.0.0" - listr2: "npm:8.0.1" - micromatch: "npm:4.0.5" - pidtree: "npm:0.6.0" - string-argv: "npm:0.3.2" - yaml: "npm:2.3.4" - bin: - lint-staged: bin/lint-staged.js - checksum: a1ba6c7ee53e30a0f6ea9a351d95d3d0d2be916a41b561e22907e9ea513eb18cb3dbe65bff3ec13fad15777999efe56b2e2a95427e31d12a9b7e7948c3630ee2 - languageName: node - linkType: hard - -"listr2@npm:8.0.1": - version: 8.0.1 - resolution: "listr2@npm:8.0.1" - dependencies: - cli-truncate: "npm:^4.0.0" - colorette: "npm:^2.0.20" - eventemitter3: "npm:^5.0.1" - log-update: "npm:^6.0.0" - rfdc: "npm:^1.3.0" - wrap-ansi: "npm:^9.0.0" - checksum: b565d6ceb3a4c2dbe0c1735c0fd907afd0d6f89de21aced8e05187b2d88ca2f8f9ebc5d743885396a00f05f13146f6be744d098a56ce0402cf1cd131485a7ff1 - languageName: node - linkType: hard - -"listr2@npm:^3.2.2": - version: 3.14.0 - resolution: "listr2@npm:3.14.0" - dependencies: - cli-truncate: "npm:^2.1.0" - colorette: "npm:^2.0.16" - log-update: "npm:^4.0.0" - p-map: "npm:^4.0.0" - rfdc: "npm:^1.3.0" - rxjs: "npm:^7.5.1" - through: "npm:^2.3.8" - wrap-ansi: "npm:^7.0.0" - peerDependencies: - enquirer: ">= 2.3.0 < 3" - peerDependenciesMeta: - enquirer: - optional: true - checksum: 8301703876ad6bf50cd769e9c1169c2aa435951d69d4f54fc202a13c1b6006a9b3afbcf9842440eb22f08beec4d311d365e31d4ed2e0fcabf198d8085b06a421 - languageName: node - linkType: hard - -"listr2@npm:^4.0.5": - version: 4.0.5 - resolution: "listr2@npm:4.0.5" - dependencies: - cli-truncate: "npm:^2.1.0" - colorette: "npm:^2.0.16" - log-update: "npm:^4.0.0" - p-map: "npm:^4.0.0" - rfdc: "npm:^1.3.0" - rxjs: "npm:^7.5.5" - through: "npm:^2.3.8" - wrap-ansi: "npm:^7.0.0" - peerDependencies: - enquirer: ">= 2.3.0 < 3" - peerDependenciesMeta: - enquirer: - optional: true - checksum: 0e64dc5e66fbd4361f6b35c49489ed842a1d7de30cf2b5c06bf4569669449288698b8ea93f7842aaf3c510963a1e554bca31376b9054d1521445d1ce4c917ea1 - languageName: node - linkType: hard - -"load-json-file@npm:^1.0.0": - version: 1.1.0 - resolution: "load-json-file@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^2.2.0" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - strip-bom: "npm:^2.0.0" - checksum: 2a5344c2d88643735a938fdca8582c0504e1c290577faa74f56b9cc187fa443832709a15f36e5771f779ec0878215a03abc8faf97ec57bb86092ceb7e0caef22 - languageName: node - linkType: hard - -"load-yaml-file@npm:^0.2.0": - version: 0.2.0 - resolution: "load-yaml-file@npm:0.2.0" - dependencies: - graceful-fs: "npm:^4.1.5" - js-yaml: "npm:^3.13.0" - pify: "npm:^4.0.1" - strip-bom: "npm:^3.0.0" - checksum: e00ed43048c0648dfef7639129b6d7e5c2272bc36d2a50dd983dd495f3341a02cd2c40765afa01345f798d0d894e5ba53212449933e72ddfa4d3f7a48f822d2f - languageName: node - linkType: hard - -"localforage@npm:1.10.0": - version: 1.10.0 - resolution: "localforage@npm:1.10.0" - dependencies: - lie: "npm:3.1.1" - checksum: 00f19f1f97002e6721587ed5017f502d58faf80dae567d5065d4d1ee0caf0762f40d2e2dba7f0ef7d3f14ee6203242daae9ecad97359bfc10ecff36df11d85a3 - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: "npm:^2.0.0" - path-exists: "npm:^3.0.0" - checksum: 24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: "npm:^4.1.0" - checksum: 33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: "npm:^5.0.0" - checksum: d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 - languageName: node - linkType: hard - -"lodash.assign@npm:^4.0.3, lodash.assign@npm:^4.0.6": - version: 4.2.0 - resolution: "lodash.assign@npm:4.2.0" - checksum: 77e9a28edcb41655e5f5b4b07ec55a5f9bbd6f020f64474acd66c94ce256ed26451f59e5eb421fc4e5ea79d3939a2e2b3a6abeaa0da47bfd1ccd64dfb21f89a0 - languageName: node - linkType: hard - -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432 - languageName: node - linkType: hard - -"lodash.clone@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.clone@npm:4.5.0" - checksum: e9e84b8727a24b6bdc6292dc0ff53fbdd379a65c652d9ba7a2cc3c02fb1c135b8dcd2e154c8c4199d4be7410d6f7ce3298df312822bc0e68f00472ec07da7d6d - languageName: node - linkType: hard - -"lodash.clonedeep@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.clonedeep@npm:4.5.0" - checksum: 2caf0e4808f319d761d2939ee0642fa6867a4bbf2cfce43276698828380756b99d4c4fa226d881655e6ac298dd453fe12a5ec8ba49861777759494c534936985 - languageName: node - linkType: hard - -"lodash.get@npm:4.4.2, lodash.get@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.get@npm:4.4.2" - checksum: 48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e - languageName: node - linkType: hard - -"lodash.isequal@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.isequal@npm:4.5.0" - checksum: dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f - languageName: node - linkType: hard - -"lodash.isequalwith@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.isequalwith@npm:4.4.0" - checksum: edb7f01c6d949fad36c756e7b1af6ee1df8b9663cee62880186a3b241e133a981bc7eed42cf14715a58f939d6d779185c3ead0c3f0d617d1ad59f50b423eb5d5 - languageName: node - linkType: hard - -"lodash.isfunction@npm:^3.0.9": - version: 3.0.9 - resolution: "lodash.isfunction@npm:3.0.9" - checksum: e88620922f5f104819496884779ca85bfc542efb2946df661ab3e2cd38da5c8375434c6adbedfc76dd3c2b04075d2ba8ec215cfdedf08ddd2e3c3467e8a26ccd - languageName: node - linkType: hard - -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb - languageName: node - linkType: hard - -"lodash.kebabcase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.kebabcase@npm:4.1.1" - checksum: da5d8f41dbb5bc723d4bf9203d5096ca8da804d6aec3d2b56457156ba6c8d999ff448d347ebd97490da853cb36696ea4da09a431499f1ee8deb17b094ecf4e33 - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 - languageName: node - linkType: hard - -"lodash.mergewith@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.mergewith@npm:4.6.2" - checksum: 4adbed65ff96fd65b0b3861f6899f98304f90fd71e7f1eb36c1270e05d500ee7f5ec44c02ef979b5ddbf75c0a0b9b99c35f0ad58f4011934c4d4e99e5200b3b5 - languageName: node - linkType: hard - -"lodash.snakecase@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.snakecase@npm:4.1.1" - checksum: f0b3f2497eb20eea1a1cfc22d645ecaeb78ac14593eb0a40057977606d2f35f7aaff0913a06553c783b535aafc55b718f523f9eb78f8d5293f492af41002eaf9 - languageName: node - linkType: hard - -"lodash.startcase@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.startcase@npm:4.4.0" - checksum: bd82aa87a45de8080e1c5ee61128c7aee77bf7f1d86f4ff94f4a6d7438fc9e15e5f03374b947be577a93804c8ad6241f0251beaf1452bf716064eeb657b3a9f0 - languageName: node - linkType: hard - -"lodash.topath@npm:^4.5.2": - version: 4.5.2 - resolution: "lodash.topath@npm:4.5.2" - checksum: f555a1459c11c807517be6c3a3e8030a9e92a291b2d6b598511e0bddbe99297e870b20e097019b613a3035d061bac63cb42621386c0b9dc22fd3d85e58459653 - languageName: node - linkType: hard - -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: 4e870d54e8a6c86c8687e057cec4069d2e941446ccab7f40b4d9555fa5872d917d0b6aa73bece7765500a3123f1723bcdba9ae881b679ef120bba9e1a0b0ed70 - languageName: node - linkType: hard - -"lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: 262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e - languageName: node - linkType: hard - -"lodash.upperfirst@npm:^4.3.1": - version: 4.3.1 - resolution: "lodash.upperfirst@npm:4.3.1" - checksum: 435625da4b3ee74e7a1367a780d9107ab0b13ef4359fc074b2a1a40458eb8d91b655af62f6795b7138d493303a98c0285340160341561d6896e4947e077fa975 - languageName: node - linkType: hard - -"lodash@npm:4.17.20": - version: 4.17.20 - resolution: "lodash@npm:4.17.20" - checksum: faec37cb9f161b766bdc078a1356a07b9eaaa867796dd2520a407fe0a6a6d7be031e8f228f0cf3d305095703ee40258616c870b8d17dcdcb16f745bf31e8c3c2 - languageName: node - linkType: hard - -"lodash@npm:4.17.21, lodash@npm:^4.14.2, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.0": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c - languageName: node - linkType: hard - -"log-symbols@npm:4.1.0, log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: 67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 - languageName: node - linkType: hard - -"log-update@npm:^4.0.0": - version: 4.0.0 - resolution: "log-update@npm:4.0.0" - dependencies: - ansi-escapes: "npm:^4.3.0" - cli-cursor: "npm:^3.1.0" - slice-ansi: "npm:^4.0.0" - wrap-ansi: "npm:^6.2.0" - checksum: 18b299e230432a156f2535660776406d15ba8bb7817dd3eaadd58004b363756d4ecaabcd658f9949f90b62ea7d3354423be3fdeb7a201ab951ec0e8d6139af86 - languageName: node - linkType: hard - -"log-update@npm:^6.0.0": - version: 6.0.0 - resolution: "log-update@npm:6.0.0" - dependencies: - ansi-escapes: "npm:^6.2.0" - cli-cursor: "npm:^4.0.0" - slice-ansi: "npm:^7.0.0" - strip-ansi: "npm:^7.1.0" - wrap-ansi: "npm:^9.0.0" - checksum: e0b3c3401ef49ce3eb17e2f83d644765e4f7988498fc1344eaa4f31ab30e510dcc469a7fb64dc01bd1c8d9237d917598fa677a9818705fb3774c10f6e9d4b27c - languageName: node - linkType: hard - -"logform@npm:^2.3.2, logform@npm:^2.4.0": - version: 2.6.0 - resolution: "logform@npm:2.6.0" - dependencies: - "@colors/colors": "npm:1.6.0" - "@types/triple-beam": "npm:^1.3.2" - fecha: "npm:^4.2.0" - ms: "npm:^2.1.1" - safe-stable-stringify: "npm:^2.3.1" - triple-beam: "npm:^1.3.0" - checksum: 6e02f8617a03155b2fce451bacf777a2c01da16d32c4c745b3ec85be6c3f2602f2a4953a8bd096441cb4c42c447b52318541d6b6bc335dce903cb9ad77a1749f - languageName: node - linkType: hard - -"looper@npm:^2.0.0": - version: 2.0.0 - resolution: "looper@npm:2.0.0" - checksum: 0f271009248fb767f760ab53ff04f81eb58f87f1e47f7380cb2141ba39085b8587bdbb6f2cba3bfd049e61b6d5b6306704239869ebc3e22937e5fdc717742234 - languageName: node - linkType: hard - -"looper@npm:^3.0.0": - version: 3.0.0 - resolution: "looper@npm:3.0.0" - checksum: aa9199913f50ce3def9d3cc7fd9da8db8be9c2ad553d94c6f4d592b5e6d84f4338a87d194861b23586a785e2e18b57c58f6896ccacab84a4590d641b25581180 - languageName: node - linkType: hard - -"loose-envify@npm:^1.0.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e - languageName: node - linkType: hard - -"loupe@npm:^2.3.6": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 - languageName: node - linkType: hard - -"lower-case-first@npm:^2.0.2": - version: 2.0.2 - resolution: "lower-case-first@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: 22253389fa0693ec1ba09b9394be3a8228304bf21d074703db2eef97c16cda9c66462d88f9b91d4ad0186493d23cad99c63d38ebc13f9a808bc83aad539ff404 - languageName: node - linkType: hard - -"lower-case@npm:^2.0.2": - version: 2.0.2 - resolution: "lower-case@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: 3d925e090315cf7dc1caa358e0477e186ffa23947740e4314a7429b6e62d72742e0bbe7536a5ae56d19d7618ce998aba05caca53c2902bd5742fdca5fc57fd7b - languageName: node - linkType: hard - -"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": - version: 1.0.1 - resolution: "lowercase-keys@npm:1.0.1" - checksum: 56776a8e1ef1aca98ecf6c19b30352ae1cf257b65b8ac858b7d8a0e8b348774d12a9b41aa7f59bfea51bff44bc7a198ab63ba4406bfba60dba008799618bef66 - languageName: node - linkType: hard - -"lowercase-keys@npm:^2.0.0": - version: 2.0.0 - resolution: "lowercase-keys@npm:2.0.0" - checksum: f82a2b3568910509da4b7906362efa40f5b54ea14c2584778ddb313226f9cbf21020a5db35f9b9a0e95847a9b781d548601f31793d736b22a2b8ae8eb9ab1082 - languageName: node - linkType: hard - -"lowercase-keys@npm:^3.0.0": - version: 3.0.0 - resolution: "lowercase-keys@npm:3.0.0" - checksum: ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430 - languageName: node - linkType: hard - -"lru-cache@npm:5.1.1, lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: "npm:^3.0.2" - checksum: 89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.2.2 - resolution: "lru-cache@npm:10.2.2" - checksum: 402d31094335851220d0b00985084288136136992979d0e015f0f1697e15d1c86052d7d53ae86b614e5b058425606efffc6969a31a091085d7a2b80a8a1e26d6 - languageName: node - linkType: hard - -"lru-cache@npm:^3.2.0": - version: 3.2.0 - resolution: "lru-cache@npm:3.2.0" - dependencies: - pseudomap: "npm:^1.0.1" - checksum: a42c01f98622733164cbd88c5f18a167b6bd4d7acd90c05c98f86d87b499733529674c2f66bf036fc6d7a82041d1215fefbc876f0d902626940dcb758ea5b17c - languageName: node - linkType: hard - -"lru-cache@npm:^4.0.1": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: "npm:^1.0.2" - yallist: "npm:^2.1.2" - checksum: 1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - -"lru-cache@npm:^7.14.1": - version: 7.18.3 - resolution: "lru-cache@npm:7.18.3" - checksum: b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed - languageName: node - linkType: hard - -"lru_map@npm:^0.3.3": - version: 0.3.3 - resolution: "lru_map@npm:0.3.3" - checksum: d861f14a142a4a74ebf8d3ad57f2e768a5b820db4100ae53eed1a64eb6350912332e6ebc87cb7415ad6d0cd8f3ce6d20beab9a5e6042ccb5996ea0067a220448 - languageName: node - linkType: hard - -"ltgt@npm:^2.1.2, ltgt@npm:~2.2.0": - version: 2.2.1 - resolution: "ltgt@npm:2.2.1" - checksum: 60fdad732c3aa6acf37e927a5ef58c0d1776192321d55faa1f8775c134c27fbf20ef8ec542fb7f7f33033f79c2a2df75cac39b43e274b32e9d95400154cd41f3 - languageName: node - linkType: hard - -"ltgt@npm:~2.1.1": - version: 2.1.3 - resolution: "ltgt@npm:2.1.3" - checksum: d499a6b4050653107ec227f9ae8238eef6b95eee1a9852f122f5874935fa6552a408b407ef21794a44b1e1f08206a59bdcd7dca20db64aa93d9d8a320663af81 - languageName: node - linkType: hard - -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: 171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" - dependencies: - "@npmcli/agent": "npm:^2.0.0" - cacache: "npm:^18.0.0" - http-cache-semantics: "npm:^4.1.1" - is-lambda: "npm:^1.0.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^3.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - proc-log: "npm:^4.2.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^10.0.0" - checksum: df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e - languageName: node - linkType: hard - -"map-cache@npm:^0.2.0, map-cache@npm:^0.2.2": - version: 0.2.2 - resolution: "map-cache@npm:0.2.2" - checksum: 05e3eb005c1b80b9f949ca007687640e8c5d0fc88dc45c3c3ab4902a3bec79d66a58f3e3b04d6985d90cd267c629c7b46c977e9c34433e8c11ecfcbb9f0fa290 - languageName: node - linkType: hard - -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: ccca88395e7d38671ed9f5652ecf471ecd546924be2fb900836b9da35e068a96687d96a5f93dcdfa94d9a27d649d2f10a84595590f89a347fb4dda47629dcc52 - languageName: node - linkType: hard - -"map-obj@npm:^4.0.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: 1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b - languageName: node - linkType: hard - -"map-visit@npm:^1.0.0": - version: 1.0.0 - resolution: "map-visit@npm:1.0.0" - dependencies: - object-visit: "npm:^1.0.0" - checksum: fb3475e5311939a6147e339999113db607adc11c7c3cd3103e5e9dbf502898416ecba6b1c7c649c6d4d12941de00cee58b939756bdf20a9efe7d4fa5a5738b73 - languageName: node - linkType: hard - -"markdown-table@npm:^1.1.3": - version: 1.1.3 - resolution: "markdown-table@npm:1.1.3" - checksum: aea6eb998900449d938ce46819630492792dd26ac9737f8b506f98baf88c98b7cc1e69c33b72959e0f8578fc0a4b4b44d740daf2db9d8e92ccf3c3522f749fda - languageName: node - linkType: hard - -"match-all@npm:^1.2.6": - version: 1.2.6 - resolution: "match-all@npm:1.2.6" - checksum: 4e0344bf3c39fdedf212bc0e61ce970a40f7f5c1cbbf34de0992a47515d999dab3aa8600a2a09487afb5f561e59d267f0b5dd7a74dfaec203cec77c1f8c52d5a - languageName: node - linkType: hard - -"math-random@npm:^1.0.1": - version: 1.0.4 - resolution: "math-random@npm:1.0.4" - checksum: 7b0ddc17f5dfe3b426c1e92505122e6a32f884dd50f5e0bb3898e5ce2da60b4ffb47c9b607809cf0beb5b8bf253b9dcc3b6f7331b20ce59b8bd7e8dbbbb1e347 - languageName: node - linkType: hard - -"mcl-wasm@npm:^0.7.1": - version: 0.7.9 - resolution: "mcl-wasm@npm:0.7.9" - checksum: 12acd074621741ac61f4b3d36d72da6317320b5db02734abaaf77c0c7886ced14926de2f637ca9ab70a458419200d7edb8e0a4f9f02c85feb8d5bbbe430e60ad - languageName: node - linkType: hard - -"md5.js@npm:^1.3.4": - version: 1.3.5 - resolution: "md5.js@npm:1.3.5" - dependencies: - hash-base: "npm:^3.0.0" - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.1.2" - checksum: b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5 - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 - languageName: node - linkType: hard - -"mem@npm:^1.1.0": - version: 1.1.0 - resolution: "mem@npm:1.1.0" - dependencies: - mimic-fn: "npm:^1.0.0" - checksum: f5150bb975a7d641375d3c1962426bf338952142a429ce01e9792b03df9b63d5911d3feb7e5e50f406531ace646f3fbe39b7dc716c729d617a28b3bbdc799649 - languageName: node - linkType: hard - -"memdown@npm:^1.0.0": - version: 1.4.1 - resolution: "memdown@npm:1.4.1" - dependencies: - abstract-leveldown: "npm:~2.7.1" - functional-red-black-tree: "npm:^1.0.1" - immediate: "npm:^3.2.3" - inherits: "npm:~2.0.1" - ltgt: "npm:~2.2.0" - safe-buffer: "npm:~5.1.1" - checksum: 046e69fc5da9242ae281e901df75e22ba01b2c9de4f6bbc6c89ab3da1b5d8408fbe81e54f92b273b217678eed0363e7165746df4772258cb0e588884459ebac6 - languageName: node - linkType: hard - -"memdown@npm:~3.0.0": - version: 3.0.0 - resolution: "memdown@npm:3.0.0" - dependencies: - abstract-leveldown: "npm:~5.0.0" - functional-red-black-tree: "npm:~1.0.1" - immediate: "npm:~3.2.3" - inherits: "npm:~2.0.1" - ltgt: "npm:~2.2.0" - safe-buffer: "npm:~5.1.1" - checksum: 3216fa4bee7b95fa9b3c87d89a92c6c09fe73601263ce9f46a6068764788092dbad1f38fa604fd30e3f1c6e3dc990fc64293014e844838dbb97da5c298ec99b7 - languageName: node - linkType: hard - -"memory-level@npm:^1.0.0": - version: 1.0.0 - resolution: "memory-level@npm:1.0.0" - dependencies: - abstract-level: "npm:^1.0.0" - functional-red-black-tree: "npm:^1.0.1" - module-error: "npm:^1.0.1" - checksum: b926b6ddc43065282c240cd7c0bf44abcfe43d556f6bb3d43d21f5f514b0095abcd8f9ba26b31ffdefa4ce4931afb937a1eaea1f15c45e76d7061086dbcf9148 - languageName: node - linkType: hard - -"memorystream@npm:^0.3.1": - version: 0.3.1 - resolution: "memorystream@npm:0.3.1" - checksum: 4bd164657711d9747ff5edb0508b2944414da3464b7fe21ac5c67cf35bba975c4b446a0124bd0f9a8be54cfc18faf92e92bd77563a20328b1ccf2ff04e9f39b9 - languageName: node - linkType: hard - -"meow@npm:^12.0.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 - languageName: node - linkType: hard - -"meow@npm:^6.0.0": - version: 6.1.1 - resolution: "meow@npm:6.1.1" - dependencies: - "@types/minimist": "npm:^1.2.0" - camelcase-keys: "npm:^6.2.2" - decamelize-keys: "npm:^1.1.0" - hard-rejection: "npm:^2.1.0" - minimist-options: "npm:^4.0.2" - normalize-package-data: "npm:^2.5.0" - read-pkg-up: "npm:^7.0.1" - redent: "npm:^3.0.0" - trim-newlines: "npm:^3.0.0" - type-fest: "npm:^0.13.1" - yargs-parser: "npm:^18.1.3" - checksum: ceece1e5e09a53d7bf298ef137477e395a0dd30c8ed1a9980a52caad02eccffd6bce1a5cad4596cd694e7e924e949253f0cc1e7c22073c07ce7b06cfefbcf8be - languageName: node - linkType: hard - -"meow@npm:^8.0.0": - version: 8.1.2 - resolution: "meow@npm:8.1.2" - dependencies: - "@types/minimist": "npm:^1.2.0" - camelcase-keys: "npm:^6.2.2" - decamelize-keys: "npm:^1.1.0" - hard-rejection: "npm:^2.1.0" - minimist-options: "npm:4.1.0" - normalize-package-data: "npm:^3.0.0" - read-pkg-up: "npm:^7.0.1" - redent: "npm:^3.0.0" - trim-newlines: "npm:^3.0.0" - type-fest: "npm:^0.18.0" - yargs-parser: "npm:^20.2.3" - checksum: 9a8d90e616f783650728a90f4ea1e5f763c1c5260369e6596b52430f877f4af8ecbaa8c9d952c93bbefd6d5bda4caed6a96a20ba7d27b511d2971909b01922a2 - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec - languageName: node - linkType: hard - -"merge-options@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-options@npm:2.0.0" - dependencies: - is-plain-obj: "npm:^2.0.0" - checksum: b214ba56d2051f578996b284065fbc65209643f6695cedd34fdddf11eb876a696931efadc3a461cc299d371d5191fe1cc9cf5f4162a57a5d56684b4009f37252 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 - languageName: node - linkType: hard - -"merge2@npm:^1.2.3, merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb - languageName: node - linkType: hard - -"merkle-patricia-tree@npm:3.0.0": - version: 3.0.0 - resolution: "merkle-patricia-tree@npm:3.0.0" - dependencies: - async: "npm:^2.6.1" - ethereumjs-util: "npm:^5.2.0" - level-mem: "npm:^3.0.1" - level-ws: "npm:^1.0.0" - readable-stream: "npm:^3.0.6" - rlp: "npm:^2.0.0" - semaphore: "npm:>=1.0.1" - checksum: 3fb7d901c07828ed066a132710b10ce0a6d498130d4d08db7e3158c9d57f0e21cd3d3114bdc7e8e55215f6734faef6c19a28250593d4dc8c381c01888a865068 - languageName: node - linkType: hard - -"merkle-patricia-tree@npm:^2.1.2, merkle-patricia-tree@npm:^2.3.2": - version: 2.3.2 - resolution: "merkle-patricia-tree@npm:2.3.2" - dependencies: - async: "npm:^1.4.2" - ethereumjs-util: "npm:^5.0.0" - level-ws: "npm:0.0.0" - levelup: "npm:^1.2.1" - memdown: "npm:^1.0.0" - readable-stream: "npm:^2.0.0" - rlp: "npm:^2.0.0" - semaphore: "npm:>=1.0.1" - checksum: 38b33bcb788cf6bee37544a843e6582ab6d4b173d5b8277b35712f1121aab0ba7d548c782b197713386774250cec1a8dbf48c1948f28fafae182c80131904ca4 - languageName: node - linkType: hard - -"meros@npm:^1.2.1": - version: 1.3.0 - resolution: "meros@npm:1.3.0" - peerDependencies: - "@types/node": ">=13" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 2cf9a31228ae6441428a750b67beafec062cc0d693942045336dbe6bfb44507e0ca42854a46f483ebd97e4d78cbc31322b3b85f9648b60fa7a4b28fc0f858f51 - languageName: node - linkType: hard - -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2 - languageName: node - linkType: hard - -"micro-ftch@npm:^0.3.1": - version: 0.3.1 - resolution: "micro-ftch@npm:0.3.1" - checksum: b87d35a52aded13cf2daca8d4eaa84e218722b6f83c75ddd77d74f32cc62e699a672e338e1ee19ceae0de91d19cc24dcc1a7c7d78c81f51042fe55f01b196ed3 - languageName: node - linkType: hard - -"micromatch@npm:4.0.5, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"micromatch@npm:^2.1.5": - version: 2.3.11 - resolution: "micromatch@npm:2.3.11" - dependencies: - arr-diff: "npm:^2.0.0" - array-unique: "npm:^0.2.1" - braces: "npm:^1.8.2" - expand-brackets: "npm:^0.1.4" - extglob: "npm:^0.3.1" - filename-regex: "npm:^2.0.0" - is-extglob: "npm:^1.0.0" - is-glob: "npm:^2.0.1" - kind-of: "npm:^3.0.2" - normalize-path: "npm:^2.0.1" - object.omit: "npm:^2.0.0" - parse-glob: "npm:^3.0.4" - regex-cache: "npm:^0.4.2" - checksum: 56864f45f5a76523a3b3fe7c07c1a19cb9e6a2078b1e5dd036bacdd6e65f5d8adc00679ebb785ab88d577fce80197f2d8fd6f5565188643f87d8a47f64f6127a - languageName: node - linkType: hard - -"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": - version: 3.1.10 - resolution: "micromatch@npm:3.1.10" - dependencies: - arr-diff: "npm:^4.0.0" - array-unique: "npm:^0.3.2" - braces: "npm:^2.3.1" - define-property: "npm:^2.0.2" - extend-shallow: "npm:^3.0.2" - extglob: "npm:^2.0.4" - fragment-cache: "npm:^0.2.1" - kind-of: "npm:^6.0.2" - nanomatch: "npm:^1.2.9" - object.pick: "npm:^1.3.0" - regex-not: "npm:^1.0.0" - snapdragon: "npm:^0.8.1" - to-regex: "npm:^3.0.2" - checksum: 531a32e7ac92bef60657820202be71b63d0f945c08a69cc4c239c0b19372b751483d464a850a2e3a5ff6cc9060641e43d44c303af104c1a27493d137d8af017f - languageName: node - linkType: hard - -"miller-rabin@npm:^4.0.0": - version: 4.0.1 - resolution: "miller-rabin@npm:4.0.1" - dependencies: - bn.js: "npm:^4.0.0" - brorand: "npm:^1.0.1" - bin: - miller-rabin: bin/miller-rabin - checksum: 26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.16, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0 - languageName: node - linkType: hard - -"mimic-fn@npm:^1.0.0": - version: 1.2.0 - resolution: "mimic-fn@npm:1.2.0" - checksum: ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 - languageName: node - linkType: hard - -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf - languageName: node - linkType: hard - -"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": - version: 1.0.1 - resolution: "mimic-response@npm:1.0.1" - checksum: c5381a5eae997f1c3b5e90ca7f209ed58c3615caeee850e85329c598f0c000ae7bec40196580eef1781c60c709f47258131dab237cad8786f8f56750594f27fa - languageName: node - linkType: hard - -"mimic-response@npm:^3.1.0": - version: 3.1.0 - resolution: "mimic-response@npm:3.1.0" - checksum: 0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 - languageName: node - linkType: hard - -"mimic-response@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-response@npm:4.0.0" - checksum: 761d788d2668ae9292c489605ffd4fad220f442fbae6832adce5ebad086d691e906a6d5240c290293c7a11e99fbdbbef04abbbed498bf8699a4ee0f31315e3fb - languageName: node - linkType: hard - -"min-document@npm:^2.19.0": - version: 2.19.0 - resolution: "min-document@npm:2.19.0" - dependencies: - dom-walk: "npm:^0.1.0" - checksum: 783724da716fc73a51c171865d7b29bf2b855518573f82ef61c40d214f6898d7b91b5c5419e4d22693cdb78d4615873ebc3b37d7639d3dd00ca283e5a07c7af9 - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c - languageName: node - linkType: hard - -"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": - version: 1.0.1 - resolution: "minimalistic-assert@npm:1.0.1" - checksum: 96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd - languageName: node - linkType: hard - -"minimalistic-crypto-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "minimalistic-crypto-utils@npm:1.0.1" - checksum: 790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8 - languageName: node - linkType: hard - -"minimatch@npm:*, minimatch@npm:^9.0.1, minimatch@npm:^9.0.4": - version: 9.0.4 - resolution: "minimatch@npm:9.0.4" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414 - languageName: node - linkType: hard - -"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 - languageName: node - linkType: hard - -"minimatch@npm:5.0.1": - version: 5.0.1 - resolution: "minimatch@npm:5.0.1" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: baa60fc5839205f13d6c266d8ad4d160ae37c33f66b130b5640acac66deff84b934ac6307f5dc5e4b30362c51284817c12df7c9746ffb600b9009c581e0b1634 - languageName: node - linkType: hard - -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1, minimatch@npm:^5.1.6": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 - languageName: node - linkType: hard - -"minimist-options@npm:4.1.0, minimist-options@npm:^4.0.2": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" - dependencies: - arrify: "npm:^1.0.1" - is-plain-obj: "npm:^1.1.0" - kind-of: "npm:^6.0.3" - checksum: 7871f9cdd15d1e7374e5b013e2ceda3d327a06a8c7b38ae16d9ef941e07d985e952c589e57213f7aa90a8744c60aed9524c0d85e501f5478382d9181f2763f54 - languageName: node - linkType: hard - -"minimist@npm:0.0.8": - version: 0.0.8 - resolution: "minimist@npm:0.0.8" - checksum: d0a998c3042922dbcd5f23566b52811d6977649ad089fd75dd89e8a9bff27634194900818b2dfb1b873f204edb902d0c8cdea9cb8dca8488b301f69bd522d5dc - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7, minimist@npm:~1.2.8": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb - languageName: node - linkType: hard - -"minipass@npm:^2.6.0, minipass@npm:^2.9.0": - version: 2.9.0 - resolution: "minipass@npm:2.9.0" - dependencies: - safe-buffer: "npm:^5.1.2" - yallist: "npm:^3.0.0" - checksum: 307d8765ac3db9fcd6b486367e6f6c3e460f3a3e198d95d6c0005a2d95804c40c72959261cdebde3c8237cda0b03d4c01975e4581fe11abcf201f5005caafd2a - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": - version: 7.1.1 - resolution: "minipass@npm:7.1.1" - checksum: fdccc2f99c31083f45f881fd1e6971d798e333e078ab3c8988fb818c470fbd5e935388ad9adb286397eba50baebf46ef8ff487c8d3f455a69c6f3efc327bdff9 - languageName: node - linkType: hard - -"minizlib@npm:^1.3.3": - version: 1.3.3 - resolution: "minizlib@npm:1.3.3" - dependencies: - minipass: "npm:^2.9.0" - checksum: 79798032bbaa6594fa517e5b7ff9977951984fc9548a421b28d3fb0add8ed7e98a33e41e262af53b944f9d860c1e00fc778b477ef692e7b38b1ba12b390ffb17 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: 64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 - languageName: node - linkType: hard - -"mixin-deep@npm:^1.2.0": - version: 1.3.2 - resolution: "mixin-deep@npm:1.3.2" - dependencies: - for-in: "npm:^1.0.2" - is-extendable: "npm:^1.0.1" - checksum: cb39ffb73c377222391af788b4c83d1a6cecb2d9fceb7015384f8deb46e151a9b030c21ef59a79cb524d4557e3f74c7248ab948a62a6e7e296b42644863d183b - languageName: node - linkType: hard - -"mixme@npm:^0.5.1": - version: 0.5.10 - resolution: "mixme@npm:0.5.10" - checksum: 409b2124b75b5f489b1521bc470f6201d748499bf656db0aa43a07e654449f3bcc8a0277cd05ca3c3e305281a5934b6e75219866200b70a9e3e105f9cf08baf1 - languageName: node - linkType: hard - -"mkdirp-promise@npm:^5.0.1": - version: 5.0.1 - resolution: "mkdirp-promise@npm:5.0.1" - dependencies: - mkdirp: "npm:*" - checksum: c99007908866d65ebaa1fd7f0b0d090e577ac92f6cc5cb98b91a68a461fd9b973412447fb00be3bb2346f5535126667f1e27964abf390f2c1cd077e4fdb59e08 - languageName: node - linkType: hard - -"mkdirp@npm:*, mkdirp@npm:^3.0.0": - version: 3.0.1 - resolution: "mkdirp@npm:3.0.1" - bin: - mkdirp: dist/cjs/src/bin.js - checksum: 9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d - languageName: node - linkType: hard - -"mkdirp@npm:0.5.1": - version: 0.5.1 - resolution: "mkdirp@npm:0.5.1" - dependencies: - minimist: "npm:0.0.8" - bin: - mkdirp: bin/cmd.js - checksum: e5ff572d761240a06dbfc69e1ea303d5482815a1f66033b999bd9d78583fcdc9ef63e99e61d396bbd57eca45b388af80a7f7f35f63510619c991c9d44c75341c - languageName: node - linkType: hard - -"mkdirp@npm:0.5.x, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: 46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf - languageName: node - linkType: hard - -"mnemonist@npm:^0.38.0": - version: 0.38.5 - resolution: "mnemonist@npm:0.38.5" - dependencies: - obliterator: "npm:^2.0.0" - checksum: a73a2718f88cd12c3b108ecc530619a1b0f2783d479c7f98e7367375102cc3a28811bab384e17eb731553dc8d7ee9d60283d694a9f676af5f306104e75027d4f - languageName: node - linkType: hard - -"mocha@npm:^10.0.0, mocha@npm:^10.2.0": - version: 10.4.0 - resolution: "mocha@npm:10.4.0" - dependencies: - ansi-colors: "npm:4.1.1" - browser-stdout: "npm:1.3.1" - chokidar: "npm:3.5.3" - debug: "npm:4.3.4" - diff: "npm:5.0.0" - escape-string-regexp: "npm:4.0.0" - find-up: "npm:5.0.0" - glob: "npm:8.1.0" - he: "npm:1.2.0" - js-yaml: "npm:4.1.0" - log-symbols: "npm:4.1.0" - minimatch: "npm:5.0.1" - ms: "npm:2.1.3" - serialize-javascript: "npm:6.0.0" - strip-json-comments: "npm:3.1.1" - supports-color: "npm:8.1.1" - workerpool: "npm:6.2.1" - yargs: "npm:16.2.0" - yargs-parser: "npm:20.2.4" - yargs-unparser: "npm:2.0.0" - bin: - _mocha: bin/_mocha - mocha: bin/mocha.js - checksum: e572e9d8c164e98f64de7e9498608de042fd841c6a7441f456a5e216e9aed2299e2c568d9dc27f2be2de06521e6b2d1dd774ab58a243b1c7697d14aec2f0f7f7 - languageName: node - linkType: hard - -"mocha@npm:^10.8.2": - version: 10.8.2 - resolution: "mocha@npm:10.8.2" - dependencies: - ansi-colors: "npm:^4.1.3" - browser-stdout: "npm:^1.3.1" - chokidar: "npm:^3.5.3" - debug: "npm:^4.3.5" - diff: "npm:^5.2.0" - escape-string-regexp: "npm:^4.0.0" - find-up: "npm:^5.0.0" - glob: "npm:^8.1.0" - he: "npm:^1.2.0" - js-yaml: "npm:^4.1.0" - log-symbols: "npm:^4.1.0" - minimatch: "npm:^5.1.6" - ms: "npm:^2.1.3" - serialize-javascript: "npm:^6.0.2" - strip-json-comments: "npm:^3.1.1" - supports-color: "npm:^8.1.1" - workerpool: "npm:^6.5.1" - yargs: "npm:^16.2.0" - yargs-parser: "npm:^20.2.9" - yargs-unparser: "npm:^2.0.0" - bin: - _mocha: bin/_mocha - mocha: bin/mocha.js - checksum: 1f786290a32a1c234f66afe2bfcc68aa50fe9c7356506bd39cca267efb0b4714a63a0cb333815578d63785ba2fba058bf576c2512db73997c0cae0d659a88beb - languageName: node - linkType: hard - -"mocha@npm:^4.0.1": - version: 4.1.0 - resolution: "mocha@npm:4.1.0" - dependencies: - browser-stdout: "npm:1.3.0" - commander: "npm:2.11.0" - debug: "npm:3.1.0" - diff: "npm:3.3.1" - escape-string-regexp: "npm:1.0.5" - glob: "npm:7.1.2" - growl: "npm:1.10.3" - he: "npm:1.1.1" - mkdirp: "npm:0.5.1" - supports-color: "npm:4.4.0" - bin: - _mocha: ./bin/_mocha - mocha: ./bin/mocha - checksum: a9c651e6c4f21f5e2d1e087ec7853ce1d874a68bcfbd45ff1ce2d67cd916cfbd1ae55c9087d9415d03d2af06d738bc3b9882ce7edc475e2420da44546e3e02d4 - languageName: node - linkType: hard - -"mock-fs@npm:^4.1.0": - version: 4.14.0 - resolution: "mock-fs@npm:4.14.0" - checksum: a23bc2ce74f2a01d02053fb20aecc2ea359e62580cd15b5e1029b55929802e2770bbd683ccdc5c1eabb5cecbf452196bb81a0ef61c4629dc819023e10d8303c6 - languageName: node - linkType: hard - -"mock-property@npm:~1.0.0": - version: 1.0.3 - resolution: "mock-property@npm:1.0.3" - dependencies: - define-data-property: "npm:^1.1.1" - functions-have-names: "npm:^1.2.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - hasown: "npm:^2.0.0" - isarray: "npm:^2.0.5" - checksum: faab39ef1f90fe52367f5173bf8aa2d795fb13998eea2f028f94d4d822809fdfe880627f79c39b759a265697fa88b659bef0fd9593926db6c265f3d9566bd89b - languageName: node - linkType: hard - -"module-error@npm:^1.0.1, module-error@npm:^1.0.2": - version: 1.0.2 - resolution: "module-error@npm:1.0.2" - checksum: 584a43a1bb2720c6c6c771e257a308af4f042a17c17b1472a2c855130a1ad93ba516a82ae7ac2ce2d03062e521cc53c03ec0ce153795d895312d7747fb3bb99b - languageName: node - linkType: hard - -"moment-timezone@npm:^0.5.34, moment-timezone@npm:^0.5.43": - version: 0.5.45 - resolution: "moment-timezone@npm:0.5.45" - dependencies: - moment: "npm:^2.29.4" - checksum: 7497f23c4b8c875dbf07c03f9a1253f79edaeedc29d5732e36bfd3c5577e25aed1924fbd84cbb713ce1920dbe822be0e21bd487851a7d13907226f289a5e568b - languageName: node - linkType: hard - -"moment@npm:^2.29.1, moment@npm:^2.29.4": - version: 2.30.1 - resolution: "moment@npm:2.30.1" - checksum: 865e4279418c6de666fca7786607705fd0189d8a7b7624e2e56be99290ac846f90878a6f602e34b4e0455c549b85385b1baf9966845962b313699e7cb847543a - languageName: node - linkType: hard - -"morgan@npm:1.10.0": - version: 1.10.0 - resolution: "morgan@npm:1.10.0" - dependencies: - basic-auth: "npm:~2.0.1" - debug: "npm:2.6.9" - depd: "npm:~2.0.0" - on-finished: "npm:~2.3.0" - on-headers: "npm:~1.0.2" - checksum: 684db061daca28f8d8e3bfd50bd0d21734401b46f74ea76f6df7785d45698fcd98f6d3b81a6bad59f8288c429183afba728c428e8f66d2e8c30fd277af3b5b3a - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - -"multiaddr-to-uri@npm:^6.0.0": - version: 6.0.0 - resolution: "multiaddr-to-uri@npm:6.0.0" - dependencies: - multiaddr: "npm:^8.0.0" - checksum: 0f94189befc6830bc55be2765ab0b50e0279c6dc14c92fb7095c3a8dd51dfd8b6d407e304892937253b4577a08fd38b762c898ba7716be0dbcd6390149a13f65 - languageName: node - linkType: hard - -"multiaddr@npm:^8.0.0": - version: 8.1.2 - resolution: "multiaddr@npm:8.1.2" - dependencies: - cids: "npm:^1.0.0" - class-is: "npm:^1.1.0" - dns-over-http-resolver: "npm:^1.0.0" - err-code: "npm:^2.0.3" - is-ip: "npm:^3.1.0" - multibase: "npm:^3.0.0" - uint8arrays: "npm:^1.1.0" - varint: "npm:^5.0.0" - checksum: f42313d9a259b79a1ad364e078cf6018c59c729c3436cc013cc7d6590e436253d32e593cd64168cf5e72f5c7cb375b0efd5f1f1fe2935acca2aac7a1d9161b3b - languageName: node - linkType: hard - -"multibase@npm:^0.7.0": - version: 0.7.0 - resolution: "multibase@npm:0.7.0" - dependencies: - base-x: "npm:^3.0.8" - buffer: "npm:^5.5.0" - checksum: 59f0ccda12b33d358d91c13b99f565a58b06629dd558d8e07ee919bb7c7ba90c823f72b84c011b7e9abe50e55d72e75c7289e9c6d630babf2b757cdf138ad01a - languageName: node - linkType: hard - -"multibase@npm:^3.0.0, multibase@npm:^3.1.0": - version: 3.1.2 - resolution: "multibase@npm:3.1.2" - dependencies: - "@multiformats/base-x": "npm:^4.0.1" - web-encoding: "npm:^1.0.6" - checksum: e2bb878444fac7722ae7b720b8bc277ef5fe5cafaba3f0900fc4e17f31adca49b0a5a33a94bb8e622fffeb018c849a0605fb287b3751b1a42ba8d421cd004151 - languageName: node - linkType: hard - -"multibase@npm:^4.0.1": - version: 4.0.6 - resolution: "multibase@npm:4.0.6" - dependencies: - "@multiformats/base-x": "npm:^4.0.1" - checksum: 1e931f2d018a195f7ea1d157782a6ab2eb3913674b79a9193e05ee2ded58383a373124ec9d84d20b12a2561a34659d2fe5a7e49e4ba493af5127b0009fdaf33d - languageName: node - linkType: hard - -"multibase@npm:~0.6.0": - version: 0.6.1 - resolution: "multibase@npm:0.6.1" - dependencies: - base-x: "npm:^3.0.8" - buffer: "npm:^5.5.0" - checksum: 305b6b77da15735d0c3104751b1d7af637812efeb78ebc7f77df385bed401217a2bbc4b6f113518a5c4b89df85e28e8f8186b31ad4cda913c8da09d46b489083 - languageName: node - linkType: hard - -"multicodec@npm:^0.5.5": - version: 0.5.7 - resolution: "multicodec@npm:0.5.7" - dependencies: - varint: "npm:^5.0.0" - checksum: 449afa52a3e4cc3fdd164e9035d6e876c72365fec5cae212af56c9564345172b284272396adf8197ad5476941c76852021b505fd1190e2471628f1cf1b5f2e68 - languageName: node - linkType: hard - -"multicodec@npm:^1.0.0": - version: 1.0.4 - resolution: "multicodec@npm:1.0.4" - dependencies: - buffer: "npm:^5.6.0" - varint: "npm:^5.0.0" - checksum: b64516ec9cbea770748aa502fe3f69e1199c220954766bf271ed2fcbcc8916d844bd82f590285490486bf533ea437a9ac402a8dcd18124954c536e6568d948cf - languageName: node - linkType: hard - -"multicodec@npm:^2.0.0": - version: 2.1.3 - resolution: "multicodec@npm:2.1.3" - dependencies: - uint8arrays: "npm:1.1.0" - varint: "npm:^6.0.0" - checksum: 6818fe55a429e73a7095bd81a91b64fc8a6e27fc8667bb5e463fed1374159a00faf2e28b856936241478ccd863ca38dfcbc0eb22b2690403ebfea1923387f959 - languageName: node - linkType: hard - -"multicodec@npm:^3.0.1": - version: 3.2.1 - resolution: "multicodec@npm:3.2.1" - dependencies: - uint8arrays: "npm:^3.0.0" - varint: "npm:^6.0.0" - checksum: 3ab585bfebc472057b6cdd50c4bdf3c2eae1d92bdb63b865eeb3963908c15f038b5778cd2a7db6530f56f47efec10aa075200cf7251c29f517d7a82ee8303c6a - languageName: node - linkType: hard - -"multiformats@npm:^9.4.2": - version: 9.9.0 - resolution: "multiformats@npm:9.9.0" - checksum: 1fdb34fd2fb085142665e8bd402570659b50a5fae5994027e1df3add9e1ce1283ed1e0c2584a5c63ac0a58e871b8ee9665c4a99ca36ce71032617449d48aa975 - languageName: node - linkType: hard - -"multihashes@npm:^0.4.15, multihashes@npm:~0.4.15": - version: 0.4.21 - resolution: "multihashes@npm:0.4.21" - dependencies: - buffer: "npm:^5.5.0" - multibase: "npm:^0.7.0" - varint: "npm:^5.0.0" - checksum: 7138eed5566775ff4966ffe55201e3bdd64c949256c71f3d290dc4f41a75d27d4a81755b58048ecfd8a252cfd3f7181976973ea6245d09a7ea992afc8dc77d9d - languageName: node - linkType: hard - -"multihashes@npm:^3.0.1": - version: 3.1.2 - resolution: "multihashes@npm:3.1.2" - dependencies: - multibase: "npm:^3.1.0" - uint8arrays: "npm:^2.0.5" - varint: "npm:^6.0.0" - checksum: 493bb738e0561dd741d76059d01018b57c820a694af8c7dd532a6080fdfebc0813b218ab13ded0e2baa7b135de689194037c1c0f9eb343abccdf2f92066f935a - languageName: node - linkType: hard - -"multihashes@npm:^4.0.1": - version: 4.0.3 - resolution: "multihashes@npm:4.0.3" - dependencies: - multibase: "npm:^4.0.1" - uint8arrays: "npm:^3.0.0" - varint: "npm:^5.0.2" - checksum: 9b1288d3ee776c0b95f9032696b360a2ebbc33ca9312be73df197ec84aca9907f643e3d0bf9247b8e321b36a271d45cc4fa8afc874ed725a247ea034b3de4e7c - languageName: node - linkType: hard - -"multihashing-async@npm:^2.0.0": - version: 2.1.4 - resolution: "multihashing-async@npm:2.1.4" - dependencies: - blakejs: "npm:^1.1.0" - err-code: "npm:^3.0.0" - js-sha3: "npm:^0.8.0" - multihashes: "npm:^4.0.1" - murmurhash3js-revisited: "npm:^3.0.0" - uint8arrays: "npm:^3.0.0" - checksum: 515fb3b03bb64e5cd221a25cef08b147e52b43059001c02375664ba9d0edb56af7042a71edec2e97e906402f3dac4f93f07f1da29d1b6ce501f58c871a2f741b - languageName: node - linkType: hard - -"murmur-128@npm:^0.2.1": - version: 0.2.1 - resolution: "murmur-128@npm:0.2.1" - dependencies: - encode-utf8: "npm:^1.0.2" - fmix: "npm:^0.1.0" - imul: "npm:^1.0.0" - checksum: 1ae871af53693a9159794b92ace63c1b5c1cc137d235cc954a56af00e48856625131605517e1ee00f60295d0223a13091b88d33a55686011774a63db3b94ecd5 - languageName: node - linkType: hard - -"murmurhash3js-revisited@npm:^3.0.0": - version: 3.0.0 - resolution: "murmurhash3js-revisited@npm:3.0.0" - checksum: 53e14df6b123f1ff402952eaf51caa5e803316fbaa176b13cc522efa1d5261156319f0d2d87ba9f67dbc9b4e00f72296b975e1b92643faf88b8a8a8725a58e5f - languageName: node - linkType: hard - -"mute-stream@npm:0.0.8": - version: 0.0.8 - resolution: "mute-stream@npm:0.0.8" - checksum: 18d06d92e5d6d45e2b63c0e1b8f25376af71748ac36f53c059baa8b76ffac31c5ab225480494e7d35d30215ecdb18fed26ec23cafcd2f7733f2f14406bcd19e2 - languageName: node - linkType: hard - -"nan@npm:^2.12.1": - version: 2.19.0 - resolution: "nan@npm:2.19.0" - dependencies: - node-gyp: "npm:latest" - checksum: b8d05d75f92ee9d94affa50d0aa41b6c698254c848529452d7ab67c2e0d160a83f563bfe2cbd53e077944eceb48c757f83c93634c7c9ff404c9ec1ed4e5ced1a - languageName: node - linkType: hard - -"nano-json-stream-parser@npm:^0.1.2": - version: 0.1.2 - resolution: "nano-json-stream-parser@npm:0.1.2" - checksum: c42df4cf2922a0b9771a6927df85bb10de01009ea0ea3d354eb3cd7f59d50cbe1350ebdfc78c0fb3dcb71adcdea2c4e3452e0210db8875b0d03f61210151a9a7 - languageName: node - linkType: hard - -"nanoid@npm:^3.0.2, nanoid@npm:^3.1.3": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" - bin: - nanoid: bin/nanoid.cjs - checksum: e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3 - languageName: node - linkType: hard - -"nanomatch@npm:^1.2.9": - version: 1.2.13 - resolution: "nanomatch@npm:1.2.13" - dependencies: - arr-diff: "npm:^4.0.0" - array-unique: "npm:^0.3.2" - define-property: "npm:^2.0.2" - extend-shallow: "npm:^3.0.2" - fragment-cache: "npm:^0.2.1" - is-windows: "npm:^1.0.2" - kind-of: "npm:^6.0.2" - object.pick: "npm:^1.3.0" - regex-not: "npm:^1.0.0" - snapdragon: "npm:^0.8.1" - to-regex: "npm:^3.0.1" - checksum: 0f5cefa755ca2e20c86332821995effb24acb79551ddaf51c1b9112628cad234a0d8fd9ac6aa56ad1f8bfad6ff6ae86e851acb960943249d9fa44b091479953a - languageName: node - linkType: hard - -"napi-macros@npm:^2.2.2": - version: 2.2.2 - resolution: "napi-macros@npm:2.2.2" - checksum: cc85daaf82a4f585d30561047cef0f3e702be769b5cf2ffadc6242bc5a1033f6b8269012e54178baf66f022bd18aa9ebb619f1b530cc19c1f9b96f9689affd50 - languageName: node - linkType: hard - -"native-fetch@npm:^3.0.0": - version: 3.0.0 - resolution: "native-fetch@npm:3.0.0" - peerDependencies: - node-fetch: "*" - checksum: 737cdd209dd366df8b748dabac39340089d57a2bcc460ffc029ec145f30aeffea0c6a6f177013069d6f7f04ffc8c3e39cfb8e3825e7071a373c4f86b187ae1b5 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 - languageName: node - linkType: hard - -"ndjson@npm:2.0.0": - version: 2.0.0 - resolution: "ndjson@npm:2.0.0" - dependencies: - json-stringify-safe: "npm:^5.0.1" - minimist: "npm:^1.2.5" - readable-stream: "npm:^3.6.0" - split2: "npm:^3.0.0" - through2: "npm:^4.0.0" - bin: - ndjson: cli.js - checksum: b7f3de5e12e0466cfa3688a3ba6cedec0ab54bd821f1b16926c9ef7017983b131832430061d25dfcb635f65a254b535681eca213c6feb5d1958bee8d35a04cc9 - languageName: node - linkType: hard - -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d - languageName: node - linkType: hard - -"next-tick@npm:^1.1.0": - version: 1.1.0 - resolution: "next-tick@npm:1.1.0" - checksum: 3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28 - languageName: node - linkType: hard - -"ngeohash@npm:0.6.3": - version: 0.6.3 - resolution: "ngeohash@npm:0.6.3" - checksum: 2b7752ac4d7d3de1de89048d6aa885de573fea435ae3aa41a5287cc1bd86dbb78241884dc343ccb32b59b2479ec1f530d0495e9249956ca8ec7d016abefa32fe - languageName: node - linkType: hard - -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 95568c1b73e1d0d4069a3e3061a2102d854513d37bcfda73300015b7ba4868d3b27c198d1dbbd8ebdef4112fc2ed9e895d4a0f2e1cce0bd334f2a1346dc9205f - languageName: node - linkType: hard - -"no-case@npm:^3.0.4": - version: 3.0.4 - resolution: "no-case@npm:3.0.4" - dependencies: - lower-case: "npm:^2.0.2" - tslib: "npm:^2.0.3" - checksum: 8ef545f0b3f8677c848f86ecbd42ca0ff3cd9dd71c158527b344c69ba14710d816d8489c746b6ca225e7b615108938a0bda0a54706f8c255933703ac1cf8e703 - languageName: node - linkType: hard - -"node-addon-api@npm:^2.0.0": - version: 2.0.2 - resolution: "node-addon-api@npm:2.0.2" - dependencies: - node-gyp: "npm:latest" - checksum: ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64 - languageName: node - linkType: hard - -"node-emoji@npm:^1.10.0": - version: 1.11.0 - resolution: "node-emoji@npm:1.11.0" - dependencies: - lodash: "npm:^4.17.21" - checksum: 5dac6502dbef087092d041fcc2686d8be61168593b3a9baf964d62652f55a3a9c2277f171b81cccb851ccef33f2d070f45e633fab1fda3264f8e1ae9041c673f - languageName: node - linkType: hard - -"node-fetch@npm:2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: fcae80f5ac52fbf5012f5e19df2bd3915e67d3b3ad51cb5942943df2238d32ba15890fecabd0e166876a9f98a581ab50f3f10eb942b09405c49ef8da36b826c7 - languageName: node - linkType: hard - -"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 - languageName: node - linkType: hard - -"node-fetch@npm:~1.7.1": - version: 1.7.3 - resolution: "node-fetch@npm:1.7.3" - dependencies: - encoding: "npm:^0.1.11" - is-stream: "npm:^1.0.1" - checksum: 5a6b56b3edf909ccd20414355867d24f15f1885da3b26be90840241c46e63754ebf4697050f897daab676e3952d969611ffe1d4bc4506cf50f70837e20ad5328 - languageName: node - linkType: hard - -"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0": - version: 4.8.1 - resolution: "node-gyp-build@npm:4.8.1" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: e36ca3d2adf2b9cca316695d7687207c19ac6ed326d6d7c68d7112cebe0de4f82d6733dff139132539fcc01cf5761f6c9082a21864ab9172edf84282bc849ce7 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.1.0 - resolution: "node-gyp@npm:10.1.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^10.3.10" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^3.0.0" - semver: "npm:^7.3.5" - tar: "npm:^6.1.2" - which: "npm:^4.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a - languageName: node - linkType: hard - -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 - languageName: node - linkType: hard - -"nofilter@npm:^3.1.0": - version: 3.1.0 - resolution: "nofilter@npm:3.1.0" - checksum: 92459f3864a067b347032263f0b536223cbfc98153913b5dce350cb39c8470bc1813366e41993f22c33cc6400c0f392aa324a4b51e24c22040635c1cdb046499 - languageName: node - linkType: hard - -"nopt@npm:3.x": - version: 3.0.6 - resolution: "nopt@npm:3.0.6" - dependencies: - abbrev: "npm:1" - bin: - nopt: ./bin/nopt.js - checksum: f4414223c392dd215910942268d9bdc101ab876400f2c0626b88b718254f5c730dbab5eda58519dc4ea05b681ed8f09c147570ed273ade7fc07757e2e4f12c3d - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" - dependencies: - abbrev: "npm:^2.0.0" - bin: - nopt: bin/nopt.js - checksum: a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 - languageName: node - linkType: hard - -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: "npm:^2.1.4" - resolve: "npm:^1.10.0" - semver: "npm:2 || 3 || 4 || 5" - validate-npm-package-license: "npm:^3.0.1" - checksum: 357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 - languageName: node - linkType: hard - -"normalize-package-data@npm:^3.0.0": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" - dependencies: - hosted-git-info: "npm:^4.0.1" - is-core-module: "npm:^2.5.0" - semver: "npm:^7.3.4" - validate-npm-package-license: "npm:^3.0.1" - checksum: e5d0f739ba2c465d41f77c9d950e291ea4af78f8816ddb91c5da62257c40b76d8c83278b0d08ffbcd0f187636ebddad20e181e924873916d03e6e5ea2ef026be - languageName: node - linkType: hard - -"normalize-path@npm:^2.0.0, normalize-path@npm:^2.0.1, normalize-path@npm:^2.1.1": - version: 2.1.1 - resolution: "normalize-path@npm:2.1.1" - dependencies: - remove-trailing-separator: "npm:^1.0.1" - checksum: db814326ff88057437233361b4c7e9cac7b54815b051b57f2d341ce89b1d8ec8cbd43e7fa95d7652b3b69ea8fcc294b89b8530d556a84d1bdace94229e1e9a8b - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 - languageName: node - linkType: hard - -"normalize-url@npm:^4.1.0": - version: 4.5.1 - resolution: "normalize-url@npm:4.5.1" - checksum: 6362e9274fdcc310f8b17e20de29754c94e1820d864114f03d3bfd6286a0028fc51705fb3fd4e475013357b5cd7421fc17f3aba93f2289056779a9bb23bccf59 - languageName: node - linkType: hard - -"normalize-url@npm:^6.0.1": - version: 6.1.0 - resolution: "normalize-url@npm:6.1.0" - checksum: 95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23 - languageName: node - linkType: hard - -"normalize-url@npm:^8.0.0": - version: 8.0.1 - resolution: "normalize-url@npm:8.0.1" - checksum: eb439231c4b84430f187530e6fdac605c5048ef4ec556447a10c00a91fc69b52d8d8298d9d608e68d3e0f7dc2d812d3455edf425e0f215993667c3183bcab1ef - languageName: node - linkType: hard - -"npm-run-path@npm:^2.0.0": - version: 2.0.2 - resolution: "npm-run-path@npm:2.0.2" - dependencies: - path-key: "npm:^2.0.0" - checksum: 95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: "npm:^3.0.0" - checksum: 6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac - languageName: node - linkType: hard - -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" - dependencies: - path-key: "npm:^4.0.0" - checksum: 124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba - languageName: node - linkType: hard - -"nullthrows@npm:^1.1.1": - version: 1.1.1 - resolution: "nullthrows@npm:1.1.1" - checksum: 56f34bd7c3dcb3bd23481a277fa22918120459d3e9d95ca72976c72e9cac33a97483f0b95fc420e2eb546b9fe6db398273aba9a938650cdb8c98ee8f159dcb30 - languageName: node - linkType: hard - -"number-is-nan@npm:^1.0.0": - version: 1.0.1 - resolution: "number-is-nan@npm:1.0.1" - checksum: cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5 - languageName: node - linkType: hard - -"number-to-bn@npm:1.7.0": - version: 1.7.0 - resolution: "number-to-bn@npm:1.7.0" - dependencies: - bn.js: "npm:4.11.6" - strip-hex-prefix: "npm:1.0.0" - checksum: 83d1540173c4fc60ef4e91e88ed17f2c38418c8e5e62f469d62404527efba48d9c40f364da5c5e6857234a6c1154ff32b3642d80f873ba6cb8d2dd05fb6bc303 - languageName: node - linkType: hard - -"oauth-sign@npm:~0.9.0": - version: 0.9.0 - resolution: "oauth-sign@npm:0.9.0" - checksum: fc92a516f6ddbb2699089a2748b04f55c47b6ead55a77cd3a2cbbce5f7af86164cb9425f9ae19acfd066f1ad7d3a96a67b8928c6ea946426f6d6c29e448497c2 - languageName: node - linkType: hard - -"object-assign@npm:^4, object-assign@npm:^4.0.0, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 - languageName: node - linkType: hard - -"object-copy@npm:^0.1.0": - version: 0.1.0 - resolution: "object-copy@npm:0.1.0" - dependencies: - copy-descriptor: "npm:^0.1.0" - define-property: "npm:^0.2.5" - kind-of: "npm:^3.0.3" - checksum: 79314b05e9d626159a04f1d913f4c4aba9eae8848511cf5f4c8e3b04bb3cc313b65f60357f86462c959a14c2d58380fedf89b6b32ecec237c452a5ef3900a293 - languageName: node - linkType: hard - -"object-inspect@npm:1.10.3": - version: 1.10.3 - resolution: "object-inspect@npm:1.10.3" - checksum: 42bf0d9df02fba934148c9d30183c57c8327aa09deefbfa24b563019fe25678a49c96bdd2c9c14d9c21f067e73bc02d0d54861d72cefb53b29e5258b9455cc50 - languageName: node - linkType: hard - -"object-inspect@npm:^1.12.2, object-inspect@npm:^1.13.1": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d - languageName: node - linkType: hard - -"object-inspect@npm:~1.12.3": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: 752bb5f4dc595e214157ea8f442adb77bdb850ace762b078d151d8b6486331ab12364997a89ee6509be1023b15adf2b3774437a7105f8a5043dfda11ed622411 - languageName: node - linkType: hard - -"object-is@npm:^1.1.5": - version: 1.1.6 - resolution: "object-is@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - checksum: 506af444c4dce7f8e31f34fc549e2fb8152d6b9c4a30c6e62852badd7f520b579c679af433e7a072f9d78eb7808d230dc12e1cf58da9154dfbf8813099ea0fe0 - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d - languageName: node - linkType: hard - -"object-keys@npm:~0.4.0": - version: 0.4.0 - resolution: "object-keys@npm:0.4.0" - checksum: 91b5eefd2e0374b3d19000d4ea21d94b9f616c28a1e58f1c4f3e1fd6486a9f53ac00aa10e5ef85536be477dbd0f506bdeee6418e5fc86cc91ab0748655b08f5b - languageName: node - linkType: hard - -"object-visit@npm:^1.0.0": - version: 1.0.1 - resolution: "object-visit@npm:1.0.1" - dependencies: - isobject: "npm:^3.0.0" - checksum: 086b475bda24abd2318d2b187c3e928959b89f5cb5883d6fe5a42d03719b61fc18e765f658de9ac8730e67ba9ff26d61e73d991215948ff9ecefe771e0071029 - languageName: node - linkType: hard - -"object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 - languageName: node - linkType: hard - -"object.getownpropertydescriptors@npm:^2.1.6": - version: 2.1.8 - resolution: "object.getownpropertydescriptors@npm:2.1.8" - dependencies: - array.prototype.reduce: "npm:^1.0.6" - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - gopd: "npm:^1.0.1" - safe-array-concat: "npm:^1.1.2" - checksum: 553e9562fd86637c9c169df23a56f1d810d8c9b580a6d4be11552c009f32469310c9347f3d10325abf0cd9cfe4afc521a1e903fbd24148ae7ec860e1e7c75cf3 - languageName: node - linkType: hard - -"object.omit@npm:^2.0.0": - version: 2.0.1 - resolution: "object.omit@npm:2.0.1" - dependencies: - for-own: "npm:^0.1.4" - is-extendable: "npm:^0.1.1" - checksum: 219549087650a1dce1990bbb9c207aa9e0c5302372cbcb363b4a7a36a7b1655a80287d290bebcaff5ae4b5ab7e5859a57f49e3f766cade65bc149fe15c0ba38d - languageName: node - linkType: hard - -"object.pick@npm:^1.3.0": - version: 1.3.0 - resolution: "object.pick@npm:1.3.0" - dependencies: - isobject: "npm:^3.0.1" - checksum: cd316ec986e49895a28f2df9182de9cdeee57cd2a952c122aacc86344c28624fe002d9affc4f48b5014ec7c033da9942b08821ddb44db8c5bac5b3ec54bdc31e - languageName: node - linkType: hard - -"obliterator@npm:^2.0.0": - version: 2.0.4 - resolution: "obliterator@npm:2.0.4" - checksum: ff2c10d4de7d62cd1d588b4d18dfc42f246c9e3a259f60d5716f7f88e5b3a3f79856b3207db96ec9a836a01d0958a21c15afa62a3f4e73a1e0b75f2c2f6bab40 - languageName: node - linkType: hard - -"oboe@npm:2.1.4": - version: 2.1.4 - resolution: "oboe@npm:2.1.4" - dependencies: - http-https: "npm:^1.0.0" - checksum: 29bfbdc0cb995c56d03635dc4fa2bbcd2906ca0738a5b2b2a44548bd94c4299210f0e664f65d864f6b41c7360dabd06c203bd51dbd17e5909b0bac8ca57c4786 - languageName: node - linkType: hard - -"oboe@npm:2.1.5": - version: 2.1.5 - resolution: "oboe@npm:2.1.5" - dependencies: - http-https: "npm:^1.0.0" - checksum: 98e0b37d26a592e36a2a1ffef6f8d30d81046f9577535d380e8cf05e3f25cf239bc28c19a98512b41b31efdf3d6cf5be2375f395aa69b1bd2e85f6e12e4c22f9 - languageName: node - linkType: hard - -"on-exit-leak-free@npm:^0.2.0": - version: 0.2.0 - resolution: "on-exit-leak-free@npm:0.2.0" - checksum: d4e1f0bea59f39aa435baaee7d76955527e245538cffc1d7bb0c165ae85e37f67690aa9272247ced17bad76052afdb45faf5ea304a2248e070202d4554c4e30c - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 - languageName: node - linkType: hard - -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" - dependencies: - ee-first: "npm:1.1.1" - checksum: c904f9e518b11941eb60279a3cbfaf1289bd0001f600a950255b1dede9fe3df8cd74f38483550b3bb9485165166acb5db500c3b4c4337aec2815c88c96fcc2ea - languageName: node - linkType: hard - -"on-headers@npm:~1.0.2": - version: 1.0.2 - resolution: "on-headers@npm:1.0.2" - checksum: f649e65c197bf31505a4c0444875db0258e198292f34b884d73c2f751e91792ef96bb5cf89aa0f4fecc2e4dc662461dda606b1274b0e564f539cae5d2f5fc32f - languageName: node - linkType: hard - -"once@npm:1.x, once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: "npm:1" - checksum: 5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 - languageName: node - linkType: hard - -"one-time@npm:^1.0.0": - version: 1.0.0 - resolution: "one-time@npm:1.0.0" - dependencies: - fn.name: "npm:1.x.x" - checksum: 6e4887b331edbb954f4e915831cbec0a7b9956c36f4feb5f6de98c448ac02ff881fd8d9b55a6b1b55030af184c6b648f340a76eb211812f4ad8c9b4b8692fdaa - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: "npm:^2.1.0" - checksum: ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f - languageName: node - linkType: hard - -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: "npm:^4.0.0" - checksum: 4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c - languageName: node - linkType: hard - -"open@npm:^7.4.2": - version: 7.4.2 - resolution: "open@npm:7.4.2" - dependencies: - is-docker: "npm:^2.0.0" - is-wsl: "npm:^2.1.1" - checksum: 77573a6a68f7364f3a19a4c80492712720746b63680ee304555112605ead196afe91052bd3c3d165efdf4e9d04d255e87de0d0a77acec11ef47fd5261251813f - languageName: node - linkType: hard - -"open@npm:^8.4.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 - languageName: node - linkType: hard - -"openapi-types@npm:^12.1.0": - version: 12.1.3 - resolution: "openapi-types@npm:12.1.3" - checksum: 4ad4eb91ea834c237edfa6ab31394e87e00c888fc2918009763389c00d02342345195d6f302d61c3fd807f17723cd48df29b47b538b68375b3827b3758cd520f - languageName: node - linkType: hard - -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: "npm:~0.1.3" - fast-levenshtein: "npm:~2.0.6" - levn: "npm:~0.3.0" - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - word-wrap: "npm:~1.2.3" - checksum: ad7000ea661792b3ec5f8f86aac28895850988926f483b5f308f59f4607dfbe24c05df2d049532ee227c040081f39401a268cf7bbf3301512f74c4d760dc6dd8 - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.4 - resolution: "optionator@npm:0.9.4" - dependencies: - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - word-wrap: "npm:^1.2.5" - checksum: 4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 - languageName: node - linkType: hard - -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: "npm:^4.1.0" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-spinners: "npm:^2.5.0" - is-interactive: "npm:^1.0.0" - is-unicode-supported: "npm:^0.1.0" - log-symbols: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - checksum: 10ff14aace236d0e2f044193362b22edce4784add08b779eccc8f8ef97195cae1248db8ec1ec5f5ff076f91acbe573f5f42a98c19b78dba8c54eefff983cae85 - languageName: node - linkType: hard - -"ordinal@npm:^1.0.3": - version: 1.0.3 - resolution: "ordinal@npm:1.0.3" - checksum: faa276fc1b1660477fd5c8749323c9715ae4f482c21fb8e67e57d1eb57845ba1b902796ecdcf6405325a8c3b042360970f5dc3b7f8cc7d79e0b2a756ab09174d - languageName: node - linkType: hard - -"os-homedir@npm:^1.0.0": - version: 1.0.2 - resolution: "os-homedir@npm:1.0.2" - checksum: 6be4aa67317ee247b8d46142e243fb4ef1d2d65d3067f54bfc5079257a2f4d4d76b2da78cba7af3cb3f56dbb2e4202e0c47f26171d11ca1ed4008d842c90363f - languageName: node - linkType: hard - -"os-locale@npm:^1.4.0": - version: 1.4.0 - resolution: "os-locale@npm:1.4.0" - dependencies: - lcid: "npm:^1.0.0" - checksum: 302173159d562000ddf982ed75c493a0d861e91372c9e1b13aab21590ff2e1ba264a41995b29be8dc5278a6127ffcd2ad5591779e8164a570fc5fa6c0787b057 - languageName: node - linkType: hard - -"os-locale@npm:^2.0.0": - version: 2.1.0 - resolution: "os-locale@npm:2.1.0" - dependencies: - execa: "npm:^0.7.0" - lcid: "npm:^1.0.0" - mem: "npm:^1.1.0" - checksum: 6f1acc060552a59f477ab541e9149a712f93a4d7b5262d070698dbe98cf047f35c7685d759a86dc56c12b76fdfbab1bf7216a74232263efbe7365de2a5d70834 - languageName: node - linkType: hard - -"os-tmpdir@npm:^1.0.1, os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 - languageName: node - linkType: hard - -"outdent@npm:^0.5.0": - version: 0.5.0 - resolution: "outdent@npm:0.5.0" - checksum: e216a4498889ba1babae06af84cdc4091f7cac86da49d22d0163b3be202a5f52efcd2bcd3dfca60a361eb3a27b4299f185c5655061b6b402552d7fcd1d040cff - languageName: node - linkType: hard - -"p-cancelable@npm:^1.0.0": - version: 1.1.0 - resolution: "p-cancelable@npm:1.1.0" - checksum: 9f16d7d58897edb07b1a9234b2bfce3665c747f0f13886e25e2144ecab4595412017cc8cc3b0042f89864b997d6dba76c130724e1c0923fc41ff3c9399b87449 - languageName: node - linkType: hard - -"p-cancelable@npm:^2.0.0": - version: 2.1.1 - resolution: "p-cancelable@npm:2.1.1" - checksum: 8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 - languageName: node - linkType: hard - -"p-cancelable@npm:^3.0.0": - version: 3.0.0 - resolution: "p-cancelable@npm:3.0.0" - checksum: 948fd4f8e87b956d9afc2c6c7392de9113dac817cb1cecf4143f7a3d4c57ab5673614a80be3aba91ceec5e4b69fd8c869852d7e8048bc3d9273c4c36ce14b9aa - languageName: node - linkType: hard - -"p-defer@npm:^3.0.0": - version: 3.0.0 - resolution: "p-defer@npm:3.0.0" - checksum: 848eb9821785b9a203def23618217ddbfa5cd909574ad0d66aae61a1981c4dcfa084804d6f97abe027bd004643471ddcdc823aa8df60198f791a9bd985e01bee - languageName: node - linkType: hard - -"p-fifo@npm:^1.0.0": - version: 1.0.0 - resolution: "p-fifo@npm:1.0.0" - dependencies: - fast-fifo: "npm:^1.0.0" - p-defer: "npm:^3.0.0" - checksum: b9e5b9c14c0fea63801c55c116028dce60770ff0be06dff459981c83c014028cf7b671acb12f169a4bdb3e7e1c5ec75c6d69542aebeccd1c13e3ddd764e7450d - languageName: node - linkType: hard - -"p-filter@npm:^2.1.0": - version: 2.1.0 - resolution: "p-filter@npm:2.1.0" - dependencies: - p-map: "npm:^2.0.0" - checksum: 5ac34b74b3b691c04212d5dd2319ed484f591c557a850a3ffc93a08cb38c4f5540be059c6b10a185773c479ca583a91ea00c7d6c9958c815e6b74d052f356645 - languageName: node - linkType: hard - -"p-finally@npm:^1.0.0": - version: 1.0.0 - resolution: "p-finally@npm:1.0.0" - checksum: 6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7 - languageName: node - linkType: hard - -"p-limit@npm:3.1.0, p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a - languageName: node - linkType: hard - -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: "npm:^1.0.0" - checksum: 5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: "npm:^2.0.0" - checksum: 8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 - languageName: node - linkType: hard - -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: "npm:^1.1.0" - checksum: 82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: "npm:^2.2.0" - checksum: 1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: "npm:^3.0.2" - checksum: 2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a - languageName: node - linkType: hard - -"p-map@npm:^2.0.0": - version: 2.1.0 - resolution: "p-map@npm:2.1.0" - checksum: 735dae87badd4737a2dd582b6d8f93e49a1b79eabbc9815a4d63a528d5e3523e978e127a21d784cccb637010e32103a40d2aaa3ab23ae60250b1a820ca752043 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 - languageName: node - linkType: hard - -"p-queue@npm:^6.6.1, p-queue@npm:^6.6.2": - version: 6.6.2 - resolution: "p-queue@npm:6.6.2" - dependencies: - eventemitter3: "npm:^4.0.4" - p-timeout: "npm:^3.2.0" - checksum: 5739ecf5806bbeadf8e463793d5e3004d08bb3f6177bd1a44a005da8fd81bb90f80e4633e1fb6f1dfd35ee663a5c0229abe26aebb36f547ad5a858347c7b0d3e - languageName: node - linkType: hard - -"p-timeout@npm:^3.2.0": - version: 3.2.0 - resolution: "p-timeout@npm:3.2.0" - dependencies: - p-finally: "npm:^1.0.0" - checksum: 524b393711a6ba8e1d48137c5924749f29c93d70b671e6db761afa784726572ca06149c715632da8f70c090073afb2af1c05730303f915604fd38ee207b70a61 - languageName: node - linkType: hard - -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f - languageName: node - linkType: hard - -"package-json@npm:^8.1.0": - version: 8.1.1 - resolution: "package-json@npm:8.1.1" - dependencies: - got: "npm:^12.1.0" - registry-auth-token: "npm:^5.0.1" - registry-url: "npm:^6.0.0" - semver: "npm:^7.3.7" - checksum: 83b057878bca229033aefad4ef51569b484e63a65831ddf164dc31f0486817e17ffcb58c819c7af3ef3396042297096b3ffc04e107fd66f8f48756f6d2071c8f - languageName: node - linkType: hard - -"packet-reader@npm:1.0.0": - version: 1.0.0 - resolution: "packet-reader@npm:1.0.0" - checksum: c86c3321bb07e0f03cc2db59f7701184e0bbfcb914f1fdc963993b03262486deb402292adcef39b64e3530ea66b3b2e2163d6da7b3792a730bdd1c6df3175aaa - languageName: node - linkType: hard - -"param-case@npm:^3.0.4": - version: 3.0.4 - resolution: "param-case@npm:3.0.4" - dependencies: - dot-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: ccc053f3019f878eca10e70ec546d92f51a592f762917dafab11c8b532715dcff58356118a6f350976e4ab109e321756f05739643ed0ca94298e82291e6f9e76 - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - -"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7": - version: 5.1.7 - resolution: "parse-asn1@npm:5.1.7" - dependencies: - asn1.js: "npm:^4.10.1" - browserify-aes: "npm:^1.2.0" - evp_bytestokey: "npm:^1.0.3" - hash-base: "npm:~3.0" - pbkdf2: "npm:^3.1.2" - safe-buffer: "npm:^5.2.1" - checksum: 05eb5937405c904eb5a7f3633bab1acc11f4ae3478a07ef5c6d81ce88c3c0e505ff51f9c7b935ebc1265c868343793698fc91025755a895d0276f620f95e8a82 - languageName: node - linkType: hard - -"parse-cache-control@npm:^1.0.1": - version: 1.0.1 - resolution: "parse-cache-control@npm:1.0.1" - checksum: 330a0d9e3a22a7b0f6e8a973c0b9f51275642ee28544cd0d546420273946d555d20a5c7b49fca24d68d2e698bae0186f0f41f48d62133d3153c32454db05f2df - languageName: node - linkType: hard - -"parse-duration@npm:^0.4.4": - version: 0.4.4 - resolution: "parse-duration@npm:0.4.4" - checksum: 2263f45d92f38f03faba31afe8a923bb319f5cddf798ca19ba2214238c5e58c6c5a0a58602894afad7438e63c677fbc5cfe387c11214163182d25a355dbcf87f - languageName: node - linkType: hard - -"parse-filepath@npm:^1.0.2": - version: 1.0.2 - resolution: "parse-filepath@npm:1.0.2" - dependencies: - is-absolute: "npm:^1.0.0" - map-cache: "npm:^0.2.0" - path-root: "npm:^0.1.1" - checksum: 37bbd225fa864257246777efbdf72a9305c4ae12110bf467d11994e93f8be60dd309dcef68124a2c78c5d3b4e64e1c36fcc2560e2ea93fd97767831e7a446805 - languageName: node - linkType: hard - -"parse-glob@npm:^3.0.4": - version: 3.0.4 - resolution: "parse-glob@npm:3.0.4" - dependencies: - glob-base: "npm:^0.3.0" - is-dotfile: "npm:^1.0.0" - is-extglob: "npm:^1.0.0" - is-glob: "npm:^2.0.0" - checksum: 4faf2e81ca85bc545777a1210ab770e0305c9e095680c219e5635e1a439d763feaf761e055b136425c3d6dcd3ec9431b77fd20f7411525b21031620125dc1dbc - languageName: node - linkType: hard - -"parse-headers@npm:^2.0.0": - version: 2.0.5 - resolution: "parse-headers@npm:2.0.5" - checksum: 950d75034f46be8b77c491754aefa61b32954e675200d9247ec60b2acaf85c0cc053c44e44b35feed9034a34cc696a5b6fda693b5a0b23daf3294959dd216124 - languageName: node - linkType: hard - -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: "npm:^1.2.0" - checksum: 7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6 - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - error-ex: "npm:^1.3.1" - json-parse-even-better-errors: "npm:^2.3.0" - lines-and-columns: "npm:^1.1.6" - checksum: 77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 - languageName: node - linkType: hard - -"parse-passwd@npm:^1.0.0": - version: 1.0.0 - resolution: "parse-passwd@npm:1.0.0" - checksum: 1c05c05f95f184ab9ca604841d78e4fe3294d46b8e3641d305dcc28e930da0e14e602dbda9f3811cd48df5b0e2e27dbef7357bf0d7c40e41b18c11c3a8b8d17b - languageName: node - linkType: hard - -"parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 - languageName: node - linkType: hard - -"pascal-case@npm:^3.1.2": - version: 3.1.2 - resolution: "pascal-case@npm:3.1.2" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: 05ff7c344809fd272fc5030ae0ee3da8e4e63f36d47a1e0a4855ca59736254192c5a27b5822ed4bae96e54048eec5f6907713cfcfff7cdf7a464eaf7490786d8 - languageName: node - linkType: hard - -"pascalcase@npm:^0.1.1": - version: 0.1.1 - resolution: "pascalcase@npm:0.1.1" - checksum: 48dfe90618e33810bf58211d8f39ad2c0262f19ad6354da1ba563935b5f429f36409a1fb9187c220328f7a4dc5969917f8e3e01ee089b5f1627b02aefe39567b - languageName: node - linkType: hard - -"patch-package@npm:6.2.2": - version: 6.2.2 - resolution: "patch-package@npm:6.2.2" - dependencies: - "@yarnpkg/lockfile": "npm:^1.1.0" - chalk: "npm:^2.4.2" - cross-spawn: "npm:^6.0.5" - find-yarn-workspace-root: "npm:^1.2.1" - fs-extra: "npm:^7.0.1" - is-ci: "npm:^2.0.0" - klaw-sync: "npm:^6.0.0" - minimist: "npm:^1.2.0" - rimraf: "npm:^2.6.3" - semver: "npm:^5.6.0" - slash: "npm:^2.0.0" - tmp: "npm:^0.0.33" - bin: - patch-package: index.js - checksum: 61bee7746266c15f13de5c8f9ed4b1b2f20d2897a1b292cd5dd7b63fbdc98c5c9acf1fa8c3bb49621ae955e49f9dede314f7fe859ad82056ad93e54ba81ec993 - languageName: node - linkType: hard - -"patch-package@npm:^6.2.2": - version: 6.5.1 - resolution: "patch-package@npm:6.5.1" - dependencies: - "@yarnpkg/lockfile": "npm:^1.1.0" - chalk: "npm:^4.1.2" - cross-spawn: "npm:^6.0.5" - find-yarn-workspace-root: "npm:^2.0.0" - fs-extra: "npm:^9.0.0" - is-ci: "npm:^2.0.0" - klaw-sync: "npm:^6.0.0" - minimist: "npm:^1.2.6" - open: "npm:^7.4.2" - rimraf: "npm:^2.6.3" - semver: "npm:^5.6.0" - slash: "npm:^2.0.0" - tmp: "npm:^0.0.33" - yaml: "npm:^1.10.2" - bin: - patch-package: index.js - checksum: 0f74d6099b05431c88a60308bd9ec0b1f9d3ae436026f488cfe99476ae74e7a464be4a16a7c83c7b89c23764502c79d37227cf27b17c30b9b2e4d577f8aecedb - languageName: node - linkType: hard - -"path-browserify@npm:1.0.1, path-browserify@npm:^1.0.0": - version: 1.0.1 - resolution: "path-browserify@npm:1.0.1" - checksum: 8b8c3fd5c66bd340272180590ae4ff139769e9ab79522e2eb82e3d571a89b8117c04147f65ad066dccfb42fcad902e5b7d794b3d35e0fd840491a8ddbedf8c66 - languageName: node - linkType: hard - -"path-case@npm:^3.0.4": - version: 3.0.4 - resolution: "path-case@npm:3.0.4" - dependencies: - dot-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: b6b14637228a558793f603aaeb2fcd981e738b8b9319421b713532fba96d75aa94024b9f6b9ae5aa33d86755144a5b36697d28db62ae45527dbd672fcc2cf0b7 - languageName: node - linkType: hard - -"path-exists@npm:^2.0.0": - version: 2.1.0 - resolution: "path-exists@npm:2.1.0" - dependencies: - pinkie-promise: "npm:^2.0.0" - checksum: 87352f1601c085d5a6eb202f60e5c016c1b790bd0bc09398af446ed3f5c4510b4531ff99cf8acac2d91868886e792927b4292f768b35a83dce12588fb7cbb46e - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0, path-is-absolute@npm:^1.0.1": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 - languageName: node - linkType: hard - -"path-key@npm:^2.0.0, path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c - languageName: node - linkType: hard - -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 - languageName: node - linkType: hard - -"path-root-regex@npm:^0.1.0": - version: 0.1.2 - resolution: "path-root-regex@npm:0.1.2" - checksum: 27651a234f280c70d982dd25c35550f74a4284cde6b97237aab618cb4b5745682d18cdde1160617bb4a4b6b8aec4fbc911c4a2ad80d01fa4c7ee74dae7af2337 - languageName: node - linkType: hard - -"path-root@npm:^0.1.1": - version: 0.1.1 - resolution: "path-root@npm:0.1.1" - dependencies: - path-root-regex: "npm:^0.1.0" - checksum: aed5cd290df84c46c7730f6a363e95e47a23929b51ab068a3818d69900da3e89dc154cdfd0c45c57b2e02f40c094351bc862db70c2cb00b7e6bd47039a227813 - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.0": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d - languageName: node - linkType: hard - -"path-starts-with@npm:^2.0.0": - version: 2.0.1 - resolution: "path-starts-with@npm:2.0.1" - checksum: 23b88fdd2b014fcd0b70e2254e4c2961cd5e9d7b20a480e42a334d78b066964b919bf190afe27b179d5669b42028954aea45b6856320ab6321e978b2c6e99b97 - languageName: node - linkType: hard - -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905 - languageName: node - linkType: hard - -"path-type@npm:^1.0.0": - version: 1.1.0 - resolution: "path-type@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: 2b8c348cb52bbc0c0568afa10a0a5d8f6233adfe5ae75feb56064f6aed6324ab74185c61c2545f4e52ca08acdc76005f615da4e127ed6eecb866002cf491f350 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c - languageName: node - linkType: hard - -"pathval@npm:^1.1.1": - version: 1.1.1 - resolution: "pathval@npm:1.1.1" - checksum: f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc - languageName: node - linkType: hard - -"pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.0.9, pbkdf2@npm:^3.1.2": - version: 3.1.2 - resolution: "pbkdf2@npm:3.1.2" - dependencies: - create-hash: "npm:^1.1.2" - create-hmac: "npm:^1.1.4" - ripemd160: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - sha.js: "npm:^2.4.8" - checksum: 5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd - languageName: node - linkType: hard - -"pegjs@npm:^0.10.0": - version: 0.10.0 - resolution: "pegjs@npm:0.10.0" - bin: - pegjs: bin/pegjs - checksum: 51f2aee312cd506c37c21a88fee2d921ccae81697c7aa3e61f0ad8e370d8c37e2a86680993fce405f53337a56ad471f9e7f4377b2eb3c780d5cf6ae8a16ce0a5 - languageName: node - linkType: hard - -"performance-now@npm:^2.1.0": - version: 2.1.0 - resolution: "performance-now@npm:2.1.0" - checksum: 22c54de06f269e29f640e0e075207af57de5052a3d15e360c09b9a8663f393f6f45902006c1e71aa8a5a1cdfb1a47fe268826f8496d6425c362f00f5bc3e85d9 - languageName: node - linkType: hard - -"pg-cloudflare@npm:^1.1.1": - version: 1.1.1 - resolution: "pg-cloudflare@npm:1.1.1" - checksum: a68b957f755be6af813d68ccaf4c906a000fd2ecb362cd281220052cc9e2f6c26da3b88792742387008c30b3bf0d2fa3a0eff04aeb8af4414023c99ae78e07bd - languageName: node - linkType: hard - -"pg-connection-string@npm:^2.5.0, pg-connection-string@npm:^2.6.1, pg-connection-string@npm:^2.6.2": - version: 2.6.4 - resolution: "pg-connection-string@npm:2.6.4" - checksum: 0d0b617df0fc6507bf6a94bdcd56c7a305788a1402d69bff9773350947c8f525d6d8136128065370749a3325e99658ae40fbdcce620fb8e60126181f0591a6a6 - languageName: node - linkType: hard - -"pg-hstore@npm:2.3.4": - version: 2.3.4 - resolution: "pg-hstore@npm:2.3.4" - dependencies: - underscore: "npm:^1.13.1" - checksum: 2f4e352ba82b200cda55b796e7e8ef7e50377914f1ab4d91fa6dc9701b3d4ae4ddf168376a08a21d1f5a38d87f434be1c55d2287ec6b5135db3745ca296c99e2 - languageName: node - linkType: hard - -"pg-int8@npm:1.0.1": - version: 1.0.1 - resolution: "pg-int8@npm:1.0.1" - checksum: be6a02d851fc2a4ae3e9de81710d861de3ba35ac927268973eb3cb618873a05b9424656df464dd43bd7dc3fc5295c3f5b3c8349494f87c7af50ec59ef14e0b98 - languageName: node - linkType: hard - -"pg-pool@npm:^3.5.1, pg-pool@npm:^3.6.1": - version: 3.6.2 - resolution: "pg-pool@npm:3.6.2" - peerDependencies: - pg: ">=8.0" - checksum: 14c524549490954b5e48457a4b808df8f619f6deeb3b395b0cd184a8f4ed65a9273fe0697ba0341a41d6745af197f1437eb1cf51fff0cbbf5b0fb3852ebe5392 - languageName: node - linkType: hard - -"pg-protocol@npm:^1.5.0, pg-protocol@npm:^1.6.0": - version: 1.6.1 - resolution: "pg-protocol@npm:1.6.1" - checksum: 7eadef4010ac0a3925c460be7332ca4098a5c6d5181725a62193fcfa800000ae6632d98d814f3989b42cf5fdc3b45e34c714a1959d29174e81e30730e140ae5f - languageName: node - linkType: hard - -"pg-types@npm:^2.1.0": - version: 2.2.0 - resolution: "pg-types@npm:2.2.0" - dependencies: - pg-int8: "npm:1.0.1" - postgres-array: "npm:~2.0.0" - postgres-bytea: "npm:~1.0.0" - postgres-date: "npm:~1.0.4" - postgres-interval: "npm:^1.1.0" - checksum: ab3f8069a323f601cd2d2279ca8c425447dab3f9b61d933b0601d7ffc00d6200df25e26a4290b2b0783b59278198f7dd2ed03e94c4875797919605116a577c65 - languageName: node - linkType: hard - -"pg@npm:8.11.3": - version: 8.11.3 - resolution: "pg@npm:8.11.3" - dependencies: - buffer-writer: "npm:2.0.0" - packet-reader: "npm:1.0.0" - pg-cloudflare: "npm:^1.1.1" - pg-connection-string: "npm:^2.6.2" - pg-pool: "npm:^3.6.1" - pg-protocol: "npm:^1.6.0" - pg-types: "npm:^2.1.0" - pgpass: "npm:1.x" - peerDependencies: - pg-native: ">=3.0.1" - dependenciesMeta: - pg-cloudflare: - optional: true - peerDependenciesMeta: - pg-native: - optional: true - checksum: 07e6967fc8bd5d72bab9be6620626e8e3ab59128ebf56bf0de83d67f10801a19221d88b3317e90b93339ba48d0498b39967b782ae39686aabda6bc647bceb438 - languageName: node - linkType: hard - -"pg@npm:8.7.3": - version: 8.7.3 - resolution: "pg@npm:8.7.3" - dependencies: - buffer-writer: "npm:2.0.0" - packet-reader: "npm:1.0.0" - pg-connection-string: "npm:^2.5.0" - pg-pool: "npm:^3.5.1" - pg-protocol: "npm:^1.5.0" - pg-types: "npm:^2.1.0" - pgpass: "npm:1.x" - peerDependencies: - pg-native: ">=2.0.0" - peerDependenciesMeta: - pg-native: - optional: true - checksum: 9b509d15a0bbba9653bd8af8739cf5c0b3399d1989b4e6b9a5f06615b22169cb5b415011efa4f945a01d5b3735d9fd572b533b99d641d55cbfc2f948d931da5b - languageName: node - linkType: hard - -"pgpass@npm:1.x": - version: 1.0.5 - resolution: "pgpass@npm:1.0.5" - dependencies: - split2: "npm:^4.1.0" - checksum: 5ea6c9b2de04c33abb08d33a2dded303c4a3c7162a9264519cbe85c0a9857d712463140ba42fad0c7cd4b21f644dd870b45bb2e02fcbe505b4de0744fd802c1d - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400 - languageName: node - linkType: hard - -"picocolors@npm:^1.1.0": - version: 1.1.1 - resolution: "picocolors@npm:1.1.1" - checksum: e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"picomatch@npm:^4.0.2": - version: 4.0.2 - resolution: "picomatch@npm:4.0.2" - checksum: 7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc - languageName: node - linkType: hard - -"pidtree@npm:0.6.0": - version: 0.6.0 - resolution: "pidtree@npm:0.6.0" - bin: - pidtree: bin/pidtree.js - checksum: 0829ec4e9209e230f74ebf4265f5ccc9ebfb488334b525cb13f86ff801dca44b362c41252cd43ae4d7653a10a5c6ab3be39d2c79064d6895e0d78dc50a5ed6e9 - languageName: node - linkType: hard - -"pidtree@npm:^0.5.0": - version: 0.5.0 - resolution: "pidtree@npm:0.5.0" - bin: - pidtree: bin/pidtree.js - checksum: 4004b1c7429d02be941ad7ca2eac3bd93afa5cd59119633113013a33de52d76887de09a06a81943475bc1de3efe0a639515a5fee314f5ba074e6d849499e4b4f - languageName: node - linkType: hard - -"pify@npm:^2.0.0, pify@npm:^2.3.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - -"pify@npm:^4.0.1": - version: 4.0.1 - resolution: "pify@npm:4.0.1" - checksum: 6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf - languageName: node - linkType: hard - -"pinkie-promise@npm:^2.0.0": - version: 2.0.1 - resolution: "pinkie-promise@npm:2.0.1" - dependencies: - pinkie: "npm:^2.0.0" - checksum: 11b5e5ce2b090c573f8fad7b517cbca1bb9a247587306f05ae71aef6f9b2cd2b923c304aa9663c2409cfde27b367286179f1379bc4ec18a3fbf2bb0d473b160a - languageName: node - linkType: hard - -"pinkie@npm:^2.0.0": - version: 2.0.4 - resolution: "pinkie@npm:2.0.4" - checksum: 25228b08b5597da42dc384221aa0ce56ee0fbf32965db12ba838e2a9ca0193c2f0609c45551ee077ccd2060bf109137fdb185b00c6d7e0ed7e35006d20fdcbc6 - languageName: node - linkType: hard - -"pino-abstract-transport@npm:v0.5.0": - version: 0.5.0 - resolution: "pino-abstract-transport@npm:0.5.0" - dependencies: - duplexify: "npm:^4.1.2" - split2: "npm:^4.0.0" - checksum: 0d0e30399028ec156642b4cdfe1a040b9022befdc38e8f85935d1837c3da6050691888038433f88190d1a1eff5d90abe17ff7e6edffc09baa2f96e51b6808183 - languageName: node - linkType: hard - -"pino-multi-stream@npm:6.0.0": - version: 6.0.0 - resolution: "pino-multi-stream@npm:6.0.0" - dependencies: - pino: "npm:^7.0.0" - checksum: e32d6b3fb96c88e3e97d01ae566f64409c90f03d88c2c27bd51fc07a4df5ac419c892263779bee4188ef7e6b31055c469587f889a72fd47d42545b339ab2d38f - languageName: node - linkType: hard - -"pino-std-serializers@npm:^4.0.0": - version: 4.0.0 - resolution: "pino-std-serializers@npm:4.0.0" - checksum: 9e8ccac9ce04a27ccc7aa26481d431b9e037d866b101b89d895c60b925baffb82685e84d5c29b05d8e3d7c146d766a9b08949cb24ab1ec526a16134c9962d649 - languageName: node - linkType: hard - -"pino@npm:7.6.0": - version: 7.6.0 - resolution: "pino@npm:7.6.0" - dependencies: - fast-redact: "npm:^3.0.0" - fastify-warning: "npm:^0.2.0" - on-exit-leak-free: "npm:^0.2.0" - pino-abstract-transport: "npm:v0.5.0" - pino-std-serializers: "npm:^4.0.0" - quick-format-unescaped: "npm:^4.0.3" - real-require: "npm:^0.1.0" - safe-stable-stringify: "npm:^2.1.0" - sonic-boom: "npm:^2.2.1" - thread-stream: "npm:^0.13.0" - bin: - pino: bin.js - checksum: f7edcb464ca3104621159cbcc2bdb30fe37cc41a1cf4b50ad90516f4fef57462489609fece5cdcab0041d3a06ee2239075b288a8a8b1a2aa2ef24074b2c100d9 - languageName: node - linkType: hard - -"pino@npm:^7.0.0": - version: 7.11.0 - resolution: "pino@npm:7.11.0" - dependencies: - atomic-sleep: "npm:^1.0.0" - fast-redact: "npm:^3.0.0" - on-exit-leak-free: "npm:^0.2.0" - pino-abstract-transport: "npm:v0.5.0" - pino-std-serializers: "npm:^4.0.0" - process-warning: "npm:^1.0.0" - quick-format-unescaped: "npm:^4.0.3" - real-require: "npm:^0.1.0" - safe-stable-stringify: "npm:^2.1.0" - sonic-boom: "npm:^2.2.1" - thread-stream: "npm:^0.15.1" - bin: - pino: bin.js - checksum: 4cc1ed9d25a4bc5d61c836a861279fa0039159b8f2f37ec337e50b0a61f3980dab5d2b1393daec26f68a19c423262649f0818654c9ad102c35310544a202c62c - languageName: node - linkType: hard - -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: "npm:^4.0.0" - checksum: c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 - languageName: node - linkType: hard - -"please-upgrade-node@npm:^3.2.0": - version: 3.2.0 - resolution: "please-upgrade-node@npm:3.2.0" - dependencies: - semver-compare: "npm:^1.0.0" - checksum: 222514d2841022be4b843f38d415beadcc6409c0545d6d153778d71c601bba7bbf1cd5827d650c7fae6a9a2ba7cf00f4b6729b40d015a3a5ba2937e57bc1c435 - languageName: node - linkType: hard - -"pluralize@npm:^8.0.0": - version: 8.0.0 - resolution: "pluralize@npm:8.0.0" - checksum: 2044cfc34b2e8c88b73379ea4a36fc577db04f651c2909041b054c981cd863dd5373ebd030123ab058d194ae615d3a97cfdac653991e499d10caf592e8b3dc33 - languageName: node - linkType: hard - -"posix-character-classes@npm:^0.1.0": - version: 0.1.1 - resolution: "posix-character-classes@npm:0.1.1" - checksum: cce88011548a973b4af58361cd8f5f7b5a6faff8eef0901565802f067bcabf82597e920d4c97c22068464be3cbc6447af589f6cc8a7d813ea7165be60a0395bc - languageName: node - linkType: hard - -"possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd - languageName: node - linkType: hard - -"postgres-array@npm:~2.0.0": - version: 2.0.0 - resolution: "postgres-array@npm:2.0.0" - checksum: cbd56207e4141d7fbf08c86f2aebf21fa7064943d3f808ec85f442ff94b48d891e7a144cc02665fb2de5dbcb9b8e3183a2ac749959e794b4a4cfd379d7a21d08 - languageName: node - linkType: hard - -"postgres-bytea@npm:~1.0.0": - version: 1.0.0 - resolution: "postgres-bytea@npm:1.0.0" - checksum: febf2364b8a8953695cac159eeb94542ead5886792a9627b97e33f6b5bb6e263bc0706ab47ec221516e79fbd6b2452d668841830fb3b49ec6c0fc29be61892ce - languageName: node - linkType: hard - -"postgres-date@npm:~1.0.4": - version: 1.0.7 - resolution: "postgres-date@npm:1.0.7" - checksum: 0ff91fccc64003e10b767fcfeefb5eaffbc522c93aa65d5051c49b3c4ce6cb93ab091a7d22877a90ad60b8874202c6f1d0f935f38a7235ed3b258efd54b97ca9 - languageName: node - linkType: hard - -"postgres-interval@npm:^1.1.0": - version: 1.2.0 - resolution: "postgres-interval@npm:1.2.0" - dependencies: - xtend: "npm:^4.0.0" - checksum: c1734c3cb79e7f22579af0b268a463b1fa1d084e742a02a7a290c4f041e349456f3bee3b4ee0bb3f226828597f7b76deb615c1b857db9a742c45520100456272 - languageName: node - linkType: hard - -"postinstall-postinstall@npm:^2.1.0": - version: 2.1.0 - resolution: "postinstall-postinstall@npm:2.1.0" - checksum: 70488447292c712afa7806126824d6fe93362392cbe261ae60166d9119a350713e0dbf4deb2ca91637c1037bc030ed1de78d61d9041bf2504513070f1caacdfd - languageName: node - linkType: hard - -"precond@npm:0.2": - version: 0.2.3 - resolution: "precond@npm:0.2.3" - checksum: 289b71202c090286fab340acafc96bc1d719e6f2d2484a868ef5dff28efd5953bafda78aebe4416ebf907992aa88942e68cd53ed7e2ab9eaf0709a6b5ac72340 - languageName: node - linkType: hard - -"preferred-pm@npm:^3.0.0": - version: 3.1.3 - resolution: "preferred-pm@npm:3.1.3" - dependencies: - find-up: "npm:^5.0.0" - find-yarn-workspace-root2: "npm:1.2.16" - path-exists: "npm:^4.0.0" - which-pm: "npm:2.0.0" - checksum: 8eb9c35e4818d8e20b5b61a2117f5c77678649e1d20492fe4fdae054a9c4b930d04582b17e8a59b2dc923f2f788c7ded7fc99fd22c04631d836f7f52aeb79bde - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd - languageName: node - linkType: hard - -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: 7284270064f74e0bb7f04eb9bff7be677e4146417e599ccc9c1200f0f640f8b11e592d94eb1b18f7aa9518031913bb42bea9c86af07ba69902864e61005d6f18 - languageName: node - linkType: hard - -"prepend-http@npm:^2.0.0": - version: 2.0.0 - resolution: "prepend-http@npm:2.0.0" - checksum: b023721ffd967728e3a25e3a80dd73827e9444e586800ab90a21b3a8e67f362d28023085406ad53a36db1e4d98cb10e43eb37d45c6b733140a9165ead18a0987 - languageName: node - linkType: hard - -"preserve@npm:^0.2.0": - version: 0.2.0 - resolution: "preserve@npm:0.2.0" - checksum: 21154ae0e53e3a338bcdf61dd6859a62f12f198961509fe07ac4f7f59b6f97de0b60c0dda2cce18e57894c77fa22544c8941c4e6f41fc30ed36753763fba6f19 - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: "npm:^1.1.2" - checksum: 81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab - languageName: node - linkType: hard - -"prettier-plugin-solidity@npm:^1.0.0-alpha.56, prettier-plugin-solidity@npm:^1.3.1": - version: 1.3.1 - resolution: "prettier-plugin-solidity@npm:1.3.1" - dependencies: - "@solidity-parser/parser": "npm:^0.17.0" - semver: "npm:^7.5.4" - solidity-comments-extractor: "npm:^0.0.8" - peerDependencies: - prettier: ">=2.3.0" - checksum: 6c83bec93a12a172aeae360bca571ffba5659a679d24d9a4905c4cae9f237a2a3c544a78f5efb7f2cd086733e114ed9e031d448799ca7b9f574e8fc07b94323a - languageName: node - linkType: hard - -"prettier@npm:^2.1.1, prettier@npm:^2.1.2, prettier@npm:^2.3.1, prettier@npm:^2.7.1, prettier@npm:^2.8.3": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" - bin: - prettier: bin-prettier.js - checksum: 463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a - languageName: node - linkType: hard - -"prettier@npm:^3.0.3, prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 - languageName: node - linkType: hard - -"private@npm:^0.1.6, private@npm:^0.1.8": - version: 0.1.8 - resolution: "private@npm:0.1.8" - checksum: 829a23723e5fd3105c72b2dadeeb65743a430f7e6967a8a6f3e49392a1b3ea52975a255376d8c513b0c988bdf162f1a5edf9d9bac27d1ab11f8dba8cdb58880e - languageName: node - linkType: hard - -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc - languageName: node - linkType: hard - -"proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 - languageName: node - linkType: hard - -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 - languageName: node - linkType: hard - -"process-warning@npm:^1.0.0": - version: 1.0.0 - resolution: "process-warning@npm:1.0.0" - checksum: 43ec4229d64eb5c58340c8aacade49eb5f6fd513eae54140abf365929ca20987f0a35c5868125e2b583cad4de8cd257beb5667d9cc539d9190a7a4c3014adf22 - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 - languageName: node - linkType: hard - -"prom-client@npm:14.0.1": - version: 14.0.1 - resolution: "prom-client@npm:14.0.1" - dependencies: - tdigest: "npm:^0.1.1" - checksum: 48fe007fb77759ae4686ad105ddb371eed389ab99a566fd12ed22a9bb6859e74927b4698021a4faeda57bbbbe98c23bdcf2251d669258964ca2a6094e9fb56a3 - languageName: node - linkType: hard - -"prom-client@npm:14.2.0": - version: 14.2.0 - resolution: "prom-client@npm:14.2.0" - dependencies: - tdigest: "npm:^0.1.1" - checksum: 6d14b8700fd6e5bde0ad3b3fbc77ad8bb7031948e5990b60a7ca85ec268bc6448a4e4cda9c2669576d3ba43d58bf09ee08134f2a3d22df07e277377fbb14faeb - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - -"promise-to-callback@npm:^1.0.0": - version: 1.0.0 - resolution: "promise-to-callback@npm:1.0.0" - dependencies: - is-fn: "npm:^1.0.0" - set-immediate-shim: "npm:^1.0.1" - checksum: 93652659c8ea3b51f2ff22a8228bb3b41687c67f7463db9bec31307162bd1e1988f4cf4406c5a5fbd8133d25e9c11f63b0f3adb9590fcc12d6464d8b04893399 - languageName: node - linkType: hard - -"promise@npm:^7.1.1": - version: 7.3.1 - resolution: "promise@npm:7.3.1" - dependencies: - asap: "npm:~2.0.3" - checksum: 742e5c0cc646af1f0746963b8776299701ad561ce2c70b49365d62c8db8ea3681b0a1bf0d4e2fe07910bf72f02d39e51e8e73dc8d7503c3501206ac908be107f - languageName: node - linkType: hard - -"promise@npm:^8.0.0": - version: 8.3.0 - resolution: "promise@npm:8.3.0" - dependencies: - asap: "npm:~2.0.6" - checksum: 6fccae27a10bcce7442daf090279968086edd2e3f6cebe054b71816403e2526553edf510d13088a4d0f14d7dfa9b9dfb188cab72d6f942e186a4353b6a29c8bf - languageName: node - linkType: hard - -"prompt-sync@npm:^4.2.0": - version: 4.2.0 - resolution: "prompt-sync@npm:4.2.0" - dependencies: - strip-ansi: "npm:^5.0.0" - checksum: 1312154b8d84c7487b734afdc5d9f7e092ac7a3a303aec8dfd3ba680502374f5942ca501943c6314ae77979aa4dcd3c6cd03db5da6ac7e4531d384c9740261ad - languageName: node - linkType: hard - -"prompts@npm:^2.4.2": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: "npm:^3.0.3" - sisteransi: "npm:^1.0.5" - checksum: 16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 - languageName: node - linkType: hard - -"proper-lockfile@npm:^4.1.1": - version: 4.1.2 - resolution: "proper-lockfile@npm:4.1.2" - dependencies: - graceful-fs: "npm:^4.2.4" - retry: "npm:^0.12.0" - signal-exit: "npm:^3.0.2" - checksum: 2f265dbad15897a43110a02dae55105c04d356ec4ed560723dcb9f0d34bc4fb2f13f79bb930e7561be10278e2314db5aca2527d5d3dcbbdee5e6b331d1571f6d - languageName: node - linkType: hard - -"proto-list@npm:~1.2.1": - version: 1.2.4 - resolution: "proto-list@npm:1.2.4" - checksum: b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12 - languageName: node - linkType: hard - -"protocol-buffers-schema@npm:^3.3.1": - version: 3.6.0 - resolution: "protocol-buffers-schema@npm:3.6.0" - checksum: 23a08612e5cc903f917ae3b680216ccaf2d889c61daa68d224237f455182fa96fff16872ac94b1954b5dd26fc7e8ce7e9360c54d54ea26218d107b2f059fca37 - languageName: node - linkType: hard - -"protons@npm:^2.0.0": - version: 2.0.3 - resolution: "protons@npm:2.0.3" - dependencies: - protocol-buffers-schema: "npm:^3.3.1" - signed-varint: "npm:^2.0.1" - uint8arrays: "npm:^3.0.0" - varint: "npm:^5.0.0" - checksum: fbd5deb483bcc0b05a59457f62ebcf92bf04320c49854aa5d9b8fd72f6a807c2f4288bdeee348a013bb288675a39368bf992279d1a8ca685af9f1357ce624c33 - languageName: node - linkType: hard - -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: "npm:0.2.0" - ipaddr.js: "npm:1.9.1" - checksum: c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 - languageName: node - linkType: hard - -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b - languageName: node - linkType: hard - -"prr@npm:~1.0.1": - version: 1.0.1 - resolution: "prr@npm:1.0.1" - checksum: 5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f - languageName: node - linkType: hard - -"pseudomap@npm:^1.0.1, pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679 - languageName: node - linkType: hard - -"psl@npm:^1.1.28": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab - languageName: node - linkType: hard - -"public-encrypt@npm:^4.0.0": - version: 4.0.3 - resolution: "public-encrypt@npm:4.0.3" - dependencies: - bn.js: "npm:^4.1.0" - browserify-rsa: "npm:^4.0.0" - create-hash: "npm:^1.1.0" - parse-asn1: "npm:^5.0.0" - randombytes: "npm:^2.0.1" - safe-buffer: "npm:^5.1.2" - checksum: 6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700 - languageName: node - linkType: hard - -"pull-cat@npm:^1.1.9": - version: 1.1.11 - resolution: "pull-cat@npm:1.1.11" - checksum: e20d5f2db3962808816026c25246afe2b4369c27e13806d2354dcab3b9f0fd9c26396a74edcb948994eb9554dafee5ac93b072a0ad6303647d123472edeb9591 - languageName: node - linkType: hard - -"pull-defer@npm:^0.2.2": - version: 0.2.3 - resolution: "pull-defer@npm:0.2.3" - checksum: 5d7b76c6839ba778b2dd67e45c51d89e03ac753d571aea15b75fe98bf3d451925fdad24903a6adea71dd58d8b2df417a574f8e62bea5f7e4a3071a92135e7a62 - languageName: node - linkType: hard - -"pull-level@npm:^2.0.3": - version: 2.0.4 - resolution: "pull-level@npm:2.0.4" - dependencies: - level-post: "npm:^1.0.7" - pull-cat: "npm:^1.1.9" - pull-live: "npm:^1.0.1" - pull-pushable: "npm:^2.0.0" - pull-stream: "npm:^3.4.0" - pull-window: "npm:^2.1.4" - stream-to-pull-stream: "npm:^1.7.1" - checksum: 29008576b5db4bcad04d7b0dcd8015b6c648a9def0b1b5fcc40a2bd841a8eae5f19e398459408500d67fe492d9cdb87bf5bcaad6d6a4235d45eb3fd1a6aba1ad - languageName: node - linkType: hard - -"pull-live@npm:^1.0.1": - version: 1.0.1 - resolution: "pull-live@npm:1.0.1" - dependencies: - pull-cat: "npm:^1.1.9" - pull-stream: "npm:^3.4.0" - checksum: 74041775b3e250a9ea60053e7c7c04f1635382920f497fa8c90da04ff040cff5cf055d58cdea9b94ce836307f50e55a9699d5c3f378392ca33e97017cdda6345 - languageName: node - linkType: hard - -"pull-pushable@npm:^2.0.0": - version: 2.2.0 - resolution: "pull-pushable@npm:2.2.0" - checksum: 8187b9c9ba5c3bd1c55128d71a490849c95a16056fce78e4c0f1c111d8bdd844e4d8419ce472a411176116ff743cbf07fec29306cca2d0468b2211e778f95a9f - languageName: node - linkType: hard - -"pull-stream@npm:^3.2.3, pull-stream@npm:^3.4.0, pull-stream@npm:^3.6.8": - version: 3.7.0 - resolution: "pull-stream@npm:3.7.0" - checksum: 943456c639d89bb5eb0dde296f63f52e9cb7fa02996881bbe254b5669d8288f8184271574bed2abe502964119f96ac0650356598dd9cd0caccb4b6593eb72219 - languageName: node - linkType: hard - -"pull-window@npm:^2.1.4": - version: 2.1.4 - resolution: "pull-window@npm:2.1.4" - dependencies: - looper: "npm:^2.0.0" - checksum: 359670d91eef072374d8ccd7aca9c9163ade110cce8e2992f4cb799d1cbdb7045305764811a8abe1e4d9fa5ffd06c8041087478ebc7d5ef9e71fb7d1b7df6e9f - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478 - languageName: node - linkType: hard - -"pumpify@npm:^2.0.1": - version: 2.0.1 - resolution: "pumpify@npm:2.0.1" - dependencies: - duplexify: "npm:^4.1.1" - inherits: "npm:^2.0.3" - pump: "npm:^3.0.0" - checksum: f9c12190dc65f8c347fe82e993708e4d14ce82c96f7cbd24b52f488cfa4dbc2ebbcc49e0f54655f1ca118fea59ddeec6ca5a34ef45558c8bb1de2f1ffa307198 - languageName: node - linkType: hard - -"punycode@npm:2.1.0": - version: 2.1.0 - resolution: "punycode@npm:2.1.0" - checksum: f427b54c0ce23da3eb07ef02f3f158a280bd0182cac7e409016390d2632d161fc759f99a2619e9f6dcdd9ea00e8640de844ffaffd9f9deb479494c3494ef5cfb - languageName: node - linkType: hard - -"punycode@npm:^1.3.2, punycode@npm:^1.4.1": - version: 1.4.1 - resolution: "punycode@npm:1.4.1" - checksum: 354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 - languageName: node - linkType: hard - -"pvtsutils@npm:^1.3.2, pvtsutils@npm:^1.3.5": - version: 1.3.5 - resolution: "pvtsutils@npm:1.3.5" - dependencies: - tslib: "npm:^2.6.1" - checksum: d425aed316907e0b447a459bfb97c55d22270c3cfdba5a07ec90da0737b0e40f4f1771a444636f85bb6a453de90ff8c6b5f4f6ddba7597977166af49974b4534 - languageName: node - linkType: hard - -"pvutils@npm:^1.1.3": - version: 1.1.3 - resolution: "pvutils@npm:1.1.3" - checksum: 23489e6b3c76b6afb6964a20f891d6bef092939f401c78bba186b2bfcdc7a13904a0af0a78f7933346510f8c1228d5ab02d3c80e968fd84d3c76ff98d8ec9aac - languageName: node - linkType: hard - -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4 - languageName: node - linkType: hard - -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 4e4875e4d7c7c31c233d07a448e7e4650f456178b9dd3766b7cfa13158fdb24ecb8c4f059fa91e820dc6ab9f2d243721d071c9c0378892dcdad86e9e9a27c68f - languageName: node - linkType: hard - -"qs@npm:6.9.6": - version: 6.9.6 - resolution: "qs@npm:6.9.6" - checksum: b635a0f35b53c8d19f41f5be01b1be24909b99a74be4eaa076814cf3707e49fbcb0c7eb3c5d4396c10eb0073888e76761e4efe8a2f65a60fb28b0b3397740a83 - languageName: node - linkType: hard - -"qs@npm:6.9.7": - version: 6.9.7 - resolution: "qs@npm:6.9.7" - checksum: d0274b3c2daa9e7b350fb695fc4b5f7a1e65e266d5798a07936975f0848bdca6d7ad41cded19ad4af6a6253b97e43b497e988e728eab7a286f277b6dddfbade4 - languageName: node - linkType: hard - -"qs@npm:^6.11.2, qs@npm:^6.4.0, qs@npm:^6.7.0, qs@npm:^6.9.4": - version: 6.12.1 - resolution: "qs@npm:6.12.1" - dependencies: - side-channel: "npm:^1.0.6" - checksum: 439e6d7c6583e7c69f2cab2c39c55b97db7ce576e4c7c469082b938b7fc8746e8d547baacb69b4cd2b6666484776c3f4840ad7163a4c5326300b0afa0acdd84b - languageName: node - linkType: hard - -"qs@npm:~6.5.2": - version: 6.5.3 - resolution: "qs@npm:6.5.3" - checksum: 6631d4f2fa9d315e480662646745a4aa3a708817fbffe2cbdacec8ab9be130f92740c66191770fe9b704bc5fa9c1cc1f6596f55ad132fef7bd3ad1582f199eb0 - languageName: node - linkType: hard - -"query-string@npm:^5.0.1": - version: 5.1.1 - resolution: "query-string@npm:5.1.1" - dependencies: - decode-uri-component: "npm:^0.2.0" - object-assign: "npm:^4.1.0" - strict-uri-encode: "npm:^1.0.0" - checksum: 25adf37fe9a5b749da55ef91192d190163c44283826b425fa86eeb1fa567cf500a32afc2c602d4f661839d86ca49c2f8d49433b3c1b44b9129a37a5d3da55f89 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - -"quick-format-unescaped@npm:^4.0.3": - version: 4.0.4 - resolution: "quick-format-unescaped@npm:4.0.4" - checksum: fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4 - languageName: node - linkType: hard - -"quick-lru@npm:^4.0.1": - version: 4.0.1 - resolution: "quick-lru@npm:4.0.1" - checksum: f9b1596fa7595a35c2f9d913ac312fede13d37dc8a747a51557ab36e11ce113bbe88ef4c0154968845559a7709cb6a7e7cbe75f7972182451cd45e7f057a334d - languageName: node - linkType: hard - -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da - languageName: node - linkType: hard - -"randomatic@npm:^3.0.0": - version: 3.1.1 - resolution: "randomatic@npm:3.1.1" - dependencies: - is-number: "npm:^4.0.0" - kind-of: "npm:^6.0.0" - math-random: "npm:^1.0.1" - checksum: 4b1da4b8e234d3d0bd2294a42541dfa03edbde85ee06fa0722e2b004e845da197d72fa7995723d32ea7d7402823ea62550034118cf22e94638560a509cec5bfc - languageName: node - linkType: hard - -"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.0.6, randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: "npm:^5.1.0" - checksum: 50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 - languageName: node - linkType: hard - -"randomfill@npm:^1.0.3": - version: 1.0.4 - resolution: "randomfill@npm:1.0.4" - dependencies: - randombytes: "npm:^2.0.5" - safe-buffer: "npm:^5.1.0" - checksum: 11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 - languageName: node - linkType: hard - -"raw-body@npm:2.4.2": - version: 2.4.2 - resolution: "raw-body@npm:2.4.2" - dependencies: - bytes: "npm:3.1.1" - http-errors: "npm:1.8.1" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 50596d32fc57f4da839c9f938f84debddcfe09caffc5005a60cccc1c0aebb2c7d714fc1513252f9da6900aebf00a12062f959050aefe9767144b6df7f9f125d5 - languageName: node - linkType: hard - -"raw-body@npm:2.4.3": - version: 2.4.3 - resolution: "raw-body@npm:2.4.3" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:1.8.1" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: e25ac143c0638dac75b7228de378f60d9438dd1a9b83ffcc6935d5a1e2d599ad3cdc9d24e80eb8cf07a7ec4f5d57a692d243abdcb2449cf11605ef9e5fe6af06 - languageName: node - linkType: hard - -"raw-body@npm:2.5.1": - version: 2.5.1 - resolution: "raw-body@npm:2.5.1" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 5dad5a3a64a023b894ad7ab4e5c7c1ce34d3497fc7138d02f8c88a3781e68d8a55aa7d4fd3a458616fa8647cc228be314a1c03fb430a07521de78b32c4dd09d2 - languageName: node - linkType: hard - -"raw-body@npm:2.5.2, raw-body@npm:^2.4.1": - version: 2.5.2 - resolution: "raw-body@npm:2.5.2" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4 - languageName: node - linkType: hard - -"rc@npm:1.2.8": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: "npm:^0.6.0" - ini: "npm:~1.3.0" - minimist: "npm:^1.2.0" - strip-json-comments: "npm:~2.0.1" - bin: - rc: ./cli.js - checksum: 24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15 - languageName: node - linkType: hard - -"react-native-fs@npm:2.20.0": - version: 2.20.0 - resolution: "react-native-fs@npm:2.20.0" - dependencies: - base-64: "npm:^0.1.0" - utf8: "npm:^3.0.0" - peerDependencies: - react-native: "*" - react-native-windows: "*" - peerDependenciesMeta: - react-native-windows: - optional: true - checksum: 3722b5568610cd72f319c90f60ba8b019a005d015f27e49017ddd0ea314d1ea6991f79288c28549fdc2964dc81c0fa24f8a5f87a4a6283c97c6ea88d4caa6851 - languageName: node - linkType: hard - -"react-native-path@npm:0.0.5": - version: 0.0.5 - resolution: "react-native-path@npm:0.0.5" - checksum: 4dc98c7afd20dbf41b821d530e4bc8538408158e455807ee2d363ec5bbe8f6cf93bee24628cff5c96106e7f7bf35efc1c7d41ca86d0a24ce1063a3b8cf7c5a07 - languageName: node - linkType: hard - -"read-pkg-up@npm:^1.0.1": - version: 1.0.1 - resolution: "read-pkg-up@npm:1.0.1" - dependencies: - find-up: "npm:^1.0.0" - read-pkg: "npm:^1.0.0" - checksum: 36c4fc8bd73edf77a4eeb497b6e43010819ea4aef64cbf8e393439fac303398751c5a299feab84e179a74507e3a1416e1ed033a888b1dac3463bf46d1765f7ac - languageName: node - linkType: hard - -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" - dependencies: - find-up: "npm:^4.1.0" - read-pkg: "npm:^5.2.0" - type-fest: "npm:^0.8.1" - checksum: 82b3ac9fd7c6ca1bdc1d7253eb1091a98ff3d195ee0a45386582ce3e69f90266163c34121e6a0a02f1630073a6c0585f7880b3865efcae9c452fa667f02ca385 - languageName: node - linkType: hard - -"read-pkg@npm:^1.0.0": - version: 1.1.0 - resolution: "read-pkg@npm:1.1.0" - dependencies: - load-json-file: "npm:^1.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^1.0.0" - checksum: 51fce9f7066787dc7688ea7014324cedeb9f38daa7dace4f1147d526f22354a07189ef728710bc97e27fcf5ed3a03b68ad8b60afb4251984640b6f09c180d572 - languageName: node - linkType: hard - -"read-pkg@npm:^5.2.0": - version: 5.2.0 - resolution: "read-pkg@npm:5.2.0" - dependencies: - "@types/normalize-package-data": "npm:^2.4.0" - normalize-package-data: "npm:^2.5.0" - parse-json: "npm:^5.0.0" - type-fest: "npm:^0.6.0" - checksum: b51a17d4b51418e777029e3a7694c9bd6c578a5ab99db544764a0b0f2c7c0f58f8a6bc101f86a6fceb8ba6d237d67c89acf6170f6b98695d0420ddc86cf109fb - languageName: node - linkType: hard - -"read-yaml-file@npm:^1.1.0": - version: 1.1.0 - resolution: "read-yaml-file@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.5" - js-yaml: "npm:^3.6.1" - pify: "npm:^4.0.1" - strip-bom: "npm:^3.0.0" - checksum: 85a9ba08bb93f3c91089bab4f1603995ec7156ee595f8ce40ae9f49d841cbb586511508bd47b7cf78c97f678c679b2c6e2c0092e63f124214af41b6f8a25ca31 - languageName: node - linkType: hard - -"readable-stream@npm:2 || 3, readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 - languageName: node - linkType: hard - -"readable-stream@npm:^1.0.33": - version: 1.1.14 - resolution: "readable-stream@npm:1.1.14" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.1" - isarray: "npm:0.0.1" - string_decoder: "npm:~0.10.x" - checksum: b7f41b16b305103d598e3c8964fa30d52d6e0b5d9fdad567588964521691c24b279c7a8bb71f11927c3613acf355bac72d8396885a43d50425b2caafd49bc83d - languageName: node - linkType: hard - -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.2.8, readable-stream@npm:^2.2.9, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": - version: 2.3.8 - resolution: "readable-stream@npm:2.3.8" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa - languageName: node - linkType: hard - -"readable-stream@npm:~1.0.15": - version: 1.0.34 - resolution: "readable-stream@npm:1.0.34" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.1" - isarray: "npm:0.0.1" - string_decoder: "npm:~0.10.x" - checksum: 02272551396ed8930ddee1a088bdf0379f0f7cc47ac49ed8804e998076cb7daec9fbd2b1fd9c0490ec72e56e8bb3651abeb8080492b8e0a9c3f2158330908ed6 - languageName: node - linkType: hard - -"readdirp@npm:^2.0.0": - version: 2.2.1 - resolution: "readdirp@npm:2.2.1" - dependencies: - graceful-fs: "npm:^4.1.11" - micromatch: "npm:^3.1.10" - readable-stream: "npm:^2.0.2" - checksum: 770d177372ff2212d382d425d55ca48301fcbf3231ab3827257bbcca7ff44fb51fe4af6acc2dda8512dc7f29da390e9fbea5b2b3fc724b86e85cc828395b7797 - languageName: node - linkType: hard - -"readdirp@npm:^4.0.1": - version: 4.0.2 - resolution: "readdirp@npm:4.0.2" - checksum: a16ecd8ef3286dcd90648c3b103e3826db2b766cdb4a988752c43a83f683d01c7059158d623cbcd8bdfb39e65d302d285be2d208e7d9f34d022d912b929217dd - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b - languageName: node - linkType: hard - -"real-require@npm:^0.1.0": - version: 0.1.0 - resolution: "real-require@npm:0.1.0" - checksum: c0f8ae531d1f51fe6343d47a2a1e5756e19b65a81b4a9642b9ebb4874e0d8b5f3799bc600bf4592838242477edc6f57778593f21b71d90f8ad0d8a317bbfae1c - languageName: node - linkType: hard - -"receptacle@npm:^1.3.2": - version: 1.3.2 - resolution: "receptacle@npm:1.3.2" - dependencies: - ms: "npm:^2.1.1" - checksum: 213dc9e4e80969cde60c5877fae08d8438f0bf7dd10bf4ea47916a10c053ca05d6581bda374d8f22ce15e6b50739efe319d847362f5ec9e1a4cbdcbde3ddf355 - languageName: node - linkType: hard - -"rechoir@npm:^0.6.2": - version: 0.6.2 - resolution: "rechoir@npm:0.6.2" - dependencies: - resolve: "npm:^1.1.6" - checksum: 22c4bb32f4934a9468468b608417194f7e3ceba9a508512125b16082c64f161915a28467562368eeb15dc16058eb5b7c13a20b9eb29ff9927d1ebb3b5aa83e84 - languageName: node - linkType: hard - -"recursive-readdir@npm:^2.2.2": - version: 2.2.3 - resolution: "recursive-readdir@npm:2.2.3" - dependencies: - minimatch: "npm:^3.0.5" - checksum: d0238f137b03af9cd645e1e0b40ae78b6cda13846e3ca57f626fcb58a66c79ae018a10e926b13b3a460f1285acc946a4e512ea8daa2e35df4b76a105709930d1 - languageName: node - linkType: hard - -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: "npm:^4.0.0" - strip-indent: "npm:^3.0.0" - checksum: d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae - languageName: node - linkType: hard - -"reduce-flatten@npm:^2.0.0": - version: 2.0.0 - resolution: "reduce-flatten@npm:2.0.0" - checksum: 9275064535bc070a787824c835a4f18394942f8a78f08e69fb500920124ce1c46a287c8d9e565a7ffad8104875a6feda14efa8e951e8e4585370b8ff007b0abd - languageName: node - linkType: hard - -"regenerate@npm:^1.2.1": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: f73c9eba5d398c818edc71d1c6979eaa05af7a808682749dd079f8df2a6d91a9b913db216c2c9b03e0a8ba2bba8701244a93f45211afbff691c32c7b275db1b8 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.11.0": - version: 0.11.1 - resolution: "regenerator-runtime@npm:0.11.1" - checksum: 69cfa839efcf2d627fe358bf302ab8b24e5f182cb69f13e66f0612d3640d7838aad1e55662135e3ef2c1cc4322315b757626094fab13a48f9a64ab4bdeb8795b - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.10.0": - version: 0.10.1 - resolution: "regenerator-transform@npm:0.10.1" - dependencies: - babel-runtime: "npm:^6.18.0" - babel-types: "npm:^6.19.0" - private: "npm:^0.1.6" - checksum: 13d017b228cca6fe441f97542fb689cf96fefc422d13d94a7dc5aeca1777f8f06c1acf5396c537157166be887dca4c6d347bdbb2e69317749b267be196da01a3 - languageName: node - linkType: hard - -"regex-cache@npm:^0.4.2": - version: 0.4.4 - resolution: "regex-cache@npm:0.4.4" - dependencies: - is-equal-shallow: "npm:^0.1.3" - checksum: d3e374638b577ae560a445c7f36b801cab4815f7d25e1a9afc2328c01d5c0d203ea0d24e95635843e25ebc54e061f1790f7d47aa3839c49f67bbc53358ad9066 - languageName: node - linkType: hard - -"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": - version: 1.0.2 - resolution: "regex-not@npm:1.0.2" - dependencies: - extend-shallow: "npm:^3.0.2" - safe-regex: "npm:^1.1.0" - checksum: a0f8d6045f63b22e9759db10e248369c443b41cedd7dba0922d002b66c2734bc2aef0d98c4d45772d1f756245f4c5203856b88b9624bba2a58708858a8d485d6 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: "npm:^1.0.6" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552 - languageName: node - linkType: hard - -"regexpu-core@npm:^2.0.0": - version: 2.0.0 - resolution: "regexpu-core@npm:2.0.0" - dependencies: - regenerate: "npm:^1.2.1" - regjsgen: "npm:^0.2.0" - regjsparser: "npm:^0.1.4" - checksum: 685475fa04edbd4f8aa78811e16ef6c7e86ca4e4a2f73fbb1ba95db437a6c68e52664986efdea7afe0d78e773fb81624825976aba06de7a1ce80c94bd0126077 - languageName: node - linkType: hard - -"registry-auth-token@npm:^5.0.1": - version: 5.0.2 - resolution: "registry-auth-token@npm:5.0.2" - dependencies: - "@pnpm/npm-conf": "npm:^2.1.0" - checksum: 20fc2225681cc54ae7304b31ebad5a708063b1949593f02dfe5fb402bc1fc28890cecec6497ea396ba86d6cca8a8480715926dfef8cf1f2f11e6f6cc0a1b4bde - languageName: node - linkType: hard - -"registry-url@npm:^6.0.0": - version: 6.0.1 - resolution: "registry-url@npm:6.0.1" - dependencies: - rc: "npm:1.2.8" - checksum: 66e2221c8113fc35ee9d23fe58cb516fc8d556a189fb8d6f1011a02efccc846c4c9b5075b4027b99a5d5c9ad1345ac37f297bea3c0ca30d607ec8084bf561b90 - languageName: node - linkType: hard - -"regjsgen@npm:^0.2.0": - version: 0.2.0 - resolution: "regjsgen@npm:0.2.0" - checksum: f09821f1a125d01433b6946bb653267572d619229d32f9ca5049f3a47add798effe66b7441fb08b738c3d71d97f783e565aad6c63b7ee4b7f891a3f90882a01b - languageName: node - linkType: hard - -"regjsparser@npm:^0.1.4": - version: 0.1.5 - resolution: "regjsparser@npm:0.1.5" - dependencies: - jsesc: "npm:~0.5.0" - bin: - regjsparser: bin/parser - checksum: 8b9bfbc27253cb6567c821cc0d4efac447e8300a6bd711a68f8400c5e4556bc27cd7f02e0ebe3d9cb884315cacbf7b00dda74d22fe4edb19c8f5f66758d0a8d1 - languageName: node - linkType: hard - -"relay-runtime@npm:12.0.0": - version: 12.0.0 - resolution: "relay-runtime@npm:12.0.0" - dependencies: - "@babel/runtime": "npm:^7.0.0" - fbjs: "npm:^3.0.0" - invariant: "npm:^2.2.4" - checksum: f5d29b5c2f3c8a3438d43dcbc3022bd454c4ecbd4f0b10616df08bedc62d8aaa84f155f23e374053cf9f4a8238b93804e37a5b37ed9dc7ad01436d62d1b01d53 - languageName: node - linkType: hard - -"remove-trailing-separator@npm:^1.0.1": - version: 1.1.0 - resolution: "remove-trailing-separator@npm:1.1.0" - checksum: 3568f9f8f5af3737b4aee9e6e1e8ec4be65a92da9cb27f989e0893714d50aa95ed2ff02d40d1fa35e1b1a234dc9c2437050ef356704a3999feaca6667d9e9bfc - languageName: node - linkType: hard - -"repeat-element@npm:^1.1.2": - version: 1.1.4 - resolution: "repeat-element@npm:1.1.4" - checksum: 81aa8d82bc845780803ef52df3533fa399974b99df571d0bb86e91f0ffca9ee4b9c4e8e5e72af087938cc28d2aef93d106a6d01da685d72ce96455b90a9f9f69 - languageName: node - linkType: hard - -"repeat-string@npm:^1.5.2, repeat-string@npm:^1.6.1": - version: 1.6.1 - resolution: "repeat-string@npm:1.6.1" - checksum: 87fa21bfdb2fbdedc44b9a5b118b7c1239bdd2c2c1e42742ef9119b7d412a5137a1d23f1a83dc6bb686f4f27429ac6f542e3d923090b44181bafa41e8ac0174d - languageName: node - linkType: hard - -"repeating@npm:^2.0.0": - version: 2.0.1 - resolution: "repeating@npm:2.0.1" - dependencies: - is-finite: "npm:^1.0.0" - checksum: 7f5cd293ec47d9c074ef0852800d5ff5c49028ce65242a7528d84f32bd2fe200b142930562af58c96d869c5a3046e87253030058e45231acaa129c1a7087d2e7 - languageName: node - linkType: hard - -"req-cwd@npm:^2.0.0": - version: 2.0.0 - resolution: "req-cwd@npm:2.0.0" - dependencies: - req-from: "npm:^2.0.0" - checksum: 9cefc80353594b07d1a31d7ee4e4b5c7252f054f0fda7d5caf038c1cb5aa4b322acb422de7e18533734e8557f5769c2318f3ee9256e2e4f4e359b9b776c7ed1a - languageName: node - linkType: hard - -"req-from@npm:^2.0.0": - version: 2.0.0 - resolution: "req-from@npm:2.0.0" - dependencies: - resolve-from: "npm:^3.0.0" - checksum: 84aa6b4f7291675d9443ac156139841c7c1ae7eccf080f3b344972d6470170b0c32682656c560763b330d00e133196bcfdb1fcb4c5031f59ecbe80dea4dd1c82 - languageName: node - linkType: hard - -"request@npm:^2.79.0, request@npm:^2.85.0": - version: 2.88.2 - resolution: "request@npm:2.88.2" - dependencies: - aws-sign2: "npm:~0.7.0" - aws4: "npm:^1.8.0" - caseless: "npm:~0.12.0" - combined-stream: "npm:~1.0.6" - extend: "npm:~3.0.2" - forever-agent: "npm:~0.6.1" - form-data: "npm:~2.3.2" - har-validator: "npm:~5.1.3" - http-signature: "npm:~1.2.0" - is-typedarray: "npm:~1.0.0" - isstream: "npm:~0.1.2" - json-stringify-safe: "npm:~5.0.1" - mime-types: "npm:~2.1.19" - oauth-sign: "npm:~0.9.0" - performance-now: "npm:^2.1.0" - qs: "npm:~6.5.2" - safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:~2.5.0" - tunnel-agent: "npm:^0.6.0" - uuid: "npm:^3.3.2" - checksum: 0ec66e7af1391e51ad231de3b1c6c6aef3ebd0a238aa50d4191c7a792dcdb14920eea8d570c702dc5682f276fe569d176f9b8ebc6031a3cf4a630a691a431a63 - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: 83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 - languageName: node - linkType: hard - -"require-from-string@npm:^1.1.0": - version: 1.2.1 - resolution: "require-from-string@npm:1.2.1" - checksum: 29b4802dbeb78c76a589fe3d5bbe3b836624a38358d024e1855a882d91218d10fe353f9c0d265deda944b0f3f789244d6813ca748c9d846fbe69734319ffe0b5 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.0, require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 - languageName: node - linkType: hard - -"require-main-filename@npm:^1.0.1": - version: 1.0.1 - resolution: "require-main-filename@npm:1.0.1" - checksum: 1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6 - languageName: node - linkType: hard - -"require-main-filename@npm:^2.0.0": - version: 2.0.0 - resolution: "require-main-filename@npm:2.0.0" - checksum: db91467d9ead311b4111cbd73a4e67fa7820daed2989a32f7023785a2659008c6d119752d9c4ac011ae07e537eb86523adff99804c5fdb39cd3a017f9b401bb6 - languageName: node - linkType: hard - -"reset@npm:^0.1.0": - version: 0.1.0 - resolution: "reset@npm:0.1.0" - checksum: d21f82d3d5162e65f8700a58f61108080aa91a7c05774f8c6649531b1cf02b2179c5a34acb67f5e690f65d1d4ed3d49b0a0a2c52c9eed78c38942ce74e54028c - languageName: node - linkType: hard - -"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": - version: 1.2.1 - resolution: "resolve-alpn@npm:1.2.1" - checksum: b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 - languageName: node - linkType: hard - -"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": - version: 1.0.1 - resolution: "resolve-dir@npm:1.0.1" - dependencies: - expand-tilde: "npm:^2.0.0" - global-modules: "npm:^1.0.0" - checksum: 8197ed13e4a51d9cd786ef6a09fc83450db016abe7ef3311ca39389b3e508d77c26fe0cf0483a9b407b8caa2764bb5ccc52cf6a017ded91492a416475a56066f - languageName: node - linkType: hard - -"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 - languageName: node - linkType: hard - -"resolve-from@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-from@npm:3.0.0" - checksum: 24affcf8e81f4c62f0dcabc774afe0e19c1f38e34e43daac0ddb409d79435fc3037f612b0cc129178b8c220442c3babd673e88e870d27215c99454566e770ebc - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - -"resolve-global@npm:1.0.0, resolve-global@npm:^1.0.0": - version: 1.0.0 - resolution: "resolve-global@npm:1.0.0" - dependencies: - global-dirs: "npm:^0.1.1" - checksum: fda6ba81a07a0124756ce956dd871ca83763973326d8617143dab38d9c9afc666926604bfe8f0bfd046a9a285347568f32ceb3d4c55a1cb9de5614cca001a21c - languageName: node - linkType: hard - -"resolve-url@npm:^0.2.1": - version: 0.2.1 - resolution: "resolve-url@npm:0.2.1" - checksum: c285182cfcddea13a12af92129ce0569be27fb0074ffaefbd3ba3da2eac2acecdfc996d435c4982a9fa2b4708640e52837c9153a5ab9255886a00b0b9e8d2a54 - languageName: node - linkType: hard - -"resolve@npm:1.1.x": - version: 1.1.7 - resolution: "resolve@npm:1.1.7" - checksum: f66dcad51854fca283fa68e9c11445c2117d7963b9ced6c43171784987df3bed6fb16c4af2bf6f07c02ace94a4f4ebe158d13780b6e14d60944478c860208245 - languageName: node - linkType: hard - -"resolve@npm:1.17.0": - version: 1.17.0 - resolution: "resolve@npm:1.17.0" - dependencies: - path-parse: "npm:^1.0.6" - checksum: 4e6c76cc1a7b08bff637b092ce035d7901465067915605bc5a23ac0c10fe42ec205fc209d5d5f7a5f27f37ce71d687def7f656bbb003631cd46a8374f55ec73d - languageName: node - linkType: hard - -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.8.1, resolve@npm:~1.22.6": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A1.1.x#optional!builtin": - version: 1.1.7 - resolution: "resolve@patch:resolve@npm%3A1.1.7#optional!builtin::version=1.1.7&hash=3bafbf" - checksum: f4f1471423d600a10944785222fa7250237ed8c98aa6b1e1f4dc0bb3dbfbcafcaac69a2ed23cd1f6f485ed23e7c939894ac1978284e4163754fade8a05358823 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A1.17.0#optional!builtin": - version: 1.17.0 - resolution: "resolve@patch:resolve@npm%3A1.17.0#optional!builtin::version=1.17.0&hash=c3c19d" - dependencies: - path-parse: "npm:^1.0.6" - checksum: e072e52be3c3dbfd086761115db4a5136753e7aefc0e665e66e7307ddcd9d6b740274516055c74aee44921625e95993f03570450aa310b8d73b1c9daa056c4cd - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin, resolve@patch:resolve@npm%3A~1.22.6#optional!builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 - languageName: node - linkType: hard - -"responselike@npm:^1.0.2": - version: 1.0.2 - resolution: "responselike@npm:1.0.2" - dependencies: - lowercase-keys: "npm:^1.0.0" - checksum: 1c2861d1950790da96159ca490eda645130eaf9ccc4d76db20f685ba944feaf30f45714b4318f550b8cd72990710ad68355ff15c41da43ed9a93c102c0ffa403 - languageName: node - linkType: hard - -"responselike@npm:^2.0.0": - version: 2.0.1 - resolution: "responselike@npm:2.0.1" - dependencies: - lowercase-keys: "npm:^2.0.0" - checksum: 360b6deb5f101a9f8a4174f7837c523c3ec78b7ca8a7c1d45a1062b303659308a23757e318b1e91ed8684ad1205721142dd664d94771cd63499353fd4ee732b5 - languageName: node - linkType: hard - -"responselike@npm:^3.0.0": - version: 3.0.0 - resolution: "responselike@npm:3.0.0" - dependencies: - lowercase-keys: "npm:^3.0.0" - checksum: 8af27153f7e47aa2c07a5f2d538cb1e5872995f0e9ff77def858ecce5c3fe677d42b824a62cde502e56d275ab832b0a8bd350d5cd6b467ac0425214ac12ae658 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f - languageName: node - linkType: hard - -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 6f7da8c5e422ac26aa38354870b1afac09963572cf2879443540449068cb43476e9cbccf6f8de3e0171e0d6f7f533c2bc1a0a008003c9a525bbc098e89041318 - languageName: node - linkType: hard - -"ret@npm:~0.1.10": - version: 0.1.15 - resolution: "ret@npm:0.1.15" - checksum: 01f77cad0f7ea4f955852c03d66982609893edc1240c0c964b4c9251d0f9fb6705150634060d169939b096d3b77f4c84d6b6098a5b5d340160898c8581f1f63f - languageName: node - linkType: hard - -"retry-as-promised@npm:^5.0.0": - version: 5.0.0 - resolution: "retry-as-promised@npm:5.0.0" - checksum: bfcfd6eac9db50a6c8ebe4dd40cc6833d746221d64870ef8c21293daf00234c5d7cd1f61d861cd93a7eff551e0c07e0a86b7994febdaa36f1cb98b8d9e130a26 - languageName: node - linkType: hard - -"retry-as-promised@npm:^7.0.4": - version: 7.0.4 - resolution: "retry-as-promised@npm:7.0.4" - checksum: 3cfe4924c80cfc0a55b3af10010941a76832ec949f01c732cb6678b9411919a3eeff0586199fb274d3c3082e215065c6555268c8345cb22e432753b62eb65bd8 - languageName: node - linkType: hard - -"retry@npm:0.13.1": - version: 0.13.1 - resolution: "retry@npm:0.13.1" - checksum: 9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 - languageName: node - linkType: hard - -"rfdc@npm:^1.2.0, rfdc@npm:^1.3.0": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: 69f65e3ed30970f8055fac9fbbef9ce578800ca19554eab1dcbffe73a4b8aef536bc4248313889cf25e3b4e38b212c721eabe30856575bf2b2bc3d90f8ba93ef - languageName: node - linkType: hard - -"rimraf@npm:^2.2.8, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - -"rimraf@npm:^5.0.0": - version: 5.0.7 - resolution: "rimraf@npm:5.0.7" - dependencies: - glob: "npm:^10.3.7" - bin: - rimraf: dist/esm/bin.mjs - checksum: bd6dbfaa98ae34ce1e54d1e06045d2d63e8859d9a1979bb4a4628b652b459a2d17b17dc20ee072b034bd2d09bd691e801d24c4d9cfe94e16fdbcc8470a1d4807 - languageName: node - linkType: hard - -"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": - version: 2.0.2 - resolution: "ripemd160@npm:2.0.2" - dependencies: - hash-base: "npm:^3.0.0" - inherits: "npm:^2.0.1" - checksum: f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a - languageName: node - linkType: hard - -"rlp@npm:^2.0.0, rlp@npm:^2.2.1, rlp@npm:^2.2.2, rlp@npm:^2.2.3, rlp@npm:^2.2.4": - version: 2.2.7 - resolution: "rlp@npm:2.2.7" - dependencies: - bn.js: "npm:^5.2.0" - bin: - rlp: bin/rlp - checksum: 166c449f4bc794d47f8e337bf0ffbcfdb26c33109030aac4b6e5a33a91fa85783f2290addeb7b3c89d6d9b90c8276e719494d193129bed0a60a2d4a6fd658277 - languageName: node - linkType: hard - -"run-async@npm:^2.4.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: 35a68c8f1d9664f6c7c2e153877ca1d6e4f886e5ca067c25cdd895a6891ff3a1466ee07c63d6a9be306e9619ff7d509494e6d9c129516a36b9fd82263d579ee1 - languageName: node - linkType: hard - -"run-parallel-limit@npm:^1.1.0": - version: 1.1.0 - resolution: "run-parallel-limit@npm:1.1.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 9c78eb77e788d0ed803a7e80921412f6f6accfb2006de8c21699d9ebf7696df9cefaa313fe14d6169a3fc9f564b34fe91bfd9948cc3a58e2d24136a2390523ae - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - -"run@npm:^1.4.0": - version: 1.5.0 - resolution: "run@npm:1.5.0" - dependencies: - minimatch: "npm:*" - bin: - runjs: cli.js - checksum: 69907323522292561d3356b2404efe7dd7d4254247ca91399fe8fd6520fbe7a12febd0e9ab2d1cb7e5d19c16df3e3ef28c64bff5934031566a58b5519beb9d0c - languageName: node - linkType: hard - -"rustbn.js@npm:~0.2.0": - version: 0.2.0 - resolution: "rustbn.js@npm:0.2.0" - checksum: be2d55d4a53465cfd5c7900153cfae54c904f0941acd30191009cf473cacbfcf45082ffd8dc473a354c8e3dcfe2c2bdf5d7ea9cc9b188d892b4aa8d012b94701 - languageName: node - linkType: hard - -"rxjs@npm:^6.4.0, rxjs@npm:^6.6.6": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: "npm:^1.9.0" - checksum: e556a13a9aa89395e5c9d825eabcfa325568d9c9990af720f3f29f04a888a3b854f25845c2b55875d875381abcae2d8100af9cacdc57576e7ed6be030a01d2fe - languageName: node - linkType: hard - -"rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: "npm:^2.1.0" - checksum: 3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.0.0, safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - has-symbols: "npm:^1.0.3" - isarray: "npm:^2.0.5" - checksum: 12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9 - languageName: node - linkType: hard - -"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - -"safe-event-emitter@npm:^1.0.1": - version: 1.0.1 - resolution: "safe-event-emitter@npm:1.0.1" - dependencies: - events: "npm:^3.0.0" - checksum: 97b960d9af510594337533888178b14bca4c057e8f915e83512041690d313a8fe4333240633592db0a290f1592b0a408f2c8c0416108bc9db33cef9f2a5bfe8f - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-regex: "npm:^1.1.4" - checksum: 900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603 - languageName: node - linkType: hard - -"safe-regex@npm:^1.1.0": - version: 1.1.0 - resolution: "safe-regex@npm:1.1.0" - dependencies: - ret: "npm:~0.1.10" - checksum: 547d58aa5184cbef368fd5ed5f28d20f911614748c5da6b35f53fd6626396707587251e6e3d1e3010fd3ff1212e413841b8825eaa5f317017ca62a30899af31a - languageName: node - linkType: hard - -"safe-stable-stringify@npm:^2.1.0, safe-stable-stringify@npm:^2.3.1": - version: 2.4.3 - resolution: "safe-stable-stringify@npm:2.4.3" - checksum: 81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 - languageName: node - linkType: hard - -"sc-istanbul@npm:^0.4.5": - version: 0.4.6 - resolution: "sc-istanbul@npm:0.4.6" - dependencies: - abbrev: "npm:1.0.x" - async: "npm:1.x" - escodegen: "npm:1.8.x" - esprima: "npm:2.7.x" - glob: "npm:^5.0.15" - handlebars: "npm:^4.0.1" - js-yaml: "npm:3.x" - mkdirp: "npm:0.5.x" - nopt: "npm:3.x" - once: "npm:1.x" - resolve: "npm:1.1.x" - supports-color: "npm:^3.1.0" - which: "npm:^1.1.1" - wordwrap: "npm:^1.0.0" - bin: - istanbul: lib/cli.js - checksum: 3eba8f6b7ba423fb03fdd67e72b0a71c71aa1dbd117692f3225003320dd45adf03cd32dd1739bd347aa58c690ca8f719fd8ae70cefe0fc06433fac4725668942 - languageName: node - linkType: hard - -"scrypt-js@npm:2.0.4": - version: 2.0.4 - resolution: "scrypt-js@npm:2.0.4" - checksum: dc6df482f9befa395b577ea40c5cebe96df8fc5f376d23871c50800eacbec1b0d6a49a03f35e9d4405ceb96f43b8047a8f3f99ce7cda0c727cfc754d9e7060f8 - languageName: node - linkType: hard - -"scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0, scrypt-js@npm:^3.0.1": - version: 3.0.1 - resolution: "scrypt-js@npm:3.0.1" - checksum: e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 - languageName: node - linkType: hard - -"scryptsy@npm:^1.2.1": - version: 1.2.1 - resolution: "scryptsy@npm:1.2.1" - dependencies: - pbkdf2: "npm:^3.0.3" - checksum: 41c0348a8f85e210c802b8f24b2b8b98e1911144d5834394d5eb1562582115f0dfea51badd381630a68bc60a5b393f91e022dee70bb12a79642bf8bde8d2f6e1 - languageName: node - linkType: hard - -"secp256k1@npm:^4.0.1": - version: 4.0.3 - resolution: "secp256k1@npm:4.0.3" - dependencies: - elliptic: "npm:^6.5.4" - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - checksum: de0a0e525a6f8eb2daf199b338f0797dbfe5392874285a145bb005a72cabacb9d42c0197d0de129a1a0f6094d2cc4504d1f87acb6a8bbfb7770d4293f252c401 - languageName: node - linkType: hard - -"seedrandom@npm:3.0.1": - version: 3.0.1 - resolution: "seedrandom@npm:3.0.1" - checksum: 783f5370cb2593fe4aec93af858ccbb121b21c24ec424aa29e0cbb4fc3942b767cc67d17205e0adca78691916485fca692bbf3cb415a15e6bcc2de7cd60811e3 - languageName: node - linkType: hard - -"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3, semaphore@npm:^1.1.0": - version: 1.1.0 - resolution: "semaphore@npm:1.1.0" - checksum: 1eeb146c1ffe1283951573c356ba3a9b18a8513b18959ecbc0e3ba3a99e5da46edc509a9a5f0cb9d5d28895dcd828bdd6c29162c8e41a311ee79efaf3456a723 - languageName: node - linkType: hard - -"semver-compare@npm:^1.0.0": - version: 1.0.0 - resolution: "semver-compare@npm:1.0.0" - checksum: 9ef4d8b81847556f0865f46ddc4d276bace118c7cb46811867af82e837b7fc473911981d5a0abc561fa2db487065572217e5b06e18701c4281bcdd2a1affaff1 - languageName: node - linkType: hard - -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0, semver@npm:^5.6.0": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 - languageName: node - linkType: hard - -"semver@npm:7.3.7": - version: 7.3.7 - resolution: "semver@npm:7.3.7" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: cffd30102de68a9f8cac9ef57b43c2173dc999da4fc5189872b421f9c9e2660f70243b8e964781ac6dc48ba2542647bb672beeb4d756c89c4a9e05e1144fa40a - languageName: node - linkType: hard - -"semver@npm:7.6.0": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 - languageName: node - linkType: hard - -"semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d - languageName: node - linkType: hard - -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": - version: 7.6.2 - resolution: "semver@npm:7.6.2" - bin: - semver: bin/semver.js - checksum: 97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c - languageName: node - linkType: hard - -"semver@npm:~5.4.1": - version: 5.4.1 - resolution: "semver@npm:5.4.1" - bin: - semver: ./bin/semver - checksum: 38122c0861f58ec18371352e079fc9de154649546126be4e23c6fb0fa4ec48dd9d59eabf2796c2fab7314911b66b306a047b6c9b6137989fd946528e0ea682db - languageName: node - linkType: hard - -"send@npm:0.17.2": - version: 0.17.2 - resolution: "send@npm:0.17.2" - dependencies: - debug: "npm:2.6.9" - depd: "npm:~1.1.2" - destroy: "npm:~1.0.4" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:1.8.1" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:~2.3.0" - range-parser: "npm:~1.2.1" - statuses: "npm:~1.5.0" - checksum: 0f92f0fcd298fcdd759dc7d501bfab79635f549ec3b885e26e4a62b3094420b355d73f2d59749b6004019a4c91db983fb1715378aa622f4bf4e21b0b79853e5c - languageName: node - linkType: hard - -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 0eb134d6a51fc13bbcb976a1f4214ea1e33f242fae046efc311e80aff66c7a43603e26a79d9d06670283a13000e51be6e0a2cb80ff0942eaf9f1cd30b7ae736a - languageName: node - linkType: hard - -"sentence-case@npm:^3.0.4": - version: 3.0.4 - resolution: "sentence-case@npm:3.0.4" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - upper-case-first: "npm:^2.0.2" - checksum: 9a90527a51300cf5faea7fae0c037728f9ddcff23ac083883774c74d180c0a03c31aab43d5c3347512e8c1b31a0d4712512ec82beb71aa79b85149f9abeb5467 - languageName: node - linkType: hard - -"sequelize-pool@npm:^7.1.0": - version: 7.1.0 - resolution: "sequelize-pool@npm:7.1.0" - checksum: 798f9856ce39ec1fabfbb4f966343be5ebb182e1a6b902bf131a7054df52a8dd183b18787c4952b0e3fa5aa7d1d72b5640682386c088538bfc127b6a6187a560 - languageName: node - linkType: hard - -"sequelize@npm:6.19.0": - version: 6.19.0 - resolution: "sequelize@npm:6.19.0" - dependencies: - "@types/debug": "npm:^4.1.7" - "@types/validator": "npm:^13.7.1" - debug: "npm:^4.3.3" - dottie: "npm:^2.0.2" - inflection: "npm:^1.13.2" - lodash: "npm:^4.17.21" - moment: "npm:^2.29.1" - moment-timezone: "npm:^0.5.34" - pg-connection-string: "npm:^2.5.0" - retry-as-promised: "npm:^5.0.0" - semver: "npm:^7.3.5" - sequelize-pool: "npm:^7.1.0" - toposort-class: "npm:^1.0.1" - uuid: "npm:^8.3.2" - validator: "npm:^13.7.0" - wkx: "npm:^0.5.0" - peerDependenciesMeta: - ibm_db: - optional: true - mariadb: - optional: true - mysql2: - optional: true - pg: - optional: true - pg-hstore: - optional: true - snowflake-sdk: - optional: true - sqlite3: - optional: true - tedious: - optional: true - checksum: d254390853dfe47e07200ef7394607c0f065c002e04c8949a92f5cf2a69a9bac2073ec185fc9a7427d424bfbc776ac76ad6b74755c919575a607167a1aa90440 - languageName: node - linkType: hard - -"sequelize@npm:6.33.0": - version: 6.33.0 - resolution: "sequelize@npm:6.33.0" - dependencies: - "@types/debug": "npm:^4.1.8" - "@types/validator": "npm:^13.7.17" - debug: "npm:^4.3.4" - dottie: "npm:^2.0.6" - inflection: "npm:^1.13.4" - lodash: "npm:^4.17.21" - moment: "npm:^2.29.4" - moment-timezone: "npm:^0.5.43" - pg-connection-string: "npm:^2.6.1" - retry-as-promised: "npm:^7.0.4" - semver: "npm:^7.5.4" - sequelize-pool: "npm:^7.1.0" - toposort-class: "npm:^1.0.1" - uuid: "npm:^8.3.2" - validator: "npm:^13.9.0" - wkx: "npm:^0.5.0" - peerDependenciesMeta: - ibm_db: - optional: true - mariadb: - optional: true - mysql2: - optional: true - oracledb: - optional: true - pg: - optional: true - pg-hstore: - optional: true - snowflake-sdk: - optional: true - sqlite3: - optional: true - tedious: - optional: true - checksum: 5734a86b431f88e22a1db12c82910ea03c390db380f8769aa25954b7d6747aba47a393495b4cf3457917e95445777e316ca21d76bf37741024df7bc51a8203b6 - languageName: node - linkType: hard - -"serialize-javascript@npm:6.0.0": - version: 6.0.0 - resolution: "serialize-javascript@npm:6.0.0" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 73104922ef0a919064346eea21caab99de1a019a1f5fb54a7daa7fcabc39e83b387a2a363e52a889598c3b1bcf507c4b2a7b26df76e991a310657af20eea2e7c - languageName: node - linkType: hard - -"serialize-javascript@npm:^6.0.2": - version: 6.0.2 - resolution: "serialize-javascript@npm:6.0.2" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 - languageName: node - linkType: hard - -"serve-static@npm:1.14.2": - version: 1.14.2 - resolution: "serve-static@npm:1.14.2" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.17.2" - checksum: 4583f8bec8daa74df58fd7415e6f58039223becbb6c7ac0e6386c4fbe5c825195df92c73f999a1404487ae1d1bd1d20dd7ae11bc19f8788225770d1960bbeaea - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.18.0" - checksum: fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba - languageName: node - linkType: hard - -"servify@npm:^0.1.12": - version: 0.1.12 - resolution: "servify@npm:0.1.12" - dependencies: - body-parser: "npm:^1.16.0" - cors: "npm:^2.8.1" - express: "npm:^4.14.0" - request: "npm:^2.79.0" - xhr: "npm:^2.3.3" - checksum: 2a7af8ba9f79022325c1f1bfbcb02051c1e02252928c55028173d1ecbc5db49faebf3e8a865515b89cfd1e53eee7c2e5a9c47c264caaf98964708e5372b407c0 - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 - languageName: node - linkType: hard - -"set-function-length@npm:^1.2.1": - version: 1.2.2 - resolution: "set-function-length@npm:1.2.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - checksum: 82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c - languageName: node - linkType: hard - -"set-function-name@npm:^2.0.1": - version: 2.0.2 - resolution: "set-function-name@npm:2.0.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - functions-have-names: "npm:^1.2.3" - has-property-descriptors: "npm:^1.0.2" - checksum: fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316 - languageName: node - linkType: hard - -"set-immediate-shim@npm:^1.0.1": - version: 1.0.1 - resolution: "set-immediate-shim@npm:1.0.1" - checksum: 8d21dbb2ad0299a1df9a90c4ddaf5d38ac7af4fafab3064e29d5d5434820a406362bb6b5def0adf189333e92daf50ec756848f48b281705355ed984491beeb93 - languageName: node - linkType: hard - -"set-value@npm:^2.0.0, set-value@npm:^2.0.1": - version: 2.0.1 - resolution: "set-value@npm:2.0.1" - dependencies: - extend-shallow: "npm:^2.0.1" - is-extendable: "npm:^0.1.1" - is-plain-object: "npm:^2.0.3" - split-string: "npm:^3.0.1" - checksum: 4c40573c4f6540456e4b38b95f570272c4cfbe1d12890ad4057886da8535047cd772dfadf5b58e2e87aa244dfb4c57e3586f6716b976fc47c5144b6b09e1811b - languageName: node - linkType: hard - -"setimmediate@npm:1.0.4": - version: 1.0.4 - resolution: "setimmediate@npm:1.0.4" - checksum: 78d1098320ac16a5500fc683491665333e16a6a99103c52d0550f0b31b680c6967d405b3d2b6284d99645c373e0d2ed7d2305c924f12de911a74ffb6c2c3eabe - languageName: node - linkType: hard - -"setimmediate@npm:^1.0.5": - version: 1.0.5 - resolution: "setimmediate@npm:1.0.5" - checksum: 5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc - languageName: node - linkType: hard - -"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8": - version: 2.4.11 - resolution: "sha.js@npm:2.4.11" - dependencies: - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - bin: - sha.js: ./bin.js - checksum: b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5 - languageName: node - linkType: hard - -"sha1@npm:^1.1.1": - version: 1.1.1 - resolution: "sha1@npm:1.1.1" - dependencies: - charenc: "npm:>= 0.0.1" - crypt: "npm:>= 0.0.1" - checksum: 1bb36c89c112c741c265cca66712f883ae01d5c55b71aec80635fe2ad5d0c976a1a8a994dda774ae9f93b2da99fd111238758a8bf985adc400bd86f0e4452865 - languageName: node - linkType: hard - -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: "npm:^1.0.0" - checksum: 7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: "npm:^3.0.0" - checksum: a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e - languageName: node - linkType: hard - -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2 - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 - languageName: node - linkType: hard - -"shelljs@npm:^0.8.3": - version: 0.8.5 - resolution: "shelljs@npm:0.8.5" - dependencies: - glob: "npm:^7.0.0" - interpret: "npm:^1.0.0" - rechoir: "npm:^0.6.2" - bin: - shjs: bin/shjs - checksum: feb25289a12e4bcd04c40ddfab51aff98a3729f5c2602d5b1a1b95f6819ec7804ac8147ebd8d9a85dfab69d501bcf92d7acef03247320f51c1552cec8d8e2382 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - object-inspect: "npm:^1.13.1" - checksum: d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 - languageName: node - linkType: hard - -"signed-varint@npm:^2.0.1": - version: 2.0.1 - resolution: "signed-varint@npm:2.0.1" - dependencies: - varint: "npm:~5.0.0" - checksum: 3cca068d6c97ffc487021ac7efd0192d5b0fc683cd6d9e92c8b9f182044b57fe121a1eff3e357ef040a84ecb74ce48e1c4148a7a15752ad1d429ba12714eaabb - languageName: node - linkType: hard - -"signedsource@npm:^1.0.0": - version: 1.0.0 - resolution: "signedsource@npm:1.0.0" - checksum: dbb4ade9c94888e83c16d23ef1a43195799de091d366d130be286415e8aeb97b3f25b14fd26fc5888e1335d703ad561374fddee32e43b7cea04751b93d178a47 - languageName: node - linkType: hard - -"simple-concat@npm:^1.0.0": - version: 1.0.1 - resolution: "simple-concat@npm:1.0.1" - checksum: 62f7508e674414008910b5397c1811941d457dfa0db4fd5aa7fa0409eb02c3609608dfcd7508cace75b3a0bf67a2a77990711e32cd213d2c76f4fd12ee86d776 - languageName: node - linkType: hard - -"simple-get@npm:^2.7.0": - version: 2.8.2 - resolution: "simple-get@npm:2.8.2" - dependencies: - decompress-response: "npm:^3.3.0" - once: "npm:^1.3.1" - simple-concat: "npm:^1.0.0" - checksum: 12747f008848e573a3d09c88d15fae37d4a359d1ef56a0bed36713952b1d236a3829cd77e862816cf32c7779f6800a0c4076ba7f71fe3684127eaccffb831aba - languageName: node - linkType: hard - -"simple-swizzle@npm:^0.2.2": - version: 0.2.2 - resolution: "simple-swizzle@npm:0.2.2" - dependencies: - is-arrayish: "npm:^0.3.1" - checksum: df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308 - languageName: node - linkType: hard - -"simple-wcswidth@npm:^1.0.1": - version: 1.0.1 - resolution: "simple-wcswidth@npm:1.0.1" - checksum: 2befead4c97134424aa3fba593a81daa9934fd61b9e4c65374b57ac5eecc2f2be1984b017bbdbc919923e19b77f2fcbdb94434789b9643fa8c3fde3a2a6a4b6f - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: 230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 - languageName: node - linkType: hard - -"slash@npm:^1.0.0": - version: 1.0.0 - resolution: "slash@npm:1.0.0" - checksum: 3944659885d905480f98810542fd314f3e1006eaad25ec78227a7835a469d9ed66fc3dd90abc7377dd2e71f4b5473e8f766bd08198fdd25152a80792e9ed464c - languageName: node - linkType: hard - -"slash@npm:^2.0.0": - version: 2.0.0 - resolution: "slash@npm:2.0.0" - checksum: f83dbd3cb62c41bb8fcbbc6bf5473f3234b97fa1d008f571710a9d3757a28c7169e1811cad1554ccb1cc531460b3d221c9a7b37f549398d9a30707f0a5af9193 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b - languageName: node - linkType: hard - -"slice-ansi@npm:^3.0.0": - version: 3.0.0 - resolution: "slice-ansi@npm:3.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - astral-regex: "npm:^2.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - checksum: 88083c9d0ca67d09f8b4c78f68833d69cabbb7236b74df5d741ad572bbf022deaf243fa54009cd434350622a1174ab267710fcc80a214ecc7689797fe00cb27c - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - astral-regex: "npm:^2.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - checksum: 6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 - languageName: node - linkType: hard - -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: "npm:^6.0.0" - is-fullwidth-code-point: "npm:^4.0.0" - checksum: 2d4d40b2a9d5cf4e8caae3f698fe24ae31a4d778701724f578e984dcb485ec8c49f0c04dab59c401821e80fcdfe89cace9c66693b0244e40ec485d72e543914f - languageName: node - linkType: hard - -"slice-ansi@npm:^7.0.0": - version: 7.1.0 - resolution: "slice-ansi@npm:7.1.0" - dependencies: - ansi-styles: "npm:^6.2.1" - is-fullwidth-code-point: "npm:^5.0.0" - checksum: 631c971d4abf56cf880f034d43fcc44ff883624867bf11ecbd538c47343911d734a4656d7bc02362b40b89d765652a7f935595441e519b59e2ad3f4d5d6fe7ca - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 - languageName: node - linkType: hard - -"smartwrap@npm:^2.0.2": - version: 2.0.2 - resolution: "smartwrap@npm:2.0.2" - dependencies: - array.prototype.flat: "npm:^1.2.3" - breakword: "npm:^1.0.5" - grapheme-splitter: "npm:^1.0.4" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - yargs: "npm:^15.1.0" - bin: - smartwrap: src/terminal-adapter.js - checksum: ea104632a832967a04cb739253dbd7d2e194c62bae1c3366d03bb5827870b83842a3e25a7f80287a4b04484ea4f64b51a0657389fc6a6fe701db3b25319ed56f - languageName: node - linkType: hard - -"snake-case@npm:^3.0.4": - version: 3.0.4 - resolution: "snake-case@npm:3.0.4" - dependencies: - dot-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: ab19a913969f58f4474fe9f6e8a026c8a2142a01f40b52b79368068343177f818cdfef0b0c6b9558f298782441d5ca8ed5932eb57822439fad791d866e62cecd - languageName: node - linkType: hard - -"snapdragon-node@npm:^2.0.1": - version: 2.1.1 - resolution: "snapdragon-node@npm:2.1.1" - dependencies: - define-property: "npm:^1.0.0" - isobject: "npm:^3.0.0" - snapdragon-util: "npm:^3.0.1" - checksum: 7616e6a1ca054afe3ad8defda17ebe4c73b0800d2e0efd635c44ee1b286f8ac7900517314b5330862ce99b28cd2782348ee78bae573ff0f55832ad81d9657f3f - languageName: node - linkType: hard - -"snapdragon-util@npm:^3.0.1": - version: 3.0.1 - resolution: "snapdragon-util@npm:3.0.1" - dependencies: - kind-of: "npm:^3.2.0" - checksum: 4441856d343399ba7f37f79681949d51b922e290fcc07e7bc94655a50f584befa4fb08f40c3471cd160e004660161964d8ff140cba49baa59aa6caba774240e3 - languageName: node - linkType: hard - -"snapdragon@npm:^0.8.1": - version: 0.8.2 - resolution: "snapdragon@npm:0.8.2" - dependencies: - base: "npm:^0.11.1" - debug: "npm:^2.2.0" - define-property: "npm:^0.2.5" - extend-shallow: "npm:^2.0.1" - map-cache: "npm:^0.2.2" - source-map: "npm:^0.5.6" - source-map-resolve: "npm:^0.5.0" - use: "npm:^3.1.0" - checksum: dfdac1f73d47152d72fc07f4322da09bbddfa31c1c9c3ae7346f252f778c45afa5b03e90813332f02f04f6de8003b34a168c456f8bb719024d092f932520ffca - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.3 - resolution: "socks-proxy-agent@npm:8.0.3" - dependencies: - agent-base: "npm:^7.1.1" - debug: "npm:^4.3.4" - socks: "npm:^2.7.1" - checksum: 4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.8.3 - resolution: "socks@npm:2.8.3" - dependencies: - ip-address: "npm:^9.0.5" - smart-buffer: "npm:^4.2.0" - checksum: d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 - languageName: node - linkType: hard - -"sol-digger@npm:0.0.2": - version: 0.0.2 - resolution: "sol-digger@npm:0.0.2" - checksum: 3dd7c627d5c7d107fb64df28dc405fbc9a4884b1eafa84b28dd65c7e73d0032de6c7648e77ab8c63283027cd3ac89d04c85637fcfb1282f686e53028dfb42b04 - languageName: node - linkType: hard - -"sol-explore@npm:1.6.1": - version: 1.6.1 - resolution: "sol-explore@npm:1.6.1" - checksum: a99755967b6cb69b1e9b9dc193281cdb749fe99860176f432a2e2e2ecf0d7bb7b02d539c67ca8c848c99c40b9f6e1bc7a7810d0c758636afd92063cc1b7a8566 - languageName: node - linkType: hard - -"solc-typed-ast@npm:18.2.4": - version: 18.2.4 - resolution: "solc-typed-ast@npm:18.2.4" - dependencies: - axios: "npm:^1.6.8" - commander: "npm:^12.0.0" - decimal.js: "npm:^10.4.3" - findup-sync: "npm:^5.0.0" - fs-extra: "npm:^11.2.0" - jsel: "npm:^1.1.6" - semver: "npm:^7.6.0" - solc: "npm:0.8.25" - src-location: "npm:^1.1.0" - web3-eth-abi: "npm:^4.2.0" - bin: - sol-ast-compile: dist/bin/compile.js - checksum: 77f6cc0fcfdd8cb662ead3489a558b9ff9bbeeb4f46af7a602f0f987b23953e33e21ca7e49cccfd4719e92a9b2aae400b00882c72efdd2819815a7ac5f478068 - languageName: node - linkType: hard - -"solc@npm:0.7.3": - version: 0.7.3 - resolution: "solc@npm:0.7.3" - dependencies: - command-exists: "npm:^1.2.8" - commander: "npm:3.0.2" - follow-redirects: "npm:^1.12.1" - fs-extra: "npm:^0.30.0" - js-sha3: "npm:0.8.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^2.0.0" - semver: "npm:^5.5.0" - tmp: "npm:0.0.33" - bin: - solcjs: solcjs - checksum: 28405adfba1f55603dc5b674630383bfbdbfab2d36deba2ff0a90c46cbc346bcabf0ed6175e12ae3c0b751ef082d0405ab42dcc24f88603a446e097a925d7425 - languageName: node - linkType: hard - -"solc@npm:0.8.25": - version: 0.8.25 - resolution: "solc@npm:0.8.25" - dependencies: - command-exists: "npm:^1.2.8" - commander: "npm:^8.1.0" - follow-redirects: "npm:^1.12.1" - js-sha3: "npm:0.8.0" - memorystream: "npm:^0.3.1" - semver: "npm:^5.5.0" - tmp: "npm:0.0.33" - bin: - solcjs: solc.js - checksum: d89b8b060cc0cec6c9948634da0606090da3710cada4ab7cb0f4a35721713beea716e73c1991329de6865fa997862c687b435e50113eaf66e3674a7f64e44d70 - languageName: node - linkType: hard - -"solc@npm:0.8.26": - version: 0.8.26 - resolution: "solc@npm:0.8.26" - dependencies: - command-exists: "npm:^1.2.8" - commander: "npm:^8.1.0" - follow-redirects: "npm:^1.12.1" - js-sha3: "npm:0.8.0" - memorystream: "npm:^0.3.1" - semver: "npm:^5.5.0" - tmp: "npm:0.0.33" - bin: - solcjs: solc.js - checksum: 1eea35da99c228d0dc1d831c29f7819e7921b67824c889a5e5f2e471a2ef5856a15fabc0b5de067f5ba994fa36fb5a563361963646fe98dad58a0e4fa17c8b2d - languageName: node - linkType: hard - -"solc@npm:^0.4.20": - version: 0.4.26 - resolution: "solc@npm:0.4.26" - dependencies: - fs-extra: "npm:^0.30.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^1.1.0" - semver: "npm:^5.3.0" - yargs: "npm:^4.7.1" - bin: - solcjs: solcjs - checksum: 6de113c966491d02b08bb5845a4a46989903af98ab2a99f7250d9385ecd939733d9514e91577e987443b7706f1d50b5317059f131e07fa940cdee0134733eac3 - languageName: node - linkType: hard - -"solc@npm:^0.6.3": - version: 0.6.12 - resolution: "solc@npm:0.6.12" - dependencies: - command-exists: "npm:^1.2.8" - commander: "npm:3.0.2" - fs-extra: "npm:^0.30.0" - js-sha3: "npm:0.8.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^2.0.0" - semver: "npm:^5.5.0" - tmp: "npm:0.0.33" - bin: - solcjs: solcjs - checksum: 7803e011a2a5424e14fc0aa3d7e36eac90130bfe1498eff3298967faee212aa13ca7fb7b98db27de449f086fbf92e87c24483e84ea5faa6a50cbe24e2961d002 - languageName: node - linkType: hard - -"solhint-community@npm:^3.7.0": - version: 3.7.0 - resolution: "solhint-community@npm:3.7.0" - dependencies: - "@solidity-parser/parser": "npm:^0.16.0" - ajv: "npm:^6.12.6" - antlr4: "npm:^4.11.0" - ast-parents: "npm:^0.0.1" - chalk: "npm:^4.1.2" - commander: "npm:^11.1.0" - cosmiconfig: "npm:^8.0.0" - fast-diff: "npm:^1.2.0" - glob: "npm:^8.0.3" - ignore: "npm:^5.2.4" - js-yaml: "npm:^4.1.0" - lodash: "npm:^4.17.21" - pluralize: "npm:^8.0.0" - prettier: "npm:^2.8.3" - semver: "npm:^6.3.0" - strip-ansi: "npm:^6.0.1" - table: "npm:^6.8.1" - text-table: "npm:^0.2.0" - dependenciesMeta: - prettier: - optional: true - bin: - solhint: solhint.js - checksum: 05b7ac7ce7fb978c3196400b00fddd361de8503cdc2d7be83b858775c6fe9b3f67a93b6d791f1f182f80759874926849351a6ef71f214ceef42211f5eb9336b1 - languageName: node - linkType: hard - -"solhint-graph-config@workspace:^0.0.1, solhint-graph-config@workspace:packages/solhint-graph-config": - version: 0.0.0-use.local - resolution: "solhint-graph-config@workspace:packages/solhint-graph-config" - dependencies: - solhint-plugin-graph: "workspace:*" - peerDependencies: - prettier: ^3.2.5 - prettier-plugin-solidity: ^1.3.1 - solhint: ^4.5.4 - languageName: unknown - linkType: soft - -"solhint-plugin-graph@workspace:*, solhint-plugin-graph@workspace:^0.0.1, solhint-plugin-graph@workspace:packages/solhint-plugin-graph": - version: 0.0.0-use.local - resolution: "solhint-plugin-graph@workspace:packages/solhint-plugin-graph" - languageName: unknown - linkType: soft - -"solhint-plugin-prettier@npm:^0.1.0": - version: 0.1.0 - resolution: "solhint-plugin-prettier@npm:0.1.0" - dependencies: - "@prettier/sync": "npm:^0.3.0" - prettier-linter-helpers: "npm:^1.0.0" - peerDependencies: - prettier: ^3.0.0 - prettier-plugin-solidity: ^1.0.0 - checksum: 4f6211ddd954c2ffd82a2766dc4453f3036fd7022aea5a54f63b00c4afcd4669c42ef6add8e255d43ed8c0c592917f338dd34b66bc7c017bbfd3eb133952529d - languageName: node - linkType: hard - -"solhint@npm:^4.1.1, solhint@npm:^4.5.2, solhint@npm:^4.5.4": - version: 4.5.4 - resolution: "solhint@npm:4.5.4" - dependencies: - "@solidity-parser/parser": "npm:^0.18.0" - ajv: "npm:^6.12.6" - antlr4: "npm:^4.13.1-patch-1" - ast-parents: "npm:^0.0.1" - chalk: "npm:^4.1.2" - commander: "npm:^10.0.0" - cosmiconfig: "npm:^8.0.0" - fast-diff: "npm:^1.2.0" - glob: "npm:^8.0.3" - ignore: "npm:^5.2.4" - js-yaml: "npm:^4.1.0" - latest-version: "npm:^7.0.0" - lodash: "npm:^4.17.21" - pluralize: "npm:^8.0.0" - prettier: "npm:^2.8.3" - semver: "npm:^7.5.2" - strip-ansi: "npm:^6.0.1" - table: "npm:^6.8.1" - text-table: "npm:^0.2.0" - dependenciesMeta: - prettier: - optional: true - bin: - solhint: solhint.js - checksum: 85bc62536c6b1269403b2af369dcfc7c63d07c6efb994f4e3c4e7e96d3511a64ab10c68635c6676e09eee289104b5d349091960994e990cacf240497170c8aed - languageName: node - linkType: hard - -"solidity-ast@npm:^0.4.38, solidity-ast@npm:^0.4.51": - version: 0.4.56 - resolution: "solidity-ast@npm:0.4.56" - dependencies: - array.prototype.findlast: "npm:^1.2.2" - checksum: 6e10e58ddae8c7a9e53551bc61b673963c6671cac12050fa77575caff1ecc6a58440af8b7d85755fdda7e02d0516e2dcd3a5a976bd91a865375274163281d160 - languageName: node - linkType: hard - -"solidity-comments-extractor@npm:^0.0.8": - version: 0.0.8 - resolution: "solidity-comments-extractor@npm:0.0.8" - checksum: 86e56bdfc90b3af3a5e244a2b5e215db78b12b6045d68699ecb2304326edb906c1b083c0e1a074cde77e9e8cdeb978ae5ef8666d821bef83db89c2708a8b6192 - languageName: node - linkType: hard - -"solidity-coverage@npm:^0.7.10, solidity-coverage@npm:^0.7.16": - version: 0.7.22 - resolution: "solidity-coverage@npm:0.7.22" - dependencies: - "@solidity-parser/parser": "npm:^0.14.0" - "@truffle/provider": "npm:^0.2.24" - chalk: "npm:^2.4.2" - death: "npm:^1.1.0" - detect-port: "npm:^1.3.0" - fs-extra: "npm:^8.1.0" - ghost-testrpc: "npm:^0.0.2" - global-modules: "npm:^2.0.0" - globby: "npm:^10.0.1" - jsonschema: "npm:^1.2.4" - lodash: "npm:^4.17.15" - node-emoji: "npm:^1.10.0" - pify: "npm:^4.0.1" - recursive-readdir: "npm:^2.2.2" - sc-istanbul: "npm:^0.4.5" - semver: "npm:^7.3.4" - shelljs: "npm:^0.8.3" - web3-utils: "npm:^1.3.0" - bin: - solidity-coverage: plugins/bin.js - checksum: b57dfa86386e312fa443bd4b6c84961fff11c7d712a5e9460b9fcfaac3f5797d0e3bb77a6c93276f213e524266dd3489770919ef2370d9dcdf111ad6b80ca98f - languageName: node - linkType: hard - -"solidity-coverage@npm:^0.8.0": - version: 0.8.12 - resolution: "solidity-coverage@npm:0.8.12" - dependencies: - "@ethersproject/abi": "npm:^5.0.9" - "@solidity-parser/parser": "npm:^0.18.0" - chalk: "npm:^2.4.2" - death: "npm:^1.1.0" - difflib: "npm:^0.2.4" - fs-extra: "npm:^8.1.0" - ghost-testrpc: "npm:^0.0.2" - global-modules: "npm:^2.0.0" - globby: "npm:^10.0.1" - jsonschema: "npm:^1.2.4" - lodash: "npm:^4.17.21" - mocha: "npm:^10.2.0" - node-emoji: "npm:^1.10.0" - pify: "npm:^4.0.1" - recursive-readdir: "npm:^2.2.2" - sc-istanbul: "npm:^0.4.5" - semver: "npm:^7.3.4" - shelljs: "npm:^0.8.3" - web3-utils: "npm:^1.3.6" - peerDependencies: - hardhat: ^2.11.0 - bin: - solidity-coverage: plugins/bin.js - checksum: 500de00ca5d0ff9531bcfc54040591e90bb281714c5ad810bc6aa77bb6ab696f15a141f6bcb1a47547dca68d10e717e1705741d4cf660d7dce8700fa97e6bfaf - languageName: node - linkType: hard - -"solidity-docgen@npm:^0.6.0-beta.36": - version: 0.6.0-beta.36 - resolution: "solidity-docgen@npm:0.6.0-beta.36" - dependencies: - handlebars: "npm:^4.7.7" - solidity-ast: "npm:^0.4.38" - peerDependencies: - hardhat: ^2.8.0 - checksum: 34ca1c18b2f662e5b6e407fad9346da91807b18ca57c877d909a4e730935475b0d3a5d8e91d79113c96741f4275944f9f3176a612894f4118e16cd9a9de80c02 - languageName: node - linkType: hard - -"solium-plugin-security@npm:0.1.1": - version: 0.1.1 - resolution: "solium-plugin-security@npm:0.1.1" - peerDependencies: - solium: ^1.0.0 - checksum: 96a76dab269985c8d33e8c238351ef50b6a3cc399e471da56885cbcf90738b4907d7391ffaec81bd8979b22a2b96d58abc214dd7058819409ef027ef65148a18 - languageName: node - linkType: hard - -"solparse@npm:2.2.8": - version: 2.2.8 - resolution: "solparse@npm:2.2.8" - dependencies: - mocha: "npm:^4.0.1" - pegjs: "npm:^0.10.0" - yargs: "npm:^10.0.3" - bin: - solidity-parser: ./cli.js - checksum: 9320255ceaaa4ddd590839ea508a3560f53839018f6e6755a4eb0333b3da4567f9b2a92fedc814394a5237a67a3a3aa0cfb6ab0bda28eb0c8e8828a302e75386 - languageName: node - linkType: hard - -"sonic-boom@npm:^2.2.1": - version: 2.8.0 - resolution: "sonic-boom@npm:2.8.0" - dependencies: - atomic-sleep: "npm:^1.0.0" - checksum: 6b40f2e91a999819b1dc24018a5d1c8b74e66e5d019eabad17d5b43fc309b32255b7c405ed6ec885693c8f2b969099ce96aeefde027180928bc58c034234a86d - languageName: node - linkType: hard - -"source-map-resolve@npm:^0.5.0": - version: 0.5.3 - resolution: "source-map-resolve@npm:0.5.3" - dependencies: - atob: "npm:^2.1.2" - decode-uri-component: "npm:^0.2.0" - resolve-url: "npm:^0.2.1" - source-map-url: "npm:^0.4.0" - urix: "npm:^0.1.0" - checksum: 410acbe93882e058858d4c1297be61da3e1533f95f25b95903edddc1fb719654e705663644677542d1fb78a66390238fad1a57115fc958a0724cf9bb509caf57 - languageName: node - linkType: hard - -"source-map-support@npm:0.5.12": - version: 0.5.12 - resolution: "source-map-support@npm:0.5.12" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: e37f0dd5e78bae64493cc201a4869ee8bd08f409b372ddb8452aab355dead19e2060a5a2e9c2ab981c6ade45122419562320710fade1b694fe848a48c01c2960 - languageName: node - linkType: hard - -"source-map-support@npm:^0.4.15": - version: 0.4.18 - resolution: "source-map-support@npm:0.4.18" - dependencies: - source-map: "npm:^0.5.6" - checksum: cd9f0309c1632b1e01a7715a009e0b036d565f3af8930fa8cda2a06aeec05ad1d86180e743b7e1f02cc3c97abe8b6d8de7c3878c2d8e01e86e17f876f7ecf98e - languageName: node - linkType: hard - -"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.17": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: 9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d - languageName: node - linkType: hard - -"source-map-url@npm:^0.4.0": - version: 0.4.1 - resolution: "source-map-url@npm:0.4.1" - checksum: f8af0678500d536c7f643e32094d6718a4070ab4ca2d2326532512cfbe2d5d25a45849b4b385879326f2d7523bb3b686d0360dd347a3cda09fd89a5c28d4bc58 - languageName: node - linkType: hard - -"source-map@npm:^0.5.6, source-map@npm:^0.5.7": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 - languageName: node - linkType: hard - -"source-map@npm:~0.2.0": - version: 0.2.0 - resolution: "source-map@npm:0.2.0" - dependencies: - amdefine: "npm:>=0.0.4" - checksum: 24ac0df484721203e7c98faaa2a56cc73d7e8b8468a03459dd98e09b84421056c456dbfea1bf4f292142c3b88c160574f648cbc83e8fe772cf0b3342f0bba68d - languageName: node - linkType: hard - -"spawndamnit@npm:^2.0.0": - version: 2.0.0 - resolution: "spawndamnit@npm:2.0.0" - dependencies: - cross-spawn: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 3d3aa1b750130a78cad591828c203e706cb132fbd7dccab8ae5354984117cd1464c7f9ef6c4756e6590fec16bab77fe2c85d1eb8e59006d303836007922d359c - languageName: node - linkType: hard - -"spdx-correct@npm:^3.0.0": - version: 3.2.0 - resolution: "spdx-correct@npm:3.2.0" - dependencies: - spdx-expression-parse: "npm:^3.0.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 49208f008618b9119208b0dadc9208a3a55053f4fd6a0ae8116861bd22696fc50f4142a35ebfdb389e05ccf2de8ad142573fefc9e26f670522d899f7b2fe7386 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.5.0 - resolution: "spdx-exceptions@npm:2.5.0" - checksum: 37217b7762ee0ea0d8b7d0c29fd48b7e4dfb94096b109d6255b589c561f57da93bf4e328c0290046115961b9209a8051ad9f525e48d433082fc79f496a4ea940 - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: "npm:^2.1.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.17 - resolution: "spdx-license-ids@npm:3.0.17" - checksum: ddf9477b5afc70f1a7d3bf91f0b8e8a1c1b0fa65d2d9a8b5c991b1a2ba91b693d8b9749700119d5ce7f3fbf307ac421087ff43d321db472605e98a5804f80eac - languageName: node - linkType: hard - -"split-string@npm:^3.0.1, split-string@npm:^3.0.2": - version: 3.1.0 - resolution: "split-string@npm:3.1.0" - dependencies: - extend-shallow: "npm:^3.0.0" - checksum: 72d7cd625445c7af215130e1e2bc183013bb9dd48a074eda1d35741e2b0dcb355e6df5b5558a62543a24dcec37dd1d6eb7a6228ff510d3c9de0f3dc1d1da8a70 - languageName: node - linkType: hard - -"split2@npm:^3.0.0, split2@npm:^3.1.1": - version: 3.2.2 - resolution: "split2@npm:3.2.2" - dependencies: - readable-stream: "npm:^3.0.0" - checksum: 2dad5603c52b353939befa3e2f108f6e3aff42b204ad0f5f16dd12fd7c2beab48d117184ce6f7c8854f9ee5ffec6faae70d243711dd7d143a9f635b4a285de4e - languageName: node - linkType: hard - -"split2@npm:^4.0.0, split2@npm:^4.1.0": - version: 4.2.0 - resolution: "split2@npm:4.2.0" - checksum: b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 - languageName: node - linkType: hard - -"sponge-case@npm:^1.0.1": - version: 1.0.1 - resolution: "sponge-case@npm:1.0.1" - dependencies: - tslib: "npm:^2.0.3" - checksum: dbe42f300ae9f7fbd83c40f71c2a61ecf9c86b927b5668bae067d1e516e314671cc85166f87017e51b56938409b1fc042719eb46a6d5bb30cc1cf23252a82761 - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: 09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb - languageName: node - linkType: hard - -"src-location@npm:^1.1.0": - version: 1.1.0 - resolution: "src-location@npm:1.1.0" - checksum: 68986114acb6891fea9226d727d24344364b65f478fb1f5c012e02757f0385727cf089a2b59ab1efccc286587eab78021f176755a32c5333949b23226d7fcfb7 - languageName: node - linkType: hard - -"sshpk@npm:^1.7.0": - version: 1.18.0 - resolution: "sshpk@npm:1.18.0" - dependencies: - asn1: "npm:~0.2.3" - assert-plus: "npm:^1.0.0" - bcrypt-pbkdf: "npm:^1.0.0" - dashdash: "npm:^1.12.0" - ecc-jsbn: "npm:~0.1.1" - getpass: "npm:^0.1.1" - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.0.2" - tweetnacl: "npm:~0.14.0" - bin: - sshpk-conv: bin/sshpk-conv - sshpk-sign: bin/sshpk-sign - sshpk-verify: bin/sshpk-verify - checksum: e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" - dependencies: - minipass: "npm:^7.0.3" - checksum: e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 - languageName: node - linkType: hard - -"stable@npm:^0.1.8": - version: 0.1.8 - resolution: "stable@npm:0.1.8" - checksum: df74b5883075076e78f8e365e4068ecd977af6c09da510cfc3148a303d4b87bc9aa8f7c48feb67ed4ef970b6140bd9eabba2129e28024aa88df5ea0114cba39d - languageName: node - linkType: hard - -"stack-trace@npm:0.0.x": - version: 0.0.10 - resolution: "stack-trace@npm:0.0.10" - checksum: 9ff3dabfad4049b635a85456f927a075c9d0c210e3ea336412d18220b2a86cbb9b13ec46d6c37b70a302a4ea4d49e30e5d4944dd60ae784073f1cde778ac8f4b - languageName: node - linkType: hard - -"stacktrace-parser@npm:^0.1.10": - version: 0.1.10 - resolution: "stacktrace-parser@npm:0.1.10" - dependencies: - type-fest: "npm:^0.7.1" - checksum: f9c9cd55b0642a546e5f0516a87124fc496dcc2c082b96b156ed094c51e423314795cd1839cd4c59026349cf392d3414f54fc42165255602728588a58a9f72d3 - languageName: node - linkType: hard - -"static-extend@npm:^0.1.1": - version: 0.1.2 - resolution: "static-extend@npm:0.1.2" - dependencies: - define-property: "npm:^0.2.5" - object-copy: "npm:^0.1.0" - checksum: 284f5865a9e19d079f1badbcd70d5f9f82e7a08393f818a220839cd5f71729e89105e1c95322bd28e833161d484cee671380ca443869ae89578eef2bf55c0653 - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - -"statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0": - version: 1.5.0 - resolution: "statuses@npm:1.5.0" - checksum: e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940 - languageName: node - linkType: hard - -"stream-shift@npm:^1.0.2": - version: 1.0.3 - resolution: "stream-shift@npm:1.0.3" - checksum: 939cd1051ca750d240a0625b106a2b988c45fb5a3be0cebe9a9858cb01bc1955e8c7b9fac17a9462976bea4a7b704e317c5c2200c70f0ca715a3363b9aa4fd3b - languageName: node - linkType: hard - -"stream-to-it@npm:^0.2.0, stream-to-it@npm:^0.2.1": - version: 0.2.4 - resolution: "stream-to-it@npm:0.2.4" - dependencies: - get-iterator: "npm:^1.0.2" - checksum: 3d40440a6c73a964e3e6070daabf8f4313d8d519e7ddff45dec7f0e0a0f3df048017510c0306a1e8da26d22e5b033164be79d849c6716fb2ebce4b7893449255 - languageName: node - linkType: hard - -"stream-to-pull-stream@npm:^1.7.1": - version: 1.7.3 - resolution: "stream-to-pull-stream@npm:1.7.3" - dependencies: - looper: "npm:^3.0.0" - pull-stream: "npm:^3.2.3" - checksum: 7deab5bdf3d352a2c1b5e0515a579a27d1e9e0f1791194126efaa84162dcb731ed9b5dcdf3d84717700e9de7fae9b7503539881eb87fab9263387b3a5ed08256 - languageName: node - linkType: hard - -"stream-transform@npm:^2.1.3": - version: 2.1.3 - resolution: "stream-transform@npm:2.1.3" - dependencies: - mixme: "npm:^0.5.1" - checksum: 8a4b40e1ee952869358c12bbb3da3aa9ca30c8964f8f8eef2058a3b6b2202d7a856657ef458a5f2402a464310d177f92d2e4a119667854fce4b17c05e3c180bd - languageName: node - linkType: hard - -"streamsearch@npm:^1.1.0": - version: 1.1.0 - resolution: "streamsearch@npm:1.1.0" - checksum: fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab - languageName: node - linkType: hard - -"strict-uri-encode@npm:^1.0.0": - version: 1.1.0 - resolution: "strict-uri-encode@npm:1.1.0" - checksum: eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62 - languageName: node - linkType: hard - -"string-argv@npm:0.3.1": - version: 0.3.1 - resolution: "string-argv@npm:0.3.1" - checksum: f59582070f0a4a2d362d8331031f313771ad2b939b223b0593d7765de2689c975e0069186cef65977a29af9deec248c7e480ea4015d153ead754aea5e4bcfe7c - languageName: node - linkType: hard - -"string-argv@npm:0.3.2, string-argv@npm:^0.3.1": - version: 0.3.2 - resolution: "string-argv@npm:0.3.2" - checksum: 75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82 - languageName: node - linkType: hard - -"string-format@npm:^2.0.0": - version: 2.0.0 - resolution: "string-format@npm:2.0.0" - checksum: 7bca13ba9f942f635c74d637da5e9e375435cbd428f35eeef28c3a30f81d4e63b95ff2c6cca907d897dd3951bbf52e03e3b945a0e9681358e33bd67222436538 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: "npm:^8.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - strip-ansi: "npm:^6.0.1" - checksum: 1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b - languageName: node - linkType: hard - -"string-width@npm:^1.0.1": - version: 1.0.2 - resolution: "string-width@npm:1.0.2" - dependencies: - code-point-at: "npm:^1.0.0" - is-fullwidth-code-point: "npm:^1.0.0" - strip-ansi: "npm:^3.0.0" - checksum: c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e - languageName: node - linkType: hard - -"string-width@npm:^2.0.0, string-width@npm:^2.1.1": - version: 2.1.1 - resolution: "string-width@npm:2.1.1" - dependencies: - is-fullwidth-code-point: "npm:^2.0.0" - strip-ansi: "npm:^4.0.0" - checksum: e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610 - languageName: node - linkType: hard - -"string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: "npm:^0.2.0" - emoji-regex: "npm:^9.2.2" - strip-ansi: "npm:^7.0.1" - checksum: ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca - languageName: node - linkType: hard - -"string-width@npm:^7.0.0": - version: 7.1.0 - resolution: "string-width@npm:7.1.0" - dependencies: - emoji-regex: "npm:^10.3.0" - get-east-asian-width: "npm:^1.0.0" - strip-ansi: "npm:^7.1.0" - checksum: 68a99fbc3bd3d8eb42886ff38dce819767dee55f606f74dfa4687a07dfd21262745d9683df0aa53bf81a5dd47c13da921a501925b974bec66a7ddd634fef0634 - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.9, string.prototype.trim@npm:~1.2.8": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.0" - es-object-atoms: "npm:^1.0.0" - checksum: dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimstart@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d - languageName: node - linkType: hard - -"string_decoder@npm:~0.10.x": - version: 0.10.31 - resolution: "string_decoder@npm:0.10.31" - checksum: 1c628d78f974aa7539c496029f48e7019acc32487fc695464f9d6bdfec98edd7d933a06b3216bc2016918f6e75074c611d84430a53cb0e43071597d6c1ac5e25 - languageName: node - linkType: hard - -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: "npm:~5.1.0" - checksum: b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e - languageName: node - linkType: hard - -"stringify-object@npm:^3.3.0": - version: 3.3.0 - resolution: "stringify-object@npm:3.3.0" - dependencies: - get-own-enumerable-property-symbols: "npm:^3.0.0" - is-obj: "npm:^1.0.1" - is-regexp: "npm:^1.0.0" - checksum: ba8078f84128979ee24b3de9a083489cbd3c62cb8572a061b47d4d82601a8ae4b4d86fa8c54dd955593da56bb7c16a6de51c27221fdc6b7139bb4f29d815f35b - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: "npm:^5.0.1" - checksum: 1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 - languageName: node - linkType: hard - -"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": - version: 3.0.1 - resolution: "strip-ansi@npm:3.0.1" - dependencies: - ansi-regex: "npm:^2.0.0" - checksum: f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f - languageName: node - linkType: hard - -"strip-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-ansi@npm:4.0.0" - dependencies: - ansi-regex: "npm:^3.0.0" - checksum: d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d - languageName: node - linkType: hard - -"strip-ansi@npm:^5.0.0": - version: 5.2.0 - resolution: "strip-ansi@npm:5.2.0" - dependencies: - ansi-regex: "npm:^4.1.0" - checksum: de4658c8a097ce3b15955bc6008f67c0790f85748bdc025b7bc8c52c7aee94bc4f9e50624516150ed173c3db72d851826cd57e7a85fe4e4bb6dbbebd5d297fdf - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: "npm:^6.0.1" - checksum: a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 - languageName: node - linkType: hard - -"strip-bom@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-bom@npm:2.0.0" - dependencies: - is-utf8: "npm:^0.2.0" - checksum: 4fcbb248af1d5c1f2d710022b7d60245077e7942079bfb7ef3fc8c1ae78d61e96278525ba46719b15ab12fced5c7603777105bc898695339d7c97c64d300ed0b - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 - languageName: node - linkType: hard - -"strip-eof@npm:^1.0.0": - version: 1.0.0 - resolution: "strip-eof@npm:1.0.0" - checksum: f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce - languageName: node - linkType: hard - -"strip-hex-prefix@npm:1.0.0": - version: 1.0.0 - resolution: "strip-hex-prefix@npm:1.0.0" - dependencies: - is-hex-prefixed: "npm:1.0.0" - checksum: ec9a48c334c2ba4afff2e8efebb42c3ab5439f0e1ec2b8525e184eabef7fecade7aee444af802b1be55d2df6da5b58c55166c32f8461cc7559b401137ad51851 - languageName: node - linkType: hard - -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: "npm:^1.0.0" - checksum: ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 - languageName: node - linkType: hard - -"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd - languageName: node - linkType: hard - -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 - languageName: node - linkType: hard - -"supports-color@npm:4.4.0": - version: 4.4.0 - resolution: "supports-color@npm:4.4.0" - dependencies: - has-flag: "npm:^2.0.0" - checksum: 6f8f5ea9592029f336c2f32767dd57e400dc632703c77f7b981e52bd38469a738ede2abe0c30767bc1ea82868749b03b9ce81b637b4e6919c3dcd15608ec7ced - languageName: node - linkType: hard - -"supports-color@npm:8.1.1, supports-color@npm:^8.1.1": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: "npm:^4.0.0" - checksum: ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 - languageName: node - linkType: hard - -"supports-color@npm:^2.0.0": - version: 2.0.0 - resolution: "supports-color@npm:2.0.0" - checksum: 570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda - languageName: node - linkType: hard - -"supports-color@npm:^3.1.0": - version: 3.2.3 - resolution: "supports-color@npm:3.2.3" - dependencies: - has-flag: "npm:^1.0.0" - checksum: d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: "npm:^4.0.0" - checksum: afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 - languageName: node - linkType: hard - -"supports-color@npm:^9.2.2": - version: 9.4.0 - resolution: "supports-color@npm:9.4.0" - checksum: 6c24e6b2b64c6a60e5248490cfa50de5924da32cf09ae357ad8ebbf305cc5d2717ba705a9d4cb397d80bbf39417e8fdc8d7a0ce18bd0041bf7b5b456229164e4 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 - languageName: node - linkType: hard - -"swap-case@npm:^2.0.2": - version: 2.0.2 - resolution: "swap-case@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: 6a47c1926e06395ead750905e103be388aeec8c9697f20b14bc3e1e86fcb4fc78e5033197afe6cc8bbed80f0a4ee1f184b0fa22eec7f4a767bdfd278683d52eb - languageName: node - linkType: hard - -"swarm-js@npm:^0.1.40": - version: 0.1.42 - resolution: "swarm-js@npm:0.1.42" - dependencies: - bluebird: "npm:^3.5.0" - buffer: "npm:^5.0.5" - eth-lib: "npm:^0.1.26" - fs-extra: "npm:^4.0.2" - got: "npm:^11.8.5" - mime-types: "npm:^2.1.16" - mkdirp-promise: "npm:^5.0.1" - mock-fs: "npm:^4.1.0" - setimmediate: "npm:^1.0.5" - tar: "npm:^4.0.2" - xhr-request: "npm:^1.0.1" - checksum: c951cc122f7c4e9c16fb2dd6328ef037fb313b727e70f903396f29a16b1c4a58f09d41772593c6bbde8c9070276212d7b3357ccb5c216b4eabaffb2460c6fa9a - languageName: node - linkType: hard - -"sync-request@npm:^6.0.0": - version: 6.1.0 - resolution: "sync-request@npm:6.1.0" - dependencies: - http-response-object: "npm:^3.0.1" - sync-rpc: "npm:^1.2.1" - then-request: "npm:^6.0.0" - checksum: 02b31c5d543933ce8cc2cdfa7dd7b278e2645eb54299d56f3bc9c778de3130301370f25d54ecc3f6b8b2c7bfb034daabd2b866e0c18badbde26404513212c1f5 - languageName: node - linkType: hard - -"sync-rpc@npm:^1.2.1": - version: 1.3.6 - resolution: "sync-rpc@npm:1.3.6" - dependencies: - get-port: "npm:^3.1.0" - checksum: 2abaa0e6482fe8b72e29af1f7d5f484fac5a8ea0132969bf370f59b044c4f2eb109f95b222cb06e037f89b42b374a2918e5f90aff5fb7cf3e146d8088c56f6db - languageName: node - linkType: hard - -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" - dependencies: - "@pkgr/core": "npm:^0.1.0" - tslib: "npm:^2.6.2" - checksum: c3d3aa8e284f3f84f2f868b960c9f49239b364e35f6d20825a448449a3e9c8f49fe36cdd5196b30615682f007830d46f2ea354003954c7336723cb821e4b6519 - languageName: node - linkType: hard - -"table-layout@npm:^1.0.2": - version: 1.0.2 - resolution: "table-layout@npm:1.0.2" - dependencies: - array-back: "npm:^4.0.1" - deep-extend: "npm:~0.6.0" - typical: "npm:^5.2.0" - wordwrapjs: "npm:^4.0.0" - checksum: c1d16d5ba2199571606ff574a5c91cff77f14e8477746e191e7dfd294da03e61af4e8004f1f6f783da9582e1365f38d3c469980428998750d558bf29462cc6c3 - languageName: node - linkType: hard - -"table@npm:^6.8.0, table@npm:^6.8.1": - version: 6.8.2 - resolution: "table@npm:6.8.2" - dependencies: - ajv: "npm:^8.0.1" - lodash.truncate: "npm:^4.4.2" - slice-ansi: "npm:^4.0.0" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - checksum: f8b348af38ee34e419d8ce7306ba00671ce6f20e861ccff22555f491ba264e8416086063ce278a8d81abfa8d23b736ec2cca7ac4029b5472f63daa4b4688b803 - languageName: node - linkType: hard - -"tape@npm:^4.6.3": - version: 4.17.0 - resolution: "tape@npm:4.17.0" - dependencies: - "@ljharb/resumer": "npm:~0.0.1" - "@ljharb/through": "npm:~2.3.9" - call-bind: "npm:~1.0.2" - deep-equal: "npm:~1.1.1" - defined: "npm:~1.0.1" - dotignore: "npm:~0.1.2" - for-each: "npm:~0.3.3" - glob: "npm:~7.2.3" - has: "npm:~1.0.3" - inherits: "npm:~2.0.4" - is-regex: "npm:~1.1.4" - minimist: "npm:~1.2.8" - mock-property: "npm:~1.0.0" - object-inspect: "npm:~1.12.3" - resolve: "npm:~1.22.6" - string.prototype.trim: "npm:~1.2.8" - bin: - tape: bin/tape - checksum: 985543b1df1fb9094dde152478dd7545b46ae0af97dd184061cd00dead7e30261184ac520c6cbe4a99b4b57cfb748f33a16e5974cef539993e8a7f7d3e4421c4 - languageName: node - linkType: hard - -"tar@npm:^4.0.2": - version: 4.4.19 - resolution: "tar@npm:4.4.19" - dependencies: - chownr: "npm:^1.1.4" - fs-minipass: "npm:^1.2.7" - minipass: "npm:^2.9.0" - minizlib: "npm:^1.3.3" - mkdirp: "npm:^0.5.5" - safe-buffer: "npm:^5.2.1" - yallist: "npm:^3.1.1" - checksum: 1a32a68feabd55e040f399f75fed37c35fd76202bb60e393986312cdee0175ff0dfd1aec9cc04ad2ade8a252d2a08c7d191fda877ce23f14a3da954d91d301d7 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 - languageName: node - linkType: hard - -"tdigest@npm:^0.1.1": - version: 0.1.2 - resolution: "tdigest@npm:0.1.2" - dependencies: - bintrees: "npm:1.0.2" - checksum: 10187b8144b112fcdfd3a5e4e9068efa42c990b1e30cd0d4f35ee8f58f16d1b41bc587e668fa7a6f6ca31308961cbd06cd5d4a4ae1dc388335902ae04f7d57df - languageName: node - linkType: hard - -"tenderly@npm:^0.6.0": - version: 0.6.0 - resolution: "tenderly@npm:0.6.0" - dependencies: - axios: "npm:^0.27.2" - cli-table3: "npm:^0.6.2" - commander: "npm:^9.4.0" - express: "npm:^4.18.1" - hyperlinker: "npm:^1.0.0" - js-yaml: "npm:^4.1.0" - open: "npm:^8.4.0" - prompts: "npm:^2.4.2" - tslog: "npm:^4.4.0" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - checksum: bfd3166be0598e4073e6b3fae046a2397b7177210ea6320ee94e0ca2742e3e4f20fb855c381fa9ecdcc7bed9307d7fe5885d72be1b8056c9fb79dbc0c186bb7e - languageName: node - linkType: hard - -"term-size@npm:^2.1.0": - version: 2.2.1 - resolution: "term-size@npm:2.2.1" - checksum: 89f6bba1d05d425156c0910982f9344d9e4aebf12d64bfa1f460d93c24baa7bc4c4a21d355fbd7153c316433df0538f64d0ae6e336cc4a69fdda4f85d62bc79d - languageName: node - linkType: hard - -"test-value@npm:^2.1.0": - version: 2.1.0 - resolution: "test-value@npm:2.1.0" - dependencies: - array-back: "npm:^1.0.3" - typical: "npm:^2.6.0" - checksum: 4f2830712641522408d790435e6527e277c54a76c9046db6616527045de4f1ac143e181e67fd3b0047e748cb477c48c59381a8f3a1b3599ccf13996aedf75688 - languageName: node - linkType: hard - -"testrpc@npm:0.0.1": - version: 0.0.1 - resolution: "testrpc@npm:0.0.1" - checksum: 567acfb2f993a0f3b9a88431f1dc575b582218236cd876f3c7e38d689b5195d4a8e153ac8c8cffb09ef6379e8f0e465a574ce3484dfaf8e3551bb63626d8ab94 - languageName: node - linkType: hard - -"text-extensions@npm:^1.0.0": - version: 1.9.0 - resolution: "text-extensions@npm:1.9.0" - checksum: 9ad5a9f723a871e2d884e132d7e93f281c60b5759c95f3f6b04704856548715d93a36c10dbaf5f12b91bf405f0cf3893bf169d4d143c0f5509563b992d385443 - languageName: node - linkType: hard - -"text-extensions@npm:^2.0.0": - version: 2.4.0 - resolution: "text-extensions@npm:2.4.0" - checksum: 6790e7ee72ad4d54f2e96c50a13e158bb57ce840dddc770e80960ed1550115c57bdc2cee45d5354d7b4f269636f5ca06aab4d6e0281556c841389aa837b23fcb - languageName: node - linkType: hard - -"text-hex@npm:1.0.x": - version: 1.0.0 - resolution: "text-hex@npm:1.0.0" - checksum: 57d8d320d92c79d7c03ffb8339b825bb9637c2cbccf14304309f51d8950015c44464b6fd1b6820a3d4821241c68825634f09f5a2d9d501e84f7c6fd14376860d - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - -"then-request@npm:^6.0.0": - version: 6.0.2 - resolution: "then-request@npm:6.0.2" - dependencies: - "@types/concat-stream": "npm:^1.6.0" - "@types/form-data": "npm:0.0.33" - "@types/node": "npm:^8.0.0" - "@types/qs": "npm:^6.2.31" - caseless: "npm:~0.12.0" - concat-stream: "npm:^1.6.0" - form-data: "npm:^2.2.0" - http-basic: "npm:^8.1.1" - http-response-object: "npm:^3.0.1" - promise: "npm:^8.0.0" - qs: "npm:^6.4.0" - checksum: 9d2998c3470d6aa5b49993612be40627c57a89534cff5bbcc1d57f18457c14675cf3f59310816a1f85fdd40fa66feb64c63c5b76fb2163221f57223609c47949 - languageName: node - linkType: hard - -"thread-stream@npm:^0.13.0": - version: 0.13.2 - resolution: "thread-stream@npm:0.13.2" - dependencies: - real-require: "npm:^0.1.0" - checksum: dfd8b8c030118fe657bf42b109963ee56e2b2167b0d58f6071f3299e3e0567b706c16ea3d8b7a5a08f96b4991e65c5a359fc9f2d8f159d8120916273c7f0b3dd - languageName: node - linkType: hard - -"thread-stream@npm:^0.15.1": - version: 0.15.2 - resolution: "thread-stream@npm:0.15.2" - dependencies: - real-require: "npm:^0.1.0" - checksum: f92f1b5a9f3f35a72c374e3fecbde6f14d69d5325ad9ce88930af6ed9c7c1ec814367716b712205fa4f06242ae5dd97321ae2c00b43586590ed4fa861f3c29ae - languageName: node - linkType: hard - -"through2@npm:^2.0.3": - version: 2.0.5 - resolution: "through2@npm:2.0.5" - dependencies: - readable-stream: "npm:~2.3.6" - xtend: "npm:~4.0.1" - checksum: cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade - languageName: node - linkType: hard - -"through2@npm:^3.0.1": - version: 3.0.2 - resolution: "through2@npm:3.0.2" - dependencies: - inherits: "npm:^2.0.4" - readable-stream: "npm:2 || 3" - checksum: 8ea17efa2ce5b78ef5c52d08e29d0dbdad9c321c2add5192bba3434cae25b2319bf9cdac1c54c3bfbd721438a30565ca6f3f19eb79f62341dafc5a12429d2ccc - languageName: node - linkType: hard - -"through2@npm:^4.0.0": - version: 4.0.2 - resolution: "through2@npm:4.0.2" - dependencies: - readable-stream: "npm:3" - checksum: 3741564ae99990a4a79097fe7a4152c22348adc4faf2df9199a07a66c81ed2011da39f631e479fdc56483996a9d34a037ad64e76d79f18c782ab178ea9b6778c - languageName: node - linkType: hard - -"through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: 4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc - languageName: node - linkType: hard - -"timed-out@npm:^4.0.1": - version: 4.0.1 - resolution: "timed-out@npm:4.0.1" - checksum: 86f03ffce5b80c5a066e02e59e411d3fbbfcf242b19290ba76817b4180abd1b85558489586b6022b798fb1cf26fc644c0ce0efb9c271d67ec83fada4b9542a56 - languageName: node - linkType: hard - -"tiny-lru@npm:^8.0.2": - version: 8.0.2 - resolution: "tiny-lru@npm:8.0.2" - checksum: 32dc73db748ae50bf43498f81150ed23922c924d7a3665ea240c7041abbbd5e8667c05328fd520ca923b4d10b89e69a4ba671365eaac221c6f7eb8b898530506 - languageName: node - linkType: hard - -"tinyglobby@npm:^0.2.6": - version: 0.2.10 - resolution: "tinyglobby@npm:0.2.10" - dependencies: - fdir: "npm:^6.4.2" - picomatch: "npm:^4.0.2" - checksum: ce946135d39b8c0e394e488ad59f4092e8c4ecd675ef1bcd4585c47de1b325e61ec6adfbfbe20c3c2bfa6fd674c5b06de2a2e65c433f752ae170aff11793e5ef - languageName: node - linkType: hard - -"title-case@npm:^3.0.3": - version: 3.0.3 - resolution: "title-case@npm:3.0.3" - dependencies: - tslib: "npm:^2.0.3" - checksum: face56f686060f777b43a180d371407124d201eb4238c19d9e97030fd54859696ca4e2ca499cc232f8700f24f2414cc08aab9fdf6d39acff055dd825a4d86d6a - languageName: node - linkType: hard - -"tmp@npm:0.0.33, tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: "npm:~1.0.2" - checksum: 69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 - languageName: node - linkType: hard - -"tmp@npm:0.1.0": - version: 0.1.0 - resolution: "tmp@npm:0.1.0" - dependencies: - rimraf: "npm:^2.6.3" - checksum: 195f96a194b34827b75e5742de09211ddd6d50b199c141e95cf399a574386031b4be03d2b6d33c3a0c364a3167affe3ece122bfe1b75485c8d5cf3f4320a8c48 - languageName: node - linkType: hard - -"to-fast-properties@npm:^1.0.3": - version: 1.0.3 - resolution: "to-fast-properties@npm:1.0.3" - checksum: 78974a4f4528700d18e4c2bbf0b1fb1b19862dcc20a18dc5ed659843dea2dff4f933d167a11d3819865c1191042003aea65f7f035791af9e65d070f2e05af787 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - -"to-object-path@npm:^0.3.0": - version: 0.3.0 - resolution: "to-object-path@npm:0.3.0" - dependencies: - kind-of: "npm:^3.0.2" - checksum: 731832a977614c03a770363ad2bd9e9c82f233261861724a8e612bb90c705b94b1a290a19f52958e8e179180bb9b71121ed65e245691a421467726f06d1d7fc3 - languageName: node - linkType: hard - -"to-readable-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "to-readable-stream@npm:1.0.0" - checksum: 79cb836e2fb4f2885745a8c212eab7ebc52e93758ff0737feceaed96df98e4d04b8903fe8c27f2e9f3f856a5068ac332918b235c5d801b3efe02a51a3fa0eb36 - languageName: node - linkType: hard - -"to-regex-range@npm:^2.1.0": - version: 2.1.1 - resolution: "to-regex-range@npm:2.1.1" - dependencies: - is-number: "npm:^3.0.0" - repeat-string: "npm:^1.6.1" - checksum: 440d82dbfe0b2e24f36dd8a9467240406ad1499fc8b2b0f547372c22ed1d092ace2a3eb522bb09bfd9c2f39bf1ca42eb78035cf6d2b8c9f5c78da3abc96cd949 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 - languageName: node - linkType: hard - -"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2": - version: 3.0.2 - resolution: "to-regex@npm:3.0.2" - dependencies: - define-property: "npm:^2.0.2" - extend-shallow: "npm:^3.0.2" - regex-not: "npm:^1.0.2" - safe-regex: "npm:^1.1.0" - checksum: 99d0b8ef397b3f7abed4bac757b0f0bb9f52bfd39167eb7105b144becfaa9a03756892352d01ac6a911f0c1ceef9f81db68c46899521a3eed054082042796120 - languageName: node - linkType: hard - -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 - languageName: node - linkType: hard - -"toposort-class@npm:^1.0.1": - version: 1.0.1 - resolution: "toposort-class@npm:1.0.1" - checksum: 75eacd421eca239aa480ead62dfd8966cbfc2483fd39e18893a59fe982cd904aa82ecbd46a0cdcea542f4f0a68799e5fc24bcb987029075f02a75679559fa4d7 - languageName: node - linkType: hard - -"tough-cookie@npm:~2.5.0": - version: 2.5.0 - resolution: "tough-cookie@npm:2.5.0" - dependencies: - psl: "npm:^1.1.28" - punycode: "npm:^2.1.1" - checksum: e1cadfb24d40d64ca16de05fa8192bc097b66aeeb2704199b055ff12f450e4f30c927ce250f53d01f39baad18e1c11d66f65e545c5c6269de4c366fafa4c0543 - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 - languageName: node - linkType: hard - -"trim-newlines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-newlines@npm:3.0.1" - checksum: 03cfefde6c59ff57138412b8c6be922ecc5aec30694d784f2a65ef8dcbd47faef580b7de0c949345abdc56ec4b4abf64dd1e5aea619b200316e471a3dd5bf1f6 - languageName: node - linkType: hard - -"trim-right@npm:^1.0.1": - version: 1.0.1 - resolution: "trim-right@npm:1.0.1" - checksum: 71989ec179c6b42a56e03db68e60190baabf39d32d4e1252fa1501c4e478398ae29d7191beffe015b9d9dc76f04f4b3a946bdb9949ad6b0c0b0c5db65f3eb672 - languageName: node - linkType: hard - -"triple-beam@npm:^1.3.0": - version: 1.4.1 - resolution: "triple-beam@npm:1.4.1" - checksum: 4bf1db71e14fe3ff1c3adbe3c302f1fdb553b74d7591a37323a7badb32dc8e9c290738996cbb64f8b10dc5a3833645b5d8c26221aaaaa12e50d1251c9aba2fea - languageName: node - linkType: hard - -"truffle-flattener@npm:^1.4.4": - version: 1.6.0 - resolution: "truffle-flattener@npm:1.6.0" - dependencies: - "@resolver-engine/imports-fs": "npm:^0.2.2" - "@solidity-parser/parser": "npm:^0.14.1" - find-up: "npm:^2.1.0" - mkdirp: "npm:^1.0.4" - tsort: "npm:0.0.1" - bin: - truffle-flattener: index.js - checksum: 422b4c6a5b9202f0d185258d795eb0efd07594300c074c23f671e20494864b87a2b2d9b10c3520635045b0f003d94696e7336fe2996fd9f53f7e854f5635b351 - languageName: node - linkType: hard - -"ts-algebra@npm:^1.2.2": - version: 1.2.2 - resolution: "ts-algebra@npm:1.2.2" - checksum: dabfb7fad18b3bb56ed6b14404c2d9d7d41f181df599d50ad6643c6ff1afc459524969d80898183f9e5c66378163799991bfac799790899034ae8cfc99904c74 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" - peerDependencies: - typescript: ">=4.2.0" - checksum: f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c - languageName: node - linkType: hard - -"ts-command-line-args@npm:^2.2.0": - version: 2.5.1 - resolution: "ts-command-line-args@npm:2.5.1" - dependencies: - chalk: "npm:^4.1.0" - command-line-args: "npm:^5.1.1" - command-line-usage: "npm:^6.1.0" - string-format: "npm:^2.0.0" - bin: - write-markdown: dist/write-markdown.js - checksum: affb43fd4e17b496b6fd195888c7a80e6d7fe54f121501926bb2376f2167c238f7fa8f2e2d98bf2498ff883240d9f914e3558701807f40dca882616a8fd763b1 - languageName: node - linkType: hard - -"ts-essentials@npm:^1.0.0": - version: 1.0.4 - resolution: "ts-essentials@npm:1.0.4" - checksum: 91f77f3d5722e31d824f7a92cdb53021d9ce6bcd659124bcf8b8df67f000d5c1a70e1c23e436c956e2827e28321c7cc0f67a6780f891a94bf18d413ac6301ba8 - languageName: node - linkType: hard - -"ts-essentials@npm:^6.0.3": - version: 6.0.7 - resolution: "ts-essentials@npm:6.0.7" - peerDependencies: - typescript: ">=3.7.0" - checksum: fffe3f8e383ab0a62cd090b32d0afeab2ad723e96699e1590e8970213631aaef22518fe47866f64356651d8595b81f220a2e9226247730a16f394eb7b1551862 - languageName: node - linkType: hard - -"ts-essentials@npm:^7.0.1": - version: 7.0.3 - resolution: "ts-essentials@npm:7.0.3" - peerDependencies: - typescript: ">=3.7.0" - checksum: ea1919534ec6ce4ca4d9cb0ff1ab8e053509237da8d4298762ab3bfba4e78ca5649a599ce78a5c7c2624f3a7a971f62b265b7b0c3c881336e4fa6acaf6f37544 - languageName: node - linkType: hard - -"ts-generator@npm:^0.1.1": - version: 0.1.1 - resolution: "ts-generator@npm:0.1.1" - dependencies: - "@types/mkdirp": "npm:^0.5.2" - "@types/prettier": "npm:^2.1.1" - "@types/resolve": "npm:^0.0.8" - chalk: "npm:^2.4.1" - glob: "npm:^7.1.2" - mkdirp: "npm:^0.5.1" - prettier: "npm:^2.1.2" - resolve: "npm:^1.8.1" - ts-essentials: "npm:^1.0.0" - bin: - ts-generator: dist/cli/run.js - checksum: 9c33b156da3166c131f6264f9f0148caa9a065ee0d5ad25cd9fde671fe119a892107062d16273fb72e77ff9b519b459140176f22ceee2e6cc388dea040bd870d - languageName: node - linkType: hard - -"ts-node@npm:>=8.0.0, ts-node@npm:^10.5.0, ts-node@npm:^10.8.1, ts-node@npm:^10.9.1": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": "npm:^0.8.0" - "@tsconfig/node10": "npm:^1.0.7" - "@tsconfig/node12": "npm:^1.0.7" - "@tsconfig/node14": "npm:^1.0.0" - "@tsconfig/node16": "npm:^1.0.2" - acorn: "npm:^8.4.1" - acorn-walk: "npm:^8.1.1" - arg: "npm:^4.1.0" - create-require: "npm:^1.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - v8-compile-cache-lib: "npm:^3.0.1" - yn: "npm:3.1.1" - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 - languageName: node - linkType: hard - -"ts-node@npm:^8.0.0": - version: 8.10.2 - resolution: "ts-node@npm:8.10.2" - dependencies: - arg: "npm:^4.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - source-map-support: "npm:^0.5.17" - yn: "npm:3.1.1" - peerDependencies: - typescript: ">=2.7" - bin: - ts-node: dist/bin.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 628343f62fff2543b4559a93eb27005084aea7609945e77f311031c5e96c4099736646856e1792605b90e8007d2c060fe80783be21c94788d91d6f259aab92e2 - languageName: node - linkType: hard - -"tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: "npm:^2.2.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea - languageName: node - linkType: hard - -"tslib@npm:2.4.0": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: eb19bda3ae545b03caea6a244b34593468e23d53b26bf8649fbc20fce43e9b21a71127fd6d2b9662c0fe48ee6ff668ead48fd00d3b88b2b716b1c12edae25b5d - languageName: node - linkType: hard - -"tslib@npm:2.7.0": - version: 2.7.0 - resolution: "tslib@npm:2.7.0" - checksum: 469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 - languageName: node - linkType: hard - -"tslib@npm:^1.11.1, tslib@npm:^1.9.0, tslib@npm:^1.9.3": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 - languageName: node - linkType: hard - -"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb - languageName: node - linkType: hard - -"tslib@npm:~2.4.0": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 9ac0e4fd1033861f0b4f0d848dc3009ebcc3aa4757a06e8602a2d8a7aed252810e3540e54e70709f06c0f95311faa8584f769bcbede48aff785eb7e4d399b9ec - languageName: node - linkType: hard - -"tslib@npm:~2.5.0": - version: 2.5.3 - resolution: "tslib@npm:2.5.3" - checksum: 4cb1817d34fae5b27d146e6c4a468d4155097d95c1335d0bc9690f11f33e63844806bf4ed6d97c30c72b8d85261b66cbbe16d871d9c594ac05701ec83e62a607 - languageName: node - linkType: hard - -"tslog@npm:^4.3.1, tslog@npm:^4.4.0": - version: 4.9.2 - resolution: "tslog@npm:4.9.2" - checksum: e53f139c140d0a5a8b9e10356e04451a07f7af20e7c02f71cdf6b490cde1b07d241ed4f12ed667e2c2a9c4599f90e3770135c3fd7edd0cc6554944be2785dca2 - languageName: node - linkType: hard - -"tsort@npm:0.0.1": - version: 0.0.1 - resolution: "tsort@npm:0.0.1" - checksum: ea3d034ab341dd9282c972710496e98539408d77f1cd476ad0551a9731f40586b65ab917b39745f902bf32037a3161eee3821405f6ab15bcd2ce4cc0a52d1da6 - languageName: node - linkType: hard - -"tty-table@npm:^4.1.5": - version: 4.2.3 - resolution: "tty-table@npm:4.2.3" - dependencies: - chalk: "npm:^4.1.2" - csv: "npm:^5.5.3" - kleur: "npm:^4.1.5" - smartwrap: "npm:^2.0.2" - strip-ansi: "npm:^6.0.1" - wcwidth: "npm:^1.0.1" - yargs: "npm:^17.7.1" - bin: - tty-table: adapters/terminal-adapter.js - checksum: 408b75693a2b0bae8cd27940c42d9cd29539deb01d90314e708f34f49c80697a3bf55bf5573f02a8aa6dc3ddee78b9e1bcf9ae986d1ec77896ae1d0bd5efb071 - languageName: node - linkType: hard - -"tunnel-agent@npm:^0.6.0": - version: 0.6.0 - resolution: "tunnel-agent@npm:0.6.0" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a - languageName: node - linkType: hard - -"tweetnacl-util@npm:^0.15.0, tweetnacl-util@npm:^0.15.1": - version: 0.15.1 - resolution: "tweetnacl-util@npm:0.15.1" - checksum: 796fad76238e40e853dff79516406a27b41549bfd6fabf4ba89d87ca31acf232122f825daf955db8c8573cc98190d7a6d39ece9ed8ae0163370878c310650a80 - languageName: node - linkType: hard - -"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": - version: 0.14.5 - resolution: "tweetnacl@npm:0.14.5" - checksum: 4612772653512c7bc19e61923fbf42903f5e0389ec76a4a1f17195859d114671ea4aa3b734c2029ce7e1fa7e5cc8b80580f67b071ecf0b46b5636d030a0102a2 - languageName: node - linkType: hard - -"tweetnacl@npm:^1.0.0, tweetnacl@npm:^1.0.3": - version: 1.0.3 - resolution: "tweetnacl@npm:1.0.3" - checksum: 069d9df51e8ad4a89fbe6f9806c68e06c65be3c7d42f0701cc43dba5f0d6064686b238bbff206c5addef8854e3ce00c643bff59432ea2f2c639feab0ee1a93f9 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 - languageName: node - linkType: hard - -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: "npm:~1.1.2" - checksum: 776217116b2b4e50e368c7ee0c22c0a85e982881c16965b90d52f216bc296d6a52ef74f9202d22158caacc092a7645b0b8d5fe529a96e3fe35d0fb393966c875 - languageName: node - linkType: hard - -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd - languageName: node - linkType: hard - -"type-detect@npm:^4.1.0": - version: 4.1.0 - resolution: "type-detect@npm:4.1.0" - checksum: df8157ca3f5d311edc22885abc134e18ff8ffbc93d6a9848af5b682730ca6a5a44499259750197250479c5331a8a75b5537529df5ec410622041650a7f293e2a - languageName: node - linkType: hard - -"type-fest@npm:^0.13.1": - version: 0.13.1 - resolution: "type-fest@npm:0.13.1" - checksum: 0c0fa07ae53d4e776cf4dac30d25ad799443e9eef9226f9fddbb69242db86b08584084a99885cfa5a9dfe4c063ebdc9aa7b69da348e735baede8d43f1aeae93b - languageName: node - linkType: hard - -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: 303f5ecf40d03e1d5b635ce7660de3b33c18ed8ebc65d64920c02974d9e684c72483c23f9084587e9dd6466a2ece1da42ddc95b412a461794dd30baca95e2bac - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: 902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 - languageName: node - linkType: hard - -"type-fest@npm:^0.6.0": - version: 0.6.0 - resolution: "type-fest@npm:0.6.0" - checksum: 0c585c26416fce9ecb5691873a1301b5aff54673c7999b6f925691ed01f5b9232db408cdbb0bd003d19f5ae284322523f44092d1f81ca0a48f11f7cf0be8cd38 - languageName: node - linkType: hard - -"type-fest@npm:^0.7.1": - version: 0.7.1 - resolution: "type-fest@npm:0.7.1" - checksum: ce6b5ef806a76bf08d0daa78d65e61f24d9a0380bd1f1df36ffb61f84d14a0985c3a921923cf4b97831278cb6fa9bf1b89c751df09407e0510b14e8c081e4e0f - languageName: node - linkType: hard - -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 - languageName: node - linkType: hard - -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d - languageName: node - linkType: hard - -"type@npm:^2.7.2": - version: 2.7.2 - resolution: "type@npm:2.7.2" - checksum: 84c2382788fe24e0bc3d64c0c181820048f672b0f06316aa9c7bdb373f8a09f8b5404f4e856bc4539fb931f2f08f2adc4c53f6c08c9c0314505d70c29a1289e1 - languageName: node - linkType: hard - -"typechain@npm:^3.0.0": - version: 3.0.0 - resolution: "typechain@npm:3.0.0" - dependencies: - command-line-args: "npm:^4.0.7" - debug: "npm:^4.1.1" - fs-extra: "npm:^7.0.0" - js-sha3: "npm:^0.8.0" - lodash: "npm:^4.17.15" - ts-essentials: "npm:^6.0.3" - ts-generator: "npm:^0.1.1" - bin: - typechain: ./dist/cli/cli.js - checksum: 2de8431d128da6ff3eaedea445a9398988c68111751e0147b96161bf8d8fc2f538a595c9e4078625fa01cd98cb2d939d574d9d7db8cf5a97eaa18e69cf645c08 - languageName: node - linkType: hard - -"typechain@npm:^5.0.0": - version: 5.2.0 - resolution: "typechain@npm:5.2.0" - dependencies: - "@types/prettier": "npm:^2.1.1" - command-line-args: "npm:^4.0.7" - debug: "npm:^4.1.1" - fs-extra: "npm:^7.0.0" - glob: "npm:^7.1.6" - js-sha3: "npm:^0.8.0" - lodash: "npm:^4.17.15" - mkdirp: "npm:^1.0.4" - prettier: "npm:^2.1.2" - ts-essentials: "npm:^7.0.1" - peerDependencies: - typescript: ">=4.1.0" - bin: - typechain: dist/cli/cli.js - checksum: d4bfdae389efabfb3ecbce37e51c7a4d1100086a368a89a42521faea3b38108183b8c8cc370ef81d45159f8a64be482eb1adb89e69dad4bc7b70b82d1c673d6d - languageName: node - linkType: hard - -"typechain@npm:^7.0.0": - version: 7.0.1 - resolution: "typechain@npm:7.0.1" - dependencies: - "@types/prettier": "npm:^2.1.1" - debug: "npm:^4.1.1" - fs-extra: "npm:^7.0.0" - glob: "npm:^7.1.6" - js-sha3: "npm:^0.8.0" - lodash: "npm:^4.17.15" - mkdirp: "npm:^1.0.4" - prettier: "npm:^2.1.2" - ts-command-line-args: "npm:^2.2.0" - ts-essentials: "npm:^7.0.1" - peerDependencies: - typescript: ">=4.1.0" - bin: - typechain: dist/cli/cli.js - checksum: 945ebb9aac2cd76144e12559cb193d56df4b376b771b37de35369d6ea6188038a5b237e0df455dea90225b46273427846d2384d75d3de3eb2a82c3467c083675 - languageName: node - linkType: hard - -"typechain@npm:^8.3.0": - version: 8.3.2 - resolution: "typechain@npm:8.3.2" - dependencies: - "@types/prettier": "npm:^2.1.1" - debug: "npm:^4.3.1" - fs-extra: "npm:^7.0.0" - glob: "npm:7.1.7" - js-sha3: "npm:^0.8.0" - lodash: "npm:^4.17.15" - mkdirp: "npm:^1.0.4" - prettier: "npm:^2.3.1" - ts-command-line-args: "npm:^2.2.0" - ts-essentials: "npm:^7.0.1" - peerDependencies: - typescript: ">=4.3.0" - bin: - typechain: dist/cli/cli.js - checksum: 1ea660cc7c699c6ac68da67b76454eb4e9395c54666d924ca67f983ae8eb5b5e7dab0a576beb55dbfad75ea784a3f68cb1ca019d332293b7291731c156ead5b5 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-typed-array: "npm:^1.1.13" - checksum: 9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - possible-typed-array-names: "npm:^1.0.0" - checksum: 74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: "npm:^1.0.0" - checksum: 4ac5b7a93d604edabf3ac58d3a2f7e07487e9f6e98195a080e81dbffdc4127817f470f219d794a843b87052cedef102b53ac9b539855380b8c2172054b7d5027 - languageName: node - linkType: hard - -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: 6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 - languageName: node - linkType: hard - -"typescript-eslint@npm:^7.0.2": - version: 7.9.0 - resolution: "typescript-eslint@npm:7.9.0" - dependencies: - "@typescript-eslint/eslint-plugin": "npm:7.9.0" - "@typescript-eslint/parser": "npm:7.9.0" - "@typescript-eslint/utils": "npm:7.9.0" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: dacdd8b278d519eea1d980c71dd301a0b68fe1100aa8eaa9e3b80acd7089765ef50bdf369b7c11ddc5f4be6ac6d90cc9283db549003c3df8cfabbe4f44a36b53 - languageName: node - linkType: hard - -"typescript@npm:^4.0.2, typescript@npm:^4.4.3": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 5f6cad2e728a8a063521328e612d7876e12f0d8a8390d3b3aaa452a6a65e24e9ac8ea22beb72a924fd96ea0a49ea63bb4e251fb922b12eedfb7f7a26475e5c56 - languageName: node - linkType: hard - -"typescript@npm:^5.0.4, typescript@npm:^5.1.6, typescript@npm:^5.2.2, typescript@npm:^5.3.3": - version: 5.4.5 - resolution: "typescript@npm:5.4.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e - languageName: node - linkType: hard - -"typescript@npm:^5.6.3": - version: 5.6.3 - resolution: "typescript@npm:5.6.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^4.0.2#optional!builtin, typescript@patch:typescript@npm%3A^4.4.3#optional!builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: e3333f887c6829dfe0ab6c1dbe0dd1e3e2aeb56c66460cb85c5440c566f900c833d370ca34eb47558c0c69e78ced4bfe09b8f4f98b6de7afed9b84b8d1dd06a1 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^5.0.4#optional!builtin, typescript@patch:typescript@npm%3A^5.1.6#optional!builtin, typescript@patch:typescript@npm%3A^5.2.2#optional!builtin, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": - version: 5.4.5 - resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=e012d7" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 9cf4c053893bcf327d101b6c024a55baf05430dc30263f9adb1bf354aeffc11306fe1f23ba2f9a0209674359f16219b5b7d229e923477b94831d07d5a33a4217 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": - version: 5.6.3 - resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=e012d7" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: ac8307bb06bbfd08ae7137da740769b7d8c3ee5943188743bb622c621f8ad61d244767480f90fbd840277fbf152d8932aa20c33f867dea1bb5e79b187ca1a92f - languageName: node - linkType: hard - -"typewise-core@npm:^1.2, typewise-core@npm:^1.2.0": - version: 1.2.0 - resolution: "typewise-core@npm:1.2.0" - checksum: 0c574b036e430ef29a3c71dca1f88c041597734448db50e697ec4b7d03d71af4f8afeec556a2553f7db1cf98f9313b983071f0731d784108b2daf4f2e0c37d9e - languageName: node - linkType: hard - -"typewise@npm:^1.0.3": - version: 1.0.3 - resolution: "typewise@npm:1.0.3" - dependencies: - typewise-core: "npm:^1.2.0" - checksum: 0e300a963cd344f9f4216343eb1c9714e1aee12c5b928ae3ff4a19b4b1edcd82356b8bd763905bd72528718a3c863612f8259cb047934b59bdd849f305e12e80 - languageName: node - linkType: hard - -"typewiselite@npm:~1.0.0": - version: 1.0.0 - resolution: "typewiselite@npm:1.0.0" - checksum: f4b85fdc0016d05049d016207bd76283f7734a9644ca95638a686cd0d78d0fbcf9dfde81270e24ad97aed63cbf5592fe0163df694df180e865f1c85a237c85a6 - languageName: node - linkType: hard - -"typical@npm:^2.6.0, typical@npm:^2.6.1": - version: 2.6.1 - resolution: "typical@npm:2.6.1" - checksum: b3dee3aa4e8bbc2821c95dc98cb4618cac47735a399b0b24594f541049593381c5e01ff1ce3a35c9ebb3166ebd3edc62a3f6e34a99ccd2bdf20f205597f0df99 - languageName: node - linkType: hard - -"typical@npm:^4.0.0": - version: 4.0.0 - resolution: "typical@npm:4.0.0" - checksum: f300b198fb9fe743859b75ec761d53c382723dc178bbce4957d9cb754f2878a44ce17dc0b6a5156c52be1065449271f63754ba594dac225b80ce3aa39f9241ed - languageName: node - linkType: hard - -"typical@npm:^5.2.0": - version: 5.2.0 - resolution: "typical@npm:5.2.0" - checksum: 1cceaa20d4b77a02ab8eccfe4a20500729431aecc1e1b7dc70c0e726e7966efdca3bf0b4bee285555b751647e37818fd99154ea73f74b5c29adc95d3c13f5973 - languageName: node - linkType: hard - -"ua-parser-js@npm:^1.0.35": - version: 1.0.37 - resolution: "ua-parser-js@npm:1.0.37" - checksum: dac8cf82a55b2e097bd2286954e01454c4cfcf23c9d9b56961ce94bda3cec5a38ca536e6e84c20a4000a9d4b4a4abcbd98ec634ccebe21be36595ea3069126e4 - languageName: node - linkType: hard - -"uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" - bin: - uglifyjs: bin/uglifyjs - checksum: 8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced - languageName: node - linkType: hard - -"uint8arrays@npm:1.1.0, uint8arrays@npm:^1.0.0, uint8arrays@npm:^1.1.0": - version: 1.1.0 - resolution: "uint8arrays@npm:1.1.0" - dependencies: - multibase: "npm:^3.0.0" - web-encoding: "npm:^1.0.2" - checksum: 6c6dd84e3fa9e3b90141de7030c62baecf3d593450065b1ad6c445b83def56f35d1d806dfcdcfb7a309c6f9ea22a407402d5ce6c286ad0009fc5b5bea3c2b10d - languageName: node - linkType: hard - -"uint8arrays@npm:^2.0.5, uint8arrays@npm:^2.1.3": - version: 2.1.10 - resolution: "uint8arrays@npm:2.1.10" - dependencies: - multiformats: "npm:^9.4.2" - checksum: 1e8384078c44b34c47e7cc544bed573ddff4a2bab272527b8372d36aa550e3108784d640bb2e5153190e5741bc50c1a5b3cf09b67911ac9125f770db96f28bd8 - languageName: node - linkType: hard - -"uint8arrays@npm:^3.0.0": - version: 3.1.1 - resolution: "uint8arrays@npm:3.1.1" - dependencies: - multiformats: "npm:^9.4.2" - checksum: 9946668e04f29b46bbb73cca3d190f63a2fbfe5452f8e6551ef4257d9d597b72da48fa895c15ef2ef772808a5335b3305f69da5f13a09f8c2924896b409565ff - languageName: node - linkType: hard - -"ultron@npm:~1.1.0": - version: 1.1.1 - resolution: "ultron@npm:1.1.1" - checksum: 527d7f687012898e3af8d646936ecba776a7099ef8d3d983f9b3ccd5e84e266af0f714d859be15090b55b93f331bb95e5798bce555d9bb08e2f4bf2faac16517 - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - has-bigints: "npm:^1.0.2" - has-symbols: "npm:^1.0.3" - which-boxed-primitive: "npm:^1.0.2" - checksum: 81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66 - languageName: node - linkType: hard - -"unc-path-regex@npm:^0.1.2": - version: 0.1.2 - resolution: "unc-path-regex@npm:0.1.2" - checksum: bf9c781c4e2f38e6613ea17a51072e4b416840fbe6eeb244597ce9b028fac2fb6cfd3dde1f14111b02c245e665dc461aab8168ecc30b14364d02caa37f812996 - languageName: node - linkType: hard - -"underscore@npm:1.9.1": - version: 1.9.1 - resolution: "underscore@npm:1.9.1" - checksum: 63415f33b1ba4d7f8a9c8bdd00d457ce7ebdfcb9b1bf9dd596d7550550a790986e5ce7f2319d5e5076dbd56c4a359ebd3c914dd98f6eb33122d41fd439fcb4fa - languageName: node - linkType: hard - -"underscore@npm:^1.13.1": - version: 1.13.6 - resolution: "underscore@npm:1.13.6" - checksum: 5f57047f47273044c045fddeb8b141dafa703aa487afd84b319c2495de2e685cecd0b74abec098292320d518b267c0c4598e45aa47d4c3628d0d4020966ba521 - languageName: node - linkType: hard - -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 - languageName: node - linkType: hard - -"undici-types@npm:~6.19.2": - version: 6.19.8 - resolution: "undici-types@npm:6.19.8" - checksum: 078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 - languageName: node - linkType: hard - -"undici@npm:^5.14.0": - version: 5.28.4 - resolution: "undici@npm:5.28.4" - dependencies: - "@fastify/busboy": "npm:^2.0.0" - checksum: 08d0f2596553aa0a54ca6e8e9c7f45aef7d042c60918564e3a142d449eda165a80196f6ef19ea2ef2e6446959e293095d8e40af1236f0d67223b06afac5ecad7 - languageName: node - linkType: hard - -"unfetch@npm:^4.2.0": - version: 4.2.0 - resolution: "unfetch@npm:4.2.0" - checksum: a5c0a896a6f09f278b868075aea65652ad185db30e827cb7df45826fe5ab850124bf9c44c4dafca4bf0c55a0844b17031e8243467fcc38dd7a7d435007151f1b - languageName: node - linkType: hard - -"union-value@npm:^1.0.0": - version: 1.0.1 - resolution: "union-value@npm:1.0.1" - dependencies: - arr-union: "npm:^3.1.0" - get-value: "npm:^2.0.6" - is-extendable: "npm:^0.1.1" - set-value: "npm:^2.0.1" - checksum: 8758d880cb9545f62ce9cfb9b791b2b7a206e0ff5cc4b9d7cd6581da2c6839837fbb45e639cf1fd8eef3cae08c0201b614b7c06dd9f5f70d9dbe7c5fe2fbf592 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: "npm:^4.0.0" - checksum: 6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 - languageName: node - linkType: hard - -"universalify@npm:^0.1.0": - version: 0.1.2 - resolution: "universalify@npm:0.1.2" - checksum: e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: 73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a - languageName: node - linkType: hard - -"unixify@npm:^1.0.0": - version: 1.0.0 - resolution: "unixify@npm:1.0.0" - dependencies: - normalize-path: "npm:^2.1.1" - checksum: 8b89100619ebde9f0ab4024a4d402316fb7b1d4853723410fc828944e8d3d01480f210cddf94d9a1699559f8180d861eb6323da8011b7bcc1bbaf6a11a5b1f1e - languageName: node - linkType: hard - -"unorm@npm:^1.3.3": - version: 1.6.0 - resolution: "unorm@npm:1.6.0" - checksum: ff0caa3292f318e2e832d02ad019a401118fe42f5e554dca3b9c7e4a2a3100eda051945711234a6ffbd74088cf51930755782456d30864240936cb3485f80a01 - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c - languageName: node - linkType: hard - -"unset-value@npm:^1.0.0": - version: 1.0.0 - resolution: "unset-value@npm:1.0.0" - dependencies: - has-value: "npm:^0.3.1" - isobject: "npm:^3.0.0" - checksum: 68a796dde4a373afdbf017de64f08490a3573ebee549136da0b3a2245299e7f65f647ef70dc13c4ac7f47b12fba4de1646fa0967a365638578fedce02b9c0b1f - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.13": - version: 1.0.16 - resolution: "update-browserslist-db@npm:1.0.16" - dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 5995399fc202adbb51567e4810e146cdf7af630a92cc969365a099150cb00597e425cc14987ca7080b09a4d0cfd2a3de53fbe72eebff171aed7f9bb81f9bf405 - languageName: node - linkType: hard - -"upper-case-first@npm:^2.0.2": - version: 2.0.2 - resolution: "upper-case-first@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: ccad6a0b143310ebfba2b5841f30bef71246297385f1329c022c902b2b5fc5aee009faf1ac9da5ab3ba7f615b88f5dc1cd80461b18a8f38cb1d4c3eb92538ea9 - languageName: node - linkType: hard - -"upper-case@npm:^2.0.2": - version: 2.0.2 - resolution: "upper-case@npm:2.0.2" - dependencies: - tslib: "npm:^2.0.3" - checksum: 5ac176c9d3757abb71400df167f9abb46d63152d5797c630d1a9f083fbabd89711fb4b3dc6de06ff0138fe8946fa5b8518b4fcdae9ca8a3e341417075beae069 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - -"urix@npm:^0.1.0": - version: 0.1.0 - resolution: "urix@npm:0.1.0" - checksum: 264f1b29360c33c0aec5fb9819d7e28f15d1a3b83175d2bcc9131efe8583f459f07364957ae3527f1478659ec5b2d0f1ad401dfb625f73e4d424b3ae35fc5fc0 - languageName: node - linkType: hard - -"url-parse-lax@npm:^3.0.0": - version: 3.0.0 - resolution: "url-parse-lax@npm:3.0.0" - dependencies: - prepend-http: "npm:^2.0.0" - checksum: 16f918634d41a4fab9e03c5f9702968c9930f7c29aa1a8c19a6dc01f97d02d9b700ab9f47f8da0b9ace6e0c0e99c27848994de1465b494bced6940c653481e55 - languageName: node - linkType: hard - -"url-set-query@npm:^1.0.0": - version: 1.0.0 - resolution: "url-set-query@npm:1.0.0" - checksum: 88f52b16b213598763aafe1128f0b48d080d6b63b4f735c01b87effe4e21c463ba6df5c075499bc03c6af1357728b287d629c3d15b4a895c0c87dad8913fccef - languageName: node - linkType: hard - -"url@npm:^0.11.0": - version: 0.11.3 - resolution: "url@npm:0.11.3" - dependencies: - punycode: "npm:^1.4.1" - qs: "npm:^6.11.2" - checksum: 7546b878ee7927cfc62ca21dbe2dc395cf70e889c3488b2815bf2c63355cb3c7db555128176a01b0af6cccf265667b6fd0b4806de00cb71c143c53986c08c602 - languageName: node - linkType: hard - -"urlpattern-polyfill@npm:^8.0.0": - version: 8.0.2 - resolution: "urlpattern-polyfill@npm:8.0.2" - checksum: 5388bbe8459dbd8861ee7cb97904be915dd863a9789c2191c528056f16adad7836ec22762ed002fed44e8995d0f98bdfb75a606466b77233e70d0f61b969aaf9 - languageName: node - linkType: hard - -"use@npm:^3.1.0": - version: 3.1.1 - resolution: "use@npm:3.1.1" - checksum: 75b48673ab80d5139c76922630d5a8a44e72ed58dbaf54dee1b88352d10e1c1c1fc332066c782d8ae9a56503b85d3dc67ff6d2ffbd9821120466d1280ebb6d6e - languageName: node - linkType: hard - -"utf-8-validate@npm:^5.0.2": - version: 5.0.10 - resolution: "utf-8-validate@npm:5.0.10" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f - languageName: node - linkType: hard - -"utf8@npm:3.0.0, utf8@npm:^3.0.0": - version: 3.0.0 - resolution: "utf8@npm:3.0.0" - checksum: 675d008bab65fc463ce718d5cae8fd4c063540f269e4f25afebce643098439d53e7164bb1f193e0c3852825c7e3e32fbd8641163d19a618dbb53f1f09acb0d5a - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 - languageName: node - linkType: hard - -"util.promisify@npm:^1.0.0": - version: 1.1.2 - resolution: "util.promisify@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - for-each: "npm:^0.3.3" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - object.getownpropertydescriptors: "npm:^2.1.6" - safe-array-concat: "npm:^1.0.0" - checksum: cc9bf4912b89ea8e095b5746d945607884b4635d219cb1935c028259e86be6af92d7b7b1e702776805d81f7d387ffa436037299e9bf01ce076267e217b54ae3e - languageName: node - linkType: hard - -"util@npm:^0.12.0, util@npm:^0.12.3, util@npm:^0.12.5": - version: 0.12.5 - resolution: "util@npm:0.12.5" - dependencies: - inherits: "npm:^2.0.3" - is-arguments: "npm:^1.0.4" - is-generator-function: "npm:^1.0.7" - is-typed-array: "npm:^1.1.3" - which-typed-array: "npm:^1.1.2" - checksum: c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: 02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672 - languageName: node - linkType: hard - -"uuid@npm:2.0.1": - version: 2.0.1 - resolution: "uuid@npm:2.0.1" - checksum: 8241e74e709bf0398a64c350ebdac8ba8340ee74858f239eee06972b7fbe09f2babd20df486692f68a695510df806f6bd17ffce3eadc4d3c13f2128b262d6f06 - languageName: node - linkType: hard - -"uuid@npm:3.3.2": - version: 3.3.2 - resolution: "uuid@npm:3.3.2" - bin: - uuid: ./bin/uuid - checksum: 847bd7b389f44d05cf5341134d52803116b616c7344f12c74040effd75280b58273ea3a2bee6ba6e5405688c5edbb0696f4adcbc89e1206dc1d8650bdaece7a6 - languageName: node - linkType: hard - -"uuid@npm:^3.3.2": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" - bin: - uuid: ./bin/uuid - checksum: 1c13950df865c4f506ebfe0a24023571fa80edf2e62364297a537c80af09c618299797bbf2dbac6b1f8ae5ad182ba474b89db61e0e85839683991f7e08795347 - languageName: node - linkType: hard - -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 - languageName: node - linkType: hard - -"validate-npm-package-license@npm:^3.0.1": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: "npm:^3.0.0" - spdx-expression-parse: "npm:^3.0.0" - checksum: 7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f - languageName: node - linkType: hard - -"validator@npm:^13.7.0, validator@npm:^13.9.0": - version: 13.12.0 - resolution: "validator@npm:13.12.0" - checksum: 21d48a7947c9e8498790550f56cd7971e0e3d724c73388226b109c1bac2728f4f88caddfc2f7ed4b076f9b0d004316263ac786a17e9c4edf075741200718cd32 - languageName: node - linkType: hard - -"value-or-promise@npm:1.0.12, value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": - version: 1.0.12 - resolution: "value-or-promise@npm:1.0.12" - checksum: b75657b74e4d17552bd88e0c2857020fbab34a4d091dc058db18c470e7da0336067e72c130b3358e3321ac0a6ff11c0b92b67a382318a3705ad5d57de7ff3262 - languageName: node - linkType: hard - -"varint@npm:^5.0.0, varint@npm:^5.0.2, varint@npm:~5.0.0": - version: 5.0.2 - resolution: "varint@npm:5.0.2" - checksum: a8e6c304cb140389cc56f14c808cd2ad4764d81f8afdaf4e49e9804231f2a62d9443098dba6b1249b0bd160b823fc7886d51e1cb0fca54209f842310d1d2591d - languageName: node - linkType: hard - -"varint@npm:^6.0.0": - version: 6.0.0 - resolution: "varint@npm:6.0.0" - checksum: 737fc37088a62ed3bd21466e318d21ca7ac4991d0f25546f518f017703be4ed0f9df1c5559f1dd533dddba4435a1b758fd9230e4772c1a930ef72b42f5c750fd - languageName: node - linkType: hard - -"vary@npm:^1, vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f - languageName: node - linkType: hard - -"verror@npm:1.10.0": - version: 1.10.0 - resolution: "verror@npm:1.10.0" - dependencies: - assert-plus: "npm:^1.0.0" - core-util-is: "npm:1.0.2" - extsprintf: "npm:^1.2.0" - checksum: 37ccdf8542b5863c525128908ac80f2b476eed36a32cb944de930ca1e2e78584cc435c4b9b4c68d0fc13a47b45ff364b4be43aa74f8804f9050140f660fb660d - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: "npm:^1.0.3" - checksum: 5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4 - languageName: node - linkType: hard - -"web-encoding@npm:^1.0.2, web-encoding@npm:^1.0.6": - version: 1.1.5 - resolution: "web-encoding@npm:1.1.5" - dependencies: - "@zxing/text-encoding": "npm:0.9.0" - util: "npm:^0.12.3" - dependenciesMeta: - "@zxing/text-encoding": - optional: true - checksum: 59d5413338ec0894c690006f5d8508b0c88cae1d8c78606c3f326e351c672196461ed808b849fe08d0900fa56a61fcacb9ff576499068d2ead0a7bc04afa7d34 - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.2.1": - version: 3.3.3 - resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f - languageName: node - linkType: hard - -"web3-bzz@npm:1.10.0": - version: 1.10.0 - resolution: "web3-bzz@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:12.1.0" - swarm-js: "npm:^0.1.40" - checksum: b17d10c147025a9592454c9d6dbc908b28ea172354157d9d7455313d0ce0f1312d27a5c2bcbe53335516d51cb176a83c433a60836c62327ccc434c223b7c96ff - languageName: node - linkType: hard - -"web3-bzz@npm:1.2.11": - version: 1.2.11 - resolution: "web3-bzz@npm:1.2.11" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:9.6.0" - swarm-js: "npm:^0.1.40" - underscore: "npm:1.9.1" - checksum: 1c1a33b0168d5a5369bb6a139854866b2d0ce7da63f08848683143c8eee2be4a32f8842eddc2074a688a17bdd863bda0ba360e977acbe0fa7c113417b63f67dc - languageName: node - linkType: hard - -"web3-bzz@npm:1.7.4": - version: 1.7.4 - resolution: "web3-bzz@npm:1.7.4" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:9.6.0" - swarm-js: "npm:^0.1.40" - checksum: 1c1521f861f1fc73c81cc2ebd0bc8d063a9c6cb3bbe8ac957ac456325fad27da5ec1ea52e3a266b033695767f2dc34dd24352b372ef9bb07a928a1acd898ffce - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-helpers@npm:1.10.0" - dependencies: - web3-eth-iban: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 3ddb8691279296c153d5d966c72f631fc6f68880d7a540de2ad658e3f63109305a4b1995490f6881cf0b3b1695c0326366de5f741cafffc595c3273755dccb90 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-helpers@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-eth-iban: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: a07b7b2dad6a48ec7fd571b30e2d9719e497f5afe27b2a38883d80b7683aa058dff2ba3bf7d2195710f8ddd73edad7c5913f615d89c7530e04768f5e4f415e23 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core-helpers@npm:1.7.4" - dependencies: - web3-eth-iban: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: d0effc7e774bb58001a402c9c9ce9aae4c6a62377c7577398c1bffe3b78f90723f9dcacb4a4819dfc969354568ff0890a16dd284fff4145938ddb2aab06c854c - languageName: node - linkType: hard - -"web3-core-method@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-method@npm:1.10.0" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 63cf9708ab62978ad2c71da2555b0b77db861ce034282d0c12f7939a8b44b77acbf30ef62c381ef076b2e7d2ac43bd97173047414463beaa10a59ac6df587182 - languageName: node - linkType: hard - -"web3-core-method@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-method@npm:1.2.11" - dependencies: - "@ethersproject/transactions": "npm:^5.0.0-beta.135" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 5355ea541e6b305801166afa678832306121ad86db385dba711de7b85a50ab4c37f6d428142cc8af422c420eaf469e7f71ead4edcb631c8a015ae9ebe98c9569 - languageName: node - linkType: hard - -"web3-core-method@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core-method@npm:1.7.4" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.7.4" - web3-core-promievent: "npm:1.7.4" - web3-core-subscriptions: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: 69224d161f62b3270b95b241e0bc647c1387133d4227fbe77a34b1653ba7c76ab0b3235095b4e2335060bf15362f2a3ceac1a9154ff45b01b2edd4181e0bf014 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-promievent@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 200b01c8f92534441a880d216853a520d25fbbebc4c986aab8028596ce6f4af5c2e3b299cb92a624c2ed8ea6871b4c958dcadbba233951f081cbadd2159d94ba - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-promievent@npm:1.2.11" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 7e7f0499042ea82dd66a580ae186b2eda9a94016466d05582efd4804aa030b46ff30c7b7e5abd7fae9fd905fcd7e962a50216f6e7a8635cec5aaf22f44dca3ba - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core-promievent@npm:1.7.4" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 8987e11918b2df1e55c7c7be18871f7e0877c060f47066882aa90d83976ca03d65d407233e623df771b3b5bc545f55d9e128bf7908cbce9a014774f218292639 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-requestmanager@npm:1.10.0" - dependencies: - util: "npm:^0.12.5" - web3-core-helpers: "npm:1.10.0" - web3-providers-http: "npm:1.10.0" - web3-providers-ipc: "npm:1.10.0" - web3-providers-ws: "npm:1.10.0" - checksum: 9ea2504e3f6d46aeb7a957f4cc6566549d1d09e58da9210d13276134f69d00fffe21af36c7737a25d3a2de11c8192259ef0008bb743b9abf94e8278544b486c0 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-requestmanager@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - web3-providers-http: "npm:1.2.11" - web3-providers-ipc: "npm:1.2.11" - web3-providers-ws: "npm:1.2.11" - checksum: 9c0770fc1cd2ecafcc5c260ead72321de21d465448374abb1641a881e24ce512b1244f8503d7277ccefb61ecc4fd6538724662833b75ec8f3dd74b2b017eb8a0 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core-requestmanager@npm:1.7.4" - dependencies: - util: "npm:^0.12.0" - web3-core-helpers: "npm:1.7.4" - web3-providers-http: "npm:1.7.4" - web3-providers-ipc: "npm:1.7.4" - web3-providers-ws: "npm:1.7.4" - checksum: 29380ec5b88d39dd28b5810bfe1e0edb9b38286a42650ea3d8812b105a7470ddb5ddcf12a817062c3a7a0e2dfda92944fab021153730a53d379dc87a3474c7e7 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-subscriptions@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - checksum: c4969644fd2d24ac8ba1a2926bc3bb784ac1f6bdcd78cb2d5cfac027b3b1e7f12d953778113d5969eae991cb17c3c726ee35f5a65c130af075411e6192da78a8 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-subscriptions@npm:1.2.11" - dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - checksum: cfcca968e5aa289c663e3ea2bf496431533c3c917f6f1bf78035ac4b17a6b336fb2b9d8f3e6f28ea3add7d955635fca41a1e424431a69987294c1de2e4559ead - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core-subscriptions@npm:1.7.4" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.7.4" - checksum: 8b32a71e48ec681a0ae3deff840b94da08dea1d194bbc22c2096f4fb42644eec5c8bbacad2fe0104014900eba7e17ae1607eb204ae6f6a037e46ec87f3fd80e1 - languageName: node - linkType: hard - -"web3-core@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-requestmanager: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: d264e5c85dd6f043e2d1bff63104cc10224c4033592b43fd4d5b021c4fa5b03038945c1f184141d6493d94423d1ce3ffffc820e2967f8483d87811884702fe72 - languageName: node - linkType: hard - -"web3-core@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core@npm:1.2.11" - dependencies: - "@types/bn.js": "npm:^4.11.5" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-requestmanager: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: ab9fcefe570dd15d590d4f03df26a149928cabdac096c9bfa8728ba29fe8fa0f522d7b68baab30fde685d7b509bf515d33fe15194c51e6e5fe18f0a737d1501a - languageName: node - linkType: hard - -"web3-core@npm:1.7.4": - version: 1.7.4 - resolution: "web3-core@npm:1.7.4" - dependencies: - "@types/bn.js": "npm:^5.1.0" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-core-requestmanager: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: 9e37ffa6897c61268e3cb08fd825d832085c5fa7407e5cf2f0a6cbd3f419b357383635fa3c7e96f62904b8ad3dba4811fd25de5a42ebb1d77bcf575bdcacbd73 - languageName: node - linkType: hard - -"web3-errors@npm:^1.2.0, web3-errors@npm:^1.3.1": - version: 1.3.1 - resolution: "web3-errors@npm:1.3.1" - dependencies: - web3-types: "npm:^1.10.0" - checksum: b763f0ae43c5c90f0fb72a0342a0d9227b68b363ab9d0b0c2948d586379129ec31b6da070c37393213022b34ed10374d3b16b86002c1280c637d3df4d29eed2a - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-abi@npm:1.10.0" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.10.0" - checksum: 529352b955031ed235b4ff318f62409ae7eb9acf0026e5a8cbf8b0b96bd5a8fc2a7803add1670d5a6202d60a98003a1c73a2b8558d962a6bd836625cffc97c41 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-abi@npm:1.2.11" - dependencies: - "@ethersproject/abi": "npm:5.0.0-beta.153" - underscore: "npm:1.9.1" - web3-utils: "npm:1.2.11" - checksum: 18dee331dc337385a3d41239d72f4208c4c9f080ccc5d395c2da4150dc2a3989637f4b32d9536089df931722396062399b99c3901c01599974b411df69bb8fc5 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-abi@npm:1.7.4" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.7.4" - checksum: 783eb5b1ba035cc2c1402e47d7fe5cc3677da5faacc9f4930a0cc8fea93b7d2c847166e09d5449d8105236e25f5b9e8ead3a582ba2874a1811bb24ee0d7034c1 - languageName: node - linkType: hard - -"web3-eth-abi@npm:^4.2.0": - version: 4.4.1 - resolution: "web3-eth-abi@npm:4.4.1" - dependencies: - abitype: "npm:0.7.1" - web3-errors: "npm:^1.3.1" - web3-types: "npm:^1.10.0" - web3-utils: "npm:^4.3.3" - web3-validator: "npm:^2.0.6" - checksum: fbaf2a6ef29dc8146a562a2d19823f20deb29f802abf0a82349863cb0ae884e564f756643fa76246717f89475088175e7d93fc813c24790911422e22e18e2fda - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-accounts@npm:1.10.0" - dependencies: - "@ethereumjs/common": "npm:2.5.0" - "@ethereumjs/tx": "npm:3.3.2" - eth-lib: "npm:0.2.8" - ethereumjs-util: "npm:^7.1.5" - scrypt-js: "npm:^3.0.1" - uuid: "npm:^9.0.0" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 9f6a60044650a37e0119bf6cdaf02269acfe3eb9d8361ec4e41e0bfb36008aabaaed6ee6bfb08bc98ffd9442965620c0f3157466317ed99753d12e0308eb5766 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-accounts@npm:1.2.11" - dependencies: - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.8" - ethereumjs-common: "npm:^1.3.2" - ethereumjs-tx: "npm:^2.1.1" - scrypt-js: "npm:^3.0.1" - underscore: "npm:1.9.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 81b4a141296c97785bbaf9f390381277574b291148004e4006ea6ba148f1fe6386206b0fde21ebb0da5e846e585e9892c8680128213bc4a0aa3340a8859ec3f3 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-accounts@npm:1.7.4" - dependencies: - "@ethereumjs/common": "npm:^2.5.0" - "@ethereumjs/tx": "npm:^3.3.2" - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.8" - ethereumjs-util: "npm:^7.0.10" - scrypt-js: "npm:^3.0.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.7.4" - web3-core-helpers: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: 1f476ea5f912ef96ab47f67f7baacda473e28c64a0f7b477044a99d57e0d926de068dac35b9f353cdd7995acffe56255bb640705eef059e3151d990f9cdb27a2 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-contract@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 6b5f2009a91364e3005e1c16fa614c3cfdcd2132351e1e266c5a891e9c45aa6e856002d8ceb748acbf7affb42548e1ad378393ecba4deb48ad37a1d12bb91f42 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-contract@npm:1.2.11" - dependencies: - "@types/bn.js": "npm:^4.11.5" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 3ed8a3e2dd21fc48834eca3867f999bef2ae06b0dc48568d08cac4d2226fdcc9301d9909fa8b2bda4dd09834aedcf3187a3dd8216e7833321950cd7b15f07f35 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-contract@npm:1.7.4" - dependencies: - "@types/bn.js": "npm:^5.1.0" - web3-core: "npm:1.7.4" - web3-core-helpers: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-core-promievent: "npm:1.7.4" - web3-core-subscriptions: "npm:1.7.4" - web3-eth-abi: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: e8e7b4dc08b5e4b3a86acd456cbafd0e82c032bc68b64199c9e70dcec4226ec17ea69743efa88a12bd5fa9490b2a9081c5ffa6de44ab428f98116822255d4284 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-ens@npm:1.10.0" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 9f7f8817ebfe2041a369c6342df5136e04cf2998bcfdf0af871b6f547d1953017e8ecabc89d0265edf9844f41dd5cf16d2d47030deb8debd81dca62b045c9455 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-ens@npm:1.2.11" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-eth-contract: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: da281289dea92cd1dfef09be4bd5e6bb1d1f9d31f96dd5cc1dc0372ffe560e79896184a28ff6371b957c518ee54663346b2a1efd31bd736abe965dc46fcf7647 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-ens@npm:1.7.4" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.7.4" - web3-core-helpers: "npm:1.7.4" - web3-core-promievent: "npm:1.7.4" - web3-eth-abi: "npm:1.7.4" - web3-eth-contract: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: 4919f5682f23cfc2bc5d8099266c563f5198ff8870136f4bbce7d1c6ba5507a25adf09098922a0e620f04cf83fdb7cf4d2b7842e42851b776f5583636b767a09 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-iban@npm:1.10.0" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.10.0" - checksum: 76ea1db4adabfc8db1117c8f80c09162ad80b2f8f0a587850ecc3a6e1f6d143ec17429edcaa1b4f5d316e49d1ab9cac7266b51fb7af6af8880be47cfafcca711 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-iban@npm:1.2.11" - dependencies: - bn.js: "npm:^4.11.9" - web3-utils: "npm:1.2.11" - checksum: 9ce91997af608b3b8bd9e8c953c3da4bc59e5f5045efd1ff107ad0981692fa7ae644d7fc35e1c1812a72aef443c24062af4cc01f27b75200511008c5a0954636 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-iban@npm:1.7.4" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.7.4" - checksum: f0f9497bbc3a845c3d52f5f666490b2d437c6c7845fce02151361dc41db19a95ab5f9c617cbbc9b5018a19d32f5743c91fb8ba1d277ea479f7b2252a33d4a790 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-personal@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 37449475b5d671e1f58082f013e6ded7045c30737ed00f3263f543ea500afc2225c25ee265d7088fda82c06f1ceb1e0e2a88793cbde70f9a7e06e17f6aa8fe95 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-personal@npm:1.2.11" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: cc7f60b81a54d309f09e4ad339299b1f4d9f2685776e71286f13405a9082e21bab7c526e0711a64fcf104db4593df6459a457e796fb38825cbec8df6d58b9c35 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth-personal@npm:1.7.4" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.7.4" - web3-core-helpers: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-net: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: eb1c72c967f79be7e8430882a6aae7774c72e658d040f753fa13a954367a97e81f3702db2072d55cc5d186c7c715e40d9556c512b0628e8f42f3748cccfebf7a - languageName: node - linkType: hard - -"web3-eth@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-accounts: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-eth-ens: "npm:1.10.0" - web3-eth-iban: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: bfe48ad6d3190a2d0a9077bcb9603a359db44eff487aa60f3f9516327d72fed82eb75423a5098fbbc0bde97e4e60b87f26c47440b4989a444f7a75288fc35b3a - languageName: node - linkType: hard - -"web3-eth@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-eth-accounts: "npm:1.2.11" - web3-eth-contract: "npm:1.2.11" - web3-eth-ens: "npm:1.2.11" - web3-eth-iban: "npm:1.2.11" - web3-eth-personal: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 62c229c795fbbb3afa7b105f35ea69f318a4a9f6aa6b39b3ad64f93a8783749df129ecbea805eb0a8042e4750c1cd3f8af6c8abdedf6a443e3a6f13701f11ea9 - languageName: node - linkType: hard - -"web3-eth@npm:1.7.4": - version: 1.7.4 - resolution: "web3-eth@npm:1.7.4" - dependencies: - web3-core: "npm:1.7.4" - web3-core-helpers: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-core-subscriptions: "npm:1.7.4" - web3-eth-abi: "npm:1.7.4" - web3-eth-accounts: "npm:1.7.4" - web3-eth-contract: "npm:1.7.4" - web3-eth-ens: "npm:1.7.4" - web3-eth-iban: "npm:1.7.4" - web3-eth-personal: "npm:1.7.4" - web3-net: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: aa02b19fb6e8f17aaae9d06cb07c09c1c9aa6bab07925a2f187188d69f79893d6c24fbfca4736ec2fd9e7957dbb74e7ee02b6bb91d1a6fa1980f9df59fb5a7f7 - languageName: node - linkType: hard - -"web3-net@npm:1.10.0": - version: 1.10.0 - resolution: "web3-net@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: ba581318ca62a7aecf01dad8fea250ac928f57718ebe92b182cae2d97ffc4807ba1ffd4cf4d4bd36f37f7cbda12c7551fc4db14eb4bfd9163d82dffc05b10ab1 - languageName: node - linkType: hard - -"web3-net@npm:1.2.11": - version: 1.2.11 - resolution: "web3-net@npm:1.2.11" - dependencies: - web3-core: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 9d3e777dcc78dad719f847115a93687d8eb7f6187c3f4b15a4ceebea58cc6d4fd80002ec516720b2c2de265d51033967673b6362c6b2f79318ea1c807223b550 - languageName: node - linkType: hard - -"web3-net@npm:1.7.4": - version: 1.7.4 - resolution: "web3-net@npm:1.7.4" - dependencies: - web3-core: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: 231c89d30c485d1bbe596735deba86e43e43f719d5128c4c2cb508108c3ba864e4930af8e599115b622997bbd0d35bb1380815ba64f730defc354353f3936fc4 - languageName: node - linkType: hard - -"web3-provider-engine@npm:14.2.1": - version: 14.2.1 - resolution: "web3-provider-engine@npm:14.2.1" - dependencies: - async: "npm:^2.5.0" - backoff: "npm:^2.5.0" - clone: "npm:^2.0.0" - cross-fetch: "npm:^2.1.0" - eth-block-tracker: "npm:^3.0.0" - eth-json-rpc-infura: "npm:^3.1.0" - eth-sig-util: "npm:^1.4.2" - ethereumjs-block: "npm:^1.2.2" - ethereumjs-tx: "npm:^1.2.0" - ethereumjs-util: "npm:^5.1.5" - ethereumjs-vm: "npm:^2.3.4" - json-rpc-error: "npm:^2.0.0" - json-stable-stringify: "npm:^1.0.1" - promise-to-callback: "npm:^1.0.0" - readable-stream: "npm:^2.2.9" - request: "npm:^2.85.0" - semaphore: "npm:^1.0.3" - ws: "npm:^5.1.1" - xhr: "npm:^2.2.0" - xtend: "npm:^4.0.1" - checksum: 4d22b4de9f2a01b2ce561c02148bfaf4fb75e27c33cc1710f1d56e5681af4c7a19451ef8fcf50726420b8b3178e27d3b4c5e3de101652cd721ecce894e002568 - languageName: node - linkType: hard - -"web3-providers-http@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-http@npm:1.10.0" - dependencies: - abortcontroller-polyfill: "npm:^1.7.3" - cross-fetch: "npm:^3.1.4" - es6-promise: "npm:^4.2.8" - web3-core-helpers: "npm:1.10.0" - checksum: 2e63fe6206a7349a1bb331b873f51708f2121c4c8c691984e742627392fc75aa902345559e8d595b4f3cc53969660a0db6735f34f8ae24562c01d632639c8b4e - languageName: node - linkType: hard - -"web3-providers-http@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-http@npm:1.2.11" - dependencies: - web3-core-helpers: "npm:1.2.11" - xhr2-cookies: "npm:1.1.0" - checksum: 9997cd3ff010cf752b36f28edb711d1af91bf4ac772a5cea73a91ffb61f601dc1731c0aef3916606b4aec14aca63d5962a87ca9f0374731395e54eb1ffe1aa01 - languageName: node - linkType: hard - -"web3-providers-http@npm:1.7.4": - version: 1.7.4 - resolution: "web3-providers-http@npm:1.7.4" - dependencies: - web3-core-helpers: "npm:1.7.4" - xhr2-cookies: "npm:1.1.0" - checksum: 6bf0d6d4708bc2a55aa8db6bbdeaba6992514f951b1f00cb4205a8ad3e5475c1fa2ca1d59d088f322a1b39a481641177b5d19cbb7629189ffde242b9cb6d8320 - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ipc@npm:1.10.0" - dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.10.0" - checksum: dda363d4910d453157a6bcf2b0bf9d5369fe96ef057529948991f63927de4ed047cac67730405e18f0bd142517dbbaea17c91363a5d5225546262ed532da5f3c - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-ipc@npm:1.2.11" - dependencies: - oboe: "npm:2.1.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - checksum: 0e08ded199fefa26c0b5969571d202c202992ccba1ef6da07176ab253b4d6c7d1f2dfce57824f7ecded2baa3bd6131dfd2e8747e424e1f207a912f38cbec1778 - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.7.4": - version: 1.7.4 - resolution: "web3-providers-ipc@npm:1.7.4" - dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.7.4" - checksum: cbd775756a8ecf8f8b4dbc7415bae5f1d20392e9caac73498fe8281c1fb7c86734cc8f23c17bb59e1c342c5147d19b9aa63754683afdaef6c1ac220db58a66ef - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ws@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - websocket: "npm:^1.0.32" - checksum: 7c74acf800d590b76b29506b70a827b843306a4f1acb1789a5a16d831fdf852cec0b4872e5b999ad1523cd80a9b8c2358c92a041af20207fd48e6cd7763accb3 - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-ws@npm:1.2.11" - dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - websocket: "npm:^1.0.31" - checksum: e52c6907cb06937c740ccde934ffc202d148518e974ce3f4806702b24c173e04402690af71705a13254fba3996901118288b64cba991839b5f0b6e563be4fe9d - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.7.4": - version: 1.7.4 - resolution: "web3-providers-ws@npm:1.7.4" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.7.4" - websocket: "npm:^1.0.32" - checksum: e60f219ce47c9e2eaafb55dc2990abdeb375bfd64e184ff3ba9eb633afcd6b26973a6575d8a83ae863eb7814dc86af4df841a460856b59b1261c130af9a64163 - languageName: node - linkType: hard - -"web3-shh@npm:1.10.0": - version: 1.10.0 - resolution: "web3-shh@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-net: "npm:1.10.0" - checksum: 832f6b21e39d44b7379cebb235895924e88240e08dc499d77f4d3ec1a22626118068c2b146a8f87d25dac6bf27a420f7f23a16630b3cec39e79892d369d5d264 - languageName: node - linkType: hard - -"web3-shh@npm:1.2.11": - version: 1.2.11 - resolution: "web3-shh@npm:1.2.11" - dependencies: - web3-core: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-net: "npm:1.2.11" - checksum: 5716031471a067a4537ed37e6f064fe312ceb8450c312e324ac292c0f5f6ac824d731e4a6a2451637061449229377c693c51991a2152a50dee4b442dfad89538 - languageName: node - linkType: hard - -"web3-shh@npm:1.7.4": - version: 1.7.4 - resolution: "web3-shh@npm:1.7.4" - dependencies: - web3-core: "npm:1.7.4" - web3-core-method: "npm:1.7.4" - web3-core-subscriptions: "npm:1.7.4" - web3-net: "npm:1.7.4" - checksum: a6a9d590f28dcc3c1b1085ebc99b5b5c40461b3be0bf8b8f1555201e03397681a7cc79ec7a8cdd9980b8428ba8daab0b4d54ecafbfc300cfbf3fb57495751370 - languageName: node - linkType: hard - -"web3-types@npm:^1.10.0, web3-types@npm:^1.6.0": - version: 1.10.0 - resolution: "web3-types@npm:1.10.0" - checksum: e7238b48f62dd03a4eda2ca6d150f0ae7d02a0bede886b36316e57ee6535ccf9965ba938afc9dcbdd807696df782eff1a29658ed03a917d92f88798cf8db2bc7 - languageName: node - linkType: hard - -"web3-utils@npm:1.10.0": - version: 1.10.0 - resolution: "web3-utils@npm:1.10.0" - dependencies: - bn.js: "npm:^5.2.1" - ethereum-bloom-filters: "npm:^1.0.6" - ethereumjs-util: "npm:^7.1.0" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: 6543c5788fba035d73b3e16d7257a4ee82eb9d4949ca0572cf03e7619b51c5c97160499067a77de87efa34cbf0d932b2f560d17416cbb508c8be2527bb16e819 - languageName: node - linkType: hard - -"web3-utils@npm:1.2.11": - version: 1.2.11 - resolution: "web3-utils@npm:1.2.11" - dependencies: - bn.js: "npm:^4.11.9" - eth-lib: "npm:0.2.8" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.9.1" - utf8: "npm:3.0.0" - checksum: bcf8ba89182c5c43b690c41a8078aa77275b3006383d266f43d563c20bcb1f6de2e5133707f9f4ee42ce46f6b9cb69e62b024327dfed67dd3f30dfe1ec946ac8 - languageName: node - linkType: hard - -"web3-utils@npm:1.7.4": - version: 1.7.4 - resolution: "web3-utils@npm:1.7.4" - dependencies: - bn.js: "npm:^5.2.1" - ethereum-bloom-filters: "npm:^1.0.6" - ethereumjs-util: "npm:^7.1.0" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: 9f78cd71e13838fe947db4fc3de8b248d56d105ccba8b2cf5cb0af048816a25fe46fd5054e1223c055424d160c0ca49634e13a909012dd7edf91b2914da6be93 - languageName: node - linkType: hard - -"web3-utils@npm:^1.0.0-beta.31, web3-utils@npm:^1.3.0, web3-utils@npm:^1.3.6": - version: 1.10.4 - resolution: "web3-utils@npm:1.10.4" - dependencies: - "@ethereumjs/util": "npm:^8.1.0" - bn.js: "npm:^5.2.1" - ethereum-bloom-filters: "npm:^1.0.6" - ethereum-cryptography: "npm:^2.1.2" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: fbd5c8ec71e944e9e66e3436dbd4446927c3edc95f81928723f9ac137e0d821c5cbb92dba0ed5bbac766f919f919c9d8e316e459c51d876d5188321642676677 - languageName: node - linkType: hard - -"web3-utils@npm:^4.3.3": - version: 4.3.3 - resolution: "web3-utils@npm:4.3.3" - dependencies: - ethereum-cryptography: "npm:^2.0.0" - eventemitter3: "npm:^5.0.1" - web3-errors: "npm:^1.3.1" - web3-types: "npm:^1.10.0" - web3-validator: "npm:^2.0.6" - checksum: c56040d254ac168c4c3266ac00dbef3a16e81093cc7926e53d0c619d2c354818bc04f2b0475dd18cb60e6167262154b8bfd0540683c1f4c91045791ad2667963 - languageName: node - linkType: hard - -"web3-validator@npm:^2.0.6": - version: 2.0.6 - resolution: "web3-validator@npm:2.0.6" - dependencies: - ethereum-cryptography: "npm:^2.0.0" - util: "npm:^0.12.5" - web3-errors: "npm:^1.2.0" - web3-types: "npm:^1.6.0" - zod: "npm:^3.21.4" - checksum: 28728773b9abad2531f7a4145784db56ec9ecffeb25cc9f6fe67bedeb01a1833b1a5d1a2e0f431ce4a3c8c6f13b111f35202dd8fa0829c6e2fcd68c58d1d5658 - languageName: node - linkType: hard - -"web3@npm:1.10.0": - version: 1.10.0 - resolution: "web3@npm:1.10.0" - dependencies: - web3-bzz: "npm:1.10.0" - web3-core: "npm:1.10.0" - web3-eth: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-shh: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: d5f5cd237dcc1fc521592b983c6fa35b60400961c58ea99b53ae8d08a0575a9371aba604d63e3a87fc548b19585b401d93ddb303323723fdac304a1608b71458 - languageName: node - linkType: hard - -"web3@npm:1.2.11": - version: 1.2.11 - resolution: "web3@npm:1.2.11" - dependencies: - web3-bzz: "npm:1.2.11" - web3-core: "npm:1.2.11" - web3-eth: "npm:1.2.11" - web3-eth-personal: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-shh: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 6d52d6e8580eb64425cdeac49b2303111e1d76483d74619fa94a6bfc2b77bf5c04e46ed6c2bc9c9ee7e0eeb8ab387d9c845868f673cad8b6414fd043b132c926 - languageName: node - linkType: hard - -"web3@npm:1.7.4": - version: 1.7.4 - resolution: "web3@npm:1.7.4" - dependencies: - web3-bzz: "npm:1.7.4" - web3-core: "npm:1.7.4" - web3-eth: "npm:1.7.4" - web3-eth-personal: "npm:1.7.4" - web3-net: "npm:1.7.4" - web3-shh: "npm:1.7.4" - web3-utils: "npm:1.7.4" - checksum: e71581440554b417bc6c847233821a8c6246e211e5064ee26955031fffc54fc51fd8c9073b5d27ce45c20f71457352a1d5128e89283aaeb651fb9c2a3d3d637e - languageName: node - linkType: hard - -"webcrypto-core@npm:^1.7.9": - version: 1.7.9 - resolution: "webcrypto-core@npm:1.7.9" - dependencies: - "@peculiar/asn1-schema": "npm:^2.3.8" - "@peculiar/json-schema": "npm:^1.1.12" - asn1js: "npm:^3.0.1" - pvtsutils: "npm:^1.3.5" - tslib: "npm:^2.6.2" - checksum: 29075c0fd6afdd11473dcf98623b929fae6a0861a54725af109df824e3c55c00580103a2f934baabff52d588e9c6c3892db80346061fd835c55e0a83264c19f5 - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - -"websocket@npm:1.0.32": - version: 1.0.32 - resolution: "websocket@npm:1.0.32" - dependencies: - bufferutil: "npm:^4.0.1" - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.50" - typedarray-to-buffer: "npm:^3.1.5" - utf-8-validate: "npm:^5.0.2" - yaeti: "npm:^0.0.6" - checksum: 277d3903ca35bf5eedc164522b51879bfe0036385b51b433586c8ddc5676a1051e2934ee9d13eb635d434d775c34b8f861911c57587e09cd0c96659a43a2524c - languageName: node - linkType: hard - -"websocket@npm:^1.0.31, websocket@npm:^1.0.32": - version: 1.0.35 - resolution: "websocket@npm:1.0.35" - dependencies: - bufferutil: "npm:^4.0.1" - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.63" - typedarray-to-buffer: "npm:^3.1.5" - utf-8-validate: "npm:^5.0.2" - yaeti: "npm:^0.0.6" - checksum: 8be9a68dc0228f18058c9010d1308479f05050af8f6d68b9dbc6baebd9ab484c15a24b2521a5d742a9d78e62ee19194c532992f1047a9b9adf8c3eedb0b1fcdc - languageName: node - linkType: hard - -"whatwg-fetch@npm:^2.0.4": - version: 2.0.4 - resolution: "whatwg-fetch@npm:2.0.4" - checksum: bf2bc1617218c63f2be86edefb95ac5e7f967ae402e468ed550729436369725c3b03a5d1110f62ea789b6f7f399969b1ef720b0bb04e8947fdf94eab7ffac829 - languageName: node - linkType: hard - -"whatwg-fetch@npm:^3.4.1": - version: 3.6.20 - resolution: "whatwg-fetch@npm:3.6.20" - checksum: fa972dd14091321d38f36a4d062298df58c2248393ef9e8b154493c347c62e2756e25be29c16277396046d6eaa4b11bd174f34e6403fff6aaca9fb30fa1ff46d - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e - languageName: node - linkType: hard - -"which-module@npm:^1.0.0": - version: 1.0.0 - resolution: "which-module@npm:1.0.0" - checksum: ce5088fb12dae0b6d5997b6221342943ff6275c3b2cd9c569f04ec23847c71013d254c6127d531010dccc22c0fc0f8dce2b6ecf6898941a60b576adb2018af22 - languageName: node - linkType: hard - -"which-module@npm:^2.0.0": - version: 2.0.1 - resolution: "which-module@npm:2.0.1" - checksum: 087038e7992649eaffa6c7a4f3158d5b53b14cf5b6c1f0e043dccfacb1ba179d12f17545d5b85ebd94a42ce280a6fe65d0cbcab70f4fc6daad1dfae85e0e6a3e - languageName: node - linkType: hard - -"which-pm@npm:2.0.0": - version: 2.0.0 - resolution: "which-pm@npm:2.0.0" - dependencies: - load-yaml-file: "npm:^0.2.0" - path-exists: "npm:^4.0.0" - checksum: 499fdf18fb259ea7dd58aab0df5f44240685364746596d0d08d9d68ac3a7205bde710ec1023dbc9148b901e755decb1891aa6790ceffdb81c603b6123ec7b5e4 - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.2" - checksum: 4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983 - languageName: node - linkType: hard - -"which@npm:^1.1.1, which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: "npm:^2.0.0" - bin: - which: ./bin/which - checksum: e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: ./bin/node-which - checksum: 66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a - languageName: node - linkType: hard - -"widest-line@npm:^3.1.0": - version: 3.1.0 - resolution: "widest-line@npm:3.1.0" - dependencies: - string-width: "npm:^4.0.0" - checksum: b1e623adcfb9df35350dd7fc61295d6d4a1eaa65a406ba39c4b8360045b614af95ad10e05abf704936ed022569be438c4bfa02d6d031863c4166a238c301119f - languageName: node - linkType: hard - -"window-size@npm:^0.2.0": - version: 0.2.0 - resolution: "window-size@npm:0.2.0" - bin: - window-size: cli.js - checksum: 378c9d7a1c903ca57f08db40dd8960252f566910ea9dea6d8552e9d61cebe9e536dcabc1b5a6edb776eebe8e5bcbcfb5b27ba13fe128625bc2033516acdc95cc - languageName: node - linkType: hard - -"winston-transport@npm:^4.7.0": - version: 4.7.0 - resolution: "winston-transport@npm:4.7.0" - dependencies: - logform: "npm:^2.3.2" - readable-stream: "npm:^3.6.0" - triple-beam: "npm:^1.3.0" - checksum: cd16f3d0ab56697f93c4899e0eb5f89690f291bb6cf309194819789326a7c7ed943ef00f0b2fab513b114d371314368bde1a7ae6252ad1516181a79f90199cd2 - languageName: node - linkType: hard - -"winston@npm:*, winston@npm:^3.3.3": - version: 3.13.0 - resolution: "winston@npm:3.13.0" - dependencies: - "@colors/colors": "npm:^1.6.0" - "@dabh/diagnostics": "npm:^2.0.2" - async: "npm:^3.2.3" - is-stream: "npm:^2.0.0" - logform: "npm:^2.4.0" - one-time: "npm:^1.0.0" - readable-stream: "npm:^3.4.0" - safe-stable-stringify: "npm:^2.3.1" - stack-trace: "npm:0.0.x" - triple-beam: "npm:^1.3.0" - winston-transport: "npm:^4.7.0" - checksum: 2c3cc7389a691e1638edcb0d4bfea72caa82d87d5681ec6131ac9bae780d94d06fb7b112edcd4ec37c8b947a1b64943941b761e34d67c6b0dac6e9c31ae4b25b - languageName: node - linkType: hard - -"wkx@npm:^0.5.0": - version: 0.5.0 - resolution: "wkx@npm:0.5.0" - dependencies: - "@types/node": "npm:*" - checksum: 9f787ffd2bc83708000f10165a72f0ca121b2e79b279eb44f2f5274eaa6ef819d9e9a00058a3b59dd211fe140d4b47cb6d49683b3a57a2a42ab3a7ccd52247dd - languageName: node - linkType: hard - -"wonka@npm:^4.0.14": - version: 4.0.15 - resolution: "wonka@npm:4.0.15" - checksum: b93f15339c0de08259439d3c5bd3a03ca44196fbd7553cbe13c844e7b3ff2eb31b5dc4a0b2e0c3c2119160e65fc471d8366f4559744b53ab52763eb463b6793b - languageName: node - linkType: hard - -"wonka@npm:^6.3.2": - version: 6.3.4 - resolution: "wonka@npm:6.3.4" - checksum: 77329eea673da07717476e1b8f1a22f1e1a4f261bb9a58fa446c03d3da13dbd5b254664f8aded5928d953f33ee5b399a17a4f70336e8b236e478209c0e78cda4 - languageName: node - linkType: hard - -"word-wrap@npm:^1.2.5, word-wrap@npm:~1.2.3": - version: 1.2.5 - resolution: "word-wrap@npm:1.2.5" - checksum: e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 - languageName: node - linkType: hard - -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 - languageName: node - linkType: hard - -"wordwrapjs@npm:^4.0.0": - version: 4.0.1 - resolution: "wordwrapjs@npm:4.0.1" - dependencies: - reduce-flatten: "npm:^2.0.0" - typical: "npm:^5.2.0" - checksum: 4cc43eb0f6adb7214d427e68918357a9df483815efbb4c59beb30972714b1804ede2a551b1dfd2234c0bd413c6f07d6daa6522d1c53f43f89a376d815fbf3c43 - languageName: node - linkType: hard - -"workerpool@npm:6.2.1": - version: 6.2.1 - resolution: "workerpool@npm:6.2.1" - checksum: f0efd2d74eafd58eaeb36d7d85837d080f75c52b64893cff317b66257dd308e5c9f85ef0b12904f6c7f24ed2365bc3cfeba1f1d16aa736d84d6ef8156ae37c80 - languageName: node - linkType: hard - -"workerpool@npm:^6.5.1": - version: 6.5.1 - resolution: "workerpool@npm:6.5.1" - checksum: 58e8e969782292cb3a7bfba823f1179a7615250a0cefb4841d5166234db1880a3d0fe83a31dd8d648329ec92c2d0cd1890ad9ec9e53674bb36ca43e9753cdeac - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da - languageName: node - linkType: hard - -"wrap-ansi@npm:^2.0.0": - version: 2.1.0 - resolution: "wrap-ansi@npm:2.1.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - checksum: 1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb - languageName: node - linkType: hard - -"wrap-ansi@npm:^6.0.1, wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: "npm:^6.1.0" - string-width: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - checksum: 138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 - languageName: node - linkType: hard - -"wrap-ansi@npm:^9.0.0": - version: 9.0.0 - resolution: "wrap-ansi@npm:9.0.0" - dependencies: - ansi-styles: "npm:^6.2.1" - string-width: "npm:^7.0.0" - strip-ansi: "npm:^7.1.0" - checksum: a139b818da9573677548dd463bd626a5a5286271211eb6e4e82f34a4f643191d74e6d4a9bb0a3c26ec90e6f904f679e0569674ac099ea12378a8b98e20706066 - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 - languageName: node - linkType: hard - -"ws@npm:7.4.6": - version: 7.4.6 - resolution: "ws@npm:7.4.6" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e - languageName: node - linkType: hard - -"ws@npm:8.13.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 579817dbbab3ee46669129c220cfd81ba6cdb9ab5c3e9a105702dd045743c4ab72e33bb384573827c0c481213417cc880e41bc097e0fc541a0b79fa3eb38207d - languageName: node - linkType: hard - -"ws@npm:8.17.1": - version: 8.17.1 - resolution: "ws@npm:8.17.1" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe - languageName: node - linkType: hard - -"ws@npm:^3.0.0": - version: 3.3.3 - resolution: "ws@npm:3.3.3" - dependencies: - async-limiter: "npm:~1.0.0" - safe-buffer: "npm:~5.1.0" - ultron: "npm:~1.1.0" - checksum: bed856f4fd85388a78b80e5ea92c7a6ff8df09ece1621218c4e366faa1551b42b5a0b66a5dd1a47d7f0d97be21d1df528b6d54f04b327e5b94c9dbcab753c94c - languageName: node - linkType: hard - -"ws@npm:^5.1.1": - version: 5.2.3 - resolution: "ws@npm:5.2.3" - dependencies: - async-limiter: "npm:~1.0.0" - checksum: 3f329b29a893c660b01be81654c9bca422a0de3396e644aae165e4e998e74b2b713adcbba876f183cd74a4f488376cbb7442d1c87455084d69fce1e2f25ef088 - languageName: node - linkType: hard - -"ws@npm:^7.4.6": - version: 7.5.9 - resolution: "ws@npm:7.5.9" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494 - languageName: node - linkType: hard - -"ws@npm:^8.12.0, ws@npm:^8.13.0": - version: 8.17.0 - resolution: "ws@npm:8.17.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 55241ec93a66fdfc4bf4f8bc66c8eb038fda2c7a4ee8f6f157f2ca7dc7aa76aea0c0da0bf3adb2af390074a70a0e45456a2eaf80e581e630b75df10a64b0a990 - languageName: node - linkType: hard - -"xhr-request-promise@npm:^0.1.2": - version: 0.1.3 - resolution: "xhr-request-promise@npm:0.1.3" - dependencies: - xhr-request: "npm:^1.1.0" - checksum: c5674a395a75a2b788cc80ac9e7913b3a67ef924db51fa67c0958f986b2840583d44de179ac26cf45b872960766a4dd40b36cfab809b76dc80277ba163b75d44 - languageName: node - linkType: hard - -"xhr-request@npm:^1.0.1, xhr-request@npm:^1.1.0": - version: 1.1.0 - resolution: "xhr-request@npm:1.1.0" - dependencies: - buffer-to-arraybuffer: "npm:^0.0.5" - object-assign: "npm:^4.1.1" - query-string: "npm:^5.0.1" - simple-get: "npm:^2.7.0" - timed-out: "npm:^4.0.1" - url-set-query: "npm:^1.0.0" - xhr: "npm:^2.0.4" - checksum: 12bf79e11fa909c01058e654e954b0e3ed0638e6a62a42bd705251c920b39c3980720d0c2d8c2b97ceaeb8bf21bb08fd75c733a909b76555d252014bd3acbc79 - languageName: node - linkType: hard - -"xhr2-cookies@npm:1.1.0": - version: 1.1.0 - resolution: "xhr2-cookies@npm:1.1.0" - dependencies: - cookiejar: "npm:^2.1.1" - checksum: 38faf4ebecdc003559c58a19e389b51ea227c92d0d38f385e9b43f75df675eae9b7ac6335ecba813990af804d448f69109806e76b07eaf689ad863b303222a6c - languageName: node - linkType: hard - -"xhr@npm:^2.0.4, xhr@npm:^2.2.0, xhr@npm:^2.3.3": - version: 2.6.0 - resolution: "xhr@npm:2.6.0" - dependencies: - global: "npm:~4.4.0" - is-function: "npm:^1.0.1" - parse-headers: "npm:^2.0.0" - xtend: "npm:^4.0.0" - checksum: b73b6413b678846c422559cbc0afb2acb34c3a75b4c3bbee1f258e984255a8b8d65c1749b51691278bbdc28781782950d77a759ef5a9adf7774bed2f5dabc954 - languageName: node - linkType: hard - -"xmlhttprequest@npm:1.8.0": - version: 1.8.0 - resolution: "xmlhttprequest@npm:1.8.0" - checksum: c890661562e4cb6c36a126071e956047164296f58b0058ab28a9c9f1c3b46a65bf421a242d3449363a2aadc3d9769146160b10a501710d476a17d77d41a5c99e - languageName: node - linkType: hard - -"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:~4.0.0, xtend@npm:~4.0.1": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e - languageName: node - linkType: hard - -"xtend@npm:~2.1.1": - version: 2.1.2 - resolution: "xtend@npm:2.1.2" - dependencies: - object-keys: "npm:~0.4.0" - checksum: 5b0289152e845041cfcb07d5fb31873a71e4fa9c0279299f9cce0e2a210a0177d071aac48546c998df2a44ff2c19d1cde8a9ab893e27192a0c2061c2837d8cb5 - languageName: node - linkType: hard - -"y18n@npm:^3.2.1": - version: 3.2.2 - resolution: "y18n@npm:3.2.2" - checksum: 08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46 - languageName: node - linkType: hard - -"y18n@npm:^4.0.0": - version: 4.0.3 - resolution: "y18n@npm:4.0.3" - checksum: 308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024 - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 - languageName: node - linkType: hard - -"yaeti@npm:^0.0.6": - version: 0.0.6 - resolution: "yaeti@npm:0.0.6" - checksum: 4e88702d8b34d7b61c1c4ec674422b835d453b8f8a6232be41e59fc98bc4d9ab6d5abd2da55bab75dfc07ae897fdc0c541f856ce3ab3b17de1630db6161aa3f6 - languageName: node - linkType: hard - -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: 0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5 - languageName: node - linkType: hard - -"yallist@npm:^3.0.0, yallist@npm:^3.0.2, yallist@npm:^3.1.1": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a - languageName: node - linkType: hard - -"yaml@npm:2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: cf03b68f8fef5e8516b0f0b54edaf2459f1648317fc6210391cf606d247e678b449382f4bd01f77392538429e306c7cba8ff46ff6b37cac4de9a76aff33bd9e1 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0, yaml@npm:^1.10.2": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: 5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f - languageName: node - linkType: hard - -"yargs-parser@npm:20.2.4": - version: 20.2.4 - resolution: "yargs-parser@npm:20.2.4" - checksum: 08dc341f0b9f940c2fffc1d1decf3be00e28cabd2b578a694901eccc7dcd10577f10c6aa1b040fdd9a68b2042515a60f18476543bccacf9f3ce2c8534cd87435 - languageName: node - linkType: hard - -"yargs-parser@npm:^18.1.2, yargs-parser@npm:^18.1.3": - version: 18.1.3 - resolution: "yargs-parser@npm:18.1.3" - dependencies: - camelcase: "npm:^5.0.0" - decamelize: "npm:^1.2.0" - checksum: 25df918833592a83f52e7e4f91ba7d7bfaa2b891ebf7fe901923c2ee797534f23a176913ff6ff7ebbc1cc1725a044cc6a6539fed8bfd4e13b5b16376875f9499 - languageName: node - linkType: hard - -"yargs-parser@npm:^2.4.1": - version: 2.4.1 - resolution: "yargs-parser@npm:2.4.1" - dependencies: - camelcase: "npm:^3.0.0" - lodash.assign: "npm:^4.0.6" - checksum: 746ba04072029ad4ce3b0aae4805810e5bbbf5ac762a3ff35ee25b3bb8eaf61acc0c3bddd0fab0ab8f902d806d750757917e6a5d5e1a267ed38cab3c32ac14d5 - languageName: node - linkType: hard - -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 - languageName: node - linkType: hard - -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 - languageName: node - linkType: hard - -"yargs-parser@npm:^8.1.0": - version: 8.1.0 - resolution: "yargs-parser@npm:8.1.0" - dependencies: - camelcase: "npm:^4.1.0" - checksum: 5cfc5d2cb994832a55379ba8398f67f0edca358a53523e0705df475ca0615cbb9d228e4cf39e6ec451a1274d602c1dc2233d7d23f11da25183e00d1a74035ab6 - languageName: node - linkType: hard - -"yargs-unparser@npm:2.0.0, yargs-unparser@npm:^2.0.0": - version: 2.0.0 - resolution: "yargs-unparser@npm:2.0.0" - dependencies: - camelcase: "npm:^6.0.0" - decamelize: "npm:^4.0.0" - flat: "npm:^5.0.2" - is-plain-obj: "npm:^2.1.0" - checksum: a5a7d6dc157efa95122e16780c019f40ed91d4af6d2bac066db8194ed0ec5c330abb115daa5a79ff07a9b80b8ea80c925baacf354c4c12edd878c0529927ff03 - languageName: node - linkType: hard - -"yargs@npm:16.2.0, yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - dependencies: - cliui: "npm:^7.0.2" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.0" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^20.2.2" - checksum: b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 - languageName: node - linkType: hard - -"yargs@npm:17.7.2, yargs@npm:^17.0.0, yargs@npm:^17.7.1": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: "npm:^8.0.1" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.3" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^21.1.1" - checksum: ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 - languageName: node - linkType: hard - -"yargs@npm:^10.0.3": - version: 10.1.2 - resolution: "yargs@npm:10.1.2" - dependencies: - cliui: "npm:^4.0.0" - decamelize: "npm:^1.1.1" - find-up: "npm:^2.1.0" - get-caller-file: "npm:^1.0.1" - os-locale: "npm:^2.0.0" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^1.0.1" - set-blocking: "npm:^2.0.0" - string-width: "npm:^2.0.0" - which-module: "npm:^2.0.0" - y18n: "npm:^3.2.1" - yargs-parser: "npm:^8.1.0" - checksum: ec3f0230a639c93f99e07e2070a4d930631e734cca30a4117f594ca20f8f22b90bcd9ef24d42c1a1239fec01bfd2fb73bdc885cf94358154c4a83075a19a502f - languageName: node - linkType: hard - -"yargs@npm:^15.1.0, yargs@npm:^15.3.1": - version: 15.4.1 - resolution: "yargs@npm:15.4.1" - dependencies: - cliui: "npm:^6.0.0" - decamelize: "npm:^1.2.0" - find-up: "npm:^4.1.0" - get-caller-file: "npm:^2.0.1" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^2.0.0" - set-blocking: "npm:^2.0.0" - string-width: "npm:^4.2.0" - which-module: "npm:^2.0.0" - y18n: "npm:^4.0.0" - yargs-parser: "npm:^18.1.2" - checksum: f1ca680c974333a5822732825cca7e95306c5a1e7750eb7b973ce6dc4f97a6b0a8837203c8b194f461969bfe1fb1176d1d423036635285f6010b392fa498ab2d - languageName: node - linkType: hard - -"yargs@npm:^4.7.1": - version: 4.8.1 - resolution: "yargs@npm:4.8.1" - dependencies: - cliui: "npm:^3.2.0" - decamelize: "npm:^1.1.1" - get-caller-file: "npm:^1.0.1" - lodash.assign: "npm:^4.0.3" - os-locale: "npm:^1.4.0" - read-pkg-up: "npm:^1.0.1" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^1.0.1" - set-blocking: "npm:^2.0.0" - string-width: "npm:^1.0.1" - which-module: "npm:^1.0.0" - window-size: "npm:^0.2.0" - y18n: "npm:^3.2.1" - yargs-parser: "npm:^2.4.1" - checksum: 7e183a1d96192d6a681ea9587052d7c2019c01cccb1ac24877a4f0fd948fb4b72eff474c21226c41dc1123128ecba29a26d46a9d022e8456efa0d600d96a70b9 - languageName: node - linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f - languageName: node - linkType: hard - -"zksync-web3@npm:^0.14.3": - version: 0.14.4 - resolution: "zksync-web3@npm:0.14.4" - peerDependencies: - ethers: ^5.7.0 - checksum: 1ee87dc33f2c45dfc5a93abb3ffda92f5e7190d90448aacb4859374975fd72bf269c72126ec06043e57e02c925273ecb936189ea2350a6ac4a620b95b86f7f97 - languageName: node - linkType: hard - -"zod-to-json-schema@npm:^3.20.5": - version: 3.23.0 - resolution: "zod-to-json-schema@npm:3.23.0" - peerDependencies: - zod: ^3.23.3 - checksum: bcd966fa040765d7170a89c0c5f1717575e7d8823b84cbbb606689d494ae308c9eaadd4b71a74752e3170deef64c1f1bb2985f4663c44a0ed2e7854ff6fda724 - languageName: node - linkType: hard - -"zod@npm:^3.21.4": - version: 3.23.8 - resolution: "zod@npm:3.23.8" - checksum: 8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69 - languageName: node - linkType: hard